You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by gr...@apache.org on 2014/12/01 16:57:34 UTC

[1/7] incubator-brooklyn git commit: [BROOKLYN-92] Configure brokerName for ActiveMQ

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 5d1c6b3f0 -> 493c30771


[BROOKLYN-92] Configure brokerName for ActiveMQ


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/3c6ba532
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/3c6ba532
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/3c6ba532

Branch: refs/heads/master
Commit: 3c6ba532bc49bcbc76ccd147ec107d2e866e2c69
Parents: 0f50c58
Author: Hadrian Zbarcea <ha...@apache.org>
Authored: Wed Nov 26 00:10:40 2014 -0500
Committer: Hadrian Zbarcea <ha...@apache.org>
Committed: Wed Nov 26 00:10:40 2014 -0500

----------------------------------------------------------------------
 .../messaging/activemq/ActiveMQBroker.java      |  5 ++++
 .../messaging/activemq/ActiveMQBrokerImpl.java  |  8 ++++--
 .../activemq/ActiveMQDestinationImpl.java       | 17 +++++++++++--
 .../messaging/activemq/ActiveMQDriver.java      |  2 ++
 .../messaging/activemq/ActiveMQQueueImpl.java   |  5 ++--
 .../messaging/activemq/ActiveMQSshDriver.java   |  5 ++++
 .../entity/messaging/activemq/activemq.xml      |  2 +-
 .../activemq/ActiveMQIntegrationTest.java       | 26 +++++++++++++++-----
 8 files changed, 57 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3c6ba532/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBroker.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBroker.java b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBroker.java
index 1ef9cb2..9eb7c11 100644
--- a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBroker.java
+++ b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBroker.java
@@ -56,6 +56,10 @@ public interface ActiveMQBroker extends SoftwareProcess, MessageBroker, UsesJmx,
     public static final BasicConfigKey<String> MIRROR_URL = new BasicConfigKey<String>(String.class, "activemq.install.mirror.url", "URL of mirror",
         "http://www.mirrorservice.org/sites/ftp.apache.org/activemq");
 
+    @SetFromFlag("brokerName")
+    public static final AttributeSensorAndConfigKey<String,String> BROKER_NAME = new BasicAttributeSensorAndConfigKey<String>(
+            String.class, "activemq.brokerName", "ActiveMQ Broker Name", "localhost");
+
     @SetFromFlag("openWirePort")
     public static final PortAttributeSensorAndConfigKey OPEN_WIRE_PORT = new PortAttributeSensorAndConfigKey("openwire.port", "OpenWire port", "61616+");
 
@@ -72,4 +76,5 @@ public interface ActiveMQBroker extends SoftwareProcess, MessageBroker, UsesJmx,
     public static final BasicAttributeSensorAndConfigKey<String> TEMPLATE_CONFIGURATION_URL = new BasicAttributeSensorAndConfigKey<String>(
             String.class, "activemq.templateConfigurationUrl", "Template file (in freemarker format) for the conf/activemq.xml file", 
             "classpath://brooklyn/entity/messaging/activemq/activemq.xml");
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3c6ba532/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBrokerImpl.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBrokerImpl.java b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBrokerImpl.java
index 08fb6d2..19fae9d 100644
--- a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBrokerImpl.java
+++ b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBrokerImpl.java
@@ -60,6 +60,10 @@ public class ActiveMQBrokerImpl extends JMSBrokerImpl<ActiveMQQueue, ActiveMQTop
         return !isJmxEnabled() ? Integer.valueOf(-1) : getAttribute(UsesJmx.JMX_PORT);
     }
     
+    public String getBrokerName() {
+        return getAttribute(BROKER_NAME);
+    }
+    
     public Integer getOpenWirePort() {
         return getAttribute(OPEN_WIRE_PORT);
     }
@@ -88,14 +92,14 @@ public class ActiveMQBrokerImpl extends JMSBrokerImpl<ActiveMQQueue, ActiveMQTop
     protected void connectSensors() {
         setAttribute(BROKER_URL, String.format("tcp://%s:%d", getAttribute(HOSTNAME), getAttribute(OPEN_WIRE_PORT)));
         
-        String brokerMbeanName = "org.apache.activemq:brokerName=localhost,type=Broker";
+        String brokerMbeanName = "org.apache.activemq:type=Broker,brokerName=" + getBrokerName();
         
         jmxFeed = JmxFeed.builder()
                 .entity(this)
                 .period(500, TimeUnit.MILLISECONDS)
                 .pollAttribute(new JmxAttributePollConfig<Boolean>(SERVICE_UP)
                         .objectName(brokerMbeanName)
-                        .attributeName("BrokerId")
+                        .attributeName("BrokerName")
                         .onSuccess(Functions.forPredicate(Predicates.notNull()))
                         .onFailureOrException(Functions.constant(false)))
                 .build();

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3c6ba532/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDestinationImpl.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDestinationImpl.java b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDestinationImpl.java
index d988268..e5afee5 100644
--- a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDestinationImpl.java
+++ b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDestinationImpl.java
@@ -21,6 +21,8 @@ package brooklyn.entity.messaging.activemq;
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 
+import com.google.common.base.Preconditions;
+
 import brooklyn.entity.basic.EntityLocal;
 import brooklyn.entity.messaging.jms.JMSDestinationImpl;
 import brooklyn.event.feed.jmx.JmxFeed;
@@ -31,6 +33,7 @@ public abstract class ActiveMQDestinationImpl extends JMSDestinationImpl impleme
     protected ObjectName brokerMBeanName;
     protected transient JmxHelper jmxHelper;
     protected volatile JmxFeed jmxFeed;
+    protected String brokerName;
 
     public ActiveMQDestinationImpl() {
     }
@@ -39,9 +42,11 @@ public abstract class ActiveMQDestinationImpl extends JMSDestinationImpl impleme
     public void onManagementStarting() {
         super.onManagementStarting();
         
-        //assume just one BrokerName at this endpoint
+        getBrokerName();
+        Preconditions.checkNotNull(brokerName, "ActiveMQ broker name must be specified");
+
         try {
-            brokerMBeanName = new ObjectName("org.apache.activemq:brokerName=localhost,type=Broker");
+            brokerMBeanName = new ObjectName("org.apache.activemq:type=Broker,brokerName=" + brokerName);
             jmxHelper = new JmxHelper((EntityLocal) getParent());
         } catch (MalformedObjectNameException e) {
             throw Exceptions.propagate(e);
@@ -52,4 +57,12 @@ public abstract class ActiveMQDestinationImpl extends JMSDestinationImpl impleme
     protected void disconnectSensors() {
         if (jmxFeed != null) jmxFeed.stop();
     }
+    
+    protected String getBrokerName() {
+        if (brokerName == null) {
+            EntityLocal parent = (EntityLocal)getParent();
+            brokerName = parent != null ? parent.getAttribute(ActiveMQBroker.BROKER_NAME) : null;
+        }
+        return brokerName;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3c6ba532/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDriver.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDriver.java b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDriver.java
index 1f84103..8e69017 100644
--- a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDriver.java
+++ b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDriver.java
@@ -22,5 +22,7 @@ import brooklyn.entity.java.JavaSoftwareProcessDriver;
 
 public interface ActiveMQDriver extends JavaSoftwareProcessDriver {
 
+    String getBrokerName();
+
     Integer getOpenWirePort();
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3c6ba532/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQQueueImpl.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQQueueImpl.java b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQQueueImpl.java
index 4e6b0d8..856b2db 100644
--- a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQQueueImpl.java
+++ b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQQueueImpl.java
@@ -41,7 +41,7 @@ public class ActiveMQQueueImpl extends ActiveMQDestinationImpl implements Active
     }
     
     public void create() {
-        if (log.isDebugEnabled()) log.debug("{} adding queue {} to broker {}", new Object[] {this, getName(), jmxHelper.getAttribute(brokerMBeanName, "BrokerId")});
+        log.debug("{} adding queue {} to broker {}", new Object[] {this, getName(), jmxHelper.getAttribute(brokerMBeanName, "BrokerName")});
         
         jmxHelper.operation(brokerMBeanName, "addQueue", getName());
         
@@ -55,7 +55,7 @@ public class ActiveMQQueueImpl extends ActiveMQDestinationImpl implements Active
 
     @Override
     protected void connectSensors() {
-        String queue = String.format("org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=%s", getName());
+        String queue = String.format("org.apache.activemq:type=Broker,brokerName=%s,destinationType=Queue,destinationName=%s", getBrokerName(), getName());
         
         jmxFeed = JmxFeed.builder()
                 .entity(this)
@@ -65,4 +65,5 @@ public class ActiveMQQueueImpl extends ActiveMQDestinationImpl implements Active
                         .attributeName("QueueSize"))
                 .build();
     }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3c6ba532/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java
index f8c223d..39e6e0b 100644
--- a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java
+++ b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQSshDriver.java
@@ -46,6 +46,11 @@ public class ActiveMQSshDriver extends JavaSoftwareProcessSshDriver implements A
     }
 
     @Override
+    public String getBrokerName() { 
+        return entity.getAttribute(ActiveMQBroker.BROKER_NAME);
+    }
+
+    @Override
     public Integer getOpenWirePort() { 
         return entity.getAttribute(ActiveMQBroker.OPEN_WIRE_PORT);
     }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3c6ba532/software/messaging/src/main/resources/brooklyn/entity/messaging/activemq/activemq.xml
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/resources/brooklyn/entity/messaging/activemq/activemq.xml b/software/messaging/src/main/resources/brooklyn/entity/messaging/activemq/activemq.xml
index fa9e82a..52114d1 100644
--- a/software/messaging/src/main/resources/brooklyn/entity/messaging/activemq/activemq.xml
+++ b/software/messaging/src/main/resources/brooklyn/entity/messaging/activemq/activemq.xml
@@ -19,7 +19,7 @@
     <!--
         The <broker> element is used to configure the ActiveMQ broker.
     -->
-    <broker useJmx="true" xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="[#noparse]${activemq.data}[/#noparse]">
+    <broker useJmx="true" xmlns="http://activemq.apache.org/schema/core" brokerName="${entity.brokerName}" dataDirectory="[#noparse]${activemq.data}[/#noparse]">
 
         <!--
             For better performances use VM cursor and small memory limit.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3c6ba532/software/messaging/src/test/java/brooklyn/entity/messaging/activemq/ActiveMQIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/test/java/brooklyn/entity/messaging/activemq/ActiveMQIntegrationTest.java b/software/messaging/src/test/java/brooklyn/entity/messaging/activemq/ActiveMQIntegrationTest.java
index 9d8ed27..a7cd334 100644
--- a/software/messaging/src/test/java/brooklyn/entity/messaging/activemq/ActiveMQIntegrationTest.java
+++ b/software/messaging/src/test/java/brooklyn/entity/messaging/activemq/ActiveMQIntegrationTest.java
@@ -80,7 +80,7 @@ public class ActiveMQIntegrationTest {
         activeMQ = app.createAndManageChild(EntitySpec.create(ActiveMQBroker.class));
 
         activeMQ.start(ImmutableList.of(testLocation));
-        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 10*60*1000), activeMQ, Startable.SERVICE_UP, true);
+        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 60*1000), activeMQ, Startable.SERVICE_UP, true);
         log.info("JMX URL is "+activeMQ.getAttribute(UsesJmx.JMX_URL));
         activeMQ.stop();
         assertFalse(activeMQ.getAttribute(Startable.SERVICE_UP));
@@ -93,26 +93,40 @@ public class ActiveMQIntegrationTest {
     @Test(groups = "Integration")
     public void canStartupAndShutdownWithCustomJmx() throws Exception {
         activeMQ = app.createAndManageChild(EntitySpec.create(ActiveMQBroker.class)
-                .configure("jmxPort", "11099+"));
+            .configure("jmxPort", "11099+"));
        
         activeMQ.start(ImmutableList.of(testLocation));
-        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 10*60*1000), activeMQ, Startable.SERVICE_UP, true);
+        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 60*1000), activeMQ, Startable.SERVICE_UP, true);
         log.info("JMX URL is "+activeMQ.getAttribute(UsesJmx.JMX_URL));
         activeMQ.stop();
         assertFalse(activeMQ.getAttribute(Startable.SERVICE_UP));
     }
 
     @Test(groups = "Integration")
+    public void canStartupAndShutdownWithCustomBrokerName() throws Exception {
+        activeMQ = app.createAndManageChild(EntitySpec.create(ActiveMQBroker.class)
+            .configure("jmxPort", "11099+")
+            .configure("brokerName", "bridge"));
+
+        activeMQ.start(ImmutableList.of(testLocation));
+        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 60*1000), activeMQ, Startable.SERVICE_UP, true);
+        log.info("JMX URL is "+activeMQ.getAttribute(UsesJmx.JMX_URL));
+        activeMQ.stop();
+        assertFalse(activeMQ.getAttribute(Startable.SERVICE_UP));
+    }
+
+    
+    @Test(groups = "Integration")
     public void canStartTwo() throws Exception {
         ActiveMQBroker activeMQ1 = app.createAndManageChild(EntitySpec.create(ActiveMQBroker.class));
         ActiveMQBroker activeMQ2 = app.createAndManageChild(EntitySpec.create(ActiveMQBroker.class));
 
         activeMQ1.start(ImmutableList.of(testLocation));
-        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 10*60*1000), activeMQ1, Startable.SERVICE_UP, true);
+        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 60*1000), activeMQ1, Startable.SERVICE_UP, true);
         log.info("JMX URL is "+activeMQ1.getAttribute(UsesJmx.JMX_URL));
 
         activeMQ2.start(ImmutableList.of(testLocation));
-        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 10*60*1000), activeMQ2, Startable.SERVICE_UP, true);
+        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 60*1000), activeMQ2, Startable.SERVICE_UP, true);
         log.info("JMX URL is "+activeMQ2.getAttribute(UsesJmx.JMX_URL));
     }
 
@@ -163,7 +177,7 @@ public class ActiveMQIntegrationTest {
             .configure(UsesJmx.JMX_AGENT_MODE, mode));
         
         activeMQ.start(ImmutableList.of(testLocation));
-        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 10*60*1000), activeMQ, Startable.SERVICE_UP, true);
+        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 60*1000), activeMQ, Startable.SERVICE_UP, true);
 
         String jmxUrl = activeMQ.getAttribute(UsesJmx.JMX_URL);
         log.info("JMX URL ("+mode+") is "+jmxUrl);


[2/7] incubator-brooklyn git commit: Merge remote-tracking branch 'upstream/master'

Posted by gr...@apache.org.
Merge remote-tracking branch 'upstream/master'


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/862e8d22
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/862e8d22
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/862e8d22

Branch: refs/heads/master
Commit: 862e8d22a9ed5767357f2776c5af3e9a87193a71
Parents: 3c6ba53 791d1f1
Author: Hadrian Zbarcea <ha...@apache.org>
Authored: Wed Nov 26 08:43:48 2014 -0500
Committer: Hadrian Zbarcea <ha...@apache.org>
Committed: Wed Nov 26 08:43:48 2014 -0500

----------------------------------------------------------------------
 api/src/main/java/brooklyn/entity/Feed.java     |   5 +-
 .../main/java/brooklyn/mementos/Memento.java    |   6 +
 .../java/brooklyn/policy/EntityAdjunct.java     |   2 +-
 .../brooklyn/basic/AbstractBrooklynObject.java  |  15 +-
 .../brooklyn/entity/basic/AbstractEntity.java   |  50 ++++--
 .../java/brooklyn/entity/basic/Entities.java    |   3 +-
 .../AbstractBrooklynObjectRebindSupport.java    |   6 +
 .../entity/rebind/RebindManagerImpl.java        |  11 +-
 .../entity/rebind/dto/AbstractMemento.java      |  61 ++++---
 .../entity/rebind/dto/BasicLocationMemento.java |   1 -
 .../entity/rebind/dto/MementosGenerators.java   |   8 +-
 .../java/brooklyn/event/feed/AbstractFeed.java  |  76 +++++---
 .../java/brooklyn/event/feed/FeedConfig.java    |  88 +++++++++
 .../java/brooklyn/event/feed/PollConfig.java    |  16 +-
 .../main/java/brooklyn/event/feed/Poller.java   |  26 ++-
 .../event/feed/function/FunctionFeed.java       |  13 +-
 .../event/feed/function/FunctionPollConfig.java |  21 +++
 .../java/brooklyn/event/feed/http/HttpFeed.java |   6 +
 .../event/feed/http/HttpPollConfig.java         |  10 +-
 .../brooklyn/event/feed/shell/ShellFeed.java    |   6 +
 .../event/feed/shell/ShellPollConfig.java       |   6 +
 .../java/brooklyn/event/feed/ssh/SshFeed.java   |   6 +
 .../brooklyn/event/feed/ssh/SshPollConfig.java  |  12 ++
 .../windows/WindowsPerformanceCounterFeed.java  |   6 +
 .../WindowsPerformanceCounterPollConfig.java    |   6 +-
 .../internal/BrooklynGarbageCollector.java      |  13 +-
 .../policy/basic/AbstractEntityAdjunct.java     |   8 +-
 .../java/brooklyn/policy/basic/AdjunctType.java |  10 +-
 .../brooklyn/util/text/DataUriSchemeParser.java |  28 ++-
 .../brooklyn/util/text/TemplateProcessor.java   |   2 +-
 .../brooklyn/entity/rebind/RebindFeedTest.java  | 178 +++++++++++++++++--
 .../entity/rebind/RebindTestFixture.java        |  40 ++++-
 ...BrooklynMementoPersisterToMultiFileTest.java |   2 +-
 .../event/feed/function/FunctionFeedTest.java   |  34 +++-
 .../brooklyn/event/feed/http/HttpFeedTest.java  |  15 ++
 .../feed/shell/ShellFeedIntegrationTest.java    |  21 +++
 .../event/feed/ssh/SshFeedIntegrationTest.java  |  16 ++
 .../brooklyn/management/ha/HotStandbyTest.java  |  48 ++++-
 .../java/brooklyn/util/ResourceUtilsTest.java   |  10 +-
 .../location/jclouds/JcloudsLocation.java       |   2 +-
 .../entity/monitoring/zabbix/ZabbixFeed.java    |   7 +
 .../monitoring/zabbix/ZabbixPollConfig.java     |   6 +
 .../brooklyn/entity/chef/ChefAttributeFeed.java |   9 +-
 .../entity/chef/ChefAttributePollConfig.java    |   7 +-
 .../event/feed/jmx/JmxAttributePollConfig.java  |   7 +-
 .../java/brooklyn/event/feed/jmx/JmxFeed.java   |   6 +
 .../jmx/JmxNotificationSubscriptionConfig.java  |  14 ++
 .../event/feed/jmx/JmxOperationPollConfig.java  |   4 +
 .../java/brooklyn/util/guava/Functionals.java   |  21 +++
 .../main/java/brooklyn/util/guava/Maybe.java    |  16 ++
 .../java/brooklyn/util/javalang/Equals.java     |  35 ++++
 .../src/main/java/brooklyn/util/net/Urls.java   |  24 +++
 .../main/java/brooklyn/util/text/Strings.java   |  22 +++
 .../brooklyn/util/net/NetworkingUtilsTest.java  |  12 +-
 .../test/java/brooklyn/util/net/UrlsTest.java   |  10 +-
 55 files changed, 943 insertions(+), 150 deletions(-)
----------------------------------------------------------------------



[3/7] incubator-brooklyn git commit: Merge remote-tracking branch 'upstream/master' into amq-broker-name

Posted by gr...@apache.org.
Merge remote-tracking branch 'upstream/master' into amq-broker-name


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/aed21450
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/aed21450
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/aed21450

Branch: refs/heads/master
Commit: aed214502673bf155f10b0334382fc0267d3ff39
Parents: 3c6ba53 dea4a51
Author: Hadrian Zbarcea <ha...@apache.org>
Authored: Fri Nov 28 21:03:37 2014 -0500
Committer: Hadrian Zbarcea <ha...@apache.org>
Committed: Fri Nov 28 21:03:37 2014 -0500

----------------------------------------------------------------------
 api/src/main/java/brooklyn/entity/Feed.java     |   5 +-
 .../brooklyn/management/ManagementContext.java  |   5 +-
 .../main/java/brooklyn/mementos/Memento.java    |   6 +
 .../java/brooklyn/policy/EntityAdjunct.java     |   2 +-
 .../brooklyn/basic/AbstractBrooklynObject.java  |  15 +-
 .../brooklyn/entity/basic/AbstractEntity.java   |  50 ++-
 .../java/brooklyn/entity/basic/Entities.java    |   3 +-
 .../AbstractBrooklynObjectRebindSupport.java    |   6 +
 .../entity/rebind/RebindManagerImpl.java        |  11 +-
 .../entity/rebind/dto/AbstractMemento.java      |  61 ++-
 .../entity/rebind/dto/BasicLocationMemento.java |   1 -
 .../entity/rebind/dto/MementosGenerators.java   |   8 +-
 .../java/brooklyn/event/feed/AbstractFeed.java  |  76 +++-
 .../java/brooklyn/event/feed/FeedConfig.java    |  88 ++++
 .../java/brooklyn/event/feed/PollConfig.java    |  16 +-
 .../main/java/brooklyn/event/feed/Poller.java   |  26 +-
 .../event/feed/function/FunctionFeed.java       |  13 +-
 .../event/feed/function/FunctionPollConfig.java |  21 +
 .../java/brooklyn/event/feed/http/HttpFeed.java |   6 +
 .../event/feed/http/HttpPollConfig.java         |  10 +-
 .../brooklyn/event/feed/shell/ShellFeed.java    |   6 +
 .../event/feed/shell/ShellPollConfig.java       |   6 +
 .../java/brooklyn/event/feed/ssh/SshFeed.java   |   6 +
 .../brooklyn/event/feed/ssh/SshPollConfig.java  |  12 +
 .../windows/WindowsPerformanceCounterFeed.java  |   6 +
 .../WindowsPerformanceCounterPollConfig.java    |   6 +-
 .../location/access/PortForwardManager.java     | 242 ++++++++---
 .../access/PortForwardManagerAuthority.java     | 230 +---------
 .../access/PortForwardManagerClient.java        | 272 +++++++++++-
 .../location/access/PortForwardManagerImpl.java | 430 +++++++++++++++++++
 .../PortForwardManagerLocationResolver.java     |  89 ++++
 .../brooklyn/location/access/PortMapping.java   |  38 +-
 .../basic/AbstractLocationResolver.java         |   2 +-
 .../internal/AbstractManagementContext.java     |   2 +-
 .../internal/BrooklynGarbageCollector.java      |  13 +-
 .../NonDeploymentManagementContext.java         |   1 -
 .../policy/basic/AbstractEntityAdjunct.java     |   8 +-
 .../java/brooklyn/policy/basic/AdjunctType.java |  10 +-
 .../brooklyn/util/text/DataUriSchemeParser.java |  28 +-
 .../brooklyn/util/text/TemplateProcessor.java   |   2 +-
 .../services/brooklyn.location.LocationResolver |   1 +
 .../brooklyn/entity/rebind/RebindFeedTest.java  | 178 +++++++-
 .../entity/rebind/RebindTestFixture.java        |  40 +-
 ...BrooklynMementoPersisterToMultiFileTest.java |   2 +-
 .../event/feed/function/FunctionFeedTest.java   |  34 +-
 .../brooklyn/event/feed/http/HttpFeedTest.java  |  15 +
 .../feed/shell/ShellFeedIntegrationTest.java    |  21 +
 .../event/feed/ssh/SshFeedIntegrationTest.java  |  16 +
 .../PortForwardManagerLocationResolverTest.java |  83 ++++
 .../access/PortForwardManagerRebindTest.java    |  63 ++-
 .../location/access/PortForwardManagerTest.java | 157 +++++++
 .../brooklyn/management/ha/HotStandbyTest.java  |  48 ++-
 .../java/brooklyn/util/ResourceUtilsTest.java   |  10 +-
 docs/dev/build/debugging-remote-brooklyn.md     | 140 ++++++
 docs/dev/code/index.include.md                  |   1 +
 .../location/jclouds/JcloudsLocation.java       |  17 +-
 .../JcloudsPortForwarderExtension.java          |  11 +
 .../entity/monitoring/zabbix/ZabbixFeed.java    |   7 +
 .../monitoring/zabbix/ZabbixPollConfig.java     |   6 +
 .../brooklyn/entity/chef/ChefAttributeFeed.java |   9 +-
 .../entity/chef/ChefAttributePollConfig.java    |   7 +-
 .../java/brooklyn/entity/java/JmxSupport.java   |   7 +-
 .../event/feed/jmx/JmxAttributePollConfig.java  |   7 +-
 .../java/brooklyn/event/feed/jmx/JmxFeed.java   |   6 +
 .../jmx/JmxNotificationSubscriptionConfig.java  |  14 +
 .../event/feed/jmx/JmxOperationPollConfig.java  |   4 +
 .../java/brooklyn/util/guava/Functionals.java   |  21 +
 .../main/java/brooklyn/util/guava/Maybe.java    |  16 +
 .../java/brooklyn/util/javalang/Equals.java     |  35 ++
 .../src/main/java/brooklyn/util/net/Urls.java   |  24 ++
 .../main/java/brooklyn/util/text/Strings.java   |  22 +
 .../brooklyn/util/net/NetworkingUtilsTest.java  |  12 +-
 .../test/java/brooklyn/util/net/UrlsTest.java   |  10 +-
 73 files changed, 2385 insertions(+), 497 deletions(-)
----------------------------------------------------------------------



[4/7] incubator-brooklyn git commit: Merge remote-tracking branch 'upstream/master'

Posted by gr...@apache.org.
Merge remote-tracking branch 'upstream/master'


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/d9326e76
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/d9326e76
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/d9326e76

Branch: refs/heads/master
Commit: d9326e7694fdbd662d5eb6b2d383fa725f1e376b
Parents: 862e8d2 dea4a51
Author: Hadrian Zbarcea <ha...@apache.org>
Authored: Fri Nov 28 21:04:22 2014 -0500
Committer: Hadrian Zbarcea <ha...@apache.org>
Committed: Fri Nov 28 21:04:22 2014 -0500

----------------------------------------------------------------------
 .../brooklyn/management/ManagementContext.java  |   5 +-
 .../location/access/PortForwardManager.java     | 242 ++++++++---
 .../access/PortForwardManagerAuthority.java     | 230 +---------
 .../access/PortForwardManagerClient.java        | 272 +++++++++++-
 .../location/access/PortForwardManagerImpl.java | 430 +++++++++++++++++++
 .../PortForwardManagerLocationResolver.java     |  89 ++++
 .../brooklyn/location/access/PortMapping.java   |  38 +-
 .../basic/AbstractLocationResolver.java         |   2 +-
 .../internal/AbstractManagementContext.java     |   2 +-
 .../NonDeploymentManagementContext.java         |   1 -
 .../services/brooklyn.location.LocationResolver |   1 +
 .../PortForwardManagerLocationResolverTest.java |  83 ++++
 .../access/PortForwardManagerRebindTest.java    |  63 ++-
 .../location/access/PortForwardManagerTest.java | 157 +++++++
 docs/dev/build/debugging-remote-brooklyn.md     | 140 ++++++
 docs/dev/code/index.include.md                  |   1 +
 .../location/jclouds/JcloudsLocation.java       |  15 +-
 .../JcloudsPortForwarderExtension.java          |  11 +
 .../java/brooklyn/entity/java/JmxSupport.java   |   7 +-
 19 files changed, 1442 insertions(+), 347 deletions(-)
----------------------------------------------------------------------



[5/7] incubator-brooklyn git commit: Merge branch 'amq-broker-name'

Posted by gr...@apache.org.
Merge branch 'amq-broker-name'


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/c3c6e3b2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/c3c6e3b2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/c3c6e3b2

Branch: refs/heads/master
Commit: c3c6e3b2eb435f8018b91802c2646b290ee785dc
Parents: d9326e7 aed2145
Author: Hadrian Zbarcea <ha...@apache.org>
Authored: Fri Nov 28 21:04:46 2014 -0500
Committer: Hadrian Zbarcea <ha...@apache.org>
Committed: Fri Nov 28 21:04:46 2014 -0500

----------------------------------------------------------------------

----------------------------------------------------------------------



[7/7] incubator-brooklyn git commit: This closes #359

Posted by gr...@apache.org.
This closes #359

* github/pr/359:
  [BROOKLYN-92] Support for brokerName. Changes suggested by PR reviewer
  [BROOKLYN-92] Configure brokerName for ActiveMQ


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/493c3077
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/493c3077
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/493c3077

Branch: refs/heads/master
Commit: 493c307715a93095906510fd01cf4f23ee76c49b
Parents: 5d1c6b3 039068a
Author: Andrew Kennedy <gr...@apache.org>
Authored: Mon Dec 1 15:57:28 2014 +0000
Committer: Andrew Kennedy <gr...@apache.org>
Committed: Mon Dec 1 15:57:28 2014 +0000

----------------------------------------------------------------------
 .../entity/messaging/activemq/ActiveMQBroker.java   |  5 +++++
 .../messaging/activemq/ActiveMQBrokerImpl.java      |  8 ++++++--
 .../messaging/activemq/ActiveMQDestinationImpl.java | 16 +++++++++++++---
 .../entity/messaging/activemq/ActiveMQDriver.java   |  2 ++
 .../messaging/activemq/ActiveMQQueueImpl.java       |  5 +++--
 .../messaging/activemq/ActiveMQSshDriver.java       |  5 +++++
 .../brooklyn/entity/messaging/activemq/activemq.xml |  2 +-
 .../messaging/activemq/ActiveMQIntegrationTest.java | 16 +++++++++++++++-
 8 files changed, 50 insertions(+), 9 deletions(-)
----------------------------------------------------------------------



[6/7] incubator-brooklyn git commit: [BROOKLYN-92] Support for brokerName. Changes suggested by PR reviewer

Posted by gr...@apache.org.
[BROOKLYN-92] Support for brokerName. Changes suggested by PR reviewer


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/039068a8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/039068a8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/039068a8

Branch: refs/heads/master
Commit: 039068a86a11b0cdfc16b9594f70011e022d1808
Parents: c3c6e3b
Author: Hadrian Zbarcea <ha...@apache.org>
Authored: Fri Nov 28 22:27:11 2014 -0500
Committer: Hadrian Zbarcea <ha...@apache.org>
Committed: Fri Nov 28 22:27:11 2014 -0500

----------------------------------------------------------------------
 .../entity/messaging/activemq/ActiveMQBroker.java    |  4 ++--
 .../messaging/activemq/ActiveMQDestinationImpl.java  | 15 ++++++---------
 .../messaging/activemq/ActiveMQIntegrationTest.java  | 12 ++++++------
 3 files changed, 14 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/039068a8/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBroker.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBroker.java b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBroker.java
index 9eb7c11..6727934 100644
--- a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBroker.java
+++ b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQBroker.java
@@ -57,8 +57,8 @@ public interface ActiveMQBroker extends SoftwareProcess, MessageBroker, UsesJmx,
         "http://www.mirrorservice.org/sites/ftp.apache.org/activemq");
 
     @SetFromFlag("brokerName")
-    public static final AttributeSensorAndConfigKey<String,String> BROKER_NAME = new BasicAttributeSensorAndConfigKey<String>(
-            String.class, "activemq.brokerName", "ActiveMQ Broker Name", "localhost");
+    public static final AttributeSensorAndConfigKey<String,String> BROKER_NAME = 
+        ConfigKeys.newStringSensorAndConfigKey("activemq.brokerName", "ActiveMQ Broker Name", "localhost");
 
     @SetFromFlag("openWirePort")
     public static final PortAttributeSensorAndConfigKey OPEN_WIRE_PORT = new PortAttributeSensorAndConfigKey("openwire.port", "OpenWire port", "61616+");

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/039068a8/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDestinationImpl.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDestinationImpl.java b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDestinationImpl.java
index e5afee5..fb86982 100644
--- a/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDestinationImpl.java
+++ b/software/messaging/src/main/java/brooklyn/entity/messaging/activemq/ActiveMQDestinationImpl.java
@@ -23,6 +23,7 @@ import javax.management.ObjectName;
 
 import com.google.common.base.Preconditions;
 
+import brooklyn.entity.Entity;
 import brooklyn.entity.basic.EntityLocal;
 import brooklyn.entity.messaging.jms.JMSDestinationImpl;
 import brooklyn.event.feed.jmx.JmxFeed;
@@ -33,7 +34,6 @@ public abstract class ActiveMQDestinationImpl extends JMSDestinationImpl impleme
     protected ObjectName brokerMBeanName;
     protected transient JmxHelper jmxHelper;
     protected volatile JmxFeed jmxFeed;
-    protected String brokerName;
 
     public ActiveMQDestinationImpl() {
     }
@@ -41,9 +41,9 @@ public abstract class ActiveMQDestinationImpl extends JMSDestinationImpl impleme
     @Override
     public void onManagementStarting() {
         super.onManagementStarting();
-        
-        getBrokerName();
-        Preconditions.checkNotNull(brokerName, "ActiveMQ broker name must be specified");
+
+        String brokerName = getBrokerName();
+        Preconditions.checkArgument(brokerName != null && !brokerName.isEmpty(), "ActiveMQ brokerName attribute must be specified");
 
         try {
             brokerMBeanName = new ObjectName("org.apache.activemq:type=Broker,brokerName=" + brokerName);
@@ -59,10 +59,7 @@ public abstract class ActiveMQDestinationImpl extends JMSDestinationImpl impleme
     }
     
     protected String getBrokerName() {
-        if (brokerName == null) {
-            EntityLocal parent = (EntityLocal)getParent();
-            brokerName = parent != null ? parent.getAttribute(ActiveMQBroker.BROKER_NAME) : null;
-        }
-        return brokerName;
+        Preconditions.checkNotNull(getParent(), "JMS Destination must have a broker parent");
+        return getParent().getAttribute(ActiveMQBroker.BROKER_NAME);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/039068a8/software/messaging/src/test/java/brooklyn/entity/messaging/activemq/ActiveMQIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/test/java/brooklyn/entity/messaging/activemq/ActiveMQIntegrationTest.java b/software/messaging/src/test/java/brooklyn/entity/messaging/activemq/ActiveMQIntegrationTest.java
index a7cd334..2434fda 100644
--- a/software/messaging/src/test/java/brooklyn/entity/messaging/activemq/ActiveMQIntegrationTest.java
+++ b/software/messaging/src/test/java/brooklyn/entity/messaging/activemq/ActiveMQIntegrationTest.java
@@ -80,7 +80,7 @@ public class ActiveMQIntegrationTest {
         activeMQ = app.createAndManageChild(EntitySpec.create(ActiveMQBroker.class));
 
         activeMQ.start(ImmutableList.of(testLocation));
-        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 60*1000), activeMQ, Startable.SERVICE_UP, true);
+        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 10*60*1000), activeMQ, Startable.SERVICE_UP, true);
         log.info("JMX URL is "+activeMQ.getAttribute(UsesJmx.JMX_URL));
         activeMQ.stop();
         assertFalse(activeMQ.getAttribute(Startable.SERVICE_UP));
@@ -96,7 +96,7 @@ public class ActiveMQIntegrationTest {
             .configure("jmxPort", "11099+"));
        
         activeMQ.start(ImmutableList.of(testLocation));
-        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 60*1000), activeMQ, Startable.SERVICE_UP, true);
+        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 10*60*1000), activeMQ, Startable.SERVICE_UP, true);
         log.info("JMX URL is "+activeMQ.getAttribute(UsesJmx.JMX_URL));
         activeMQ.stop();
         assertFalse(activeMQ.getAttribute(Startable.SERVICE_UP));
@@ -109,7 +109,7 @@ public class ActiveMQIntegrationTest {
             .configure("brokerName", "bridge"));
 
         activeMQ.start(ImmutableList.of(testLocation));
-        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 60*1000), activeMQ, Startable.SERVICE_UP, true);
+        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 10*60*1000), activeMQ, Startable.SERVICE_UP, true);
         log.info("JMX URL is "+activeMQ.getAttribute(UsesJmx.JMX_URL));
         activeMQ.stop();
         assertFalse(activeMQ.getAttribute(Startable.SERVICE_UP));
@@ -122,11 +122,11 @@ public class ActiveMQIntegrationTest {
         ActiveMQBroker activeMQ2 = app.createAndManageChild(EntitySpec.create(ActiveMQBroker.class));
 
         activeMQ1.start(ImmutableList.of(testLocation));
-        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 60*1000), activeMQ1, Startable.SERVICE_UP, true);
+        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 10*60*1000), activeMQ1, Startable.SERVICE_UP, true);
         log.info("JMX URL is "+activeMQ1.getAttribute(UsesJmx.JMX_URL));
 
         activeMQ2.start(ImmutableList.of(testLocation));
-        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 60*1000), activeMQ2, Startable.SERVICE_UP, true);
+        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 10*60*1000), activeMQ2, Startable.SERVICE_UP, true);
         log.info("JMX URL is "+activeMQ2.getAttribute(UsesJmx.JMX_URL));
     }
 
@@ -177,7 +177,7 @@ public class ActiveMQIntegrationTest {
             .configure(UsesJmx.JMX_AGENT_MODE, mode));
         
         activeMQ.start(ImmutableList.of(testLocation));
-        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 60*1000), activeMQ, Startable.SERVICE_UP, true);
+        EntityTestUtils.assertAttributeEqualsEventually(ImmutableMap.of("timeout", 10*60*1000), activeMQ, Startable.SERVICE_UP, true);
 
         String jmxUrl = activeMQ.getAttribute(UsesJmx.JMX_URL);
         log.info("JMX URL ("+mode+") is "+jmxUrl);