activemq-artemis/examples/core/embedded-remote
Clebert Suconic 9a587c5633 ACTIVEMQ6-3 renaming package names from activemq6 to activemq
https://issues.apache.org/jira/browse/ACTIVEMQ6-3

We are renaming packages from activemq6 to activemq as that's more generic and version independent
The previous commit renamed the directories. On this commit now I'm changing the code.
If we changed the code and the directories on the same commit git would remove and add a lot of files
without recognizing the renames.
2014-11-17 09:33:53 -05:00
..
src/main/java/org/apache/activemq/core/example ACTIVEMQ6-3 renaming package names from activemq6 to activemq 2014-11-17 09:33:53 -05:00
pom.xml ACTIVEMQ6-3 renaming package names from activemq6 to activemq 2014-11-17 09:33:53 -05:00
readme.html ACTIVEMQ6-1 - Initial HornetQ Donation Commit 2014-11-10 10:31:25 -06:00

readme.html

<html>
  <head>
    <title>HornetQ Embedded Example</title>
    <link rel="stylesheet" type="text/css" href="../../common/common.css" />
    <link rel="stylesheet" type="text/css" href="../../common/prettify.css" />
    <script type="text/javascript" src="../../common/prettify.js"></script>
  </head>
  <body onload="prettyPrint()">
     <h1>Embedded Example</h1>
     <p>This example shows how to setup and run HornetQ embedded with remote clients connecting.</p>
     <p>HornetQ was designed to use POJOs (Plain Old Java Objects), what makes embedding HornetQ as simple as instantiating a few objects.</p>

     <p>HornetQ Embedded could be used from very simple use cases with only InVM support to very complex cases with clustering, persistence and fail over.</p>


     <h2>Example step-by-step</h2>     
     <p><i>To run the example, simply type <code>mvn -Pserver</code> from this directory to start the server and <code>mvn -Pclient</code> to run the client example</i></p>
     <p>In this we don't use any configuration files. (Everything is embedded). We simply instantiate ConfigurationImpl, HornetQServer, start it and operate on JMS regularly</p>
     <br/>
     <ol>
        <li>On EmbeddedServer: Create the Configuration, and set the properties accordingly</li>
        <pre class="prettyprint">
           Configuration configuration = new ConfigurationImpl();
           configuration.setEnablePersistence(false);
           configuration.setSecurityEnabled(false);
        </pre>
         
        <li>On EmbeddedServer: Create and start the server</li>
        <pre class="prettyprint">
           HornetQServer server = HornetQ.newHornetQServer(configuration);
           server.start();
        </pre>

        <li>As we are not using a JNDI environment we instantiate the objects directly</li>
        <pre class="prettyprint">
           ServerLocator serverLocator = HornetQClient.createServerLocatorWithoutHA(new TransportConfiguration(NettyConnectorFactory.class.getName()));
           ClientSessionFactory sf = serverLocator.createSessionFactory();
        </pre>

        <li>Create a Core Queue</li>
        <pre class="prettyprint">
           ClientSession coreSession = sf.createSession(false, false, false);
           final String queueName = "queue.exampleQueue";
           coreSession.createQueue(queueName, queueName, true);
           coreSession.close();
        </pre>

        <li>Create the session and producer</li>
        <pre class="prettyprint">
           session = sf.createSession();
                                   
           ClientProducer producer = session.createProducer(queueName);
        </pre>

        <li>Create and send a Message</li>
        <pre class="prettyprint">
           ClientMessage message = session.createMessage(false);
           message.putStringProperty(propName, "Hello sent at " + new Date());
           System.out.println("Sending the message.");
           producer.send(message);
        </pre>

        <li>Create the message consumer and start the connection</li>
        <pre class="prettyprint">
           ClientConsumer messageConsumer = session.createConsumer(queueName);
           session.start();
        </pre>

        <li>Receive the message</li>
        <pre class="prettyprint">
           ClientMessage messageReceived = messageConsumer.receive(1000);
           System.out.println("Received TextMessage:" + messageReceived.getProperty(propName));
        </pre>

        <li>Be sure to close our resources!</li>

        <pre class="prettyprint">
           if (sf != null)
           {
              sf.close();
           }
        </pre>
     </ol>
  </body>
</html>