You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2014/11/14 00:12:47 UTC

[1/8] incubator-brooklyn git commit: Fix MemoryUsageTrackerTest

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 6791d51d4 -> 8e0e1b4aa


Fix MemoryUsageTrackerTest

- was non-deterministic (asserting memory usage immediately, before
  listener had been called by GC)


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

Branch: refs/heads/master
Commit: eb57557146b371ad0745d6d1c271a3ecd33a6c6b
Parents: 374a9db
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 13 10:56:17 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 13 23:04:25 2014 +0000

----------------------------------------------------------------------
 .../util/javalang/MemoryUsageTrackerTest.java   | 42 +++++++++++++++-----
 1 file changed, 32 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/eb575571/utils/common/src/test/java/brooklyn/util/javalang/MemoryUsageTrackerTest.java
----------------------------------------------------------------------
diff --git a/utils/common/src/test/java/brooklyn/util/javalang/MemoryUsageTrackerTest.java b/utils/common/src/test/java/brooklyn/util/javalang/MemoryUsageTrackerTest.java
index 24f101b..747abc5 100644
--- a/utils/common/src/test/java/brooklyn/util/javalang/MemoryUsageTrackerTest.java
+++ b/utils/common/src/test/java/brooklyn/util/javalang/MemoryUsageTrackerTest.java
@@ -20,35 +20,57 @@ package brooklyn.util.javalang;
 
 import java.util.List;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
+import brooklyn.test.Asserts;
 import brooklyn.util.collections.MutableList;
 import brooklyn.util.guava.Maybe;
 import brooklyn.util.text.Strings;
 
 public class MemoryUsageTrackerTest {
 
+    private static final Logger LOG = LoggerFactory.getLogger(MemoryUsageTrackerTest.class);
+
     @Test(groups="Integration")
     public void testBigUsage() {
+        final int ALLOCATION_CHUNK_SIZE = 10*1000*1000; // 10MB
+        
+        // Don't just use runtime.maxMemory()*2; javadoc says:
+        //     If there is no inherent limit then the value java.lang.Long.MAX_VALUE will be returned.
+        // Therefore cap at 10GB.
+        final long MAX_MEMORY_CAP = 10*1024*1024*1024L; // 10GB
+        final long maxMemory = Math.min(Runtime.getRuntime().maxMemory(), MAX_MEMORY_CAP);
+        
         List<Maybe<byte[]>> references = MutableList.of();
         long created = 0;
-        while (created < 2*Runtime.getRuntime().maxMemory()) {
-            byte d[] = new byte[1000000];
+        while (created < 2*maxMemory) {
+            byte d[] = new byte[ALLOCATION_CHUNK_SIZE];
             references.add(Maybe.soft(d));
             MemoryUsageTracker.SOFT_REFERENCES.track(d, d.length);
             created += d.length;
             
-            System.out.println("created "+Strings.makeSizeString(created) +
-                " ... in use: "+Strings.makeSizeString(Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory())+" / " +
-                Strings.makeSizeString(Runtime.getRuntime().totalMemory()) +
-                " ... reclaimable: "+Strings.makeSizeString(MemoryUsageTracker.SOFT_REFERENCES.getBytesUsed()) +
-                " ... live refs: "+Strings.makeSizeString(sizeOfActiveReferences(references)));
+            long totalMemory = Runtime.getRuntime().totalMemory();
+            long freeMemory = Runtime.getRuntime().freeMemory();
             
-            assertLessThan(MemoryUsageTracker.SOFT_REFERENCES.getBytesUsed(), Runtime.getRuntime().maxMemory());
-            assertLessThan(MemoryUsageTracker.SOFT_REFERENCES.getBytesUsed(), Runtime.getRuntime().totalMemory());
-            assertLessThan(MemoryUsageTracker.SOFT_REFERENCES.getBytesUsed(), Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory());
+            LOG.info("created "+Strings.makeSizeString(created) +
+                " ... in use: "+Strings.makeSizeString(totalMemory - freeMemory)+" / " +
+                Strings.makeSizeString(totalMemory) +
+                " ... reclaimable: "+Strings.makeSizeString(MemoryUsageTracker.SOFT_REFERENCES.getBytesUsed()) +
+                " ... live refs: "+Strings.makeSizeString(sizeOfActiveReferences(references)) +
+                " ... maxMem="+maxMemory+"; totalMem="+totalMemory+"; usedMem="+(totalMemory-freeMemory));
         }
+        
+        Asserts.succeedsEventually(new Runnable() {
+            public void run() {
+                long totalMemory = Runtime.getRuntime().totalMemory();
+                long freeMemory = Runtime.getRuntime().freeMemory();
+                assertLessThan(MemoryUsageTracker.SOFT_REFERENCES.getBytesUsed(), maxMemory);
+                assertLessThan(MemoryUsageTracker.SOFT_REFERENCES.getBytesUsed(), totalMemory);
+                assertLessThan(MemoryUsageTracker.SOFT_REFERENCES.getBytesUsed(), totalMemory - freeMemory);
+            }});
     }
 
     private long sizeOfActiveReferences(List<Maybe<byte[]>> references) {


[5/8] incubator-brooklyn git commit: BROOKLYN-85: fix FixedListMachineProvisioningLocationTest

Posted by al...@apache.org.
BROOKLYN-85: fix FixedListMachineProvisioningLocationTest


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

Branch: refs/heads/master
Commit: 3a98a9a12252371875f7b0636f24c7da370dab88
Parents: 716ca46
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 13 13:19:51 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 13 23:10:04 2014 +0000

----------------------------------------------------------------------
 .../location/basic/FixedListMachineProvisioningLocationTest.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3a98a9a1/core/src/test/java/brooklyn/location/basic/FixedListMachineProvisioningLocationTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/location/basic/FixedListMachineProvisioningLocationTest.java b/core/src/test/java/brooklyn/location/basic/FixedListMachineProvisioningLocationTest.java
index 93baa0c..72ec433 100644
--- a/core/src/test/java/brooklyn/location/basic/FixedListMachineProvisioningLocationTest.java
+++ b/core/src/test/java/brooklyn/location/basic/FixedListMachineProvisioningLocationTest.java
@@ -219,7 +219,7 @@ public class FixedListMachineProvisioningLocationTest {
 
         // So no machines left; cannot re-obtain
         try {
-            SshMachineLocation obtained2 = provisioner2.obtain();
+            SshMachineLocation obtained2 = provisioner.obtain();
             fail("obtained="+obtained2);
         } catch (NoMachinesAvailableException e) {
             // success


[6/8] incubator-brooklyn git commit: Fix SshCommandIntegrationTest

Posted by al...@apache.org.
Fix SshCommandIntegrationTest

- Change sensor period to 100ms, from default 5 mins.
  Otherwise if first poll happens before serviceUp=true, it will
  timeout in 30 seconds without a second poll.


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

Branch: refs/heads/master
Commit: 4de878ccc4723ecf27069ff6b177576355bc1b98
Parents: d21654c
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 13 12:48:59 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 13 23:10:04 2014 +0000

----------------------------------------------------------------------
 .../software/ssh/SshCommandIntegrationTest.java     | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/4de878cc/software/base/src/test/java/brooklyn/entity/software/ssh/SshCommandIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/brooklyn/entity/software/ssh/SshCommandIntegrationTest.java b/software/base/src/test/java/brooklyn/entity/software/ssh/SshCommandIntegrationTest.java
index 09af6c2..c3358f2 100644
--- a/software/base/src/test/java/brooklyn/entity/software/ssh/SshCommandIntegrationTest.java
+++ b/software/base/src/test/java/brooklyn/entity/software/ssh/SshCommandIntegrationTest.java
@@ -36,11 +36,13 @@ import brooklyn.entity.proxying.EntitySpec;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.basic.Sensors;
 import brooklyn.location.Location;
-import brooklyn.test.Asserts;
+import brooklyn.location.basic.SshMachineLocation;
+import brooklyn.test.EntityTestUtils;
 import brooklyn.test.entity.TestApplication;
 import brooklyn.test.entity.TestEntity;
 import brooklyn.util.collections.MutableMap;
 import brooklyn.util.config.ConfigBag;
+import brooklyn.util.time.Duration;
 
 import com.google.common.collect.ImmutableList;
 
@@ -51,12 +53,14 @@ public class SshCommandIntegrationTest {
     final static Effector<String> EFFECTOR_SAY_HI = Effectors.effector(String.class, "sayHi").buildAbstract();
 
     private TestApplication app;
+    private SshMachineLocation machine;
     private EntityLocal entity;
     
     @BeforeMethod(alwaysRun=true)
     public void setUp() throws Exception {
         app = TestApplication.Factory.newManagedInstanceForTests();
-        entity = app.createAndManageChild(EntitySpec.create(TestEntity.class).location(app.newLocalhostProvisioningLocation().obtain()));
+        machine = app.newLocalhostProvisioningLocation().obtain();
+        entity = app.createAndManageChild(EntitySpec.create(TestEntity.class).location(machine));
         app.start(ImmutableList.<Location>of());
     }
 
@@ -70,18 +74,14 @@ public class SshCommandIntegrationTest {
         File tempFile = File.createTempFile("testSshCommand", "txt");
         tempFile.deleteOnExit();
         new SshCommandSensor<String>(ConfigBag.newInstance()
+                .configure(SshCommandSensor.SENSOR_PERIOD, Duration.millis(100))
                 .configure(SshCommandSensor.SENSOR_NAME, SENSOR_STRING.getName())
                 .configure(SshCommandSensor.SENSOR_COMMAND, "echo foo > "+tempFile.getAbsolutePath()+"\n"
                     + "wc "+tempFile.getAbsolutePath()))
             .apply(entity);
         entity.setAttribute(Attributes.SERVICE_UP, true);
 
-        Asserts.succeedsEventually(new Runnable() {
-            public void run() {
-                String val = entity.getAttribute(SENSOR_STRING);
-                assertTrue(val != null);
-            }});
-        String val = entity.getAttribute(SENSOR_STRING);
+        String val = EntityTestUtils.assertAttributeEventuallyNonNull(entity, SENSOR_STRING);
         assertTrue(val.contains("1"), "val="+val);
         String[] counts = val.trim().split("\\s+");
         Assert.assertEquals(counts.length, 4, "val="+val);


[4/8] incubator-brooklyn git commit: BROOKLYN-83: fix SensorResourceTest

Posted by al...@apache.org.
BROOKLYN-83: fix SensorResourceTest

- On getting a sensor, if no "Accepts" header is given, then we don't
  control whether json or plain text comes back.
  It is dependent on the method order, which is compiler-specific.
- Therefore delete the test that gave no Accepts and then asserted
  it was json.


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

Branch: refs/heads/master
Commit: 716ca46546e81b9eaf7e4a6f5c338ff9e307d595
Parents: 1cb9871
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 13 12:58:55 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 13 23:10:04 2014 +0000

----------------------------------------------------------------------
 .../rest/resources/SensorResourceTest.java      | 27 +++++++++-----------
 1 file changed, 12 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/716ca465/usage/rest-server/src/test/java/brooklyn/rest/resources/SensorResourceTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/resources/SensorResourceTest.java b/usage/rest-server/src/test/java/brooklyn/rest/resources/SensorResourceTest.java
index 564435d..bb80035 100644
--- a/usage/rest-server/src/test/java/brooklyn/rest/resources/SensorResourceTest.java
+++ b/usage/rest-server/src/test/java/brooklyn/rest/resources/SensorResourceTest.java
@@ -163,14 +163,12 @@ public class SensorResourceTest extends BrooklynRestResourceTest {
         return response;
     }
     
-    /** Check we can get a sensor, and it defaults is to non-raw json, that is a string picking up the rendering hint */
-    @Test
-    public void testGet() throws Exception {
-        // the double quotes are here because getEntity(String) does not parse json
-        doSensorTest(null, null, "\"12345 frogs\"");
-    }
-
-    /** Same as {@link #testGet()}, but explicitly requesting json should give json */
+    /**
+     * Check we can get a sensor, explicitly requesting json; gives a string picking up the rendering hint.
+     * 
+     * If no "Accepts" header is given, then we don't control whether json or plain text comes back.
+     * It is dependent on the method order, which is compiler-specific.
+     */
     @Test
     public void testGetJson() throws Exception {
         doSensorTest(null, MediaType.APPLICATION_JSON_TYPE, "\"12345 frogs\"");
@@ -190,13 +188,12 @@ public class SensorResourceTest extends BrooklynRestResourceTest {
         doSensorTest(null, MediaType.TEXT_PLAIN_TYPE, "12345 frogs");
     }
 
-    /** Check setting {@code raw} to {@code true} when we get ignores display value hint */
-    @Test
-    public void testGetRaw() throws Exception {
-        doSensorTest(true, null, 12345);
-    }
-    
-    /** As {@link #testGetRaw()} with json explicitly set (is the same) */
+    /** 
+     * Check that when we set {@code raw = true}, the result ignores the display value hint.
+     *
+     * If no "Accepts" header is given, then we don't control whether json or plain text comes back.
+     * It is dependent on the method order, which is compiler-specific.
+     */
     @Test
     public void testGetRawJson() throws Exception {
         doSensorTest(true, MediaType.APPLICATION_JSON_TYPE, 12345);


[3/8] incubator-brooklyn git commit: Fix yaml use of SshCommandSensor

Posted by al...@apache.org.
Fix yaml use of SshCommandSensor

- Was causing failure of VanillaBashNetcatYamlTest
- SshCommandSensor constructor expects ConfigBag, rather than Map.
- Change BrooklynYamlTypeInstantiator.newInstance to look for a
  <init>(ConfigBag) constructor as well.
- Fix `Class AddSensor.getType("String")` so it tries prepending
  "java.lang." as well
- set poll period to 100ms in yaml (instead of default 5 minutes)


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

Branch: refs/heads/master
Commit: d21654cc88300fe62d8d39ed274a69cfb0e10f86
Parents: eb57557
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 13 12:26:37 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 13 23:10:03 2014 +0000

----------------------------------------------------------------------
 .../java/brooklyn/entity/effector/AddSensor.java  | 18 +++++++++++++-----
 .../creation/BrooklynYamlTypeInstantiator.java    |  7 +++++++
 .../camp/brooklyn/VanillaBashNetcatYamlTest.java  |  4 ++--
 .../resources/vanilla-bash-netcat-w-client.yaml   |  2 ++
 4 files changed, 24 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d21654cc/core/src/main/java/brooklyn/entity/effector/AddSensor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/effector/AddSensor.java b/core/src/main/java/brooklyn/entity/effector/AddSensor.java
index 49c191e..9e80b45 100644
--- a/core/src/main/java/brooklyn/entity/effector/AddSensor.java
+++ b/core/src/main/java/brooklyn/entity/effector/AddSensor.java
@@ -47,7 +47,7 @@ public class AddSensor<T> implements EntityInitializer {
 
     public static final ConfigKey<String> SENSOR_NAME = ConfigKeys.newStringConfigKey("name", "The name of the sensor to create");
     public static final ConfigKey<Duration> SENSOR_PERIOD = ConfigKeys.newConfigKey(Duration.class, "period", "Period, including units e.g. 1m or 5s or 200ms; default 5 minutes", Duration.FIVE_MINUTES);
-    public static final ConfigKey<String> SENSOR_TYPE = ConfigKeys.newStringConfigKey("targetType", "Target type for the value; default String", "String");
+    public static final ConfigKey<String> SENSOR_TYPE = ConfigKeys.newStringConfigKey("targetType", "Target type for the value; default String", "java.lang.String");
 
     protected final String name;
     protected final Duration period;
@@ -76,14 +76,22 @@ public class AddSensor<T> implements EntityInitializer {
         return Sensors.newSensor(clazz, name);
     }
 
+    @SuppressWarnings("unchecked")
     protected Class<T> getType(String className) {
-        Class<T> clazz = null;
         try {
-            clazz = (Class<T>) Class.forName(className);
+            return (Class<T>) Class.forName(className);
         } catch (ClassNotFoundException e) {
-            throw new IllegalArgumentException("Invalid target type for sensor "+name+": " + className);
+            if (!className.contains(".")) {
+                // could be assuming "java.lang" package; try again with that
+                try {
+                    return (Class<T>) Class.forName("java.lang."+className);
+                } catch (ClassNotFoundException e2) {
+                    throw new IllegalArgumentException("Invalid target type for sensor "+name+": " + className+" (also tried java.lang."+className+")");
+                }
+            } else {
+                throw new IllegalArgumentException("Invalid target type for sensor "+name+": " + className);
+            }
         }
-        return clazz;
     }
 
     protected String getFullClassName(String className) {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d21654cc/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlTypeInstantiator.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlTypeInstantiator.java b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlTypeInstantiator.java
index 6046491..2cde40e 100644
--- a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlTypeInstantiator.java
+++ b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlTypeInstantiator.java
@@ -131,11 +131,18 @@ public abstract class BrooklynYamlTypeInstantiator {
             Optional<? extends T> result = Reflections.invokeConstructorWithArgs(type, cfg);
             if (result.isPresent()) 
                 return result.get();
+            
+            ConfigBag cfgBag = ConfigBag.newInstance(cfg);
+            result = Reflections.invokeConstructorWithArgs(type, cfgBag);
+            if (result.isPresent()) 
+                return result.get();
+            
             if (cfg.isEmpty()) {
                 result = Reflections.invokeConstructorWithArgs(type);
                 if (result.isPresent()) 
                     return result.get();
             }
+            
             throw new IllegalStateException("No known mechanism for constructing type "+type+" in "+factory.contextForLogging);
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d21654cc/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/VanillaBashNetcatYamlTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/VanillaBashNetcatYamlTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/VanillaBashNetcatYamlTest.java
index 336b5fc..dd1b647 100644
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/VanillaBashNetcatYamlTest.java
+++ b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/VanillaBashNetcatYamlTest.java
@@ -82,7 +82,7 @@ public class VanillaBashNetcatYamlTest extends AbstractYamlTest {
         // and check we get the right result 
         EntityTestUtils.assertAttributeEventually(netcat, SENSOR_OUTPUT_ALL, StringPredicates.containsLiteral("hi netcat"));
         log.info("invoked ping from "+pinger+" to "+netcat+", 'all' sensor shows:\n"+
-            netcat.getAttribute(SENSOR_OUTPUT_ALL));
+                netcat.getAttribute(SENSOR_OUTPUT_ALL));
 
         // netcat should now fail and restart
         EntityTestUtils.assertAttributeEventually(netcat, Attributes.SERVICE_STATE_ACTUAL, Predicates.not(Predicates.equalTo(Lifecycle.RUNNING)));
@@ -96,7 +96,7 @@ public class VanillaBashNetcatYamlTest extends AbstractYamlTest {
         // checking right result
         EntityTestUtils.assertAttributeEventually(netcat, SENSOR_OUTPUT_ALL, StringPredicates.containsLiteral("yo yo yo"));
         log.info("invoked ping again from "+pinger+" to "+netcat+", 'all' sensor shows:\n"+
-            netcat.getAttribute(SENSOR_OUTPUT_ALL));
+                netcat.getAttribute(SENSOR_OUTPUT_ALL));
         
         // and it's propagated to the app
         EntityTestUtils.assertAttributeEventually(app, Sensors.newStringSensor("output.last"), StringPredicates.containsLiteral("yo yo yo"));

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/d21654cc/usage/camp/src/test/resources/vanilla-bash-netcat-w-client.yaml
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/resources/vanilla-bash-netcat-w-client.yaml b/usage/camp/src/test/resources/vanilla-bash-netcat-w-client.yaml
index 174a38c..9c12eee 100644
--- a/usage/camp/src/test/resources/vanilla-bash-netcat-w-client.yaml
+++ b/usage/camp/src/test/resources/vanilla-bash-netcat-w-client.yaml
@@ -51,11 +51,13 @@ services:
     brooklyn.config:
       name: output.last
       command: tail -1 server-input
+      period: 100ms
       
   - type: brooklyn.entity.software.ssh.SshCommandSensor
     brooklyn.config:
       name: output.all
       command: cat server-input
+      period: 100ms
 
 # a client to hit netcat
 - type: brooklyn.entity.basic.VanillaSoftwareProcess


[2/8] incubator-brooklyn git commit: Fix ApplicationResourceIntegrationTest

Posted by al...@apache.org.
Fix ApplicationResourceIntegrationTest

- can get back json or plain string from
  client().resource(stateSensor).get(String.class);
  accept either


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

Branch: refs/heads/master
Commit: 374a9db8f4589c39dc6e85cbf0ab1d0f1533657f
Parents: 6791d51
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 13 10:55:21 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 13 23:04:25 2014 +0000

----------------------------------------------------------------------
 .../resources/ApplicationResourceIntegrationTest.java    | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/374a9db8/usage/rest-server/src/test/java/brooklyn/rest/resources/ApplicationResourceIntegrationTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/resources/ApplicationResourceIntegrationTest.java b/usage/rest-server/src/test/java/brooklyn/rest/resources/ApplicationResourceIntegrationTest.java
index 955e592..88b7b8d 100644
--- a/usage/rest-server/src/test/java/brooklyn/rest/resources/ApplicationResourceIntegrationTest.java
+++ b/usage/rest-server/src/test/java/brooklyn/rest/resources/ApplicationResourceIntegrationTest.java
@@ -61,7 +61,7 @@ public class ApplicationResourceIntegrationTest extends BrooklynRestResourceTest
             .build();
 
     @Test(groups="Integration")
-    public void testDeployRedisApplication() throws InterruptedException, TimeoutException {
+    public void testDeployRedisApplication() throws Exception {
         ClientResponse response = clientDeploy(redisSpec);
 
         assertEquals(response.getStatus(), 201);
@@ -101,16 +101,19 @@ public class ApplicationResourceIntegrationTest extends BrooklynRestResourceTest
     }
 
     @Test(groups="Integration", dependsOnMethods = { "testListSensorsRedis", "testListEntities" })
-    public void testTriggerRedisStopEffector() throws InterruptedException {
+    public void testTriggerRedisStopEffector() throws Exception {
         ClientResponse response = client().resource("/v1/applications/redis-app/entities/redis-ent/effectors/stop")
                 .type(MediaType.APPLICATION_JSON_TYPE)
                 .post(ClientResponse.class, ImmutableMap.of());
         assertEquals(response.getStatus(), Response.Status.ACCEPTED.getStatusCode());
 
         final URI stateSensor = URI.create("/v1/applications/redis-app/entities/redis-ent/sensors/service.state");
-        final String expectedStatus = String.format("\"%s\"", Lifecycle.STOPPED.toString());
+        final String expectedStatus = Lifecycle.STOPPED.toString();
         Asserts.succeedsEventually(MutableMap.of("timeout", 60 * 1000), new Runnable() {
             public void run() {
+                // Accept with and without quotes; if don't specify "Accepts" header, then
+                // might get back json or plain text (depending on compiler / java runtime 
+                // used for SensorApi!)
                 String val = client().resource(stateSensor).get(String.class);
                 assertTrue(expectedStatus.equalsIgnoreCase(val) || ("\""+expectedStatus+"\"").equalsIgnoreCase(val), "state="+val);
             }
@@ -118,7 +121,7 @@ public class ApplicationResourceIntegrationTest extends BrooklynRestResourceTest
     }
 
     @Test(groups="Integration", dependsOnMethods = "testTriggerRedisStopEffector" )
-    public void testDeleteRedisApplication() throws TimeoutException, InterruptedException {
+    public void testDeleteRedisApplication() throws Exception {
         int size = getManagementContext().getApplications().size();
         ClientResponse response = client().resource("/v1/applications/redis-app")
                 .delete(ClientResponse.class);


[7/8] incubator-brooklyn git commit: Fix HttpRequestSensorTest.testHttpSensor

Posted by al...@apache.org.
Fix HttpRequestSensorTest.testHttpSensor

- Change sensor period to 100ms, from default 5 mins.
  Otherwise if first poll happens before serviceUp=true, it will
  timeout in 30 seconds without a second poll.


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

Branch: refs/heads/master
Commit: 1cb987194411106460838d1b18d88dd4c11aeabf
Parents: 4de878c
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 13 12:50:40 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 13 23:10:04 2014 +0000

----------------------------------------------------------------------
 .../brooklyn/entity/software/http/HttpRequestSensorTest.java     | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1cb98719/software/base/src/test/java/brooklyn/entity/software/http/HttpRequestSensorTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/brooklyn/entity/software/http/HttpRequestSensorTest.java b/software/base/src/test/java/brooklyn/entity/software/http/HttpRequestSensorTest.java
index 04d64e0..db26223 100644
--- a/software/base/src/test/java/brooklyn/entity/software/http/HttpRequestSensorTest.java
+++ b/software/base/src/test/java/brooklyn/entity/software/http/HttpRequestSensorTest.java
@@ -33,6 +33,7 @@ import brooklyn.test.EntityTestUtils;
 import brooklyn.test.entity.TestApplication;
 import brooklyn.test.entity.TestEntity;
 import brooklyn.util.config.ConfigBag;
+import brooklyn.util.time.Duration;
 
 import com.google.common.collect.ImmutableList;
 
@@ -59,11 +60,12 @@ public class HttpRequestSensorTest {
     @Test(groups="Integration")
     public void testHttpSensor() throws Exception {
         HttpRequestSensor<Integer> sensor = new HttpRequestSensor<Integer>(ConfigBag.newInstance()
+                .configure(HttpRequestSensor.SENSOR_PERIOD, Duration.millis(100))
                 .configure(HttpRequestSensor.SENSOR_NAME, SENSOR_STRING.getName())
                 .configure(HttpRequestSensor.SENSOR_TYPE, TARGET_TYPE)
                 .configure(HttpRequestSensor.JSON_PATH, "$.myKey")
                 .configure(HttpRequestSensor.SENSOR_URI, "http://echo.jsontest.com/myKey/myValue"));
-            sensor.apply(entity);
+        sensor.apply(entity);
         entity.setAttribute(Attributes.SERVICE_UP, true);
 
         EntityTestUtils.assertAttributeEqualsEventually(entity, SENSOR_STRING, "myValue");


[8/8] incubator-brooklyn git commit: This closes #326

Posted by al...@apache.org.
This closes #326


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

Branch: refs/heads/master
Commit: 8e0e1b4aae5c843d528ab5e3d716866a6ed907aa
Parents: 6791d51 3a98a9a
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 13 23:12:31 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 13 23:12:31 2014 +0000

----------------------------------------------------------------------
 .../brooklyn/entity/effector/AddSensor.java     | 18 ++++++---
 ...ixedListMachineProvisioningLocationTest.java |  2 +-
 .../software/http/HttpRequestSensorTest.java    |  4 +-
 .../software/ssh/SshCommandIntegrationTest.java | 16 ++++----
 .../creation/BrooklynYamlTypeInstantiator.java  |  7 ++++
 .../brooklyn/VanillaBashNetcatYamlTest.java     |  4 +-
 .../resources/vanilla-bash-netcat-w-client.yaml |  2 +
 .../ApplicationResourceIntegrationTest.java     | 11 +++--
 .../rest/resources/SensorResourceTest.java      | 27 ++++++-------
 .../util/javalang/MemoryUsageTrackerTest.java   | 42 +++++++++++++++-----
 10 files changed, 87 insertions(+), 46 deletions(-)
----------------------------------------------------------------------