You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2015/08/07 21:31:22 UTC

[03/18] activemq-artemis git commit: ARTEMIS-180 removing -Pexample and some other improvements around the examples

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/temp-queue/pom.xml
----------------------------------------------------------------------
diff --git a/examples/jms/temp-queue/pom.xml b/examples/jms/temp-queue/pom.xml
index 1599fcc..ef544e1 100644
--- a/examples/jms/temp-queue/pom.xml
+++ b/examples/jms/temp-queue/pom.xml
@@ -18,7 +18,8 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <parent>
@@ -27,7 +28,7 @@ under the License.
       <version>1.0.1-SNAPSHOT</version>
    </parent>
 
-   <artifactId>artemis-jms-temp-queue-example</artifactId>
+   <artifactId>temp-queue</artifactId>
    <packaging>jar</packaging>
    <name>ActiveMQ Artemis JMS Temporary Queue Example</name>
 
@@ -37,71 +38,81 @@ under the License.
 
    <dependencies>
       <dependency>
-         <groupId>org.apache.geronimo.specs</groupId>
-         <artifactId>geronimo-jms_2.0_spec</artifactId>
+         <groupId>org.apache.activemq</groupId>
+         <artifactId>artemis-jms-client</artifactId>
+         <version>${project.version}</version>
       </dependency>
    </dependencies>
 
    <profiles>
       <profile>
-         <id>example</id>
-         <build>
-            <plugins>
-               <plugin>
-                  <groupId>org.apache.activemq</groupId>
-                  <artifactId>artemis-maven-plugin</artifactId>
-                  <executions>
-                     <execution>
-                        <id>create</id>
-                        <goals>
-                           <goal>create</goal>
-                        </goals>
-                     </execution>
-                     <execution>
-                        <id>start</id>
-                        <goals>
-                           <goal>cli</goal>
-                        </goals>
-                        <configuration>
-                           <spawn>true</spawn>
-                           <testURI>tcp://localhost:61616</testURI>
-                           <args>
-                              <param>run</param>
-                           </args>
-                        </configuration>
-                     </execution>
-                     <execution>
-                        <id>runClient</id>
-                        <goals>
-                           <goal>runClient</goal>
-                        </goals>
-                        <configuration>
-                           <clientClass>org.apache.activemq.artemis.jms.example.TemporaryQueueExample</clientClass>
-                        </configuration>
-                     </execution>
-                     <execution>
-                        <id>stop</id>
-                        <goals>
-                           <goal>cli</goal>
-                        </goals>
-                        <configuration>
-                           <args>
-                              <param>stop</param>
-                           </args>
-                        </configuration>
-                     </execution>
-                  </executions>
-                  <dependencies>
-                     <dependency>
-                        <groupId>org.apache.activemq.examples.jms</groupId>
-                        <artifactId>artemis-jms-temp-queue-example</artifactId>
-                        <version>${project.version}</version>
-                     </dependency>
-                  </dependencies>
-               </plugin>
-            </plugins>
-         </build>
+         <!-- specify -PnoServer if you don't want to start the server -->
+         <id>noServer</id>
+         <properties>
+            <noServer>true</noServer>
+         </properties>
       </profile>
    </profiles>
+   <build>
+      <plugins>
+         <plugin>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>artemis-maven-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>create</id>
+                  <goals>
+                     <goal>create</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>start</id>
+                  <goals>
+                     <goal>cli</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                     <spawn>true</spawn>
+                     <testURI>tcp://localhost:61616</testURI>
+                     <args>
+                        <param>run</param>
+                     </args>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>runClient</id>
+                  <goals>
+                     <goal>runClient</goal>
+                  </goals>
+                  <configuration>
+                     <clientClass>org.apache.activemq.artemis.jms.example.TemporaryQueueExample</clientClass>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>stop</id>
+                  <goals>
+                     <goal>cli</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                     <args>
+                        <param>stop</param>
+                     </args>
+                  </configuration>
+               </execution>
+            </executions>
+            <dependencies>
+               <dependency>
+                  <groupId>org.apache.activemq.examples.jms</groupId>
+                  <artifactId>temp-queue</artifactId>
+                  <version>${project.version}</version>
+               </dependency>
+            </dependencies>
+         </plugin>
+      </plugins>
+   </build>
 
 </project>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/temp-queue/readme.html
----------------------------------------------------------------------
diff --git a/examples/jms/temp-queue/readme.html b/examples/jms/temp-queue/readme.html
index 2685f31..f1cae4d 100644
--- a/examples/jms/temp-queue/readme.html
+++ b/examples/jms/temp-queue/readme.html
@@ -27,136 +27,14 @@ under the License.
   <body onload="prettyPrint()">
      <h1>JMS Temporary Queue Example</h1>
 
+     <pre>To run the example, simply type <b>mvn verify</b> from this directory, <br>or <b>mvn -PnoServer verify</b> if you want to start and create the server manually.</pre>
+
+
      <p>This example shows you how to use a TemporaryQueue with ActiveMQ Artemis. First a temporary queue is created to send and receive a message and then deleted.
          Then another temporary queue is created and used after its connection is closed to illustrate its scope.</p>
      <p>A TemporaryQueue is a JMS queue that exists only within the lifetime of its connection. It is often used in request-reply
          type messaging where the reply is sent through a temporary destination. The temporary queue is often created as
          a server resource, so after using, the user should call delete() method to release the resources.
          Please consult the JMS 1.1 specification for full details.</p>
-
-     <h2>Example step-by-step</h2>
-     <p><i>To run the example, simply type <code>mvn verify -Pexample</code> from this directory</i></p>
-
-     <ol>
-        <li>First we need to get an initial context so we can look-up the JMS connection factory from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
-        <pre class="prettyprint">
-           <code>initialContext = getContext();</code>
-        </pre>
-
-        <li>We look-up JMS connection factory from JNDI</li>
-        <pre class="prettyprint">
-           <code>ConnectionFactory cf = (ConnectionFactory)initialContext.lookup("/ConnectionFactory");</code>
-        </pre>
-
-        <li>We Create a JMS connection</li>
-        <pre class="prettyprint">
-           <code>connection = cf.createConnection();</code>
-        </pre>
-         
-        <li>We start the connection. In order for delivery to occur on any consumers or subscribers on a connection, the connection must be started</li>
-        <pre class="prettyprint">
-           <code>connection.start();</code>
-        </pre>
-         
-        <li>We create a JMS session. The session is created as non transacted and will auto acknowledge messages.</li>
-        <pre class="prettyprint">
-           <code>Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);</code>
-        </pre>
-        
-        <li>We create a Temporary Queue</li>
-        <pre class="prettyprint">
-           <code>Queue tempQueue = session.createTemporaryQueue();</code>
-        </pre>
-
-        <li>We create a JMS message producer to the temporary queue. This will be used to send the messages.</li>
-        <pre class="prettyprint">
-	        <code>MessageProducer messageProducer = session.createProducer(tempQueue);</code>
-        </pre>
-         
-        <li>We create a JMS text message to send </li>
-        <pre class="prettyprint">
-           <code>TextMessage message = session.createTextMessage("This is a text message");</code>
-        </pre>
-   
-        <li>We send the message to the temporary queue</li>
-        <pre class="prettyprint">
-           <code>messageProducer.send(message);</code>
-        </pre>
-
-        <li>We create a message consumer of the temporary queue</li>
-        <pre class="prettyprint">
-           <code>MessageConsumer messageConsumer = session.createConsumer(tempQueue);</code>
-        </pre>
-
-        <li>We receive the message from the temporary queue</li>
-        <pre class="prettyprint">
-           <code>message = (TextMessage) messageConsumer.receive(5000);</code>
-        </pre>
-
-        <li>We close the consumer and producer before destroying the temporary queue</li>
-        <pre class="prettyprint">
-           <code>messageConsumer.close();</code>
-           <code>messageProducer.close();</code>
-        </pre>
-
-        <li>We delete the temporary queue</li>
-        <pre class="prettyprint">
-           <code>tempQueue.delete();</code>
-        </pre>
-
-        <li>We create another temporary queue</li>
-        <pre class="prettyprint">
-           <code>TemporaryQueue tempQueue2 = session.createTemporaryQueue();</code>
-        </pre>
-
-        <li>We close the connection</li>
-        <pre class="prettyprint">
-           <code>connection.close();</code>
-        </pre>
-
-        <li>We create a new connection</li>
-        <pre class="prettyprint">
-           <code>connection = cf.createConnection();</code>
-        </pre>
-
-        <li>We create a new session</li>
-        <pre class="prettyprint">
-           <code>session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);</code>
-        </pre>
-
-        <li>We try to access the tempQueue2 outside its lifetime, this will cause exception thrown</li>
-        <pre class="prettyprint">
-           <code>
-         try
-         {
-            messageConsumer = session.createConsumer(tempQueue2);
-            throw new Exception("Temporary queue cannot be accessed outside its lifecycle!");
-         }
-         catch (InvalidDestinationException e)
-         {
-            System.out.println("Exception got when trying to access a temp queue outside its scope: " + e);
-         }
-           </code>
-        </pre>
-
-        <li>And finally, <b>always</b> remember to close your JMS connections and resources after use, in a <code>finally</code> block. Closing a JMS connection will automatically close all of its sessions, consumers, producer and browser objects</li>
-
-        <pre class="prettyprint">
-           <code>finally
-           {
-              if (initialContext != null)
-              {
-                initialContext.close();
-              }
-              if (connection != null)
-              {
-                 connection.close();
-              }
-           }</code>
-        </pre>
-
-
-         
-     </ol>
   </body>
 </html>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/temp-queue/src/main/resources/activemq/server0/broker.xml
----------------------------------------------------------------------
diff --git a/examples/jms/temp-queue/src/main/resources/activemq/server0/broker.xml b/examples/jms/temp-queue/src/main/resources/activemq/server0/broker.xml
index f1c14b2..2dd2df9 100644
--- a/examples/jms/temp-queue/src/main/resources/activemq/server0/broker.xml
+++ b/examples/jms/temp-queue/src/main/resources/activemq/server0/broker.xml
@@ -29,13 +29,13 @@ under the License.
 
    <core xmlns="urn:activemq:core">
 
-      <bindings-directory>${data.dir:./data}/bindings</bindings-directory>
+      <bindings-directory>./data/bindings</bindings-directory>
 
-      <journal-directory>${data.dir:./data}/journal</journal-directory>
+      <journal-directory>./data/journal</journal-directory>
 
-      <large-messages-directory>${data.dir:./data}/largemessages</large-messages-directory>
+      <large-messages-directory>./data/largemessages</large-messages-directory>
 
-      <paging-directory>${data.dir:./data}/paging</paging-directory>
+      <paging-directory>./data/paging</paging-directory>
 
       <!-- Acceptors -->
       <acceptors>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/topic-hierarchies/pom.xml
----------------------------------------------------------------------
diff --git a/examples/jms/topic-hierarchies/pom.xml b/examples/jms/topic-hierarchies/pom.xml
index 250abd3..320e870 100644
--- a/examples/jms/topic-hierarchies/pom.xml
+++ b/examples/jms/topic-hierarchies/pom.xml
@@ -18,7 +18,8 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <parent>
@@ -27,7 +28,7 @@ under the License.
       <version>1.0.1-SNAPSHOT</version>
    </parent>
 
-   <artifactId>artemis-jms-topic-hierarchies-example</artifactId>
+   <artifactId>topic-hierarchies</artifactId>
    <packaging>jar</packaging>
    <name>ActiveMQ Artemis JMS Topic Hierarchies Example</name>
 
@@ -41,72 +42,77 @@ under the License.
          <artifactId>artemis-jms-client</artifactId>
          <version>${project.version}</version>
       </dependency>
-      <dependency>
-         <groupId>org.apache.geronimo.specs</groupId>
-         <artifactId>geronimo-jms_2.0_spec</artifactId>
-      </dependency>
    </dependencies>
 
    <profiles>
       <profile>
-         <id>example</id>
-         <build>
-            <plugins>
-               <plugin>
-                  <groupId>org.apache.activemq</groupId>
-                  <artifactId>artemis-maven-plugin</artifactId>
-                  <executions>
-                     <execution>
-                        <id>create</id>
-                        <goals>
-                           <goal>create</goal>
-                        </goals>
-                     </execution>
-                     <execution>
-                        <id>start</id>
-                        <goals>
-                           <goal>cli</goal>
-                        </goals>
-                        <configuration>
-                           <spawn>true</spawn>
-                           <testURI>tcp://localhost:61616</testURI>
-                           <args>
-                              <param>run</param>
-                           </args>
-                        </configuration>
-                     </execution>
-                     <execution>
-                        <id>runClient</id>
-                        <goals>
-                           <goal>runClient</goal>
-                        </goals>
-                        <configuration>
-                           <clientClass>org.apache.activemq.artemis.jms.example.TopicHierarchyExample</clientClass>
-                        </configuration>
-                     </execution>
-                     <execution>
-                        <id>stop</id>
-                        <goals>
-                           <goal>cli</goal>
-                        </goals>
-                        <configuration>
-                           <args>
-                              <param>stop</param>
-                           </args>
-                        </configuration>
-                     </execution>
-                  </executions>
-                  <dependencies>
-                     <dependency>
-                        <groupId>org.apache.activemq.examples.jms</groupId>
-                        <artifactId>artemis-jms-topic-hierarchies-example</artifactId>
-                        <version>${project.version}</version>
-                     </dependency>
-                  </dependencies>
-               </plugin>
-            </plugins>
-         </build>
+         <!-- specify -PnoServer if you don't want to start the server -->
+         <id>noServer</id>
+         <properties>
+            <noServer>true</noServer>
+         </properties>
       </profile>
    </profiles>
+   <build>
+      <plugins>
+         <plugin>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>artemis-maven-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>create</id>
+                  <goals>
+                     <goal>create</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>start</id>
+                  <goals>
+                     <goal>cli</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                     <spawn>true</spawn>
+                     <testURI>tcp://localhost:61616</testURI>
+                     <args>
+                        <param>run</param>
+                     </args>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>runClient</id>
+                  <goals>
+                     <goal>runClient</goal>
+                  </goals>
+                  <configuration>
+                     <clientClass>org.apache.activemq.artemis.jms.example.TopicHierarchyExample</clientClass>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>stop</id>
+                  <goals>
+                     <goal>cli</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                     <args>
+                        <param>stop</param>
+                     </args>
+                  </configuration>
+               </execution>
+            </executions>
+            <dependencies>
+               <dependency>
+                  <groupId>org.apache.activemq.examples.jms</groupId>
+                  <artifactId>topic-hierarchies</artifactId>
+                  <version>${project.version}</version>
+               </dependency>
+            </dependencies>
+         </plugin>
+      </plugins>
+   </build>
 
 </project>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/topic-hierarchies/readme.html
----------------------------------------------------------------------
diff --git a/examples/jms/topic-hierarchies/readme.html b/examples/jms/topic-hierarchies/readme.html
index d87cb1a..c901d57 100644
--- a/examples/jms/topic-hierarchies/readme.html
+++ b/examples/jms/topic-hierarchies/readme.html
@@ -27,6 +27,9 @@ under the License.
   <body onload="prettyPrint()">
      <h1>Topic Hierarchy Example</h1>
 
+     <pre>To run the example, simply type <b>mvn verify</b> from this directory, <br>or <b>mvn -PnoServer verify</b> if you want to start and create the server manually.</pre>
+
+
      <p>ActiveMQ Artemis supports topic hierarchies. With a topic hierarchy you can register a subscriber with a wild-card
      and that subscriber will receive any messages routed to an address that match the wildcard.</p>
      <p>ActiveMQ Artemis wild-cards can use the character '#' which means "match any number of words", and
@@ -35,166 +38,5 @@ under the License.
      "news.europe", "news.europe.sport" and "news.europe.entertainment", but it does not match messages sent to the
      address "news.usa.wrestling"</p>
      <p>For more information on the wild-card syntax please consult the user manual.</p>
-     <h2>Example step-by-step</h2>
-     <p><i>To run the example, simply type <code>mvn verify -Pexample</code> from this directory</i></p>
-     <p>In this example we will define a hierarchy of topics in the file <code>activemq-jms.xml</code></p>
-     <pre class="prettyprint">
-        <code>
-   &lt;topic name="news"&gt;
-      &lt;entry name="/topic/news"/&gt;
-   &lt;/topic&gt;
-   
-   &lt;topic name="news.usa"&gt;
-      &lt;entry name="/topic/news.usa"/&gt;
-   &lt;/topic&gt;
-   
-   &lt;topic name="news.usa.wrestling"&gt;
-      &lt;entry name="/topic/news.wrestling"/&gt;
-   &lt;/topic&gt;
-   
-   &lt;topic name="news.europe"&gt;
-      &lt;entry name="/topic/news.europe"/&gt;
-   &lt;/topic&gt;
-   
-   &lt;topic name="news.europe.sport"&gt;
-      &lt;entry name="/topic/news.europe.sport"/&gt;
-   &lt;/topic&gt;
-   
-   &lt;topic name="news.europe.entertainment"&gt;
-      &lt;entry name="/topic/news.europe.entertainment"/&gt;
-   &lt;/topic&gt;
-        </code>
-     </pre>
-     <p>Then we will create a subscriber using the wildcard "news.europe.#".</p>
-     <p>We will then send three messages: one to the address news.usa.wrestling, one to the address news.europe.sport,
-     and one to the address news.europe.entertainment.</p>
-     <p>We will verify that the message sent to news.usa.wrestling does not get received since it does not match, 
-     but the messages sent to the other two addresses do get received since they match.</p>
-
-     <ol>
-        <li>Create an initial context to perform the JNDI lookup.</code></li>
-        <pre class="prettyprint">
-           <code>initialContext = getContext(0);</code>
-        </pre>
-
-        <li>Perform a lookup on the Connection Factory</li>
-        <pre class="prettyprint">
-           <code>ConnectionFactory cf = (ConnectionFactory) initialContext.lookup("/ConnectionFactory");</code>
-        </pre>
-
-        <li>Create a JMS Connection</li>
-        <pre class="prettyprint">
-           <code>connection = cf.createConnection();</code>
-        </pre>
-
-        <li>Create a JMS Session</li>
-        <pre class="prettyprint">
-           <code>Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);</code>
-        </pre>
-
-        <li>Instantiate a topic representing the wildcard we're going to subscribe to.</li>
-        <pre class="prettyprint">
-           <code>Topic topicSubscribe = ActiveMQJMSClient.createActiveMQTopic("news.europe.#");</code>
-        </pre>
-
-        <li>Create a consumer (topic subscriber) that will consume using that wildcard.
-         The consumer will receive any messages sent to any topic that starts with news.europe</li>
-        <pre class="prettyprint">
-          <code>MessageConsumer messageConsumer = session.createConsumer(topicSubscribe);</code>
-       </pre>
-
-        <li>Create an anonymous producer. The sending address is specified at send time.</li>
-        <pre class="prettyprint">
-           <code>MessageProducer producer = session.createProducer(null);</code>
-        </pre>
-
-        <li>Instantiate some more topic objects corresponding to the individual topics
-         we're going to send messages to. You could look these up from JNDI if you wanted to.</li>
-        <pre class="prettyprint">
-           <code>
-         Topic topicNewsUsaWrestling = ActiveMQJMSClient.createActiveMQTopic("news.usa.wrestling");
-         
-         Topic topicNewsEuropeSport = ActiveMQJMSClient.createActiveMQTopic("news.europe.sport");
-         
-         Topic topicNewsEuropeEntertainment = ActiveMQJMSClient.createActiveMQTopic("news.europe.entertainment");</code>
-        </pre>
-
-        <li>Send a message destined for the usa wrestling topic.</li>
-          <pre class="prettyprint">
-           <code>
-         TextMessage messageWrestlingNews = session.createTextMessage("Hulk Hogan starts ballet classes");
-         
-         producer.send(topicNewsUsaWrestling, messageWrestlingNews);
-           </code>
-        </pre>
-
-        <li>Send a message destined for the europe sport topic.</li>
-        <pre class="prettyprint">
-           <code>
-         TextMessage messageEuropeSport = session.createTextMessage("Lewis Hamilton joins European synchronized swimming team");
-         
-         producer.send(topicNewsEuropeSport, messageEuropeSport);           
-           </code>
-        </pre>
-
-        <li>Send a message destined for the europe entertainment topic</li>
-        <pre class="prettyprint">
-           <code>
-         TextMessage messageEuropeEntertainment = session.createTextMessage("John Lennon resurrected from dead");
-         
-         producer.send(topicNewsEuropeEntertainment, messageEuropeEntertainment);
-           </code>
-        </pre>
-        
-        <li>Start the connection</li>
-        <pre class="prettyprint">
-           <code>
-        connection.start();
-           </code>
-        </pre>
-        
-        <li>We don't receive the usa wrestling message since we subscribed to news.europe.# and
-         that doesn't match news.usa.wrestling. However we do receive the Europe sport message, and the
-         europe entertainment message, since these match the wildcard.</li>
-        <pre class="prettyprint">
-           <code>
-        TextMessage messageReceived1 = (TextMessage)messageConsumer.receive(5000);
-         
-        System.out.println("Received message: " + messageReceived1.getText());
-         
-        TextMessage messageReceived2 = (TextMessage)messageConsumer.receive(5000);
-         
-        System.out.println("Received message: " + messageReceived2.getText());
-         
-        Message message = messageConsumer.receive(1000);
-         
-        if (message != null)
-        {
-           return false;
-        }
-         
-        System.out.println("Didn't received any more message: " + message);
-           </code>
-        </pre>
-        
-        <li>Be sure to close our resources!</li>
-
-        <pre class="prettyprint">
-           <code>finally
-           {
-              if (initialContext != null)
-              {
-                initialContext.close();
-              }
-              if (connection != null)
-              {
-                 connection.close();
-              }
-           }</code>
-        </pre>
-
-
-
-     </ol>
   </body>
 </html>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/topic-hierarchies/src/main/resources/activemq/server0/broker.xml
----------------------------------------------------------------------
diff --git a/examples/jms/topic-hierarchies/src/main/resources/activemq/server0/broker.xml b/examples/jms/topic-hierarchies/src/main/resources/activemq/server0/broker.xml
index ac065f6..9ec66c6 100644
--- a/examples/jms/topic-hierarchies/src/main/resources/activemq/server0/broker.xml
+++ b/examples/jms/topic-hierarchies/src/main/resources/activemq/server0/broker.xml
@@ -40,13 +40,13 @@ under the License.
 
    <core xmlns="urn:activemq:core">
 
-      <bindings-directory>${data.dir:./data}/bindings</bindings-directory>
+      <bindings-directory>./data/bindings</bindings-directory>
 
-      <journal-directory>${data.dir:./data}/journal</journal-directory>
+      <journal-directory>./data/journal</journal-directory>
 
-      <large-messages-directory>${data.dir:./data}/largemessages</large-messages-directory>
+      <large-messages-directory>./data/largemessages</large-messages-directory>
 
-      <paging-directory>${data.dir:./data}/paging</paging-directory>
+      <paging-directory>./data/paging</paging-directory>
 
       <!-- Acceptors -->
       <acceptors>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/topic-selector-example1/pom.xml
----------------------------------------------------------------------
diff --git a/examples/jms/topic-selector-example1/pom.xml b/examples/jms/topic-selector-example1/pom.xml
index bbf95ee..01c528a 100644
--- a/examples/jms/topic-selector-example1/pom.xml
+++ b/examples/jms/topic-selector-example1/pom.xml
@@ -18,7 +18,8 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <parent>
@@ -27,7 +28,7 @@ under the License.
       <version>1.0.1-SNAPSHOT</version>
    </parent>
 
-   <artifactId>artemis-jms-topic-selector-example1-example</artifactId>
+   <artifactId>topic-selector1</artifactId>
    <packaging>jar</packaging>
    <name>ActiveMQ Artemis JMS Topic Selector Example 1</name>
 
@@ -37,71 +38,81 @@ under the License.
 
    <dependencies>
       <dependency>
-         <groupId>org.apache.geronimo.specs</groupId>
-         <artifactId>geronimo-jms_2.0_spec</artifactId>
+         <groupId>org.apache.activemq</groupId>
+         <artifactId>artemis-jms-client</artifactId>
+         <version>${project.version}</version>
       </dependency>
    </dependencies>
 
    <profiles>
       <profile>
-         <id>example</id>
-         <build>
-            <plugins>
-               <plugin>
-                  <groupId>org.apache.activemq</groupId>
-                  <artifactId>artemis-maven-plugin</artifactId>
-                  <executions>
-                     <execution>
-                        <id>create</id>
-                        <goals>
-                           <goal>create</goal>
-                        </goals>
-                     </execution>
-                     <execution>
-                        <id>start</id>
-                        <goals>
-                           <goal>cli</goal>
-                        </goals>
-                        <configuration>
-                           <spawn>true</spawn>
-                           <testURI>tcp://localhost:61616</testURI>
-                           <args>
-                              <param>run</param>
-                           </args>
-                        </configuration>
-                     </execution>
-                     <execution>
-                        <id>runClient</id>
-                        <goals>
-                           <goal>runClient</goal>
-                        </goals>
-                        <configuration>
-                           <clientClass>org.apache.activemq.artemis.jms.example.TopicSelectorExample1</clientClass>
-                        </configuration>
-                     </execution>
-                     <execution>
-                        <id>stop</id>
-                        <goals>
-                           <goal>cli</goal>
-                        </goals>
-                        <configuration>
-                           <args>
-                              <param>stop</param>
-                           </args>
-                        </configuration>
-                     </execution>
-                  </executions>
-                  <dependencies>
-                     <dependency>
-                        <groupId>org.apache.activemq.examples.jms</groupId>
-                        <artifactId>artemis-jms-topic-selector-example1-example</artifactId>
-                        <version>${project.version}</version>
-                     </dependency>
-                  </dependencies>
-               </plugin>
-            </plugins>
-         </build>
+         <!-- specify -PnoServer if you don't want to start the server -->
+         <id>noServer</id>
+         <properties>
+            <noServer>true</noServer>
+         </properties>
       </profile>
    </profiles>
+   <build>
+      <plugins>
+         <plugin>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>artemis-maven-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>create</id>
+                  <goals>
+                     <goal>create</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>start</id>
+                  <goals>
+                     <goal>cli</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                     <spawn>true</spawn>
+                     <testURI>tcp://localhost:61616</testURI>
+                     <args>
+                        <param>run</param>
+                     </args>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>runClient</id>
+                  <goals>
+                     <goal>runClient</goal>
+                  </goals>
+                  <configuration>
+                     <clientClass>org.apache.activemq.artemis.jms.example.TopicSelectorExample1</clientClass>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>stop</id>
+                  <goals>
+                     <goal>cli</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                     <args>
+                        <param>stop</param>
+                     </args>
+                  </configuration>
+               </execution>
+            </executions>
+            <dependencies>
+               <dependency>
+                  <groupId>org.apache.activemq.examples.jms</groupId>
+                  <artifactId>topic-selector1</artifactId>
+                  <version>${project.version}</version>
+               </dependency>
+            </dependencies>
+         </plugin>
+      </plugins>
+   </build>
 
 </project>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/topic-selector-example1/readme.html
----------------------------------------------------------------------
diff --git a/examples/jms/topic-selector-example1/readme.html b/examples/jms/topic-selector-example1/readme.html
index 630cd2b..5681852 100644
--- a/examples/jms/topic-selector-example1/readme.html
+++ b/examples/jms/topic-selector-example1/readme.html
@@ -27,153 +27,12 @@ under the License.
   <body onload="prettyPrint()">
      <h1>JMS Topic Selector Example 1</h1>
 
+     <pre>To run the example, simply type <b>mvn verify</b> from this directory, <br>or <b>mvn -PnoServer verify</b> if you want to start and create the server manually.</pre>
+
+
      <p>This example shows how messages can be consumed from a topic using Message Selectors.</p>
      <p>Consumers (or Subscribers) will only consume messages routed to a topic that match the provided selector</p>
      <p>Topics and selectors are a standard part of JMS, please consult the JMS 1.1 specification for full details.</p>
 
-
-     <h2>Example step-by-step</h2>
-     <p><i>To run the example, simply type <code>mvn verify -Pexample</code> from this directory</i></p>
-
-     <ol>
-        <li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
-        <pre class="prettyprint">
-           <code>initialContext = getContext();</code>
-        </pre>
-
-        <li>We look-up the JMS topic object from JNDI</li>
-        <pre class="prettyprint">
-           <code>Topic topic = (Topic) initialContext.lookup("/topic/exampleTopic");</code>
-        </pre>
-
-        <li>We look-up the JMS connection factory object from JNDI</li>
-        <pre class="prettyprint">
-           <code>ConnectionFactory cf = (ConnectionFactory) initialContext.lookup("/ConnectionFactory");</code>
-        </pre>
-
-        <li>We create a JMS connection</li>
-        <pre class="prettyprint">
-           <code>connection = cf.createConnection();</code>
-        </pre>
-
-        <li>We create a JMS session. The session is created as non transacted and will auto acknowledge messages.</li>
-        <pre class="prettyprint">
-           <code>Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);</code>
-        </pre>
-
-        <li>We create a JMS message producer on the session. This will be used to send the messages.</li>
-        <pre class="prettyprint">
-          <code>MessageProducer messageProducer = session.createProducer(topic);</code>
-        </pre>
-       
-        <li>Create one non-durable subscriber with a specific filter</li>
-        <pre class="prettyprint">
-         <code>MessageConsumer messageConsumer1 = session.createConsumer(topic, "someID=1", false);</code>
-        </pre>
-        
-        <li>Create a second non-durable subscriber with a specific filter</li>
-        <pre class="prettyprint">
-         <code>MessageConsumer messageConsumer2 = session.createConsumer(topic, "someID=2", false);</code>
-        </pre>
-        
-        <li>Create a third non-durable subscriber without any filters, and it should receive the complete set of messages</li>
-        <pre class="prettyprint">
-         <code>MessageConsumer messageConsumer3 = session.createConsumer(topic, "someID=2", false);</code>
-        </pre>
-
-        <li>Send 20 messages, 10 with someID=1, 10 with someID=2 </li>
-        <pre class="prettyprint"><code>
-         for (int i = 1; i < 10; i++)
-         {
-            for (int someID = 1; someID <= 2; someID++)
-            {
-               TextMessage message1 = session.createTextMessage("This is a text message " + i +
-                                                                " sent for someID=" +
-                                                                someID);
-
-               message1.setIntProperty("someID", someID);
-
-               producer.send(message1);
-
-               System.out.println("Sent message: " + message1.getText());
-            }
-         }</code></pre>
-
-        <li>We start the connection. In order for delivery to occur on any consumers or subscribers on a connection, the connection must be started</li>
-        <pre class="prettyprint">           <code>connection.start();</code>
-        </pre>
-
-
-        <li>Consume the messages from MessageConsumer1, filtering out someID=2</li>
-        <pre class="prettyprint"><code>
-         for (;;)
-         {
-            TextMessage messageReceivedA = (TextMessage)messageConsumer1.receive(1000);
-            if (messageReceivedA == null)
-            {
-               break;
-            }
-
-            System.out.println("messageConsumer1 received " + messageReceivedA.getText() +
-                               " someID = " +
-                               messageReceivedA.getIntProperty("someID"));
-         }</code></pre>
-           
-        <li>Consume the messages from MessageConsumer2, filtering out someID=1</li>
-        <pre class="prettyprint"><code>
-        for (;;)
-         {
-            TextMessage messageReceivedB = (TextMessage)messageConsumer2.receive(1000);
-            if (messageReceivedB == null)
-            {
-               break;
-            }
-
-            System.out.println("messageConsumer2 received " + messageReceivedB.getText() +
-                               " someID = " +
-                               messageReceivedB.getIntProperty("someID"));
-         }</code></pre>
-
-        <li>Consume the messages from MessageConsumer3, receiving the complete set of messages</li>
-        <pre class="prettyprint"><code>
-         for (;;)
-         {
-            TextMessage messageReceivedC = (TextMessage)messageConsumer3.receive(1000);
-            if (messageReceivedC == null)
-            {
-               break;
-            }
-            System.out.println("messageConsumer3 received " + messageReceivedC.getText() +
-                               " someID = " +
-                               messageReceivedC.getIntProperty("someID"));
-         }</code></pre>
-
-        <li>Close the consumers</li>
-        <pre class="prettyprint"><code>subscriberA.close();</code></pre>
-        <pre class="prettyprint"><code>subscriberB.close();</code></pre>
-        
-        <li>Delete the subscriptions when you're done</li>
-        <pre class="prettyprint"><code>session.unsubscribe("sub-a1");</code></pre>
-		<pre class="prettyprint"><code>session.unsubscribe("sub-a2");</code></pre>
-        
-         <li>And finally, <b>always</b> remember to close your JMS connections and resources after use, in a <code>finally</code> block. Closing a JMS connection will automatically close all of its sessions, consumers, producer and browser objects</li>
-
-        <pre class="prettyprint">
-           <code>finally
-           {
-              if (initialContext != null)
-              {
-                initialContext.close();
-              }
-              if (connection != null)
-              {
-                 connection.close();
-              }
-           }</code>
-        </pre>
-
-
-
-     </ol>
   </body>
 </html>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/topic-selector-example1/src/main/resources/activemq/server0/broker.xml
----------------------------------------------------------------------
diff --git a/examples/jms/topic-selector-example1/src/main/resources/activemq/server0/broker.xml b/examples/jms/topic-selector-example1/src/main/resources/activemq/server0/broker.xml
index 4a4b505..d45eb5d 100644
--- a/examples/jms/topic-selector-example1/src/main/resources/activemq/server0/broker.xml
+++ b/examples/jms/topic-selector-example1/src/main/resources/activemq/server0/broker.xml
@@ -29,13 +29,13 @@ under the License.
 
    <core xmlns="urn:activemq:core">
 
-      <bindings-directory>${data.dir:./data}/bindings</bindings-directory>
+      <bindings-directory>./data/bindings</bindings-directory>
 
-      <journal-directory>${data.dir:./data}/journal</journal-directory>
+      <journal-directory>./data/journal</journal-directory>
 
-      <large-messages-directory>${data.dir:./data}/largemessages</large-messages-directory>
+      <large-messages-directory>./data/largemessages</large-messages-directory>
 
-      <paging-directory>${data.dir:./data}/paging</paging-directory>
+      <paging-directory>./data/paging</paging-directory>
 
       <!-- Acceptors -->
       <acceptors>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/topic-selector-example2/pom.xml
----------------------------------------------------------------------
diff --git a/examples/jms/topic-selector-example2/pom.xml b/examples/jms/topic-selector-example2/pom.xml
index b9f5332..cd23209 100644
--- a/examples/jms/topic-selector-example2/pom.xml
+++ b/examples/jms/topic-selector-example2/pom.xml
@@ -18,7 +18,8 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <parent>
@@ -27,7 +28,7 @@ under the License.
       <version>1.0.1-SNAPSHOT</version>
    </parent>
 
-   <artifactId>artemis-jms-topic-selector-example2-example</artifactId>
+   <artifactId>topic-selector2</artifactId>
    <packaging>jar</packaging>
    <name>ActiveMQ Artemis JMS Topic Selector Example 2</name>
 
@@ -37,71 +38,81 @@ under the License.
 
    <dependencies>
       <dependency>
-         <groupId>org.apache.geronimo.specs</groupId>
-         <artifactId>geronimo-jms_2.0_spec</artifactId>
+         <groupId>org.apache.activemq</groupId>
+         <artifactId>artemis-jms-client</artifactId>
+         <version>${project.version}</version>
       </dependency>
    </dependencies>
 
    <profiles>
       <profile>
-         <id>example</id>
-         <build>
-            <plugins>
-               <plugin>
-                  <groupId>org.apache.activemq</groupId>
-                  <artifactId>artemis-maven-plugin</artifactId>
-                  <executions>
-                     <execution>
-                        <id>create</id>
-                        <goals>
-                           <goal>create</goal>
-                        </goals>
-                     </execution>
-                     <execution>
-                        <id>start</id>
-                        <goals>
-                           <goal>cli</goal>
-                        </goals>
-                        <configuration>
-                           <spawn>true</spawn>
-                           <testURI>tcp://localhost:61616</testURI>
-                           <args>
-                              <param>run</param>
-                           </args>
-                        </configuration>
-                     </execution>
-                     <execution>
-                        <id>runClient</id>
-                        <goals>
-                           <goal>runClient</goal>
-                        </goals>
-                        <configuration>
-                           <clientClass>org.apache.activemq.artemis.jms.example.TopicSelectorExample2</clientClass>
-                        </configuration>
-                     </execution>
-                     <execution>
-                        <id>stop</id>
-                        <goals>
-                           <goal>cli</goal>
-                        </goals>
-                        <configuration>
-                           <args>
-                              <param>stop</param>
-                           </args>
-                        </configuration>
-                     </execution>
-                  </executions>
-                  <dependencies>
-                     <dependency>
-                        <groupId>org.apache.activemq.examples.jms</groupId>
-                        <artifactId>artemis-jms-topic-selector-example2-example</artifactId>
-                        <version>${project.version}</version>
-                     </dependency>
-                  </dependencies>
-               </plugin>
-            </plugins>
-         </build>
+         <!-- specify -PnoServer if you don't want to start the server -->
+         <id>noServer</id>
+         <properties>
+            <noServer>true</noServer>
+         </properties>
       </profile>
    </profiles>
+   <build>
+      <plugins>
+         <plugin>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>artemis-maven-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>create</id>
+                  <goals>
+                     <goal>create</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>start</id>
+                  <goals>
+                     <goal>cli</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                     <spawn>true</spawn>
+                     <testURI>tcp://localhost:61616</testURI>
+                     <args>
+                        <param>run</param>
+                     </args>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>runClient</id>
+                  <goals>
+                     <goal>runClient</goal>
+                  </goals>
+                  <configuration>
+                     <clientClass>org.apache.activemq.artemis.jms.example.TopicSelectorExample2</clientClass>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>stop</id>
+                  <goals>
+                     <goal>cli</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                     <args>
+                        <param>stop</param>
+                     </args>
+                  </configuration>
+               </execution>
+            </executions>
+            <dependencies>
+               <dependency>
+                  <groupId>org.apache.activemq.examples.jms</groupId>
+                  <artifactId>topic-selector2</artifactId>
+                  <version>${project.version}</version>
+               </dependency>
+            </dependencies>
+         </plugin>
+      </plugins>
+   </build>
 
 </project>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/topic-selector-example2/readme.html
----------------------------------------------------------------------
diff --git a/examples/jms/topic-selector-example2/readme.html b/examples/jms/topic-selector-example2/readme.html
index 2962812..8cb82c2 100644
--- a/examples/jms/topic-selector-example2/readme.html
+++ b/examples/jms/topic-selector-example2/readme.html
@@ -27,131 +27,21 @@ under the License.
   <body onload="prettyPrint()">
      <h1>JMS Topic Selector Example 2</h1>
 
+     <pre>To run the example, simply type <b>mvn verify</b> from this directory, <br>or <b>mvn -PnoServer verify</b> if you want to start and create the server manually.</pre>
+
+
      <p>This example shows you how to selectively consume messages using message selectors with topic consumers.</p>
-     
+
      <p>Message selectors are strings with special syntax that can be used in creating consumers. Message consumers
      that are thus created only receive messages that match its selector. On message delivering, the ActiveMQ
      Server evaluates the corresponding message headers of the messages against each selector, if any, and then delivers
      the 'matched' messages to its consumer. Please consult the JMS 1.1 specification for full details.</p>
-     
+
      <p>In this example, three message consumers are created on a topic. The first consumer is created with selector
      <code>'color=red'</code>, it only receives messages that
-     have a 'color' string property of 'red' value; the second is created with selector <code>'color=green'</code>, it 
-     only receives messages who have a 'color' string property of 
-     'green' value; and the third without a selector, which means it receives all messages. To illustrate, three messages 
+     have a 'color' string property of 'red' value; the second is created with selector <code>'color=green'</code>, it
+     only receives messages who have a 'color' string property of
+     'green' value; and the third without a selector, which means it receives all messages. To illustrate, three messages
      with different 'color' property values are created and sent.</p>
-
-     <h2>Example step-by-step</h2>
-     <p><i>To run the example, simply type <code>mvn verify -Pexample</code> from this directory</i></p>
-
-     <ol>
-        <li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
-        <pre class="prettyprint">
-           <code>InitialContext initialContext = getContext();</code>
-        </pre>
-
-        <li>We look-up the JMS topic object from JNDI</li>
-        <pre class="prettyprint">
-           <code>Topic topic = (Topic) initialContext.lookup("/topic/exampleTopic");</code>
-        </pre>
-
-        <li>We look-up the JMS connection factory object from JNDI</li>
-        <pre class="prettyprint">
-           <code>ConnectionFactory cf = (ConnectionFactory) initialContext.lookup("/ConnectionFactory");</code>
-        </pre>
-
-        <li>We create a JMS connection</li>
-        <pre class="prettyprint">
-           <code>connection = cf.createConnection();</code>
-        </pre>
-
-        <li>We start the connection</li>
-        <pre class="prettyprint">
-           <code>connection.start();</code>
-        </pre>
-
-        <li>We create a JMS session. The session is created as non transacted and will auto acknowledge messages.</li>
-        <pre class="prettyprint">
-           <code>Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);</code>
-        </pre>
-
-        <li>We create a JMS message producer on the session. This will be used to send the messages.</li>
-        <pre class="prettyprint">
-          <code>MessageProducer messageProducer = session.createProducer(topic);</code>
-       </pre>
-
-        <li>We create two selectors.</li>
-         <pre class="prettyprint">
-           <code>
-           String redSelector = "color='red'";
-           String greenSelector = "color='green'";
-           </code>
-         </pre>
-
-        <li>We Create a JMS Message Consumer that receives 'red' messages.</li>
-        <pre class="prettyprint">
-          <code>
-          MessageConsumer redConsumer = session.createConsumer(topic, redSelector);
-          redConsumer.setMessageListener(new SimpleMessageListener("red"));
-         </code>
-        </pre>
-
-        <li>We Create a second JMS Message Consumer that receives 'green' messages.</li>
-        <pre class="prettyprint">
-          <code>
-          MessageConsumer greenConsumer = session.createConsumer(topic, greenSelector);
-          greenConsumer.setMessageListener(new SimpleMessageListener("green"));
-         </code>
-        </pre>
-
-        <li>We Create another JMS Message Consumer that receives all messages.</li>
-        <pre class="prettyprint">
-          <code>
-          MessageConsumer allConsumer = session.createConsumer(topic);
-          allConsumer.setMessageListener(new SimpleMessageListener("all"));
-         </code>
-        </pre>
-
-        <li>We Create three messages, each has a different color property.</li>
-        <pre class="prettyprint">
-           <code>
-           TextMessage redMessage = session.createTextMessage("Red");
-           redMessage.setStringProperty("color", "red");
-           TextMessage greenMessage = session.createTextMessage("Green");
-           greenMessage.setStringProperty("color", "green");
-           TextMessage blueMessage = session.createTextMessage("Blue");
-           blueMessage.setStringProperty("color", "blue");
-           </code>
-        </pre>
-
-        <li>We send the messages to the topic</li>
-        <pre class="prettyprint">
-           <code>
-           producer.send(redMessage);
-           System.out.println("Message sent: " + redMessage.getText());
-           producer.send(greenMessage);
-           System.out.println("Message sent: " + greenMessage.getText());
-           producer.send(blueMessage);
-           System.out.println("Message sent: " + blueMessage.getText());
-           </code>
-        </pre>
-        
-        <li>And finally, <b>always</b> remember to close your JMS connections and resources after use, in a <code>finally</code> block. Closing a JMS connection will automatically close all of its sessions, consumers, producer and browser objects</li>
-
-        <pre class="prettyprint">
-           <code>finally
-           {
-              if (initialContext != null)
-              {
-                initialContext.close();
-              }
-              if (connection != null)
-              {
-                 connection.close();
-              }
-           }</code>
-        </pre>
-
-     </ol>
   </body>
 </html>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/topic-selector-example2/src/main/resources/activemq/server0/broker.xml
----------------------------------------------------------------------
diff --git a/examples/jms/topic-selector-example2/src/main/resources/activemq/server0/broker.xml b/examples/jms/topic-selector-example2/src/main/resources/activemq/server0/broker.xml
index 4a4b505..d45eb5d 100644
--- a/examples/jms/topic-selector-example2/src/main/resources/activemq/server0/broker.xml
+++ b/examples/jms/topic-selector-example2/src/main/resources/activemq/server0/broker.xml
@@ -29,13 +29,13 @@ under the License.
 
    <core xmlns="urn:activemq:core">
 
-      <bindings-directory>${data.dir:./data}/bindings</bindings-directory>
+      <bindings-directory>./data/bindings</bindings-directory>
 
-      <journal-directory>${data.dir:./data}/journal</journal-directory>
+      <journal-directory>./data/journal</journal-directory>
 
-      <large-messages-directory>${data.dir:./data}/largemessages</large-messages-directory>
+      <large-messages-directory>./data/largemessages</large-messages-directory>
 
-      <paging-directory>${data.dir:./data}/paging</paging-directory>
+      <paging-directory>./data/paging</paging-directory>
 
       <!-- Acceptors -->
       <acceptors>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/topic/pom.xml
----------------------------------------------------------------------
diff --git a/examples/jms/topic/pom.xml b/examples/jms/topic/pom.xml
index 2c6a91a..7e5005e 100644
--- a/examples/jms/topic/pom.xml
+++ b/examples/jms/topic/pom.xml
@@ -18,7 +18,8 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <parent>
@@ -27,7 +28,7 @@ under the License.
       <version>1.0.1-SNAPSHOT</version>
    </parent>
 
-   <artifactId>artemis-jms-topic-example</artifactId>
+   <artifactId>topic</artifactId>
    <packaging>jar</packaging>
    <name>ActiveMQ Artemis JMS Topic Example</name>
 
@@ -37,69 +38,80 @@ under the License.
 
    <dependencies>
       <dependency>
-         <groupId>org.apache.geronimo.specs</groupId>
-         <artifactId>geronimo-jms_2.0_spec</artifactId>
+         <groupId>org.apache.activemq</groupId>
+         <artifactId>artemis-jms-client</artifactId>
+         <version>${project.version}</version>
       </dependency>
    </dependencies>
+
    <profiles>
       <profile>
-         <id>example</id>
-         <build>
-            <plugins>
-               <plugin>
-                  <groupId>org.apache.activemq</groupId>
-                  <artifactId>artemis-maven-plugin</artifactId>
-                  <executions>
-                     <execution>
-                        <id>create</id>
-                        <goals>
-                           <goal>create</goal>
-                        </goals>
-                     </execution>
-                     <execution>
-                        <id>start</id>
-                        <goals>
-                           <goal>cli</goal>
-                        </goals>
-                        <configuration>
-                           <spawn>true</spawn>
-                           <testURI>tcp://localhost:61616</testURI>
-                           <args>
-                              <param>run</param>
-                           </args>
-                        </configuration>
-                     </execution>
-                     <execution>
-                        <id>runClient</id>
-                        <goals>
-                           <goal>runClient</goal>
-                        </goals>
-                        <configuration>
-                           <clientClass>org.apache.activemq.artemis.jms.example.TopicExample</clientClass>
-                        </configuration>
-                     </execution>
-                     <execution>
-                        <id>stop</id>
-                        <goals>
-                           <goal>cli</goal>
-                        </goals>
-                        <configuration>
-                           <args>
-                              <param>stop</param>
-                           </args>
-                        </configuration>
-                     </execution>
-                  </executions>
-                  <dependencies>
-                     <dependency>
-                        <groupId>org.apache.activemq.examples.jms</groupId>
-                        <artifactId>artemis-jms-topic-example</artifactId>
-                        <version>${project.version}</version>
-                     </dependency>
-                  </dependencies>
-               </plugin>
-            </plugins>
-         </build>
+         <!-- specify -PnoServer if you don't want to start the server -->
+         <id>noServer</id>
+         <properties>
+            <noServer>true</noServer>
+         </properties>
       </profile>
    </profiles>
+   <build>
+      <plugins>
+         <plugin>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>artemis-maven-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>create</id>
+                  <goals>
+                     <goal>create</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>start</id>
+                  <goals>
+                     <goal>cli</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                     <spawn>true</spawn>
+                     <testURI>tcp://localhost:61616</testURI>
+                     <args>
+                        <param>run</param>
+                     </args>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>runClient</id>
+                  <goals>
+                     <goal>runClient</goal>
+                  </goals>
+                  <configuration>
+                     <clientClass>org.apache.activemq.artemis.jms.example.TopicExample</clientClass>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>stop</id>
+                  <goals>
+                     <goal>cli</goal>
+                  </goals>
+                  <configuration>
+                     <ignore>${noServer}</ignore>
+                     <args>
+                        <param>stop</param>
+                     </args>
+                  </configuration>
+               </execution>
+            </executions>
+            <dependencies>
+               <dependency>
+                  <groupId>org.apache.activemq.examples.jms</groupId>
+                  <artifactId>topic</artifactId>
+                  <version>${project.version}</version>
+               </dependency>
+            </dependencies>
+         </plugin>
+      </plugins>
+   </build>
 </project>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/topic/readme.html
----------------------------------------------------------------------
diff --git a/examples/jms/topic/readme.html b/examples/jms/topic/readme.html
index 56b0a07..45358cb 100644
--- a/examples/jms/topic/readme.html
+++ b/examples/jms/topic/readme.html
@@ -27,97 +27,10 @@ under the License.
   <body onload="prettyPrint()">
      <h1>JMS Topic Example</h1>
 
+     <pre>To run the example, simply type <b>mvn verify</b> from this directory, <br>or <b>mvn -PnoServer verify</b> if you want to start and create the server manually.</pre>
+
      <p>This example shows you how to send and receive a message to a JMS Topic with ActiveMQ Artemis.</p>
      <p>Topics are a standard part of JMS, please consult the JMS 1.1 specification for full details.</p>
      <p>A Topic is used to send messages using the publish-subscribe model, from a producer to 1 or more consumers.</p>
-
-     <h2>Example step-by-step</h2>
-     <p><i>To run the example, simply type <code>mvn verify -Pexample</code> from this directory</i></p>
-
-     <ol>
-        <li>First we need to get an initial context so we can look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>client-jndi.properties</code> file in the directory <code>../common/config</code></li>
-        <pre class="prettyprint">
-           <code>InitialContext initialContext = getContext();</code>
-        </pre>
-
-        <li>We look-up the JMS topic object from JNDI</li>
-        <pre class="prettyprint">
-           <code>Topic topic = (Topic) initialContext.lookup("/topic/exampleTopic");</code>
-        </pre>
-
-        <li>We look-up the JMS connection factory object from JNDI</li>
-        <pre class="prettyprint">
-           <code>ConnectionFactory cf = (ConnectionFactory) initialContext.lookup("/ConnectionFactory");</code>
-        </pre>
-
-        <li>We create a JMS connection</li>
-        <pre class="prettyprint">
-           <code>connection = cf.createConnection();</code>
-        </pre>
-
-        <li>We create a JMS session. The session is created as non transacted and will auto acknowledge messages.</li>
-        <pre class="prettyprint">
-           <code>Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);</code>
-        </pre>
-
-        <li>We create a JMS message producer on the session. This will be used to send the messages.</li>
-        <pre class="prettyprint">
-          <code>MessageProducer messageProducer = session.createProducer(topic);</code>
-       </pre>
-
-        <li>We create a JMS Message Consumer, messageConsumer1, to receive the message.</li>
-         <pre class="prettyprint">
-           <code>MessageConsumer messageConsumer = session.createConsumer(topic);</code>
-         </pre>
-
-        <li>We create a JMS Message Consumer, messageConsumer2, to also receive the message.</li>
-        <pre class="prettyprint">
-          <code>MessageConsumer messageConsumer2 = session.createConsumer(topic);</code>
-        </pre>
-
-        <li>We create a JMS text message that we are going to send.</li>
-        <pre class="prettyprint">
-           <code>TextMessage message = session.createTextMessage("This is a text message");</code>
-        </pre>
-
-        <li>We send message to the topic</li>
-        <pre class="prettyprint">
-           <code>messageProducer.send(message);</code>
-        </pre>
-
-        <li>We start the connection. In order for delivery to occur on any consumers or subscribers on a connection, the connection must be started</li>
-        <pre class="prettyprint">
-           <code>connection.start();</code>
-        </pre>
-
-        <li>The message arrives at the first consumer</li>
-        <pre class="prettyprint">
-           <code>TextMessage messageReceived = (TextMessage) messageConsumer1.receive();</code>
-        </pre>
-
-        <li>The message arrives at the second consumer</li>
-        <pre class="prettyprint">
-           <code>messageReceived = (TextMessage) messageConsumer2.receive();</code>
-        </pre>
-        
-        <li>And finally, <b>always</b> remember to close your JMS connections and resources after use, in a <code>finally</code> block. Closing a JMS connection will automatically close all of its sessions, consumers, producer and browser objects</li>
-
-        <pre class="prettyprint">
-           <code>finally
-           {
-              if (initialContext != null)
-              {
-                initialContext.close();
-              }
-              if (connection != null)
-              {
-                 connection.close();
-              }
-           }</code>
-        </pre>
-
-
-
-     </ol>
   </body>
 </html>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/topic/src/main/resources/activemq/server0/broker.xml
----------------------------------------------------------------------
diff --git a/examples/jms/topic/src/main/resources/activemq/server0/broker.xml b/examples/jms/topic/src/main/resources/activemq/server0/broker.xml
index f379d55..fd6671c 100644
--- a/examples/jms/topic/src/main/resources/activemq/server0/broker.xml
+++ b/examples/jms/topic/src/main/resources/activemq/server0/broker.xml
@@ -29,13 +29,13 @@ under the License.
 
    <core xmlns="urn:activemq:core">
 
-      <bindings-directory>${data.dir:./data}/bindings</bindings-directory>
+      <bindings-directory>./data/bindings</bindings-directory>
 
-      <journal-directory>${data.dir:./data}/journal</journal-directory>
+      <journal-directory>./data/journal</journal-directory>
 
-      <large-messages-directory>${data.dir:./data}/largemessages</large-messages-directory>
+      <large-messages-directory>./data/largemessages</large-messages-directory>
 
-      <paging-directory>${data.dir:./data}/paging</paging-directory>
+      <paging-directory>./data/paging</paging-directory>
 
       <!-- Acceptors -->
       <acceptors>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/transaction-failover/pom.xml
----------------------------------------------------------------------
diff --git a/examples/jms/transaction-failover/pom.xml b/examples/jms/transaction-failover/pom.xml
index 0fe0ec8..d5bc653 100644
--- a/examples/jms/transaction-failover/pom.xml
+++ b/examples/jms/transaction-failover/pom.xml
@@ -18,7 +18,8 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <parent>
@@ -27,7 +28,7 @@ under the License.
       <version>1.0.1-SNAPSHOT</version>
    </parent>
 
-   <artifactId>artemis-jms-transaction-failover-example</artifactId>
+   <artifactId>transaction-failover</artifactId>
    <packaging>jar</packaging>
    <name>ActiveMQ Artemis JMS Transaction Failover Example</name>
 
@@ -47,62 +48,57 @@ under the License.
       </dependency>
    </dependencies>
 
-   <profiles>
-      <profile>
-         <id>example</id>
-         <build>
-            <plugins>
-               <plugin>
-                  <groupId>org.apache.activemq</groupId>
-                  <artifactId>artemis-maven-plugin</artifactId>
-                  <executions>
-                     <execution>
-                        <id>create0</id>
-                        <goals>
-                           <goal>create</goal>
-                        </goals>
-                        <configuration>
-                           <instance>${basedir}/target/server0</instance>
-                           <configuration>${basedir}/target/classes/activemq/server0</configuration>
-                           <javaOptions>-Dudp-address=${udp-address}</javaOptions>
-                        </configuration>
-                     </execution>
-                     <execution>
-                        <id>create1</id>
-                        <goals>
-                           <goal>create</goal>
-                        </goals>
-                        <configuration>
-                           <instance>${basedir}/target/server1</instance>
-                           <configuration>${basedir}/target/classes/activemq/server1</configuration>
-                           <javaOptions>-Dudp-address=${udp-address}</javaOptions>
-                        </configuration>
-                     </execution>
-                     <execution>
-                        <id>runClient</id>
-                        <goals>
-                           <goal>runClient</goal>
-                        </goals>
-                        <configuration>
-                           <clientClass>org.apache.activemq.artemis.jms.example.TransactionFailoverExample</clientClass>
-                           <args>
-                              <param>${basedir}/target/server0</param>
-                              <param>${basedir}/target/server1</param>
-                           </args>
-                        </configuration>
-                     </execution>
-                  </executions>
-                  <dependencies>
-                     <dependency>
-                        <groupId>org.apache.activemq.examples.jms</groupId>
-                        <artifactId>artemis-jms-transaction-failover-example</artifactId>
-                        <version>${project.version}</version>
-                     </dependency>
-                  </dependencies>
-               </plugin>
-            </plugins>
-         </build>
-      </profile>
-   </profiles>
+   <build>
+      <plugins>
+         <plugin>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>artemis-maven-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>create0</id>
+                  <goals>
+                     <goal>create</goal>
+                  </goals>
+                  <configuration>
+                     <instance>${basedir}/target/server0</instance>
+                     <configuration>${basedir}/target/classes/activemq/server0</configuration>
+                     <javaOptions>-Dudp-address=${udp-address}</javaOptions>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>create1</id>
+                  <goals>
+                     <goal>create</goal>
+                  </goals>
+                  <configuration>
+                     <instance>${basedir}/target/server1</instance>
+                     <configuration>${basedir}/target/classes/activemq/server1</configuration>
+                     <javaOptions>-Dudp-address=${udp-address}</javaOptions>
+                  </configuration>
+               </execution>
+               <execution>
+                  <id>runClient</id>
+                  <goals>
+                     <goal>runClient</goal>
+                  </goals>
+                  <configuration>
+                     <clientClass>org.apache.activemq.artemis.jms.example.TransactionFailoverExample</clientClass>
+                     <args>
+                        <param>${basedir}/target/server0</param>
+                        <param>${basedir}/target/server1</param>
+                     </args>
+                  </configuration>
+               </execution>
+            </executions>
+            <dependencies>
+               <dependency>
+                  <groupId>org.apache.activemq.examples.jms</groupId>
+                  <artifactId>transaction-failover</artifactId>
+                  <version>${project.version}</version>
+               </dependency>
+            </dependencies>
+         </plugin>
+      </plugins>
+   </build>
 
 </project>

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/dd820318/examples/jms/transaction-failover/readme.html
----------------------------------------------------------------------
diff --git a/examples/jms/transaction-failover/readme.html b/examples/jms/transaction-failover/readme.html
index f6b4c5d..5df44bd 100644
--- a/examples/jms/transaction-failover/readme.html
+++ b/examples/jms/transaction-failover/readme.html
@@ -26,123 +26,21 @@ under the License.
   </head>
   <body onload="prettyPrint()">
      <h1>JMS Failover With Transaction Example</h1>
-     
+
+     <pre>To run the example, simply type <b>mvn verify</b> from this directory.</pre>
+
+
      <p>This example demonstrates two servers coupled as a live-backup pair for high availability (HA), and a client
      connection failing over from live to backup when the live server is crashed.</p>
      <p>Failover behavior differs whether the JMS session is transacter or not.</p>
      <p>When a <em>transacted</em> JMS session is used, once-and-only once delivery is guaranteed.</p>
      <ul>
-        <li>if the failover occurs while there is an in-flight transaction, the transaction will be flagged as <em>rollback only</em>. In that case, the JMS client 
+        <li>if the failover occurs while there is an in-flight transaction, the transaction will be flagged as <em>rollback only</em>. In that case, the JMS client
            will need to retry the transaction work.</li>
         <li>if the failover occurs while there is <em>no</em> in-flight transaction, the failover will be transparent to the user.</li>
      </ul>
      <p>ActiveMQ Artemis also provides an example for <a href="../non-transactional-failover/readme.html">non-transaction failover</a>.</p>
      <p>For more information on ActiveMQ Artemis failover and HA, and clustering in general, please see the clustering
      section of the user manual.</p>
-
-     <h2>Example step-by-step</h2>
-     <p><i>To run the example, simply type <code>mvn verify -Pexample</code> from this directory</i></p>
-     <p>In this example, the live server is server 1, and the backup server is server 0</p>
-     <p>The connection will initially be created to server1, server 1 will crash, and the client will carry on
-     seamlessly on server 0, the backup server.</p>
-
-     <ol>
-        <li>Get an initial context for looking up JNDI from server #1.</li>
-        <pre class="prettyprint">
-           initialContext = getContext(1);
-        </pre>
-
-        <li>Look up the JMS resources from JNDI on server #1.</li>
-        <pre class="prettyprint">
-           Queue queue = (Queue)initialContext.lookup("/queue/exampleQueue");
-           ConnectionFactory connectionFactory = (ConnectionFactory)initialContext.lookup("/ConnectionFactory");
-        </pre>
-
-        <li>Create a JMS Connection</li>
-        <pre class="prettyprint">
-           connection = connectionFactory.createConnection();
-        </pre>
-        
-        <li>Create a JMS <em>transacted</em> Session</li>
-        <pre class="prettyprint">
-           Session session = connection.createSession(true, 0);
-        </pre>
-        
-        <li>Start the connection to ensure delivery occurs</li>
-        <pre class="prettyprint">
-           connection.start();
-        </pre>
-
-        <li>Create a JMS MessageProducer</li>
-        <pre class="prettyprint">
-           MessageProducer producer = session.createProducer(queue);
-        </pre>
-
-        <li>Create a JMS MessageConsumer</li>
-        <pre class="prettyprint">
-           MessageConsumer consumer = session.createConsumer(queue);
-        </pre>
-
-        <li>Send half of the messages, kill the live server and send the remaining messages</li>
-        <pre class="prettyprint">
-           sendMessages(session, producer, numMessages, true);
-        </pre>
-        
-        <p>When server #1 crashes, the client automatically detects the failure and automatically
-            fails over from server #1 to server #0 (in your real program you wouldn't need to sleep).
-        </p>
-        
-        <li>As failover occurred during transaction, the session has been marked for <em>rollback only</em> and commit will fail</li>
-        <pre class="prettyprint">
-           try
-           {
-              session.commit();
-           } catch (TransactionRolledBackException e)
-           {
-              System.err.println("transaction has been rolled back: " + e.getMessage());
-           }
-        </pre>
-        
-        <li>We resend all the messages</li>
-        <pre class="prettyprint">
-           sendMessages(session, producer, numMessages, false);
-        </pre>
-
-        <li>We commit the session successfully: the messages will be all delivered to the activated backup server</li>
-        <pre class="prettyprint">
-           session.commit();
-        </pre>
-        
-
-        <li>We are now transparently reconnected to server #0, the backup server.
-            We consume the messages sent before the crash of the live server, commit the session, and check there are no other message on the queue</li>
-        <pre class="prettyprint">
-        for (int i = 0; i &lt; numMessages; i++)
-        {
-           TextMessage message0 = (TextMessage)consumer.receive(5000);
-           System.out.println("Got message: " + message0.getText());
-        }
-        session.commit();
-        System.out.println("Other message on the server? " + consumer.receive(5000));
-        </pre>
-        
-        <li>And finally, <strong>always</strong> remember to close your resources after use, in a <code>finally</code> block. Closing a JMS connection will automatically close all of its sessions, consumers, producer and browser objects</li>
-
-        <pre class="prettyprint">
-           finally
-           {
-              if (connection != null)
-              {
-                 connection.close();
-              }
-
-              if (initialContext != null)
-              {
-                 initialContext.close();
-              }
-           }
-        </pre>
-
-     </ol>
   </body>
 </html>