http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/divert/src/main/java/org/apache/activemq/artemis/jms/example/AddForwardingTimeTransformer.java ---------------------------------------------------------------------- diff --git a/examples/jms/divert/src/main/java/org/apache/activemq/artemis/jms/example/AddForwardingTimeTransformer.java b/examples/jms/divert/src/main/java/org/apache/activemq/artemis/jms/example/AddForwardingTimeTransformer.java deleted file mode 100644 index 15d8e65..0000000 --- a/examples/jms/divert/src/main/java/org/apache/activemq/artemis/jms/example/AddForwardingTimeTransformer.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.activemq.artemis.jms.example; - -import org.apache.activemq.artemis.api.core.SimpleString; -import org.apache.activemq.artemis.core.server.ServerMessage; -import org.apache.activemq.artemis.core.server.cluster.Transformer; - -public class AddForwardingTimeTransformer implements Transformer { - - public ServerMessage transform(final ServerMessage message) { - message.putLongProperty(new SimpleString("time_of_forward"), System.currentTimeMillis()); - - return message; - } - -}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/divert/src/main/java/org/apache/activemq/artemis/jms/example/DivertExample.java ---------------------------------------------------------------------- diff --git a/examples/jms/divert/src/main/java/org/apache/activemq/artemis/jms/example/DivertExample.java b/examples/jms/divert/src/main/java/org/apache/activemq/artemis/jms/example/DivertExample.java deleted file mode 100644 index e014693..0000000 --- a/examples/jms/divert/src/main/java/org/apache/activemq/artemis/jms/example/DivertExample.java +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.activemq.artemis.jms.example; - -import javax.jms.Connection; -import javax.jms.ConnectionFactory; -import javax.jms.Message; -import javax.jms.MessageConsumer; -import javax.jms.MessageProducer; -import javax.jms.Queue; -import javax.jms.Session; -import javax.jms.TextMessage; -import javax.jms.Topic; - -import org.apache.activemq.artemis.api.jms.ActiveMQJMSClient; -import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; - -/** - * This examples demonstrates the use of ActiveMQ Artemis "Diverts" to transparently divert or copy messages - * from one address to another. - * - * Please see the readme.html for more information. - */ -public class DivertExample { - - public static void main(final String[] args) throws Exception { - Connection connectionLondon = null; - - Connection connectionNewYork = null; - try { - // Step 2. Look-up the queue orderQueue on the London server - this is the queue any orders are sent to - Queue orderQueue = ActiveMQJMSClient.createQueue("orders"); - - // Step 3. Look-up the topic priceUpdates on the London server- this is the topic that any price updates are - // sent to - Topic priceUpdates = ActiveMQJMSClient.createTopic("priceUpdates"); - - // Step 4. Look-up the spy topic on the London server- this is what we will use to snoop on any orders - Topic spyTopic = ActiveMQJMSClient.createTopic("spyTopic"); - - // Step 7. Look-up the topic newYorkPriceUpdates on the New York server - any price updates sent to - // priceUpdates on the London server will - // be diverted to the queue priceForward on the London server, and a bridge will consume from that queue and - // forward - // them to the address newYorkPriceUpdates on the New York server where they will be distributed to the topic - // subscribers on - // the New York server - Topic newYorkPriceUpdates = ActiveMQJMSClient.createTopic("newYorkPriceUpdates"); - - // Step 8. Perform a lookup on the Connection Factory on the London server - ConnectionFactory cfLondon = new ActiveMQConnectionFactory("tcp://localhost:61616"); - - // Step 9. Perform a lookup on the Connection Factory on the New York server - ConnectionFactory cfNewYork = new ActiveMQConnectionFactory("tcp://localhost:61617"); - - // Step 10. Create a JMS Connection on the London server - connectionLondon = cfLondon.createConnection(); - - // Step 11. Create a JMS Connection on the New York server - connectionNewYork = cfNewYork.createConnection(); - - // Step 12. Create a JMS Session on the London server - Session sessionLondon = connectionLondon.createSession(false, Session.AUTO_ACKNOWLEDGE); - - // Step 13. Create a JMS Session on the New York server - Session sessionNewYork = connectionNewYork.createSession(false, Session.AUTO_ACKNOWLEDGE); - - // Step 14. Create a JMS MessageProducer orderProducer that sends to the queue orderQueue on the London server - MessageProducer orderProducer = sessionLondon.createProducer(orderQueue); - - // Step 15. Create a JMS MessageProducer priceProducer that sends to the topic priceUpdates on the London - // server - MessageProducer priceProducer = sessionLondon.createProducer(priceUpdates); - - // Step 15. Create a JMS subscriber which subscribes to the spyTopic on the London server - MessageConsumer spySubscriberA = sessionLondon.createConsumer(spyTopic); - - // Step 16. Create another JMS subscriber which also subscribes to the spyTopic on the London server - MessageConsumer spySubscriberB = sessionLondon.createConsumer(spyTopic); - - // Step 17. Create a JMS MessageConsumer which consumes orders from the order queue on the London server - MessageConsumer orderConsumer = sessionLondon.createConsumer(orderQueue); - - // Step 18. Create a JMS subscriber which subscribes to the priceUpdates topic on the London server - MessageConsumer priceUpdatesSubscriberLondon = sessionLondon.createConsumer(priceUpdates); - - // Step 19. Create a JMS subscriber which subscribes to the newYorkPriceUpdates topic on the New York server - MessageConsumer newYorkPriceUpdatesSubscriberA = sessionNewYork.createConsumer(newYorkPriceUpdates); - - // Step 20. Create another JMS subscriber which also subscribes to the newYorkPriceUpdates topic on the New - // York server - MessageConsumer newYorkPriceUpdatesSubscriberB = sessionNewYork.createConsumer(newYorkPriceUpdates); - - // Step 21. Start the connections - - connectionLondon.start(); - - connectionNewYork.start(); - - // Step 22. Create an order message - TextMessage orderMessage = sessionLondon.createTextMessage("This is an order"); - - // Step 23. Send the order message to the order queue on the London server - orderProducer.send(orderMessage); - - System.out.println("Sent message: " + orderMessage.getText()); - - // Step 24. The order message is consumed by the orderConsumer on the London server - TextMessage receivedOrder = (TextMessage) orderConsumer.receive(5000); - - System.out.println("Received order: " + receivedOrder.getText()); - - // Step 25. A copy of the order is also received by the spyTopic subscribers on the London server - TextMessage spiedOrder1 = (TextMessage) spySubscriberA.receive(5000); - - System.out.println("Snooped on order: " + spiedOrder1.getText()); - - TextMessage spiedOrder2 = (TextMessage) spySubscriberB.receive(5000); - - System.out.println("Snooped on order: " + spiedOrder2.getText()); - - // Step 26. Create and send a price update message, destined for London - TextMessage priceUpdateMessageLondon = sessionLondon.createTextMessage("This is a price update for London"); - - priceUpdateMessageLondon.setStringProperty("office", "London"); - - priceProducer.send(priceUpdateMessageLondon); - - // Step 27. The price update *should* be received by the local subscriber since we only divert messages - // where office = New York - TextMessage receivedUpdate = (TextMessage) priceUpdatesSubscriberLondon.receive(2000); - - System.out.println("Received price update locally: " + receivedUpdate.getText()); - - // Step 28. The price update *should not* be received in New York - - TextMessage priceUpdate1 = (TextMessage) newYorkPriceUpdatesSubscriberA.receive(1000); - - if (priceUpdate1 != null) { - throw new IllegalStateException("Message is not null"); - } - - System.out.println("Did not received price update in New York, look it's: " + priceUpdate1); - - TextMessage priceUpdate2 = (TextMessage) newYorkPriceUpdatesSubscriberB.receive(1000); - - if (priceUpdate2 != null) { - throw new IllegalStateException("Message is not null"); - } - - System.out.println("Did not received price update in New York, look it's: " + priceUpdate2); - - // Step 29. Create a price update message, destined for New York - - TextMessage priceUpdateMessageNewYork = sessionLondon.createTextMessage("This is a price update for New York"); - - priceUpdateMessageNewYork.setStringProperty("office", "New York"); - - // Step 30. Send the price update message to the priceUpdates topic on the London server - priceProducer.send(priceUpdateMessageNewYork); - - // Step 31. The price update *should not* be received by the local subscriber to the priceUpdates topic - // since it has been *exclusively* diverted to the priceForward queue, because it has a header saying - // it is destined for the New York office - Message message = priceUpdatesSubscriberLondon.receive(1000); - - if (message != null) { - throw new IllegalStateException("Message is not null"); - } - - System.out.println("Didn't receive local price update, look, it's: " + message); - - // Step 32. The remote subscribers on server 1 *should* receive a copy of the price update since - // it has been diverted to a local priceForward queue which has a bridge consuming from it and which - // forwards it to the same address on server 1. - // We notice how the forwarded messages have had a special header added by our custom transformer that - // we told the divert to use - - priceUpdate1 = (TextMessage) newYorkPriceUpdatesSubscriberA.receive(5000); - - System.out.println("Received forwarded price update on server 1: " + priceUpdate1.getText()); - System.out.println("Time of forward: " + priceUpdate1.getLongProperty("time_of_forward")); - - priceUpdate2 = (TextMessage) newYorkPriceUpdatesSubscriberB.receive(5000); - - System.out.println("Received forwarded price update on server 2: " + priceUpdate2.getText()); - System.out.println("Time of forward: " + priceUpdate2.getLongProperty("time_of_forward")); - } - finally { - if (connectionLondon != null) { - connectionLondon.close(); - } - if (connectionNewYork != null) { - connectionNewYork.close(); - } - } - } -} http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/divert/src/main/resources/activemq/server0/artemis-roles.properties ---------------------------------------------------------------------- diff --git a/examples/jms/divert/src/main/resources/activemq/server0/artemis-roles.properties b/examples/jms/divert/src/main/resources/activemq/server0/artemis-roles.properties deleted file mode 100644 index 4e2d44c..0000000 --- a/examples/jms/divert/src/main/resources/activemq/server0/artemis-roles.properties +++ /dev/null @@ -1,17 +0,0 @@ -## --------------------------------------------------------------------------- -## Licensed to the Apache Software Foundation (ASF) under one or more -## contributor license agreements. See the NOTICE file distributed with -## this work for additional information regarding copyright ownership. -## The ASF licenses this file to You under the Apache License, Version 2.0 -## (the "License"); you may not use this file except in compliance with -## the License. You may obtain a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -## See the License for the specific language governing permissions and -## limitations under the License. -## --------------------------------------------------------------------------- -guest=guest \ No newline at end of file http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/divert/src/main/resources/activemq/server0/artemis-users.properties ---------------------------------------------------------------------- diff --git a/examples/jms/divert/src/main/resources/activemq/server0/artemis-users.properties b/examples/jms/divert/src/main/resources/activemq/server0/artemis-users.properties deleted file mode 100644 index 4e2d44c..0000000 --- a/examples/jms/divert/src/main/resources/activemq/server0/artemis-users.properties +++ /dev/null @@ -1,17 +0,0 @@ -## --------------------------------------------------------------------------- -## Licensed to the Apache Software Foundation (ASF) under one or more -## contributor license agreements. See the NOTICE file distributed with -## this work for additional information regarding copyright ownership. -## The ASF licenses this file to You under the Apache License, Version 2.0 -## (the "License"); you may not use this file except in compliance with -## the License. You may obtain a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -## See the License for the specific language governing permissions and -## limitations under the License. -## --------------------------------------------------------------------------- -guest=guest \ No newline at end of file http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/divert/src/main/resources/activemq/server0/broker.xml ---------------------------------------------------------------------- diff --git a/examples/jms/divert/src/main/resources/activemq/server0/broker.xml b/examples/jms/divert/src/main/resources/activemq/server0/broker.xml deleted file mode 100644 index 7ce362a..0000000 --- a/examples/jms/divert/src/main/resources/activemq/server0/broker.xml +++ /dev/null @@ -1,121 +0,0 @@ -<?xml version='1.0'?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> - -<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns="urn:activemq" - xsi:schemaLocation="urn:activemq /schema/artemis-server.xsd"> - - <jms xmlns="urn:activemq:jms"> - <!-- Destinations used by the example --> - - <!-- The order queue --> - <queue name="orders"/> - - <!-- The queue that prices are forwarded to before being bridged to the New York server --> - <queue name="priceForwarding"/> - - <!-- The topic for price updates --> - <topic name="priceUpdates"/> - - <!-- The spy topic for snooping on orders --> - <topic name="spyTopic"/> - </jms> - - <core xmlns="urn:activemq:core"> - - <bindings-directory>${data.dir:../data}/bindings</bindings-directory> - - <journal-directory>${data.dir:../data}/journal</journal-directory> - - <large-messages-directory>${data.dir:../data}/largemessages</large-messages-directory> - - <paging-directory>${data.dir:../data}/paging</paging-directory> - - <!-- Connectors --> - - <connectors> - <!-- This connector corresponds to the New York server --> - <connector name="newyork-connector">tcp://localhost:61617</connector> - </connectors> - - <!-- Acceptors --> - - <acceptors> - <acceptor name="netty-acceptor">tcp://localhost:61616</acceptor> - </acceptors> - - <!-- Divert configuration --> - - <!-- We need to create a core queue for the JMS queue explicitly because the bridge will be deployed - before the JMS queue is deployed, so the first time, it otherwise won't find the queue --> - <queues> - <queue name="jms.queue.priceForwarding"> - <address>jms.queue.priceForwarding</address> - </queue> - </queues> - - <diverts> - <divert name="order-divert"> - <routing-name>order-divert</routing-name> - <address>jms.queue.orders</address> - <forwarding-address>jms.topic.spyTopic</forwarding-address> - <exclusive>false</exclusive> - </divert> - - <divert name="prices-divert"> - <routing-name>prices-divert</routing-name> - <address>jms.topic.priceUpdates</address> - <forwarding-address>jms.queue.priceForwarding</forwarding-address> - <filter string="office='New York'"/> - <transformer-class-name>org.apache.activemq.artemis.jms.example.AddForwardingTimeTransformer - </transformer-class-name> - <exclusive>true</exclusive> - </divert> - </diverts> - - <!-- Bridge configuration --> - - <bridges> - <bridge name="price-forward-bridge"> - <queue-name>jms.queue.priceForwarding</queue-name> - <forwarding-address>jms.topic.newYorkPriceUpdates</forwarding-address> - <reconnect-attempts>-1</reconnect-attempts> - <static-connectors> - <connector-ref>newyork-connector</connector-ref> - </static-connectors> - </bridge> - </bridges> - - <!-- Other config --> - - <security-settings> - <!--security for example --> - <security-setting match="jms.#"> - <permission type="createDurableQueue" roles="guest"/> - <permission type="deleteDurableQueue" roles="guest"/> - <permission type="createNonDurableQueue" roles="guest"/> - <permission type="deleteNonDurableQueue" roles="guest"/> - <permission type="consume" roles="guest"/> - <permission type="send" roles="guest"/> - </security-setting> - </security-settings> - - </core> -</configuration> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/divert/src/main/resources/activemq/server1/artemis-roles.properties ---------------------------------------------------------------------- diff --git a/examples/jms/divert/src/main/resources/activemq/server1/artemis-roles.properties b/examples/jms/divert/src/main/resources/activemq/server1/artemis-roles.properties deleted file mode 100644 index 4e2d44c..0000000 --- a/examples/jms/divert/src/main/resources/activemq/server1/artemis-roles.properties +++ /dev/null @@ -1,17 +0,0 @@ -## --------------------------------------------------------------------------- -## Licensed to the Apache Software Foundation (ASF) under one or more -## contributor license agreements. See the NOTICE file distributed with -## this work for additional information regarding copyright ownership. -## The ASF licenses this file to You under the Apache License, Version 2.0 -## (the "License"); you may not use this file except in compliance with -## the License. You may obtain a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -## See the License for the specific language governing permissions and -## limitations under the License. -## --------------------------------------------------------------------------- -guest=guest \ No newline at end of file http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/divert/src/main/resources/activemq/server1/artemis-users.properties ---------------------------------------------------------------------- diff --git a/examples/jms/divert/src/main/resources/activemq/server1/artemis-users.properties b/examples/jms/divert/src/main/resources/activemq/server1/artemis-users.properties deleted file mode 100644 index 4e2d44c..0000000 --- a/examples/jms/divert/src/main/resources/activemq/server1/artemis-users.properties +++ /dev/null @@ -1,17 +0,0 @@ -## --------------------------------------------------------------------------- -## Licensed to the Apache Software Foundation (ASF) under one or more -## contributor license agreements. See the NOTICE file distributed with -## this work for additional information regarding copyright ownership. -## The ASF licenses this file to You under the Apache License, Version 2.0 -## (the "License"); you may not use this file except in compliance with -## the License. You may obtain a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -## See the License for the specific language governing permissions and -## limitations under the License. -## --------------------------------------------------------------------------- -guest=guest \ No newline at end of file http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/divert/src/main/resources/activemq/server1/broker.xml ---------------------------------------------------------------------- diff --git a/examples/jms/divert/src/main/resources/activemq/server1/broker.xml b/examples/jms/divert/src/main/resources/activemq/server1/broker.xml deleted file mode 100644 index 315d13b..0000000 --- a/examples/jms/divert/src/main/resources/activemq/server1/broker.xml +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version='1.0'?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> - -<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns="urn:activemq" - xsi:schemaLocation="urn:activemq /schema/artemis-server.xsd"> - - <jms xmlns="urn:activemq:jms"> - <!-- Destinations used by the example --> - - <!-- The topic for New York price updates --> - - <topic name="newYorkPriceUpdates"/> - </jms> - - <core xmlns="urn:activemq:core"> - - <bindings-directory>${data.dir:../data}/bindings</bindings-directory> - - <journal-directory>${data.dir:../data}/journal</journal-directory> - - <large-messages-directory>${data.dir:../data}/largemessages</large-messages-directory> - - <paging-directory>${data.dir:../data}/paging</paging-directory> - - <!-- Acceptors --> - - <acceptors> - <acceptor name="netty-acceptor">tcp://localhost:61617</acceptor> - </acceptors> - - <!-- Other config --> - - <security-settings> - <!--security for example queue--> - <security-setting match="jms.#"> - <permission type="createDurableQueue" roles="guest"/> - <permission type="deleteDurableQueue" roles="guest"/> - <permission type="createNonDurableQueue" roles="guest"/> - <permission type="deleteNonDurableQueue" roles="guest"/> - <permission type="consume" roles="guest"/> - <permission type="send" roles="guest"/> - </security-setting> - </security-settings> - - </core> -</configuration> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/durable-subscription/pom.xml ---------------------------------------------------------------------- diff --git a/examples/jms/durable-subscription/pom.xml b/examples/jms/durable-subscription/pom.xml deleted file mode 100644 index a87bf28..0000000 --- a/examples/jms/durable-subscription/pom.xml +++ /dev/null @@ -1,119 +0,0 @@ -<?xml version='1.0'?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -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"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache.activemq.examples.jms</groupId> - <artifactId>jms-examples</artifactId> - <version>1.0.1-SNAPSHOT</version> - </parent> - - <artifactId>durable-subscription</artifactId> - <packaging>jar</packaging> - <name>ActiveMQ Artemis JMS Durable Subscription Example</name> - - <properties> - <activemq.basedir>${project.basedir}/../../..</activemq.basedir> - </properties> - - <dependencies> - <dependency> - <groupId>org.apache.activemq</groupId> - <artifactId>artemis-jms-client</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - - <profiles> - <profile> - <!-- 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>${basedir}/target/classes/activemq/server0</configuration> - </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.DurableSubscriptionExample</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>durable-subscription</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - </plugin> - </plugins> - </build> - -</project> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/durable-subscription/readme.html ---------------------------------------------------------------------- diff --git a/examples/jms/durable-subscription/readme.html b/examples/jms/durable-subscription/readme.html deleted file mode 100644 index def30b7..0000000 --- a/examples/jms/durable-subscription/readme.html +++ /dev/null @@ -1,39 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> - -<html> - <head> - <title>ActiveMQ Artemis JMS Durable Subscription 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>JMS Durable Subscription 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 demonstrates how to use a durable subscription with ActiveMQ Artemis.</p> - <p>Durable subscriptions are a standard part of JMS, please consult the JMS 1.1 specification for full details.</p> - <p>Unlike non durable subscriptions, the key function of durable subscriptions is that the messages contained in them - persist longer than the lifetime of the subscriber - i.e. they will accumulate messages sent to the topic even - if the subscriber is not currently connected. They will also survive server restarts. Note that for the messages to - be persisted, the messages sent to them must be marked as persistent messages.</p> - - </body> -</html> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/durable-subscription/src/main/java/org/apache/activemq/artemis/jms/example/DurableSubscriptionExample.java ---------------------------------------------------------------------- diff --git a/examples/jms/durable-subscription/src/main/java/org/apache/activemq/artemis/jms/example/DurableSubscriptionExample.java b/examples/jms/durable-subscription/src/main/java/org/apache/activemq/artemis/jms/example/DurableSubscriptionExample.java deleted file mode 100644 index 46cd94c..0000000 --- a/examples/jms/durable-subscription/src/main/java/org/apache/activemq/artemis/jms/example/DurableSubscriptionExample.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.activemq.artemis.jms.example; - -import javax.jms.Connection; -import javax.jms.ConnectionFactory; -import javax.jms.MessageProducer; -import javax.jms.Session; -import javax.jms.TextMessage; -import javax.jms.Topic; -import javax.jms.TopicSubscriber; -import javax.naming.InitialContext; - -/** - * A simple JMS example that shows how to use a durable subscription. - */ -public class DurableSubscriptionExample { - - public static void main(final String[] args) throws Exception { - Connection connection = null; - InitialContext initialContext = null; - try { - // Step 1. Create an initial context to perform the JNDI lookup. - initialContext = new InitialContext(); - - // Step 2. Look-up the JMS topic - Topic topic = (Topic) initialContext.lookup("topic/exampleTopic"); - - // Step 3. Look-up the JMS connection factory - ConnectionFactory cf = (ConnectionFactory) initialContext.lookup("ConnectionFactory"); - - // Step 4. Create a JMS connection - connection = cf.createConnection(); - - // Step 5. Set the client-id on the connection - connection.setClientID("durable-client"); - - // Step 6. Start the connection - connection.start(); - - // Step 7. Create a JMS session - Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); - - // Step 8. Create a JMS message producer - MessageProducer messageProducer = session.createProducer(topic); - - // Step 9. Create the subscription and the subscriber. - TopicSubscriber subscriber = session.createDurableSubscriber(topic, "subscriber-1"); - - // Step 10. Create a text message - TextMessage message1 = session.createTextMessage("This is a text message 1"); - - // Step 11. Send the text message to the topic - messageProducer.send(message1); - - System.out.println("Sent message: " + message1.getText()); - - // Step 12. Consume the message from the durable subscription - - TextMessage messageReceived = (TextMessage) subscriber.receive(); - - System.out.println("Received message: " + messageReceived.getText()); - - // Step 13. Create and send another message - - TextMessage message2 = session.createTextMessage("This is a text message 2"); - - messageProducer.send(message2); - - System.out.println("Sent message: " + message2.getText()); - - // Step 14. Close the subscriber - the server could even be stopped at this point! - subscriber.close(); - - // Step 15. Create a new subscriber on the *same* durable subscription. - - subscriber = session.createDurableSubscriber(topic, "subscriber-1"); - - // Step 16. Consume the message - - messageReceived = (TextMessage) subscriber.receive(); - - System.out.println("Received message: " + messageReceived.getText()); - - // Step 17. Close the subscriber - subscriber.close(); - - // Step 18. Delete the durable subscription - session.unsubscribe("subscriber-1"); - } - finally { - if (connection != null) { - // Step 19. Be sure to close our JMS resources! - connection.close(); - } - if (initialContext != null) { - // Step 20. Also close the initialContext! - initialContext.close(); - } - } - } -} http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/durable-subscription/src/main/resources/activemq/server0/artemis-roles.properties ---------------------------------------------------------------------- diff --git a/examples/jms/durable-subscription/src/main/resources/activemq/server0/artemis-roles.properties b/examples/jms/durable-subscription/src/main/resources/activemq/server0/artemis-roles.properties deleted file mode 100644 index 4e2d44c..0000000 --- a/examples/jms/durable-subscription/src/main/resources/activemq/server0/artemis-roles.properties +++ /dev/null @@ -1,17 +0,0 @@ -## --------------------------------------------------------------------------- -## Licensed to the Apache Software Foundation (ASF) under one or more -## contributor license agreements. See the NOTICE file distributed with -## this work for additional information regarding copyright ownership. -## The ASF licenses this file to You under the Apache License, Version 2.0 -## (the "License"); you may not use this file except in compliance with -## the License. You may obtain a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -## See the License for the specific language governing permissions and -## limitations under the License. -## --------------------------------------------------------------------------- -guest=guest \ No newline at end of file http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/durable-subscription/src/main/resources/activemq/server0/artemis-users.properties ---------------------------------------------------------------------- diff --git a/examples/jms/durable-subscription/src/main/resources/activemq/server0/artemis-users.properties b/examples/jms/durable-subscription/src/main/resources/activemq/server0/artemis-users.properties deleted file mode 100644 index 4e2d44c..0000000 --- a/examples/jms/durable-subscription/src/main/resources/activemq/server0/artemis-users.properties +++ /dev/null @@ -1,17 +0,0 @@ -## --------------------------------------------------------------------------- -## Licensed to the Apache Software Foundation (ASF) under one or more -## contributor license agreements. See the NOTICE file distributed with -## this work for additional information regarding copyright ownership. -## The ASF licenses this file to You under the Apache License, Version 2.0 -## (the "License"); you may not use this file except in compliance with -## the License. You may obtain a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -## See the License for the specific language governing permissions and -## limitations under the License. -## --------------------------------------------------------------------------- -guest=guest \ No newline at end of file http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/durable-subscription/src/main/resources/activemq/server0/broker.xml ---------------------------------------------------------------------- diff --git a/examples/jms/durable-subscription/src/main/resources/activemq/server0/broker.xml b/examples/jms/durable-subscription/src/main/resources/activemq/server0/broker.xml deleted file mode 100644 index 2b2ba2e..0000000 --- a/examples/jms/durable-subscription/src/main/resources/activemq/server0/broker.xml +++ /dev/null @@ -1,61 +0,0 @@ -<?xml version='1.0'?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> - -<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns="urn:activemq" - xsi:schemaLocation="urn:activemq /schema/artemis-server.xsd"> - - <jms xmlns="urn:activemq:jms"> - <!--the topic used by the example--> - <topic name="exampleTopic"/> - </jms> - - <core xmlns="urn:activemq:core"> - - <bindings-directory>${data.dir:../data}/bindings</bindings-directory> - - <journal-directory>${data.dir:../data}/journal</journal-directory> - - <large-messages-directory>${data.dir:../data}/largemessages</large-messages-directory> - - <paging-directory>${data.dir:../data}/paging</paging-directory> - - <!-- Acceptors --> - - <acceptors> - <acceptor name="netty-acceptor">tcp://localhost:61616</acceptor> - </acceptors> - - <!-- Other config --> - - <security-settings> - <!--security for example topic--> - <security-setting match="jms.topic.exampleTopic"> - <permission type="createDurableQueue" roles="guest"/> - <permission type="deleteDurableQueue" roles="guest"/> - <permission type="createNonDurableQueue" roles="guest"/> - <permission type="deleteNonDurableQueue" roles="guest"/> - <permission type="consume" roles="guest"/> - <permission type="send" roles="guest"/> - </security-setting> - </security-settings> - - </core> -</configuration> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/durable-subscription/src/main/resources/jndi.properties ---------------------------------------------------------------------- diff --git a/examples/jms/durable-subscription/src/main/resources/jndi.properties b/examples/jms/durable-subscription/src/main/resources/jndi.properties deleted file mode 100644 index 54bed6d..0000000 --- a/examples/jms/durable-subscription/src/main/resources/jndi.properties +++ /dev/null @@ -1,20 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -java.naming.factory.initial=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory -connectionFactory.ConnectionFactory=tcp://localhost:61616 -topic.topic/exampleTopic=exampleTopic http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/embedded-simple/pom.xml ---------------------------------------------------------------------- diff --git a/examples/jms/embedded-simple/pom.xml b/examples/jms/embedded-simple/pom.xml deleted file mode 100644 index 8b19033..0000000 --- a/examples/jms/embedded-simple/pom.xml +++ /dev/null @@ -1,84 +0,0 @@ -<?xml version='1.0'?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -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"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache.activemq.examples.jms</groupId> - <artifactId>jms-examples</artifactId> - <version>1.0.1-SNAPSHOT</version> - </parent> - - <artifactId>embedded-simple</artifactId> - <packaging>jar</packaging> - <name>ActiveMQ Artemis JMS Simple Embedded Example</name> - - <properties> - <activemq.basedir>${project.basedir}/../../..</activemq.basedir> - </properties> - - <dependencies> - <dependency> - <groupId>org.apache.activemq</groupId> - <artifactId>artemis-server</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.activemq</groupId> - <artifactId>artemis-jms-server</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.activemq</groupId> - <artifactId>artemis-jms-client</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.activemq</groupId> - <artifactId>artemis-maven-plugin</artifactId> - <executions> - <execution> - <id>runClient</id> - <goals> - <goal>runClient</goal> - </goals> - <configuration> - <clientClass>org.apache.activemq.artemis.jms.example.EmbeddedExample</clientClass> - </configuration> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>org.apache.activemq.examples.jms</groupId> - <artifactId>embedded-simple</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - </plugin> - </plugins> - </build> - -</project> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/embedded-simple/readme.html ---------------------------------------------------------------------- diff --git a/examples/jms/embedded-simple/readme.html b/examples/jms/embedded-simple/readme.html deleted file mode 100644 index 71672b9..0000000 --- a/examples/jms/embedded-simple/readme.html +++ /dev/null @@ -1,96 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> - -<html> - <head> - <title>ActiveMQ Artemis Embedded JMS Server 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 JMS Server Example</h1> - - <p>This examples shows how to setup and run an embedded JMS server using ActiveMQ Artemis along with ActiveMQ Artemis configuration files.</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>Create ActiveMQ Artemis core configuration files and make sure they are within your classpath. By default, ActiveMQ - expects the configuration file name to be "broker.xml".</li> - <li>Create an embedded ActiveMQ Artemis JMS server</li> - <pre class="prettyprint"> - <code>EmbeddedJMS jmsServer = new EmbeddedJMS();</code> - </pre> - - <li>Setup security configurations</li> - <pre class="prettyprint"> - <code>SecurityConfiguration securityConfig = new SecurityConfiguration(); - securityConfig.addUser("guest", "guest"); - securityConfig.addRole("guest", "guest"); - securityConfig.setDefaultUser("guest"); - jmsServer.setSecurityManager(new ActiveMQSecurityManagerImpl(securityConfig));</code> - </pre> - - <li>Start the embedded ActiveMQ Artemis JMS server</li> - <pre class="prettyprint"> - <code>jmsServer.start()</code> - </pre> - - <li>Create JMS resources (connection factory and queue) for the example</li> - <pre class="prettyprint"> - <code>JMSServerManager jmsServerManager = jmsServer.getJMSServerManager(); - List<String> connectors = new ArrayList<String>(); - connectors.add("in-vm"); - jmsServerManager.createConnectionFactory("ConnectionFactory", false, JMSFactoryType.CF, connectors, "ConnectionFactory"); - jmsServerManager.createQueue(false, "exampleQueue", null, false, "queue/exampleQueue");</code> - </pre> - - <p>At this point the JMS server is started and any JMS clients can look up JMS resources from the JNDI to send/receive - messages from the server. To keep the example simple, we will send and receive a JMS message from the same JVM - used to run the JMS server.</p> - - <li>Lookup JMS resources defined in the configuration </li> - <pre class="prettyprint"> - <code>ConnectionFactory cf = (ConnectionFactory)jmsServer.lookup("ConnectionFactory"); - Queue queue = (Queue)jmsServer.lookup("queue/exampleQueue");</code> - </pre> - - <li>Send and receive a message using JMS API</li> - <p>See the <a href="../queue/readme.html">Queue Example</a> for detailed steps to send and receive a JMS message</p> - - <p>Finally, we stop the JMS server and its associated resources.</p> - - <li>Close the connection</li> - <pre class="prettyprint"> - <code>if (connection != null) - { - connection.close(); - }</code> - </pre> - - <li>Stop the JMS server</li> - <pre class="prettyprint"> - <code>jmsServer.stop();</code> - </pre> - - </ol> - </body> -</html> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/embedded-simple/src/main/java/org/apache/activemq/artemis/jms/example/EmbeddedExample.java ---------------------------------------------------------------------- diff --git a/examples/jms/embedded-simple/src/main/java/org/apache/activemq/artemis/jms/example/EmbeddedExample.java b/examples/jms/embedded-simple/src/main/java/org/apache/activemq/artemis/jms/example/EmbeddedExample.java deleted file mode 100644 index 7d00c7e..0000000 --- a/examples/jms/embedded-simple/src/main/java/org/apache/activemq/artemis/jms/example/EmbeddedExample.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.activemq.artemis.jms.example; - -import org.apache.activemq.artemis.api.jms.JMSFactoryType; -import org.apache.activemq.artemis.core.config.impl.SecurityConfiguration; -import org.apache.activemq.artemis.jms.server.JMSServerManager; -import org.apache.activemq.artemis.jms.server.embedded.EmbeddedJMS; -import org.apache.activemq.artemis.spi.core.security.ActiveMQSecurityManagerImpl; - -import javax.jms.Connection; -import javax.jms.ConnectionFactory; -import javax.jms.MessageConsumer; -import javax.jms.MessageProducer; -import javax.jms.Queue; -import javax.jms.Session; -import javax.jms.TextMessage; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * This example demonstrates how to run an ActiveMQ Artemis embedded with JMS - */ -public class EmbeddedExample { - - public static void main(final String[] args) throws Exception { - EmbeddedJMS jmsServer = new EmbeddedJMS(); - - SecurityConfiguration securityConfig = new SecurityConfiguration(); - securityConfig.addUser("guest", "guest"); - securityConfig.addRole("guest", "guest"); - securityConfig.setDefaultUser("guest"); - jmsServer.setSecurityManager(new ActiveMQSecurityManagerImpl(securityConfig)); - - jmsServer.start(); - System.out.println("Started Embedded JMS Server"); - - JMSServerManager jmsServerManager = jmsServer.getJMSServerManager(); - List<String> connectors = new ArrayList<String>(); - connectors.add("in-vm"); - jmsServerManager.createConnectionFactory("ConnectionFactory", false, JMSFactoryType.CF, connectors, "ConnectionFactory"); - jmsServerManager.createQueue(false, "exampleQueue", null, false, "queue/exampleQueue"); - - ConnectionFactory cf = (ConnectionFactory) jmsServer.lookup("ConnectionFactory"); - Queue queue = (Queue) jmsServer.lookup("queue/exampleQueue"); - - // Step 10. Send and receive a message using JMS API - Connection connection = null; - try { - connection = cf.createConnection(); - Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); - MessageProducer producer = session.createProducer(queue); - TextMessage message = session.createTextMessage("Hello sent at " + new Date()); - System.out.println("Sending message: " + message.getText()); - producer.send(message); - MessageConsumer messageConsumer = session.createConsumer(queue); - connection.start(); - TextMessage messageReceived = (TextMessage) messageConsumer.receive(1000); - System.out.println("Received message:" + messageReceived.getText()); - } - finally { - if (connection != null) { - connection.close(); - } - - // Step 11. Stop the JMS server - jmsServer.stop(); - System.out.println("Stopped the JMS Server"); - } - } -} http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/embedded-simple/src/main/resources/broker.xml ---------------------------------------------------------------------- diff --git a/examples/jms/embedded-simple/src/main/resources/broker.xml b/examples/jms/embedded-simple/src/main/resources/broker.xml deleted file mode 100644 index 0448e3b..0000000 --- a/examples/jms/embedded-simple/src/main/resources/broker.xml +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version='1.0'?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> - -<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns="urn:activemq" - xsi:schemaLocation="urn:activemq /schema/artemis-server.xsd"> - - <core xmlns="urn:activemq:core"> - - <persistence-enabled>false</persistence-enabled> - - <connectors> - <connector name="in-vm">vm://0</connector> - </connectors> - - <acceptors> - <acceptor name="in-vm">vm://0</acceptor> - </acceptors> - - <!-- Other config --> - - <security-settings> - <!--security for example queue--> - <security-setting match="#"> - <permission type="createDurableQueue" roles="guest"/> - <permission type="deleteDurableQueue" roles="guest"/> - <permission type="createNonDurableQueue" roles="guest"/> - <permission type="deleteNonDurableQueue" roles="guest"/> - <permission type="consume" roles="guest"/> - <permission type="send" roles="guest"/> - </security-setting> - </security-settings> - - </core> -</configuration> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/embedded/pom.xml ---------------------------------------------------------------------- diff --git a/examples/jms/embedded/pom.xml b/examples/jms/embedded/pom.xml deleted file mode 100644 index 75d876c..0000000 --- a/examples/jms/embedded/pom.xml +++ /dev/null @@ -1,84 +0,0 @@ -<?xml version='1.0'?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -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"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache.activemq.examples.jms</groupId> - <artifactId>jms-examples</artifactId> - <version>1.0.1-SNAPSHOT</version> - </parent> - - <artifactId>embedded</artifactId> - <packaging>jar</packaging> - <name>ActiveMQ Artemis JMS Embedded Example</name> - - <properties> - <activemq.basedir>${project.basedir}/../../..</activemq.basedir> - </properties> - - <dependencies> - <dependency> - <groupId>org.apache.activemq</groupId> - <artifactId>artemis-server</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.activemq</groupId> - <artifactId>artemis-jms-server</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.activemq</groupId> - <artifactId>artemis-jms-client</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.activemq</groupId> - <artifactId>artemis-maven-plugin</artifactId> - <executions> - <execution> - <id>runClient</id> - <goals> - <goal>runClient</goal> - </goals> - <configuration> - <clientClass>org.apache.activemq.artemis.jms.example.EmbeddedExample</clientClass> - </configuration> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>org.apache.activemq.examples.jms</groupId> - <artifactId>embedded</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - </plugin> - </plugins> - </build> - -</project> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/embedded/readme.html ---------------------------------------------------------------------- diff --git a/examples/jms/embedded/readme.html b/examples/jms/embedded/readme.html deleted file mode 100644 index b1bdd0f..0000000 --- a/examples/jms/embedded/readme.html +++ /dev/null @@ -1,38 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> - -<html> - <head> - <title>ActiveMQ Artemis Embedded JMS Server 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 JMS Server Example</h1> - <pre>To run the example, simply type <b>mvn verify</b> from this directory</pre> - - <p>This examples shows how to setup and run an embedded JMS server using ActiveMQ Artemis.</p> - <p>ActiveMQ Artemis was designed using POJOs (Plain Old Java Objects) which means embedding ActiveMQ Artemis in your own application - is as simple as instantiating a few objects.</p> - <p>This example does not use any configuration files. The server is configured using POJOs and can be easily ported to any dependency injection framework.<br /> - We will setup and run a full-fledged JMS server which binds its JMS resources to JNDI and can be accessed by remote clients.</p> - - </body> -</html> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/embedded/src/main/java/org/apache/activemq/artemis/jms/example/EmbeddedExample.java ---------------------------------------------------------------------- diff --git a/examples/jms/embedded/src/main/java/org/apache/activemq/artemis/jms/example/EmbeddedExample.java b/examples/jms/embedded/src/main/java/org/apache/activemq/artemis/jms/example/EmbeddedExample.java deleted file mode 100644 index cb39fd0..0000000 --- a/examples/jms/embedded/src/main/java/org/apache/activemq/artemis/jms/example/EmbeddedExample.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.activemq.artemis.jms.example; - -import javax.jms.Connection; -import javax.jms.ConnectionFactory; -import javax.jms.MessageConsumer; -import javax.jms.MessageProducer; -import javax.jms.Queue; -import javax.jms.Session; -import javax.jms.TextMessage; -import java.util.ArrayList; -import java.util.Date; - -import org.apache.activemq.artemis.api.core.TransportConfiguration; -import org.apache.activemq.artemis.core.config.Configuration; -import org.apache.activemq.artemis.core.config.impl.ConfigurationImpl; -import org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptorFactory; -import org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory; -import org.apache.activemq.artemis.jms.server.config.ConnectionFactoryConfiguration; -import org.apache.activemq.artemis.jms.server.config.JMSConfiguration; -import org.apache.activemq.artemis.jms.server.config.JMSQueueConfiguration; -import org.apache.activemq.artemis.jms.server.config.impl.ConnectionFactoryConfigurationImpl; -import org.apache.activemq.artemis.jms.server.config.impl.JMSConfigurationImpl; -import org.apache.activemq.artemis.jms.server.config.impl.JMSQueueConfigurationImpl; -import org.apache.activemq.artemis.jms.server.embedded.EmbeddedJMS; - -/** - * This example demonstrates how to run an ActiveMQ Artemis embedded with JMS - */ -public final class EmbeddedExample { - - public static void main(final String[] args) throws Exception { - // Step 1. Create ActiveMQ Artemis core configuration, and set the properties accordingly - Configuration configuration = new ConfigurationImpl(); - configuration.setPersistenceEnabled(false); - configuration.setJournalDirectory("target/data/journal"); - configuration.setSecurityEnabled(false); - configuration.getAcceptorConfigurations().add(new TransportConfiguration(NettyAcceptorFactory.class.getName())); - - TransportConfiguration connectorConfig = new TransportConfiguration(NettyConnectorFactory.class.getName()); - - configuration.getConnectorConfigurations().put("connector", connectorConfig); - - // Step 2. Create the JMS configuration - JMSConfiguration jmsConfig = new JMSConfigurationImpl(); - - // Step 3. Configure the JMS ConnectionFactory - ArrayList<String> connectorNames = new ArrayList<String>(); - connectorNames.add("connector"); - ConnectionFactoryConfiguration cfConfig = new ConnectionFactoryConfigurationImpl().setName("cf").setConnectorNames(connectorNames).setBindings("cf"); - jmsConfig.getConnectionFactoryConfigurations().add(cfConfig); - - // Step 4. Configure the JMS Queue - JMSQueueConfiguration queueConfig = new JMSQueueConfigurationImpl().setName("queue1").setDurable(false).setBindings("queue/queue1"); - jmsConfig.getQueueConfigurations().add(queueConfig); - - // Step 5. Start the JMS Server using the ActiveMQ Artemis core server and the JMS configuration - EmbeddedJMS jmsServer = new EmbeddedJMS(); - jmsServer.setConfiguration(configuration); - jmsServer.setJmsConfiguration(jmsConfig); - jmsServer.start(); - System.out.println("Started Embedded JMS Server"); - - // Step 6. Lookup JMS resources defined in the configuration - ConnectionFactory cf = (ConnectionFactory) jmsServer.lookup("cf"); - Queue queue = (Queue) jmsServer.lookup("queue/queue1"); - - // Step 7. Send and receive a message using JMS API - Connection connection = null; - try { - connection = cf.createConnection(); - Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); - MessageProducer producer = session.createProducer(queue); - TextMessage message = session.createTextMessage("Hello sent at " + new Date()); - System.out.println("Sending message: " + message.getText()); - producer.send(message); - MessageConsumer messageConsumer = session.createConsumer(queue); - connection.start(); - TextMessage messageReceived = (TextMessage) messageConsumer.receive(1000); - System.out.println("Received message:" + messageReceived.getText()); - } - finally { - if (connection != null) { - connection.close(); - } - - // Step 11. Stop the JMS server - jmsServer.stop(); - System.out.println("Stopped the JMS Server"); - } - } -} http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/expiry/pom.xml ---------------------------------------------------------------------- diff --git a/examples/jms/expiry/pom.xml b/examples/jms/expiry/pom.xml deleted file mode 100644 index 44c48e4..0000000 --- a/examples/jms/expiry/pom.xml +++ /dev/null @@ -1,119 +0,0 @@ -<?xml version='1.0'?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -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"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache.activemq.examples.jms</groupId> - <artifactId>jms-examples</artifactId> - <version>1.0.1-SNAPSHOT</version> - </parent> - - <artifactId>expiry</artifactId> - <packaging>jar</packaging> - <name>ActiveMQ Artemis JMS Expiry Example</name> - - <properties> - <activemq.basedir>${project.basedir}/../../..</activemq.basedir> - </properties> - - <dependencies> - <dependency> - <groupId>org.apache.activemq</groupId> - <artifactId>artemis-jms-client</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - - <profiles> - <profile> - <!-- 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>${basedir}/target/classes/activemq/server0</configuration> - </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.ExpiryExample</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>expiry</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - </plugin> - </plugins> - </build> - -</project> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/expiry/readme.html ---------------------------------------------------------------------- diff --git a/examples/jms/expiry/readme.html b/examples/jms/expiry/readme.html deleted file mode 100644 index 65cb534..0000000 --- a/examples/jms/expiry/readme.html +++ /dev/null @@ -1,61 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> - -<html> - <head> - <title>ActiveMQ Artemis Message Expiration 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>JMS Expiration 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 configure ActiveMQ Artemis so messages are expipired after a certain time.</p> - <p>Messages can be retained in the messaging system for a limited period of time before being removed. - JMS specification states that clients should not receive messages that have been expired (but it does not guarantee this will not happen).</p> - <p>ActiveMQ Artemis can assign a <em>expiry address</em> to a given queue so that when messages are expired, they are removed from the queue and - routed to this address. These "expired" messages can later be consumed for further inspection. - <p> - The example will send 1 message with a short <em>time-to-live</em> to a queue. We will wait for the message to expire and checks that the message - is no longer in the queue it was sent to. - We will instead consume it from an <em>expiry queue</em> where it was moved when it expired. - </p> - <h2>Example setup</h2> - <p>Expiry destinations are defined in the configuration file <a href="server0/broker.xml">broker.xml</a>:</p> - <pre class="prettyprint"> - <code><address-setting match="jms.queue.exampleQueue"> - <expiry-address>jms.queue.expiryQueue</expiry-address> - </address-setting> - </code> - </pre> - <p>This configuration will moved expired messages from the <code>exampleQueue</code> to the <code>expiryQueue</code></p> - <p>ActiveMQ Artemis allows to specify either a <code>Queue</code> by prefixing the <code>expiry-address</code> with <code>jms.queue.</code> - or a <code>Topic</code> by prefixing with <code>jms.topic.</code>.<br /> - In this example, we will use a <code>Queue</code> to hold the expired messages.</p> - <p>Since we want to consume messages from this expiryQueue, we also need to add a JNDI binding to perform a lookup. - This is configured in <a href="server0/activemq-jms.xml">activemq-jms.xml</a></p> - <pre class="prettyprint"> - <code><queue name="expiryQueue"> - <entry name="/queue/expiryQueue"/> - </queue></code> - </pre> - </body> -</html> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/expiry/src/main/java/org/apache/activemq/artemis/jms/example/ExpiryExample.java ---------------------------------------------------------------------- diff --git a/examples/jms/expiry/src/main/java/org/apache/activemq/artemis/jms/example/ExpiryExample.java b/examples/jms/expiry/src/main/java/org/apache/activemq/artemis/jms/example/ExpiryExample.java deleted file mode 100644 index 996da74..0000000 --- a/examples/jms/expiry/src/main/java/org/apache/activemq/artemis/jms/example/ExpiryExample.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.activemq.artemis.jms.example; - -import javax.jms.Connection; -import javax.jms.ConnectionFactory; -import javax.jms.MessageConsumer; -import javax.jms.MessageProducer; -import javax.jms.Queue; -import javax.jms.Session; -import javax.jms.TextMessage; -import javax.naming.InitialContext; - -/** - * An example showing how messages are moved to an expiry queue when they expire. - */ -public class ExpiryExample { - - public static void main(final String[] args) throws Exception { - Connection connection = null; - InitialContext initialContext = null; - try { - // Step 1. Create an initial context to perform the JNDI lookup. - initialContext = new InitialContext(); - - // Step 2. Perfom a lookup on the queue - Queue queue = (Queue) initialContext.lookup("queue/exampleQueue"); - - // Step 3. Perform a lookup on the Connection Factory - ConnectionFactory cf = (ConnectionFactory) initialContext.lookup("ConnectionFactory"); - - // Step 4.Create a JMS Connection - connection = cf.createConnection(); - - // Step 5. Create a JMS Session - Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); - - // Step 6. Create a JMS Message Producer - MessageProducer producer = session.createProducer(queue); - - // Step 7. Messages sent by this producer will be retained for 1s (1000ms) before expiration - producer.setTimeToLive(1000); - - // Step 8. Create a Text Message - TextMessage message = session.createTextMessage("this is a text message"); - - // Step 9. Send the Message - producer.send(message); - System.out.println("Sent message to " + queue.getQueueName() + ": " + message.getText()); - - // Step 10. Sleep for 5s. Once we wake up, the message will have been expired - System.out.println("Sleep a little bit to let the message expire..."); - Thread.sleep(5000); - - // Step 11. Create a JMS Message Consumer for the queue - MessageConsumer messageConsumer = session.createConsumer(queue); - - // Step 12. Start the Connection - connection.start(); - - // Step 13. Trying to receive a message. Since there is none on the queue, the call will timeout after 5000ms - // and messageReceived will be null - TextMessage messageReceived = (TextMessage) messageConsumer.receive(5000); - System.out.println("Received message from " + queue.getQueueName() + ": " + messageReceived); - - // Step 14. Perfom a lookup on the expiry queue - Queue expiryQueue = (Queue) initialContext.lookup("queue/expiryQueue"); - - // Step 15. Create a JMS Message Consumer for the expiry queue - MessageConsumer expiryConsumer = session.createConsumer(expiryQueue); - - // Step 16. Receive the message from the expiry queue - messageReceived = (TextMessage) expiryConsumer.receive(5000); - - // Step 17. The message sent to the queue was moved to the expiry queue when it expired. - System.out.println("Received message from " + expiryQueue.getQueueName() + ": " + messageReceived.getText()); - - // The message received from the expiry queue has the same content than the expired message but its JMS headers - // differ - // (from JMS point of view, it's not the same message). - // ActiveMQ Artemis defines additional properties to correlate the message received from the expiry queue with the - // message expired from the queue - - System.out.println(); - // Step 18. the messageReceived's destination is now the expiry queue. - System.out.println("Destination of the expired message: " + ((Queue) messageReceived.getJMSDestination()).getQueueName()); - // Step 19. and its own expiration (the time to live in the *expiry* queue) - System.out.println("Expiration time of the expired message (relative to the expiry queue): " + messageReceived.getJMSExpiration()); - - System.out.println(); - // Step 20. the *origin* destination is stored in the _AMQ_ORIG_ADDRESS property - System.out.println("*Origin destination* of the expired message: " + messageReceived.getStringProperty("_AMQ_ORIG_ADDRESS")); - // Step 21. the actual expiration time is stored in the _AMQ_ACTUAL_EXPIRY property - System.out.println("*Actual expiration time* of the expired message: " + messageReceived.getLongProperty("_AMQ_ACTUAL_EXPIRY")); - } - finally { - // Step 22. Be sure to close the resources! - if (initialContext != null) { - initialContext.close(); - } - if (connection != null) { - connection.close(); - } - } - } -} http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/21bf4406/examples/jms/expiry/src/main/resources/activemq/server0/artemis-roles.properties ---------------------------------------------------------------------- diff --git a/examples/jms/expiry/src/main/resources/activemq/server0/artemis-roles.properties b/examples/jms/expiry/src/main/resources/activemq/server0/artemis-roles.properties deleted file mode 100644 index 4e2d44c..0000000 --- a/examples/jms/expiry/src/main/resources/activemq/server0/artemis-roles.properties +++ /dev/null @@ -1,17 +0,0 @@ -## --------------------------------------------------------------------------- -## Licensed to the Apache Software Foundation (ASF) under one or more -## contributor license agreements. See the NOTICE file distributed with -## this work for additional information regarding copyright ownership. -## The ASF licenses this file to You under the Apache License, Version 2.0 -## (the "License"); you may not use this file except in compliance with -## the License. You may obtain a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -## See the License for the specific language governing permissions and -## limitations under the License. -## --------------------------------------------------------------------------- -guest=guest \ No newline at end of file
