Build failed in Jenkins: ActiveMQ-Artemis-Master #1632

2018-02-19 Thread Apache Jenkins Server
See 


Changes:

[clebertsuconic] ARTEMIS-1680 Fixing intermittent failure

[clebertsuconic] NO-JIRA changing accept port

[clebertsuconic] Revert "ARTEMIS-1688 fix cluster when 
auto-create-addresses=false"

--
[...truncated 437.19 KB...]
[INFO] >>> maven-source-plugin:2.2.1:jar (default) > generate-sources @ 
artemis-hornetq-protocol >>>
[INFO] 
[INFO] --- maven-enforcer-plugin:1.4:enforce (enforce-maven) @ 
artemis-hornetq-protocol ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.4:enforce (enforce-java) @ 
artemis-hornetq-protocol ---
[INFO] 
[INFO] <<< maven-source-plugin:2.2.1:jar (default) < generate-sources @ 
artemis-hornetq-protocol <<<
[INFO] 
[INFO] --- maven-source-plugin:2.2.1:jar (default) @ artemis-hornetq-protocol 
---
[INFO] 
[INFO] --- dependency-check-maven:1.4.3:check (default) @ 
artemis-hornetq-protocol ---
[INFO] Skipping dependency-check
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ 
artemis-hornetq-protocol ---
[INFO] Installing 

 to 
/home/jenkins/.m2/repository/org/apache/activemq/artemis-hornetq-protocol/2.5.0-SNAPSHOT/artemis-hornetq-protocol-2.5.0-SNAPSHOT.jar
[INFO] Installing 

 to 
/home/jenkins/.m2/repository/org/apache/activemq/artemis-hornetq-protocol/2.5.0-SNAPSHOT/artemis-hornetq-protocol-2.5.0-SNAPSHOT.pom
[INFO] Installing 

 to 
/home/jenkins/.m2/repository/org/apache/activemq/artemis-hornetq-protocol/2.5.0-SNAPSHOT/artemis-hornetq-protocol-2.5.0-SNAPSHOT-sources.jar
[INFO] Installing 

 to 
/home/jenkins/.m2/repository/org/apache/activemq/artemis-hornetq-protocol/2.5.0-SNAPSHOT/artemis-hornetq-protocol-2.5.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-bundle-plugin:3.0.0:install (default-install) @ 
artemis-hornetq-protocol ---
[INFO] Installing 
org/apache/activemq/artemis-hornetq-protocol/2.5.0-SNAPSHOT/artemis-hornetq-protocol-2.5.0-SNAPSHOT.jar
[INFO] Writing OBR metadata
[INFO] 
[INFO] 
[INFO] Building ActiveMQ Artemis MQTT Protocol 2.5.0-SNAPSHOT
[INFO] 
[INFO] 
[INFO] --- maven-enforcer-plugin:1.4:enforce (enforce-maven) @ 
artemis-mqtt-protocol ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.4:enforce (enforce-java) @ 
artemis-mqtt-protocol ---
[INFO] 
[INFO] --- maven-remote-resources-plugin:1.5:process (process-resource-bundles) 
@ artemis-mqtt-protocol ---
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ 
artemis-mqtt-protocol ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 3 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ 
artemis-mqtt-protocol ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 16 source files to 

:170:
 warning: [MissingCasesInEnumSwitch] Non-exhaustive switch, expected cases for: 
PUBACK, PUBREC, PUBREL, and 5 others
 switch (message.fixedHeader().messageType()) {
 ^
(see http://errorprone.info/bugpattern/MissingCasesInEnumSwitch)
  Did you mean 'default: throw new AssertionError("unexpected case: " + 
message.fixedHeader().messageType());' or 'case PUBACK: case PUBREC: case 
PUBREL: case PUBCOMP: case UNSUBACK: case PINGREQ: case PINGRESP: case 
DISCONNECT: break;' or 'default: break;'?
Note: 

 uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 warning
[INFO] 
[INFO] --- maven-checkstyle-plugin:2.17:check (default) @ artemis-mqtt-protocol 
---
[INFO] Starting audit...
Audit done.
[INFO] 
[INFO] --- apache-rat-plugin:0.12:check 

activemq-artemis git commit: Revert "ARTEMIS-1688 fix cluster when auto-create-addresses=false" Revert #1875

2018-02-19 Thread clebertsuconic
Repository: activemq-artemis
Updated Branches:
  refs/heads/master 24b546f84 -> 34146c0ce


Revert "ARTEMIS-1688 fix cluster when auto-create-addresses=false"
Revert #1875

This reverts commit 5ad45369ce22423543146b47cc9feb8a6db89cbf.

The storage manager is broken now as the AddressManager change here is trying 
to insert a record on the journal before startup.


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/34146c0c
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/34146c0c
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/34146c0c

Branch: refs/heads/master
Commit: 34146c0cef45a3dd49c2a8496edc5cc79bd6ad96
Parents: 24b546f
Author: Clebert Suconic 
Authored: Mon Feb 19 18:03:08 2018 -0500
Committer: Clebert Suconic 
Committed: Mon Feb 19 18:03:21 2018 -0500

--
 .../management/impl/ManagementServiceImpl.java  |  6 ---
 .../distribution/SymmetricClusterTest.java  | 42 
 2 files changed, 48 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/34146c0c/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
--
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
index 7d0a29e..9b9830a 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
@@ -540,12 +540,6 @@ public class ManagementServiceImpl implements 
ManagementService {
   }
 
   started = true;
-
-  /**
-   * Ensure the management notification address is created otherwise if 
auto-create-address = false then cluster
-   * bridges won't be able to connect.
-   */
-  messagingServer.addAddressInfo(new 
AddressInfo(managementNotificationAddress, RoutingType.MULTICAST));
}
 
@Override

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/34146c0c/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/SymmetricClusterTest.java
--
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/SymmetricClusterTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/SymmetricClusterTest.java
index 79b2d00..ca4554f 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/SymmetricClusterTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/SymmetricClusterTest.java
@@ -16,11 +16,7 @@
  */
 package org.apache.activemq.artemis.tests.integration.cluster.distribution;
 
-import org.apache.activemq.artemis.api.core.RoutingType;
-import org.apache.activemq.artemis.api.core.SimpleString;
 import 
org.apache.activemq.artemis.core.server.cluster.impl.MessageLoadBalancingType;
-import org.apache.activemq.artemis.core.server.impl.AddressInfo;
-import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
 import org.apache.activemq.artemis.tests.integration.IntegrationTestLogger;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
 import org.junit.Before;
@@ -234,44 +230,6 @@ public class SymmetricClusterTest extends ClusterTestBase {
}
 
@Test
-   public void testBasicRoundRobinManyMessagesNoAddressAutoCreate() throws 
Exception {
-  setupCluster();
-
-  startServers();
-
-  for (int i = 0; i < 5; i++) {
- servers[i].getAddressSettingsRepository().addMatch("#", new 
AddressSettings().setAutoCreateAddresses(false).setAutoCreateQueues(false));
-  }
-
-  for (int i = 0; i < 5; i++) {
- setupSessionFactory(i, isNetty());
-  }
-
-  for (int i = 0; i < 5; i++) {
- servers[i].addAddressInfo(new 
AddressInfo(SimpleString.toSimpleString("queues.testaddress"), 
RoutingType.MULTICAST));
- createQueue(i, "queues.testaddress", "queue0", null, false);
-  }
-
-  for (int i = 0; i < 5; i++) {
- addConsumer(i, i, "queue0", null);
-  }
-
-  for (int i = 0; i < 5; i++) {
- waitForBindings(i, "queues.testaddress", 1, 1, true);
-  }
-
-  for (int i = 0; i < 5; i++) {
- waitForBindings(i, "queues.testaddress", 4, 4, false);
-  }
-
-  send(0, "q

[1/2] activemq-artemis git commit: ARTEMIS-1680 Fixing intermittent failure

2018-02-19 Thread clebertsuconic
Repository: activemq-artemis
Updated Branches:
  refs/heads/master cfb38589d -> 24b546f84


ARTEMIS-1680 Fixing intermittent failure

This will make sure the cluster is well formed before doing assertions


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/132af015
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/132af015
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/132af015

Branch: refs/heads/master
Commit: 132af0159526e38981d452846d470829f89ae8a4
Parents: cfb3858
Author: Clebert Suconic 
Authored: Mon Feb 19 17:16:24 2018 -0500
Committer: Clebert Suconic 
Committed: Mon Feb 19 17:16:27 2018 -0500

--
 .../tests/integration/mqtt/imported/MqttClusterWildcardTest.java   | 2 ++
 1 file changed, 2 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/132af015/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MqttClusterWildcardTest.java
--
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MqttClusterWildcardTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MqttClusterWildcardTest.java
index 105e7d7..b9185b2 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MqttClusterWildcardTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt/imported/MqttClusterWildcardTest.java
@@ -169,6 +169,8 @@ public class MqttClusterWildcardTest extends 
ClusterTestBase {
 
  waitForBindings(1, TOPIC, 1, 1, false);
  waitForBindings(1, TOPIC, 1, 1, true);
+ waitForBindings(0, TOPIC, 1, 1, true);
+
 
  connection1.publish("test/1/some/la", payload1.getBytes(), 
QoS.AT_LEAST_ONCE, false);
  connection1.publish("test/1/some/la", payload2.getBytes(), 
QoS.AT_MOST_ONCE, false);



[2/2] activemq-artemis git commit: NO-JIRA changing accept port

2018-02-19 Thread clebertsuconic
NO-JIRA changing accept port

This will clash if you have jenkins running on a default 8080 port.


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/24b546f8
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/24b546f8
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/24b546f8

Branch: refs/heads/master
Commit: 24b546f84e6787aa2152b76e5689195c61ef518e
Parents: 132af01
Author: Clebert Suconic 
Authored: Mon Feb 19 17:36:30 2018 -0500
Committer: Clebert Suconic 
Committed: Mon Feb 19 17:36:34 2018 -0500

--
 .../transports/netty/NettyConnectorWithHTTPUpgradeTest.java| 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/24b546f8/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/transports/netty/NettyConnectorWithHTTPUpgradeTest.java
--
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/transports/netty/NettyConnectorWithHTTPUpgradeTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/transports/netty/NettyConnectorWithHTTPUpgradeTest.java
index d0f98db..b93dc44 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/transports/netty/NettyConnectorWithHTTPUpgradeTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/transports/netty/NettyConnectorWithHTTPUpgradeTest.java
@@ -91,7 +91,7 @@ public class NettyConnectorWithHTTPUpgradeTest extends 
ActiveMQTestBase {
 
private static final SimpleString QUEUE = new 
SimpleString("NettyConnectorWithHTTPUpgradeTest");
 
-   private static final int HTTP_PORT = 8080;
+   private static final int HTTP_PORT = 8789;
 
private Configuration conf;
private ActiveMQServer server;



Jenkins build became unstable: ActiveMQ-Artemis-Master #1631

2018-02-19 Thread Apache Jenkins Server
See 




[1/2] activemq-artemis git commit: This closes #1875

2018-02-19 Thread clebertsuconic
Repository: activemq-artemis
Updated Branches:
  refs/heads/master 26c284bf5 -> cfb38589d


This closes #1875


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/cfb38589
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/cfb38589
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/cfb38589

Branch: refs/heads/master
Commit: cfb38589de64e44792acc2cb34258785040ff873
Parents: 26c284b 5ad4536
Author: Clebert Suconic 
Authored: Mon Feb 19 11:36:11 2018 -0500
Committer: Clebert Suconic 
Committed: Mon Feb 19 11:36:11 2018 -0500

--
 .../management/impl/ManagementServiceImpl.java  |  6 +++
 .../distribution/SymmetricClusterTest.java  | 42 
 2 files changed, 48 insertions(+)
--




[2/2] activemq-artemis git commit: ARTEMIS-1688 fix cluster when auto-create-addresses=false

2018-02-19 Thread clebertsuconic
ARTEMIS-1688 fix cluster when auto-create-addresses=false


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/5ad45369
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/5ad45369
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/5ad45369

Branch: refs/heads/master
Commit: 5ad45369ce22423543146b47cc9feb8a6db89cbf
Parents: 26c284b
Author: Justin Bertram 
Authored: Fri Feb 16 16:44:17 2018 -0600
Committer: Clebert Suconic 
Committed: Mon Feb 19 11:36:11 2018 -0500

--
 .../management/impl/ManagementServiceImpl.java  |  6 +++
 .../distribution/SymmetricClusterTest.java  | 42 
 2 files changed, 48 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/5ad45369/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
--
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
index 9b9830a..7d0a29e 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/impl/ManagementServiceImpl.java
@@ -540,6 +540,12 @@ public class ManagementServiceImpl implements 
ManagementService {
   }
 
   started = true;
+
+  /**
+   * Ensure the management notification address is created otherwise if 
auto-create-address = false then cluster
+   * bridges won't be able to connect.
+   */
+  messagingServer.addAddressInfo(new 
AddressInfo(managementNotificationAddress, RoutingType.MULTICAST));
}
 
@Override

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/5ad45369/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/SymmetricClusterTest.java
--
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/SymmetricClusterTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/SymmetricClusterTest.java
index ca4554f..79b2d00 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/SymmetricClusterTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/distribution/SymmetricClusterTest.java
@@ -16,7 +16,11 @@
  */
 package org.apache.activemq.artemis.tests.integration.cluster.distribution;
 
+import org.apache.activemq.artemis.api.core.RoutingType;
+import org.apache.activemq.artemis.api.core.SimpleString;
 import 
org.apache.activemq.artemis.core.server.cluster.impl.MessageLoadBalancingType;
+import org.apache.activemq.artemis.core.server.impl.AddressInfo;
+import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
 import org.apache.activemq.artemis.tests.integration.IntegrationTestLogger;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
 import org.junit.Before;
@@ -230,6 +234,44 @@ public class SymmetricClusterTest extends ClusterTestBase {
}
 
@Test
+   public void testBasicRoundRobinManyMessagesNoAddressAutoCreate() throws 
Exception {
+  setupCluster();
+
+  startServers();
+
+  for (int i = 0; i < 5; i++) {
+ servers[i].getAddressSettingsRepository().addMatch("#", new 
AddressSettings().setAutoCreateAddresses(false).setAutoCreateQueues(false));
+  }
+
+  for (int i = 0; i < 5; i++) {
+ setupSessionFactory(i, isNetty());
+  }
+
+  for (int i = 0; i < 5; i++) {
+ servers[i].addAddressInfo(new 
AddressInfo(SimpleString.toSimpleString("queues.testaddress"), 
RoutingType.MULTICAST));
+ createQueue(i, "queues.testaddress", "queue0", null, false);
+  }
+
+  for (int i = 0; i < 5; i++) {
+ addConsumer(i, i, "queue0", null);
+  }
+
+  for (int i = 0; i < 5; i++) {
+ waitForBindings(i, "queues.testaddress", 1, 1, true);
+  }
+
+  for (int i = 0; i < 5; i++) {
+ waitForBindings(i, "queues.testaddress", 4, 4, false);
+  }
+
+  send(0, "queues.testaddress", 1000, true, null);
+
+  verifyReceiveRoundRobinInSomeOrder(1000, 0, 1, 2, 3, 4);
+
+  verifyNotReceive(0, 1, 2, 3, 4);
+   }
+
+   @Test
public void testRoundRobinMultipleQueues() throws Exception {
   SymmetricClusterTest.log.info("starting");
   setupCluster();



[1/2] activemq-artemis git commit: This closes #1869

2018-02-19 Thread clebertsuconic
Repository: activemq-artemis
Updated Branches:
  refs/heads/master 8dfa34556 -> 26c284bf5


This closes #1869


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/26c284bf
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/26c284bf
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/26c284bf

Branch: refs/heads/master
Commit: 26c284bf58946649d321c7ec1e01c4f753286d79
Parents: 8dfa345 13e0711
Author: Clebert Suconic 
Authored: Mon Feb 19 11:33:09 2018 -0500
Committer: Clebert Suconic 
Committed: Mon Feb 19 11:33:09 2018 -0500

--
 .../artemis/core/postoffice/AddressManager.java |  3 +
 .../artemis/core/postoffice/PostOffice.java |  3 +
 .../core/postoffice/impl/PostOfficeImpl.java|  6 ++
 .../postoffice/impl/SimpleAddressManager.java   |  6 ++
 .../postoffice/impl/WildcardAddressManager.java | 19 
 .../cluster/impl/ClusterConnectionImpl.java | 14 +--
 .../mqtt/imported/MqttClusterWildcardTest.java  | 93 
 .../core/server/impl/fakes/FakePostOffice.java  |  6 ++
 8 files changed, 145 insertions(+), 5 deletions(-)
--




[2/2] activemq-artemis git commit: ARTEMIS-1680 - Synchronize message load balacing type between brokers

2018-02-19 Thread clebertsuconic
ARTEMIS-1680 - Synchronize message load balacing type between brokers

This guarantees the update of message load balancing type between addresses and 
linked adresses


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/13e07115
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/13e07115
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/13e07115

Branch: refs/heads/master
Commit: 13e071158da465aad0f2608076f078143d9ce83c
Parents: 8dfa345
Author: raul.valdoleiros 
Authored: Tue Feb 13 15:55:46 2018 +
Committer: Clebert Suconic 
Committed: Mon Feb 19 11:33:09 2018 -0500

--
 .../artemis/core/postoffice/AddressManager.java |  3 +
 .../artemis/core/postoffice/PostOffice.java |  3 +
 .../core/postoffice/impl/PostOfficeImpl.java|  6 ++
 .../postoffice/impl/SimpleAddressManager.java   |  6 ++
 .../postoffice/impl/WildcardAddressManager.java | 19 
 .../cluster/impl/ClusterConnectionImpl.java | 14 +--
 .../mqtt/imported/MqttClusterWildcardTest.java  | 93 
 .../core/server/impl/fakes/FakePostOffice.java  |  6 ++
 8 files changed, 145 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13e07115/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/AddressManager.java
--
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/AddressManager.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/AddressManager.java
index 858754d..c8c0428 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/AddressManager.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/AddressManager.java
@@ -22,6 +22,7 @@ import java.util.Set;
 
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.api.core.RoutingType;
+import 
org.apache.activemq.artemis.core.server.cluster.impl.MessageLoadBalancingType;
 import org.apache.activemq.artemis.core.server.impl.AddressInfo;
 import org.apache.activemq.artemis.core.transaction.Transaction;
 
@@ -76,4 +77,6 @@ public interface AddressManager {
 
AddressInfo getAddressInfo(SimpleString address);
 
+   void updateMessageLoadBalancingTypeForAddress(SimpleString address, 
MessageLoadBalancingType messageLoadBalancingType) throws Exception;
+
 }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13e07115/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/PostOffice.java
--
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/PostOffice.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/PostOffice.java
index b78883f..5d081a3 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/PostOffice.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/PostOffice.java
@@ -29,6 +29,7 @@ import 
org.apache.activemq.artemis.core.server.MessageReference;
 import org.apache.activemq.artemis.core.server.Queue;
 import org.apache.activemq.artemis.core.server.RoutingContext;
 import org.apache.activemq.artemis.api.core.RoutingType;
+import 
org.apache.activemq.artemis.core.server.cluster.impl.MessageLoadBalancingType;
 import org.apache.activemq.artemis.core.server.impl.AddressInfo;
 import org.apache.activemq.artemis.core.transaction.Transaction;
 
@@ -150,4 +151,6 @@ public interface PostOffice extends ActiveMQComponent {
boolean isAddressBound(SimpleString address) throws Exception;
 
Set getAddresses();
+
+   void updateMessageLoadBalancingTypeForAddress(SimpleString  address, 
MessageLoadBalancingType messageLoadBalancingType) throws Exception;
 }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/13e07115/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/PostOfficeImpl.java
--
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/PostOfficeImpl.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/PostOfficeImpl.java
index 73d6953..3f9356c 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/PostOfficeImpl.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/postoffice/impl/PostOfficeImpl.java
@@ -69,6 +69,7 @@ import org.apache.activemq.artemis.core.server.Queue;
 import org.apache.activemq.artemis.core.server.QueueFactory;
 import org.apache.activemq.artemis.core.s

svn commit: r1025595 - in /websites/production/activemq/content: cache/main.pageCache virtual-destinations.html

2018-02-19 Thread buildbot
Author: buildbot
Date: Mon Feb 19 13:23:48 2018
New Revision: 1025595

Log:
Production update by buildbot for activemq

Modified:
websites/production/activemq/content/cache/main.pageCache
websites/production/activemq/content/virtual-destinations.html

Modified: websites/production/activemq/content/cache/main.pageCache
==
Binary files - no diff available.

Modified: websites/production/activemq/content/virtual-destinations.html
==
--- websites/production/activemq/content/virtual-destinations.html (original)
+++ websites/production/activemq/content/virtual-destinations.html Mon Feb 19 
13:23:48 2018
@@ -71,7 +71,7 @@
   
 
 
-Virtual Destinations allow 
us to create logical destinations that clients can use to produce and consume 
from but which map onto one or more physical destinations. It allows 
us to provide more flexible loosely coupled messaging configurations.Virtual TopicsThe idea behind 
publish subscribe is a great one. Allow producers to be decoupled from 
consumers so that they do not even know how many consumers are interested in 
the messages they publish. The JMS specification defines support for durable 
topics however they have limitations as we will describe...The limitations of 
JMS durable topicsA JMS durable subscriber MessageConsumer is created 
with a unique JMS clientID and durable subscriber name. To be JMS compliant 
only one JMS connection can be active at any point in time for one JMS clientI
 D, and only one consumer can be active for a clientID and subscriber name. 
i.e., only one thread can be actively consuming from a given 
logical topic subscriber. This means we cannot implementload 
balancing of messages.fast failover of the subscriber if that one 
process running that one consumer thread dies.Now queue 
semantics in JMS offer the ability to load balance work across a number of 
consumers in a reliable way - allowing many threads, processes and machines to 
be used to process messages. Then we have sophisticated sticky load balancing 
techniques like Message Groups 
to load balance and parallelise work while maintaining ordering.Another 
added benefit of having physical queues for each logical topic subscriber is we 
can then monitor the queue depths via JMX 
to monitor system performance together with being able to browse these 
 physical queues.Virtual Topics to the 
rescueThe idea behind virtual topics is that producers send to a topic 
in the usual JMS way. Consumers can continue to use the Topic semantics in the 
JMS specification. However if the topic is virtual, consumer can consume from a 
physical queue for a logical topic subscription, allowing many consumers to be 
running on many machines & threads to load balance the load.E.g., 
let's say we have a topic called VirtualTopic.Orders. (Where 
the prefix VirtualTopic. indicates its a virtual topic). And we logically want 
to send orders to systems A and B. Now with regular durable topics we'd create 
a JMS consumer for clientID_A and "A" along with clientID_B and "B".With 
virtual topics we can just go right ahead and consume to queue 
Consumer.A.VirtualTopic.Orders to be a consumer for system A 
or consume to Consumer.B.VirtualTopic.Orde
 rs to be a consumer for system B.We can now have a pool of 
consumers for each system which then compete for messages for systems A or B 
such that all the messages for system A are processed exactly once and 
similarly for system B.Customizing the 
out-of-the-box defaultsThe out-of-the-box defaults are described above. 
Namely that the only virtual topics available must be within the 
VirtualTopic.> namespace and that the consumer queues are 
named Consumer.*.VirtualTopic.>.You can configure 
this to use whatever naming convention you wish. The following https://svn.apache.org/repos/asf/incubator/activemq/trunk/activemq-unit-tests/src/test/resources/org/apache/activemq/broker/virtual/global-virtual-topics.xml";>example
 shows how to make all topics virtual topics. The example below is using the 
name > to indicate 'match all topics'. You could use this wildcard to 
apply different virtual topic policies in different hierarchies. 
 
       
 
  Note 
that making a topic virtual does add a small CPU overhead when sending messages 
to the topic but it is fairly small.OptionDefaultDescriptionselectorAwarefalseonly messages that match one of the existing subscribers 
are actually dispatched. Using this option prevents the build up of unmatched 
messages when selectors are used by exclusive consumerslocalfalsewhen true, don't fan out messages that were received over 
a netw

[CONF] Apache ActiveMQ > Virtual Destinations

2018-02-19 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Virtual Destinations 
 
 
  
 
 
 
 
 
 
 ... Here is an example of how to exclude virtual topic consumer queues from a default network bridge that will forward all queues and topics: 
 tcp://localhost:61617)">
 ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




[CONF] Apache ActiveMQ > Virtual Destinations

2018-02-19 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Virtual Destinations 
 
 
  
 
 
 
 
 
 
 ... Here is an example of how to do that with a exclude virtual topic consumer queues from a default network bridge that will forward all queues and topics by default: 
 tcp://localhost:61617)">
 ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17  
 
 
  
 
 
 
 
 
 
 
 
 




svn commit: r1025590 - in /websites/production/activemq/content: cache/main.pageCache virtual-destinations.html

2018-02-19 Thread buildbot
Author: buildbot
Date: Mon Feb 19 11:24:00 2018
New Revision: 1025590

Log:
Production update by buildbot for activemq

Modified:
websites/production/activemq/content/cache/main.pageCache
websites/production/activemq/content/virtual-destinations.html

Modified: websites/production/activemq/content/cache/main.pageCache
==
Binary files - no diff available.

Modified: websites/production/activemq/content/virtual-destinations.html
==
--- websites/production/activemq/content/virtual-destinations.html (original)
+++ websites/production/activemq/content/virtual-destinations.html Mon Feb 19 
11:24:00 2018
@@ -71,7 +71,7 @@
   
 
 
-Virtual Destinations allow 
us to create logical destinations that clients can use to produce and consume 
from but which map onto one or more physical destinations. It allows 
us to provide more flexible loosely coupled messaging configurations.Virtual TopicsThe idea behind 
publish subscribe is a great one. Allow producers to be decoupled from 
consumers so that they do not even know how many consumers are interested in 
the messages they publish. The JMS specification defines support for durable 
topics however they have limitations as we will describe...The limitations of 
JMS durable topicsA JMS durable subscriber MessageConsumer is created 
with a unique JMS clientID and durable subscriber name. To be JMS compliant 
only one JMS connection can be active at any point in time for one JMS clientI
 D, and only one consumer can be active for a clientID and subscriber name. 
i.e., only one thread can be actively consuming from a given 
logical topic subscriber. This means we cannot implementload 
balancing of messages.fast failover of the subscriber if that one 
process running that one consumer thread dies.Now queue 
semantics in JMS offer the ability to load balance work across a number of 
consumers in a reliable way - allowing many threads, processes and machines to 
be used to process messages. Then we have sophisticated sticky load balancing 
techniques like Message Groups 
to load balance and parallelise work while maintaining ordering.Another 
added benefit of having physical queues for each logical topic subscriber is we 
can then monitor the queue depths via JMX 
to monitor system performance together with being able to browse these 
 physical queues.Virtual Topics to the 
rescueThe idea behind virtual topics is that producers send to a topic 
in the usual JMS way. Consumers can continue to use the Topic semantics in the 
JMS specification. However if the topic is virtual, consumer can consume from a 
physical queue for a logical topic subscription, allowing many consumers to be 
running on many machines & threads to load balance the load.E.g., 
let's say we have a topic called VirtualTopic.Orders. (Where 
the prefix VirtualTopic. indicates its a virtual topic). And we logically want 
to send orders to systems A and B. Now with regular durable topics we'd create 
a JMS consumer for clientID_A and "A" along with clientID_B and "B".With 
virtual topics we can just go right ahead and consume to queue 
Consumer.A.VirtualTopic.Orders to be a consumer for system A 
or consume to Consumer.B.VirtualTopic.Orde
 rs to be a consumer for system B.We can now have a pool of 
consumers for each system which then compete for messages for systems A or B 
such that all the messages for system A are processed exactly once and 
similarly for system B.Customizing the 
out-of-the-box defaultsThe out-of-the-box defaults are described above. 
Namely that the only virtual topics available must be within the 
VirtualTopic.> namespace and that the consumer queues are 
named Consumer.*.VirtualTopic.>.You can configure 
this to use whatever naming convention you wish. The following https://svn.apache.org/repos/asf/incubator/activemq/trunk/activemq-unit-tests/src/test/resources/org/apache/activemq/broker/virtual/global-virtual-topics.xml";>example
 shows how to make all topics virtual topics. The example below is using the 
name > to indicate 'match all topics'. You could use this wildcard to 
apply different virtual topic policies in different hierarchies. 
 
       
 
  Note 
that making a topic virtual does add a small CPU overhead when sending messages 
to the topic but it is fairly small.OptionDefaultDescriptionselectorAwarefalseonly messages that match one of the existing subscribers 
are actually dispatched. Using this option prevents the build up of unmatched 
messages when selectors are used by exclusive consumerslocalfalsewhen true, don't fan out messages that were received over 
a netw

[CONF] Apache ActiveMQ > Virtual Destinations

2018-02-19 Thread Gary Tully (Confluence)
Title: Message Title



 
 
 
 
 
 
 

Gary Tully edited a page 
 
 
  
 
 
 
 
 
 
 
  
 
 
 
 
 
 
Change comment: enforce the either or choice on bridging for vt 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Virtual Destinations 
 
 
  
 
 
 
 
 
 
 ... Avoiding Duplicate Message in a Network of Brokers  You have to make sure that the messages sent to the Consumer.*.VirtualTopic.> destination are not forwarded when you're using both queue-based and non-queue based subscribers to the virtual topic (that is, if you have normal topic subscribers to the virtual topic). If you use Virtual Topics in a network of brokers, it is likely you will get duplicate messages if you use the default network configuration. This is because a network node will not only forward message sent to the virtual topic, but also the associated physical queues. To fix this, you should disable forwarding messages on the associated physical queues.TLDR: bridge consumer queues or virtual topics, not both.   Typically you would network consumer queues. In this case it is important to not bridge any normal topic consumer on the virtual topic because any forwarded message would again get fanned out to consumer queues on the networked broker, leading to duplicates.   It is also possible to bridge the virtual topic in which case it is necessary exclude the consumer queues from any network connector configuration.   Here is an example of how to do that with a network bridge that will forward all queues and topics by default: 
 tcp://localhost:61617)">
 ...  
 
 
  
 
 
 
 
 
 
 
 
 
 

View page
• 
 
 
 
 
 
 

Like 
 
 
  
 
 
  
 
 
  
 
 
  
 
 
 
 
 
 
 
 
 
 
Stop watching space
• 
 
 
 
 
 
 
Manage notifications 
 
 
 
 
 
 
 
 
 
 
  
 
 
This message was sent by Atlassian Confluence 5.8.17