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 2016/11/11 09:50:17 UTC

[1/8] brooklyn-server git commit: Fix integration tests in brooklyn-core

Repository: brooklyn-server
Updated Branches:
  refs/heads/master dff428e52 -> 1caa48ff2


Fix integration tests in brooklyn-core


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

Branch: refs/heads/master
Commit: b714516a57eabf4ef50d41ae8c3de9f5b93ffdc8
Parents: 70f2950
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Mon Nov 7 19:13:00 2016 +0200
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Thu Nov 10 18:06:45 2016 +0200

----------------------------------------------------------------------
 .../geo/external-ip-address-resolvers.txt       |  3 ++-
 .../entity/RecordingSensorEventListener.java    |  4 ++++
 .../brooklyn/enricher/stock/EnrichersTest.java  | 22 +++++++++++++-------
 .../java/org/apache/brooklyn/test/Asserts.java  |  4 +++-
 .../util/javalang/MemoryUsageTrackerTest.java   |  1 +
 5 files changed, 25 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b714516a/core/src/main/resources/org/apache/brooklyn/location/geo/external-ip-address-resolvers.txt
----------------------------------------------------------------------
diff --git a/core/src/main/resources/org/apache/brooklyn/location/geo/external-ip-address-resolvers.txt b/core/src/main/resources/org/apache/brooklyn/location/geo/external-ip-address-resolvers.txt
index 693114a..c51b394 100644
--- a/core/src/main/resources/org/apache/brooklyn/location/geo/external-ip-address-resolvers.txt
+++ b/core/src/main/resources/org/apache/brooklyn/location/geo/external-ip-address-resolvers.txt
@@ -18,7 +18,8 @@
 http://jsonip.com/
 http://myip.dnsomatic.com/
 http://checkip.dyndns.org/
-http://wtfismyip.com/text
+# Uses Let's Encrypt certificate supported only in Java 8u101+
+# https://wtfismyip.com/text
 http://whatismyip.akamai.com/
 http://myip.wampdeveloper.com/
 http://icanhazip.com/

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b714516a/core/src/test/java/org/apache/brooklyn/core/entity/RecordingSensorEventListener.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/RecordingSensorEventListener.java b/core/src/test/java/org/apache/brooklyn/core/entity/RecordingSensorEventListener.java
index f5384b2..e0c4ed0 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/RecordingSensorEventListener.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/RecordingSensorEventListener.java
@@ -126,4 +126,8 @@ public class RecordingSensorEventListener<T> implements SensorEventListener<T>,
         }
     }
 
+    @Override
+    public String toString() {
+        return getClass().getSimpleName() + "[size=" + getEvents().size() + "; events=" + getEvents() + "]";
+    }
 }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b714516a/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java b/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java
index e20664b..4e6c87e 100644
--- a/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java
+++ b/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java
@@ -18,6 +18,9 @@
  */
 package org.apache.brooklyn.enricher.stock;
 
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+
 import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
@@ -185,7 +188,7 @@ public class EnrichersTest extends BrooklynAppUnitTestSupport {
     }
 
     @Test(groups="Integration") // because takes a second
-    public void testTransformingRespectsUnchangedButWillRepublish() {
+    public void testTransformingRespectsUnchangedButWillRepublish() throws Exception {
         RecordingSensorEventListener<String> record = new RecordingSensorEventListener<>();
         app.getManagementContext().getSubscriptionManager().subscribe(entity, STR2, record);
         
@@ -197,21 +200,26 @@ public class EnrichersTest extends BrooklynAppUnitTestSupport {
                             return ("ignoredval".equals(input)) ? Entities.UNCHANGED : input;
                         }})
                 .build());
-        Asserts.assertThat(record.getEvents(), CollectionFunctionals.sizeEquals(0));
+        // check notifyOfInitialValue (set in Transformer) is null
+        Asserts.eventually(Suppliers.ofInstance(record), CollectionFunctionals.sizeEquals(1));
+        SensorEvent<String> initialEvent = Iterables.getOnlyElement(record);
+        assertEquals(initialEvent.getSensor(), STR2);
+        assertNull(initialEvent.getValue());
 
         entity.sensors().set(STR1, "myval");
-        Asserts.eventually(Suppliers.ofInstance(record), CollectionFunctionals.sizeEquals(1));
-        EntityAsserts.assertAttributeEquals(entity, STR2, "myval");
+        Asserts.eventually(Suppliers.ofInstance(record), CollectionFunctionals.sizeEquals(2));
+        EntityAsserts.assertAttributeEqualsEventually(entity, STR2, "myval");
 
         entity.sensors().set(STR1, "ignoredval");
         EntityAsserts.assertAttributeEqualsContinually(entity, STR2, "myval");
 
         entity.sensors().set(STR1, "myval2");
-        Asserts.eventually(Suppliers.ofInstance(record), CollectionFunctionals.sizeEquals(2));
-        EntityAsserts.assertAttributeEquals(entity, STR2, "myval2");
+        Asserts.eventually(Suppliers.ofInstance(record), CollectionFunctionals.sizeEquals(3));
+        EntityAsserts.assertAttributeEqualsEventually(entity, STR2, "myval2");
 
         entity.sensors().set(STR1, "myval2");
-        entity.sensors().set(STR1, "myval2");
+        // Duplicate values still trigger change events
+        // entity.sensors().set(STR1, "myval2");
         entity.sensors().set(STR1, "myval3");
         Asserts.eventually(Suppliers.ofInstance(record), CollectionFunctionals.sizeEquals(5));
     }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b714516a/utils/common/src/main/java/org/apache/brooklyn/test/Asserts.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/test/Asserts.java b/utils/common/src/main/java/org/apache/brooklyn/test/Asserts.java
index 21a1b53..a4717e2 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/test/Asserts.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/test/Asserts.java
@@ -951,6 +951,7 @@ public class Asserts {
                     }
                     lastException = null;
                 } catch(Throwable e) {
+                    Exceptions.propagateIfInterrupt(e);
                     lastException = e;
                     if (log.isTraceEnabled()) log.trace("Attempt {} after {} ms: {}", new Object[] {attempt, System.currentTimeMillis() - startTime, e.getMessage()});
                     if (abortOnException) throw e;
@@ -966,10 +967,11 @@ public class Asserts {
                 throw lastException;
             throw fail("invalid results; last was: "+result);
         } catch (Throwable t) {
+            Exceptions.propagateIfInterrupt(t);
             if (logException) log.info("failed succeeds-eventually, "+attempt+" attempts, "+
                     (System.currentTimeMillis()-startTime)+"ms elapsed "+
                     "(rethrowing): "+t);
-            throw Exceptions.propagateAnnotated("failed succeeds-eventually, "+attempt+" attempts, "+
+            throw new AssertionError("failed succeeds-eventually, "+attempt+" attempts, "+
                 (System.currentTimeMillis()-startTime)+"ms elapsed: "+Exceptions.collapseText(t), t);
         }
     }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b714516a/utils/common/src/test/java/org/apache/brooklyn/util/javalang/MemoryUsageTrackerTest.java
----------------------------------------------------------------------
diff --git a/utils/common/src/test/java/org/apache/brooklyn/util/javalang/MemoryUsageTrackerTest.java b/utils/common/src/test/java/org/apache/brooklyn/util/javalang/MemoryUsageTrackerTest.java
index f5b61dc..e80f08d 100644
--- a/utils/common/src/test/java/org/apache/brooklyn/util/javalang/MemoryUsageTrackerTest.java
+++ b/utils/common/src/test/java/org/apache/brooklyn/util/javalang/MemoryUsageTrackerTest.java
@@ -102,6 +102,7 @@ public class MemoryUsageTrackerTest {
             if (containsAbsent(dump)) break;
         }
         int cleared = countAbsents(dump);
+        assertTrue(cleared > 0, "No soft references cleared after trying to allocate all available memory");
         LOG.info("First soft reference cleared after "+dump.size()+" 1M blocks created; "+cleared+" of them cleared; memory just before collected is "+beforeCollectedMemory);
         
         // Expect the soft references to only have been collected when most of the JVM's memory 


[2/8] brooklyn-server git commit: Convert integration tests to unit tests and fix timing related failures

Posted by al...@apache.org.
Convert integration tests to unit tests and fix timing related failures


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

Branch: refs/heads/master
Commit: 89646d5d80d88ec05583e2d9d7c7fdec5036c36c
Parents: b714516
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Tue Nov 8 14:21:41 2016 +0200
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Thu Nov 10 18:06:50 2016 +0200

----------------------------------------------------------------------
 .../brooklyn/core/entity/EntityAssertsTest.java | 203 +++++++++++--------
 .../brooklyn/enricher/stock/EnrichersTest.java  |  12 +-
 2 files changed, 125 insertions(+), 90 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/89646d5d/core/src/test/java/org/apache/brooklyn/core/entity/EntityAssertsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/EntityAssertsTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/EntityAssertsTest.java
index 8ea2fd0..bfdac3c 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/EntityAssertsTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/EntityAssertsTest.java
@@ -18,19 +18,18 @@
  */
 package org.apache.brooklyn.core.entity;
 
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutionException;
 
 import org.apache.brooklyn.api.entity.EntitySpec;
-import org.apache.brooklyn.api.location.LocationSpec;
-import org.apache.brooklyn.api.sensor.AttributeSensor;
-import org.apache.brooklyn.core.location.SimulatedLocation;
+import org.apache.brooklyn.api.location.Location;
+import org.apache.brooklyn.api.mgmt.Task;
 import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
 import org.apache.brooklyn.core.test.entity.TestEntity;
 import org.apache.brooklyn.entity.group.DynamicGroup;
+import org.apache.brooklyn.util.repeat.Repeater;
 import org.apache.brooklyn.util.time.Duration;
-import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
@@ -46,35 +45,17 @@ public class EntityAssertsTest extends BrooklynAppUnitTestSupport {
 
     private static final String STOOGE = "stooge";
 
-    private SimulatedLocation loc;
     private TestEntity entity;
-    private ScheduledExecutorService executor;
     private DynamicGroup stooges;
 
     @BeforeMethod(alwaysRun=true)
     @Override
     public void setUp() throws Exception {
         super.setUp();
-        loc = app.getManagementContext().getLocationManager().createLocation(LocationSpec.create(SimulatedLocation.class));
         entity = app.createAndManageChild(EntitySpec.create(TestEntity.class));
-        stooges = app.createAndManageChild(EntitySpec.create(DynamicGroup.class));
-        final EntitySpec<TestEntity> stooge =
-                EntitySpec.create(TestEntity.class).configure(TestEntity.CONF_NAME, STOOGE);
-        app.createAndManageChild(stooge);
-        app.createAndManageChild(stooge);
-        app.createAndManageChild(stooge);
-        app.start(ImmutableList.of(loc));
-        executor = Executors.newScheduledThreadPool(3);
-    }
-
-    @AfterMethod(alwaysRun=true)
-    public void tearDown() throws Exception {
-        if (executor != null) executor.shutdownNow();
-        if (app != null) Entities.destroyAll(app.getManagementContext());
-        super.tearDown();
+        app.start(ImmutableList.<Location>of());
     }
 
-
     @Test
     public void shouldAssertAttributeEquals() {
         final String myName = "myname";
@@ -99,47 +80,59 @@ public class EntityAssertsTest extends BrooklynAppUnitTestSupport {
         EntityAsserts.assertConfigEquals(entity, TestEntity.CONF_NAME, "bogus");
     }
 
-    @Test(groups="Integration")
-    public void shouldAssertAttributeEqualsEventually() {
+    @Test
+    public void shouldAssertAttributeEqualsEventually() throws Exception {
         entity.sensors().set(TestEntity.NAME, "before");
         final String after = "after";
-        setSensorValueLater(TestEntity.NAME, after, Duration.seconds(2));
-        EntityAsserts.assertAttributeEqualsEventually(entity, TestEntity.NAME, after);
+
+        Task<?> assertValue = entity.getExecutionContext().submit(new Runnable() {
+            @Override
+            public void run() {
+                EntityAsserts.assertAttributeEqualsEventually(entity, TestEntity.NAME, after);
+            }
+        });
+        entity.sensors().set(TestEntity.NAME, after);
+        assertValue.get();
     }
 
-    @Test(groups="Integration", expectedExceptions = AssertionError.class)
+    @Test(expectedExceptions = AssertionError.class)
     public void shouldFailToAssertAttributeEqualsEventually() {
         entity.sensors().set(TestEntity.NAME, "before");
         final String after = "after";
-        setSensorValueLater(TestEntity.NAME, after, Duration.seconds(2));
-        EntityAsserts.assertAttributeEqualsEventually(ImmutableMap.of("timeout", "1s"), entity, TestEntity.NAME, after);
+        EntityAsserts.assertAttributeEqualsEventually(ImmutableMap.of("timeout", "100ms"), entity, TestEntity.NAME, after);
     }
 
-    private <T> void setSensorValueLater(final AttributeSensor<T> sensor, final T value, final Duration delay) {
-        executor.schedule(new Runnable() {
+    @Test
+    public void shouldAssertAttributeEventuallyNonNull() throws Exception {
+        EntityAsserts.assertAttributeEquals(entity, TestEntity.NAME, null);
+        Task<?> assertValue = entity.getExecutionContext().submit(new Runnable() {
             @Override
             public void run() {
-                entity.sensors().set(sensor, value);
+                EntityAsserts.assertAttributeEventuallyNonNull(entity, TestEntity.NAME);
             }
-        }, delay.toUnit(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS);
-    }
-
-    @Test(groups="Integration")
-    public void shouldAssertAttributeEventuallyNonNull() {
-        EntityAsserts.assertAttributeEquals(entity, TestEntity.NAME, null);
-        setSensorValueLater(TestEntity.NAME, "something", Duration.seconds(1));
-        EntityAsserts.assertAttributeEventuallyNonNull(entity, TestEntity.NAME);
+        });
+        entity.sensors().set(TestEntity.NAME, "something");
+        assertValue.get();
     }
 
-    @Test(groups="Integration")
-    public void shouldAssertAttributeEventually() {
-        setSensorValueLater(TestEntity.NAME, "testing testing 123", Duration.seconds(1));
-        EntityAsserts.assertAttributeEventually(entity, TestEntity.NAME, new Predicate<String>() {
+    @Test
+    public void shouldAssertAttributeEventually() throws Exception {
+        final CountDownLatch eventuallyEntered = new CountDownLatch(2);
+        Task<?> assertValue = entity.getExecutionContext().submit(new Runnable() {
             @Override
-            public boolean apply(String input) {
-                return input.matches(".*\\d+");
+            public void run() {
+                EntityAsserts.assertAttributeEventually(entity, TestEntity.NAME, new Predicate<String>() {
+                    @Override
+                    public boolean apply(String input) {
+                        eventuallyEntered.countDown();
+                        return input.matches(".*\\d+");
+                    }
+                });
             }
         });
+        eventuallyEntered.await();
+        entity.sensors().set(TestEntity.NAME, "testing testing 123");
+        assertValue.get();
     }
 
     @Test
@@ -149,68 +142,110 @@ public class EntityAssertsTest extends BrooklynAppUnitTestSupport {
         EntityAsserts.assertAttribute(entity, TestEntity.NAME, Predicates.equalTo(before));
     }
 
-    @Test(groups="Integration")
-    public void shouldAssertPredicateEventuallyTrue() {
+    @Test
+    public void shouldAssertPredicateEventuallyTrue() throws Exception {
         final int testVal = 987654321;
-        executor.schedule(new Runnable() {
+        final CountDownLatch eventuallyEntered = new CountDownLatch(2);
+        Task<?> assertValue = entity.getExecutionContext().submit(new Runnable() {
             @Override
             public void run() {
-                entity.setSequenceValue(testVal);
-            }
-        }, 1, TimeUnit.SECONDS);
-        EntityAsserts.assertPredicateEventuallyTrue(entity, new Predicate<TestEntity>() {
-            @Override
-            public boolean apply(TestEntity input) {
-                return testVal == input.getSequenceValue() ;
+                EntityAsserts.assertPredicateEventuallyTrue(entity, new Predicate<TestEntity>() {
+                    @Override
+                    public boolean apply(TestEntity input) {
+                        eventuallyEntered.countDown();
+                        return testVal == input.getSequenceValue();
+                    }
+                });
             }
         });
+        eventuallyEntered.await();
+        entity.setSequenceValue(testVal);
+        assertValue.get();
     }
 
-    @Test(groups="Integration")
+    @Test
     public void shouldAssertAttributeEqualsContinually() {
         final String myName = "myname";
         entity.sensors().set(TestEntity.NAME, myName);
         EntityAsserts.assertAttributeEqualsContinually(
-                ImmutableMap.of("timeout", "2s"), entity, TestEntity.NAME, myName);
+                ImmutableMap.of("timeout", "100ms"), entity, TestEntity.NAME, myName);
     }
 
-    @Test(groups="Integration", expectedExceptions = AssertionError.class)
-    public void shouldFailAssertAttributeEqualsContinually() {
+    @Test(expectedExceptions = AssertionError.class)
+    public void shouldFailAssertAttributeEqualsContinually() throws Throwable {
         final String myName = "myname";
         entity.sensors().set(TestEntity.NAME, myName);
-        setSensorValueLater(TestEntity.NAME, "something", Duration.seconds(1));
-        EntityAsserts.assertAttributeEqualsContinually(
-                ImmutableMap.of("timeout", "2s"), entity, TestEntity.NAME, myName);
+        Task<?> assertValue = entity.getExecutionContext().submit(new Runnable() {
+            @Override
+            public void run() {
+                EntityAsserts.assertAttributeEqualsContinually(entity, TestEntity.NAME, myName);
+            }
+        });
+        entity.sensors().set(TestEntity.NAME, "something");
+        try {
+            assertValue.get();
+        } catch (ExecutionException e) {
+            //strip wrapper exception
+            throw e.getCause();
+        }
     }
 
-    @Test(groups="Integration")
-    public void shouldAssertGroupSizeEqualsEventually() {
-        setGroupFilterLater(STOOGE, 1);
-        EntityAsserts.assertGroupSizeEqualsEventually(ImmutableMap.of("timeout", "2s"), stooges, 3);
-        setGroupFilterLater("Marx Brother", 1);
-        EntityAsserts.assertGroupSizeEqualsEventually(stooges, 0);
-    }
+    @Test
+    public void shouldAssertGroupSizeEqualsEventually() throws Exception {
+        stooges = app.createAndManageChild(EntitySpec.create(DynamicGroup.class));
+        final EntitySpec<TestEntity> stooge =
+                EntitySpec.create(TestEntity.class).configure(TestEntity.CONF_NAME, STOOGE);
+        app.createAndManageChild(stooge);
+        app.createAndManageChild(stooge);
+        app.createAndManageChild(stooge);
 
-    private void setGroupFilterLater(final String conf, long delaySeconds) {
-        executor.schedule(new Runnable() {
+        Task<?> assertValue1 = entity.getExecutionContext().submit(new Runnable() {
             @Override
             public void run() {
-                stooges.setEntityFilter(EntityPredicates.configEqualTo(TestEntity.CONF_NAME, conf));
+                EntityAsserts.assertGroupSizeEqualsEventually(ImmutableMap.of("timeout", "2s"), stooges, 3);
             }
-        }, delaySeconds, TimeUnit.SECONDS);
+        });
+        stooges.setEntityFilter(EntityPredicates.configEqualTo(TestEntity.CONF_NAME, STOOGE));
+        assertValue1.get();
+        Task<?> assertValue2 = entity.getExecutionContext().submit(new Runnable() {
+            @Override
+            public void run() {
+                EntityAsserts.assertGroupSizeEqualsEventually(stooges, 0);
+            }
+        });
+        stooges.setEntityFilter(EntityPredicates.configEqualTo(TestEntity.CONF_NAME, "Marx Brother"));
+        assertValue2.get();
     }
 
-    @Test(groups="Integration")
-    public void shouldAssertAttributeChangesEventually () {
+    @Test
+    public void shouldAssertAttributeChangesEventually () throws Exception{
         entity.sensors().set(TestEntity.NAME, "before");
-        setSensorValueLater(TestEntity.NAME, "after", Duration.seconds(2));
-        EntityAsserts.assertAttributeChangesEventually(entity, TestEntity.NAME);
+        final Task<?> assertValue = entity.getExecutionContext().submit(new Runnable() {
+            @Override
+            public void run() {
+                EntityAsserts.assertAttributeChangesEventually(entity, TestEntity.NAME);
+            }
+        });
+        Repeater.create()
+            .repeat(new Runnable() {
+                @Override
+                public void run() {
+                    entity.sensors().set(TestEntity.NAME, "after" + System.currentTimeMillis());
+                }
+            }).until(new Callable<Boolean>() {
+                @Override
+                public Boolean call() throws Exception {
+                    return assertValue.isDone();
+                }
+            }).every(Duration.millis(10))
+            .run();
+        assertValue.get();
     }
 
-    @Test(groups="Integration")
+    @Test
     public void shouldAssertAttributeNever() {
         entity.sensors().set(TestEntity.NAME, "ever");
-        EntityAsserts.assertAttributeContinuallyNotEqualTo(ImmutableMap.of("timeout", "5s"), entity, TestEntity.NAME, "after");
+        EntityAsserts.assertAttributeContinuallyNotEqualTo(ImmutableMap.of("timeout", "100ms"), entity, TestEntity.NAME, "after");
     }
 
 }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/89646d5d/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java b/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java
index 4e6c87e..19503e7 100644
--- a/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java
+++ b/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java
@@ -112,7 +112,7 @@ public class EnrichersTest extends BrooklynAppUnitTestSupport {
         EntityAsserts.assertAttributeEqualsEventually(entity, NUM3, 1);
     }
     
-    @Test(groups="Integration") // because takes a second
+    @Test
     public void testCombiningRespectsUnchanged() {
         entity.enrichers().add(Enrichers.builder()
                 .combining(NUM1, NUM2)
@@ -132,7 +132,7 @@ public class EnrichersTest extends BrooklynAppUnitTestSupport {
         EntityAsserts.assertAttributeEqualsEventually(entity, NUM3, 126);
         
         entity.sensors().set(NUM1, 2);
-        EntityAsserts.assertAttributeEqualsContinually(entity, NUM3, 126);
+        EntityAsserts.assertAttributeEqualsContinually(ImmutableMap.of("timeout", "100ms"), entity, NUM3, 126);
     }
     
     @Test
@@ -187,7 +187,7 @@ public class EnrichersTest extends BrooklynAppUnitTestSupport {
         EntityAsserts.assertAttributeEqualsEventually(entity, STR2, "myvalmysuffix");
     }
 
-    @Test(groups="Integration") // because takes a second
+    @Test
     public void testTransformingRespectsUnchangedButWillRepublish() throws Exception {
         RecordingSensorEventListener<String> record = new RecordingSensorEventListener<>();
         app.getManagementContext().getSubscriptionManager().subscribe(entity, STR2, record);
@@ -211,7 +211,7 @@ public class EnrichersTest extends BrooklynAppUnitTestSupport {
         EntityAsserts.assertAttributeEqualsEventually(entity, STR2, "myval");
 
         entity.sensors().set(STR1, "ignoredval");
-        EntityAsserts.assertAttributeEqualsContinually(entity, STR2, "myval");
+        EntityAsserts.assertAttributeEqualsContinually(ImmutableMap.of("timeout", "100ms"), entity, STR2, "myval");
 
         entity.sensors().set(STR1, "myval2");
         Asserts.eventually(Suppliers.ofInstance(record), CollectionFunctionals.sizeEquals(3));
@@ -378,7 +378,7 @@ public class EnrichersTest extends BrooklynAppUnitTestSupport {
         EntityAsserts.assertAttributeEqualsEventually(group, LONG1, Long.valueOf(1));
     }
     
-    @Test(groups="Integration") // because takes a second
+    @Test
     public void testAggregatingRespectsUnchanged() {
         group.addMember(entity);
         group.enrichers().add(Enrichers.builder()
@@ -399,7 +399,7 @@ public class EnrichersTest extends BrooklynAppUnitTestSupport {
         EntityAsserts.assertAttributeEqualsEventually(group, LONG1, Long.valueOf(123));
         
         entity.sensors().set(NUM1, 987654);
-        EntityAsserts.assertAttributeEqualsContinually(group, LONG1, Long.valueOf(123));
+        EntityAsserts.assertAttributeEqualsContinually(ImmutableMap.of("timeout", "100ms"), group, LONG1, Long.valueOf(123));
     }
 
     @Test


[7/8] brooklyn-server git commit: more integration test fixes

Posted by al...@apache.org.
more integration test fixes

brooklyn-software-base, brooklyn-camp, brooklyn-rest-resources


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

Branch: refs/heads/master
Commit: 3ec0dd45acbf5a06265f05f6aaa2d764245f3144
Parents: fe2b4b6
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Thu Nov 10 18:20:35 2016 +0200
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Thu Nov 10 23:04:13 2016 +0200

----------------------------------------------------------------------
 camp/camp-brooklyn/pom.xml                      |  2 +-
 .../brooklyn/VanillaBashNetcatYamlTest.java     |  3 +-
 .../ApplicationResourceIntegrationTest.java     | 50 ++++++++++----------
 .../SensorResourceIntegrationTest.java          |  2 +
 .../BrooklynClusterIntegrationTest.java         |  2 +-
 .../BrooklynNodeIntegrationTest.java            | 42 ++++++++--------
 ...SoftwareProcessSshDriverIntegrationTest.java | 16 -------
 .../AbstractSoftwareProcessStreamsTest.java     |  2 +-
 ...laSoftwareProcessStreamsIntegrationTest.java |  5 +-
 9 files changed, 58 insertions(+), 66 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3ec0dd45/camp/camp-brooklyn/pom.xml
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/pom.xml b/camp/camp-brooklyn/pom.xml
index 232e5c2..ce0f275 100644
--- a/camp/camp-brooklyn/pom.xml
+++ b/camp/camp-brooklyn/pom.xml
@@ -21,7 +21,7 @@
     <modelVersion>4.0.0</modelVersion>
     <artifactId>brooklyn-camp</artifactId>
     <packaging>jar</packaging>
-    <name>Brooklyn CAMP REST API</name>
+    <name>Brooklyn CAMP</name>
     <description>
         Brooklyn support for the Oasis CAMP server
     </description>

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3ec0dd45/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/VanillaBashNetcatYamlTest.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/VanillaBashNetcatYamlTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/VanillaBashNetcatYamlTest.java
index f3a345d..bf8685b 100644
--- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/VanillaBashNetcatYamlTest.java
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/VanillaBashNetcatYamlTest.java
@@ -49,7 +49,8 @@ public class VanillaBashNetcatYamlTest extends AbstractYamlTest {
     private static final AttributeSensor<String> SENSOR_OUTPUT_ALL = Sensors.newStringSensor("output.all");
     final static Effector<String> EFFECTOR_SAY_HI = Effectors.effector(String.class, "sayHiNetcat").buildAbstract();
     
-    @Test(groups="Integration")
+    // OSX specific test because of netcat arguments
+    @Test(groups={"Integration","Broken"})
     public void testInvocationSensorAndEnricher() throws Exception {
         Preconditions.checkArgument(Networking.isPortAvailable(4321), "port 4321 must not be in use (no leaked nc instances) for this test to succeed!");
         

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3ec0dd45/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceIntegrationTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceIntegrationTest.java b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceIntegrationTest.java
index 743eee4..e1a6de5 100644
--- a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceIntegrationTest.java
+++ b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceIntegrationTest.java
@@ -24,13 +24,12 @@ import static org.testng.Assert.assertTrue;
 import java.net.URI;
 import java.util.Set;
 
+import javax.ws.rs.core.GenericType;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.annotations.Test;
 import org.apache.brooklyn.core.entity.lifecycle.Lifecycle;
+import org.apache.brooklyn.entity.software.base.EmptySoftwareProcess;
 import org.apache.brooklyn.rest.domain.ApplicationSpec;
 import org.apache.brooklyn.rest.domain.ApplicationSummary;
 import org.apache.brooklyn.rest.domain.EntitySpec;
@@ -39,27 +38,30 @@ import org.apache.brooklyn.rest.domain.SensorSummary;
 import org.apache.brooklyn.rest.testing.BrooklynRestResourceTest;
 import org.apache.brooklyn.test.Asserts;
 import org.apache.brooklyn.util.collections.MutableMap;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.annotations.Test;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
-import javax.ws.rs.core.GenericType;
 
-@Test(singleThreaded = true)
+@Test( // by using a different suite name we disallow interleaving other tests between the methods of this test class, which wrecks the test fixtures
+        suiteName = "ApplicationResourceIntegrationTest")
 public class ApplicationResourceIntegrationTest extends BrooklynRestResourceTest {
 
     @SuppressWarnings("unused")
     private static final Logger log = LoggerFactory.getLogger(ApplicationResourceIntegrationTest.class);
 
-    private final ApplicationSpec redisSpec = ApplicationSpec.builder().name("redis-app")
-            .entities(ImmutableSet.of(new EntitySpec("redis-ent", "org.apache.brooklyn.entity.nosql.redis.RedisStore")))
+    private final ApplicationSpec simpleSpec = ApplicationSpec.builder().name("simple-app")
+            .entities(ImmutableSet.of(new EntitySpec("simple-ent", EmptySoftwareProcess.class.getName())))
             .locations(ImmutableSet.of("localhost"))
             .build();
 
     @Test(groups="Integration")
-    public void testDeployRedisApplication() throws Exception {
-        Response response = clientDeploy(redisSpec);
+    public void testDeploySimpleApplication() throws Exception {
+        Response response = clientDeploy(simpleSpec);
 
         assertEquals(response.getStatus(), 201);
         assertEquals(getManagementContext().getApplications().size(), 1);
@@ -68,9 +70,9 @@ public class ApplicationResourceIntegrationTest extends BrooklynRestResourceTest
         waitForApplicationToBeRunning(response.getLocation());
     }
 
-    @Test(groups="Integration", dependsOnMethods = "testDeployRedisApplication")
+    @Test(groups="Integration", dependsOnMethods = "testDeploySimpleApplication")
     public void testListEntities() {
-        Set<EntitySummary> entities = client().path("/applications/redis-app/entities")
+        Set<EntitySummary> entities = client().path("/applications/simple-app/entities")
                 .get(new GenericType<Set<EntitySummary>>() {});
 
         for (EntitySummary entity : entities) {
@@ -83,28 +85,28 @@ public class ApplicationResourceIntegrationTest extends BrooklynRestResourceTest
         }
     }
 
-    @Test(groups="Integration", dependsOnMethods = "testDeployRedisApplication")
-    public void testListSensorsRedis() {
-        Set<SensorSummary> sensors = client().path("/applications/redis-app/entities/redis-ent/sensors")
+    @Test(groups="Integration", dependsOnMethods = "testDeploySimpleApplication")
+    public void testListSensors() {
+        Set<SensorSummary> sensors = client().path("/applications/simple-app/entities/simple-ent/sensors")
                 .get(new GenericType<Set<SensorSummary>>() {});
         assertTrue(sensors.size() > 0);
         SensorSummary uptime = Iterables.find(sensors, new Predicate<SensorSummary>() {
             @Override
             public boolean apply(SensorSummary sensorSummary) {
-                return sensorSummary.getName().equals("redis.uptime");
+                return sensorSummary.getName().equals("service.process.isRunning");
             }
         });
-        assertEquals(uptime.getType(), "java.lang.Integer");
+        assertEquals(uptime.getType(), "java.lang.Boolean");
     }
 
-    @Test(groups="Integration", dependsOnMethods = { "testListSensorsRedis", "testListEntities" })
-    public void testTriggerRedisStopEffector() throws Exception {
-        Response response = client().path("/applications/redis-app/entities/redis-ent/effectors/stop")
+    @Test(groups="Integration", dependsOnMethods = { "testListSensors", "testListEntities" })
+    public void testTriggerStopEffector() throws Exception {
+        Response response = client().path("/applications/simple-app/entities/simple-ent/effectors/stop")
                 .type(MediaType.APPLICATION_JSON_TYPE)
                 .post(toJsonEntity(ImmutableMap.of()));
         assertEquals(response.getStatus(), Response.Status.ACCEPTED.getStatusCode());
 
-        final URI stateSensor = URI.create("/applications/redis-app/entities/redis-ent/sensors/service.state");
+        final URI stateSensor = URI.create("/applications/simple-app/entities/simple-ent/sensors/service.state");
         final String expectedStatus = Lifecycle.STOPPED.toString();
         Asserts.succeedsEventually(MutableMap.of("timeout", 60 * 1000), new Runnable() {
             public void run() {
@@ -117,13 +119,13 @@ public class ApplicationResourceIntegrationTest extends BrooklynRestResourceTest
         });
     }
 
-    @Test(groups="Integration", dependsOnMethods = "testTriggerRedisStopEffector" )
-    public void testDeleteRedisApplication() throws Exception {
+    @Test(groups="Integration", dependsOnMethods = "testTriggerStopEffector" )
+    public void testDeleteApplication() throws Exception {
         int size = getManagementContext().getApplications().size();
-        Response response = client().path("/applications/redis-app")
+        Response response = client().path("/applications/simple-app")
                 .delete();
 
-        waitForPageNotFoundResponse("/applications/redis-app", ApplicationSummary.class);
+        waitForPageNotFoundResponse("/applications/simple-app", ApplicationSummary.class);
 
         assertEquals(response.getStatus(), Response.Status.ACCEPTED.getStatusCode());
         assertEquals(getManagementContext().getApplications().size(), size-1);

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3ec0dd45/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceIntegrationTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceIntegrationTest.java b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceIntegrationTest.java
index 7cf082b..41bcb70 100644
--- a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceIntegrationTest.java
+++ b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceIntegrationTest.java
@@ -41,6 +41,8 @@ import org.testng.annotations.Test;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Iterables;
 
+@Test( // by using a different suite name we disallow interleaving other tests between the methods of this test class, which wrecks the test fixtures
+        suiteName = "SensorResourceIntegrationTest")
 public class SensorResourceIntegrationTest extends BrooklynRestResourceTest {
 
     private ManagementContext mgmt;

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3ec0dd45/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynClusterIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynClusterIntegrationTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynClusterIntegrationTest.java
index f4074c0..1e91d2d 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynClusterIntegrationTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynClusterIntegrationTest.java
@@ -76,7 +76,7 @@ public class BrooklynClusterIntegrationTest extends BrooklynAppUnitTestSupport {
         }
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testCanStartAndStop() throws Exception {
         BrooklynCluster cluster = app.createAndManageChild(EntitySpec.create(BrooklynCluster.class)
                 .configure(BrooklynCluster.INITIAL_SIZE, 1)

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3ec0dd45/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
index 4d4c92e..4ea842e 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
@@ -172,7 +172,7 @@ services:
          */
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testCanStartAndStop() throws Exception {
         BrooklynNode brooklynNode = app.createAndManageChild(newBrooklynNodeSpecForTest());
         app.start(locs);
@@ -184,7 +184,7 @@ services:
         EntityAsserts.assertAttributeEquals(brooklynNode, BrooklynNode.SERVICE_UP, false);
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testSetsGlobalBrooklynPropertiesFromContents() throws Exception {
         BrooklynNode brooklynNode = app.createAndManageChild(newBrooklynNodeSpecForTest()
                 .configure(BrooklynNode.BROOKLYN_GLOBAL_PROPERTIES_REMOTE_PATH, pseudoBrooklynPropertiesFile.getAbsolutePath())
@@ -195,7 +195,7 @@ services:
         assertEquals(Files.readLines(pseudoBrooklynPropertiesFile, Charsets.UTF_8), ImmutableList.of("abc=def"));
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testSetsLocalBrooklynPropertiesFromContents() throws Exception {
         BrooklynNode brooklynNode = app.createAndManageChild(newBrooklynNodeSpecForTest()
                 .configure(BrooklynNode.BROOKLYN_LOCAL_PROPERTIES_REMOTE_PATH, pseudoBrooklynPropertiesFile.getAbsolutePath())
@@ -206,7 +206,7 @@ services:
         assertEquals(Files.readLines(pseudoBrooklynPropertiesFile, Charsets.UTF_8), ImmutableList.of("abc=def"));
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testSetsBrooklynPropertiesFromUri() throws Exception {
         File brooklynPropertiesSourceFile = File.createTempFile("brooklynnode-test", ".properties");
         Files.write("abc=def", brooklynPropertiesSourceFile, Charsets.UTF_8);
@@ -220,7 +220,7 @@ services:
         assertEquals(Files.readLines(pseudoBrooklynPropertiesFile, Charsets.UTF_8), ImmutableList.of("abc=def"));
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testSetsBrooklynCatalogFromContents() throws Exception {
         BrooklynNode brooklynNode = app.createAndManageChild(newBrooklynNodeSpecForTest()
                 .configure(BrooklynNode.BROOKLYN_CATALOG_REMOTE_PATH, pseudoBrooklynCatalogFile.getAbsolutePath())
@@ -231,7 +231,7 @@ services:
         assertEquals(Files.readLines(pseudoBrooklynCatalogFile, Charsets.UTF_8), ImmutableList.of("<catalog/>"));
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testSetsBrooklynCatalogFromUri() throws Exception {
         Files.write("abc=def", brooklynCatalogSourceFile, Charsets.UTF_8);
 
@@ -244,17 +244,17 @@ services:
         assertEquals(Files.readLines(pseudoBrooklynCatalogFile, Charsets.UTF_8), ImmutableList.of("abc=def"));
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testSetsBrooklynCatalogInitialBomFromContents() throws Exception {
         runBrooklynCatalogInitialBom(false);
     }
     
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testSetsBrooklynCatalogInitialBomFromUri() throws Exception {
         runBrooklynCatalogInitialBom(true);
     }
     
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void runBrooklynCatalogInitialBom(boolean useUri) throws Exception {
         String catalogContents = Joiner.on("\n").join(
                 "brooklyn.catalog:",
@@ -297,7 +297,7 @@ services:
             "\"?(running|RUNNING)\"?");
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testCopiesResources() throws Exception {
         File sourceFile = File.createTempFile("brooklynnode-test", ".properties");
         Files.write("abc=def", sourceFile, Charsets.UTF_8);
@@ -319,7 +319,7 @@ services:
         }
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testCopiesClasspathEntriesInConfigKey() throws Exception {
         String content = "abc=def";
         File classpathEntry1 = File.createTempFile("first", ".properties");
@@ -350,7 +350,7 @@ services:
         }
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testCopiesClasspathEntriesInConfigKey2() throws Exception {
         String content = "abc=def";
         File classpathEntry1 = File.createTempFile("first", ".properties");
@@ -467,7 +467,7 @@ services:
 
     // TODO test that the classpath set above is actually used
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testSetsBrooklynWebConsolePort() throws Exception {
         BrooklynNode brooklynNode = app.createAndManageChild(newBrooklynNodeSpecForTest()
                 .configure(BrooklynNode.HTTP_PORT, PortRanges.fromString("45000+")));
@@ -481,7 +481,7 @@ services:
         HttpTestUtils.assertHttpStatusCodeEquals(webConsoleUri.toString(), 200, 401);
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testStartsAppOnStartup() throws Exception {
         BrooklynNode brooklynNode = app.createAndManageChild(newBrooklynNodeSpecForTest()
                 .configure(BrooklynNode.APP, BasicApplicationImpl.class.getName()));
@@ -521,7 +521,7 @@ services:
             }});
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testStartsAppViaEffector() throws Exception {
         BrooklynNode brooklynNode = app.createAndManageChild(newBrooklynNodeSpecForTest());
         app.start(locs);
@@ -544,7 +544,7 @@ services:
             "\"?(running|RUNNING)\"?");
     }
     
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testUsesLocation() throws Exception {
         String brooklynPropertiesContents = 
             "brooklyn.location.named.mynamedloc=localhost:(name=myname)\n"+
@@ -578,7 +578,7 @@ services:
         assertEquals(parseJson(locatedLocationsContent, ImmutableList.of(appLocationId, "longitude"), Double.class), 45.6, 0.00001);
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testAuthenticationAndHttps() throws Exception {
         String adminPassword = "p4ssw0rd";
         BrooklynNode brooklynNode = app.createAndManageChild(newBrooklynNodeSpecForTest()
@@ -611,7 +611,7 @@ services:
         Assert.assertEquals(response.getResponseCode(), 200);
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testStopPlainThrowsException() throws Exception {
         BrooklynNode brooklynNode = setUpBrooklynNodeWithApp();
 
@@ -637,17 +637,17 @@ services:
         }
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testStopAndKillAppsEffector() throws Exception {
         createNodeAndExecStopEffector(BrooklynNode.STOP_NODE_AND_KILL_APPS);
     }
 
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testStopButLeaveAppsEffector() throws Exception {
         createNodeAndExecStopEffector(BrooklynNode.STOP_NODE_BUT_LEAVE_APPS);
     }
     
-    @Test(groups="Integration")
+    @Test(groups={"Integration", "Broken"})
     public void testStopAndRestartProcess() throws Exception {
         persistenceDir = Files.createTempDir();
         BrooklynNode brooklynNode = app.createAndManageChild(newBrooklynNodeSpecForTest()

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3ec0dd45/software/base/src/test/java/org/apache/brooklyn/entity/java/JavaSoftwareProcessSshDriverIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/java/JavaSoftwareProcessSshDriverIntegrationTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/java/JavaSoftwareProcessSshDriverIntegrationTest.java
index 425c831..d39ed94 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/java/JavaSoftwareProcessSshDriverIntegrationTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/java/JavaSoftwareProcessSshDriverIntegrationTest.java
@@ -131,22 +131,6 @@ public class JavaSoftwareProcessSshDriverIntegrationTest extends BrooklynAppLive
         Os.deleteRecursively(dir2);
     }
 
-    @Test(groups = "Integration")
-    public void testStartsInLegacySpecifiedDirectory() throws Exception {
-        String dir1 = Os.mergePathsUnix(Os.tmp(), "/brooklyn-test-"+Strings.makeRandomId(4));
-        String dir2 = Os.mergePathsUnix(Os.tmp(), "/brooklyn-test-"+Strings.makeRandomId(4));
-        tearDown();
-        mgmt = new LocalManagementContextForTests();
-        mgmt.getBrooklynProperties().put("brooklyn.dirs.install", dir1);
-        mgmt.getBrooklynProperties().put("brooklyn.dirs.run", dir2);
-        setUp();
-
-        app.config().set(BrooklynConfigKeys.RUN_DIR, dir2);
-        doTestSpecifiedDirectory(dir1, dir2);
-        Os.deleteRecursively(dir1);
-        Os.deleteRecursively(dir2);
-    }
-
     protected void doTestSpecifiedDirectory(final String installDirPrefix, final String runDirPrefix) throws Exception {
         final MyEntity entity = app.createAndManageChild(EntitySpec.create(MyEntity.class));
         app.start(ImmutableList.of(localhost));

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3ec0dd45/software/base/src/test/java/org/apache/brooklyn/entity/software/base/AbstractSoftwareProcessStreamsTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/AbstractSoftwareProcessStreamsTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/AbstractSoftwareProcessStreamsTest.java
index 4197551..75216f7 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/AbstractSoftwareProcessStreamsTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/AbstractSoftwareProcessStreamsTest.java
@@ -94,7 +94,7 @@ public abstract class AbstractSoftwareProcessStreamsTest extends BrooklynAppLive
             String stdout = getStreamOrFail(subTask, BrooklynTaskTags.STREAM_STDOUT);
             String stderr = getStreamOrFail(subTask, BrooklynTaskTags.STREAM_STDERR);
 //            String env = getStreamOrFail(subTask, BrooklynTaskTags.STREAM_ENV);
-            String msg = "stdin="+stdin+"; stdout="+stdout+"; stderr="+stderr; //+"; env="+env;
+            String msg = "taskName='" + taskNameRegex + "'; expected=" + echoed + "; actual=" + stdout + "\nstdin="+stdin+"\nstdout="+stdout+"\nstderr="+stderr; //+"; env="+env;
 
             assertTrue(stdin.contains("echo "+echoed), msg);
             assertTrue(stdout.contains(echoed), msg);

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3ec0dd45/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessStreamsIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessStreamsIntegrationTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessStreamsIntegrationTest.java
index 2712b84..ee630b5 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessStreamsIntegrationTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessStreamsIntegrationTest.java
@@ -37,7 +37,10 @@ public class VanillaSoftwareProcessStreamsIntegrationTest extends AbstractSoftwa
         localhost = app.getManagementContext().getLocationRegistry().getLocationManaged("localhost");
     }
 
-    @Test(groups = "Integration")
+    // Fails on subsequent runs because "BROOKLYN" marker already created in 
+    // install folder so install step not executed.
+    // TODO Tests leave a lot of garbage in /tmp - should clean up after themselves.
+    @Test(groups = {"Integration", "Broken"})
     @Override
     public void testGetsStreams() {
         Map<String, String> cmds = getCommands();


[3/8] brooklyn-server git commit: Use ssh cli in batch mode - don't ask for passwords

Posted by al...@apache.org.
Use ssh cli in batch mode - don't ask for passwords


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

Branch: refs/heads/master
Commit: 69c91c35aec7dc22187717cc1254e90f23e347a4
Parents: 89646d5
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Tue Nov 8 15:04:25 2016 +0200
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Thu Nov 10 18:06:51 2016 +0200

----------------------------------------------------------------------
 .../apache/brooklyn/util/core/internal/ssh/cli/SshCliTool.java    | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/69c91c35/core/src/main/java/org/apache/brooklyn/util/core/internal/ssh/cli/SshCliTool.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/internal/ssh/cli/SshCliTool.java b/core/src/main/java/org/apache/brooklyn/util/core/internal/ssh/cli/SshCliTool.java
index d5a8c6b..e854f18 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/internal/ssh/cli/SshCliTool.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/internal/ssh/cli/SshCliTool.java
@@ -224,6 +224,7 @@ public class SshCliTool extends SshAbstractTool implements SshTool {
         try {
             List<String> cmd = Lists.newArrayList();
             cmd.add(getOptionalVal(props, PROP_SCP_EXECUTABLE, scpExecutable));
+            cmd.add("-B");
             if (privateKeyFile != null) {
                 cmd.add("-i");
                 cmd.add(privateKeyFile.getAbsolutePath());
@@ -260,6 +261,8 @@ public class SshCliTool extends SshAbstractTool implements SshTool {
             List<String> cmd = Lists.newArrayList();
             cmd.add(getOptionalVal(props, PROP_SSH_EXECUTABLE, sshExecutable));
             String propsFlags = getOptionalVal(props, PROP_SSH_FLAGS, sshFlags);
+            cmd.add("-o");
+            cmd.add("BatchMode=yes");
             if (propsFlags!=null && propsFlags.trim().length()>0)
                 cmd.addAll(Arrays.asList(propsFlags.trim().split(" ")));
             if (privateKeyFile != null) {


[8/8] brooklyn-server git commit: This closes #412

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


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

Branch: refs/heads/master
Commit: 1caa48ff2a015d2484313b85a226861e3c893c5e
Parents: dff428e 3ec0dd4
Author: Aled Sage <al...@gmail.com>
Authored: Fri Nov 11 09:50:00 2016 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Fri Nov 11 09:50:00 2016 +0000

----------------------------------------------------------------------
 camp/camp-brooklyn/pom.xml                      |   2 +-
 .../brooklyn/VanillaBashNetcatYamlTest.java     |   3 +-
 .../brooklyn/core/entity/AbstractEntity.java    |   5 +-
 .../util/core/internal/ssh/cli/SshCliTool.java  |   3 +
 .../geo/external-ip-address-resolvers.txt       |   3 +-
 .../entity/AbstractApplicationLegacyTest.java   |   9 +-
 .../brooklyn/core/entity/EntityAssertsTest.java | 203 +++++++++++--------
 .../core/entity/EntityAutomanagedTest.java      |   7 +
 .../entity/RecordingSensorEventListener.java    |   4 +
 .../brooklyn/enricher/stock/EnrichersTest.java  |  34 ++--
 .../AbstractCleanOrphanedStateTest.java         |   2 +-
 .../location/jclouds/JcloudsLocation.java       |   2 +-
 pom.xml                                         |   4 +-
 .../ApplicationResourceIntegrationTest.java     |  50 ++---
 .../SensorResourceIntegrationTest.java          |   2 +
 .../BrooklynClusterIntegrationTest.java         |   2 +-
 .../BrooklynNodeIntegrationTest.java            |  42 ++--
 ...SoftwareProcessSshDriverIntegrationTest.java |  16 --
 .../AbstractSoftwareProcessStreamsTest.java     |   2 +-
 ...laSoftwareProcessStreamsIntegrationTest.java |   5 +-
 .../java/org/apache/brooklyn/test/Asserts.java  |   4 +-
 .../util/javalang/MemoryUsageTrackerTest.java   |   1 +
 .../brooklyn/util/pool/BasicPoolTest.java       |   2 +-
 23 files changed, 234 insertions(+), 173 deletions(-)
----------------------------------------------------------------------



[4/8] brooklyn-server git commit: Upgrade testng to latest version

Posted by al...@apache.org.
Upgrade testng to latest version

Now that we don't support Java 6 there's no restriction on upgrading testng.
The new version could improve the execution order by not interleaving tests from different classes. But seems that's not the case when using dependsOn*


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

Branch: refs/heads/master
Commit: 2d3caac5722e9b982f8c8349fd50e35e1b6d05c2
Parents: 69c91c3
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Thu Nov 10 10:54:47 2016 +0200
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Thu Nov 10 18:06:52 2016 +0200

----------------------------------------------------------------------
 .../apache/brooklyn/launcher/AbstractCleanOrphanedStateTest.java | 2 +-
 pom.xml                                                          | 4 +++-
 .../test/java/org/apache/brooklyn/util/pool/BasicPoolTest.java   | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/2d3caac5/launcher/src/test/java/org/apache/brooklyn/launcher/AbstractCleanOrphanedStateTest.java
----------------------------------------------------------------------
diff --git a/launcher/src/test/java/org/apache/brooklyn/launcher/AbstractCleanOrphanedStateTest.java b/launcher/src/test/java/org/apache/brooklyn/launcher/AbstractCleanOrphanedStateTest.java
index a594f2a..8c5608e 100644
--- a/launcher/src/test/java/org/apache/brooklyn/launcher/AbstractCleanOrphanedStateTest.java
+++ b/launcher/src/test/java/org/apache/brooklyn/launcher/AbstractCleanOrphanedStateTest.java
@@ -36,10 +36,10 @@ import org.apache.brooklyn.util.collections.MutableMap;
 import org.apache.brooklyn.util.core.flags.SetFromFlag;
 import org.apache.commons.lang.builder.EqualsBuilder;
 
-import com.beust.jcommander.internal.Sets;
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
 import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
 
 public abstract class AbstractCleanOrphanedStateTest extends RebindTestFixtureWithApp {
     

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/2d3caac5/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b6469ae..01861bf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -173,7 +173,9 @@
         <cxf.javax.annotation-api.version>1.2</cxf.javax.annotation-api.version>
 
         <!-- Testing Dependency Versions -->
-        <testng.version>6.8.8</testng.version>
+        <!-- testng 6.9.13 has this problem https://github.com/cbeust/testng/issues/1168, to be fixed in the release following 6.9.13.8. -->
+        <!-- Recent versions of testng are not pushed to maven central, they are publishing to jcentral. -->
+        <testng.version>6.9.10</testng.version>
         <mockito.version>1.10.8</mockito.version>
         <assertj.version>2.2.0</assertj.version> <!-- v 2.2.0 is being used as v 3.20 introduces Java8 dependencies-->
         <cobertura.plugin.version>2.7</cobertura.plugin.version>

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/2d3caac5/utils/common/src/test/java/org/apache/brooklyn/util/pool/BasicPoolTest.java
----------------------------------------------------------------------
diff --git a/utils/common/src/test/java/org/apache/brooklyn/util/pool/BasicPoolTest.java b/utils/common/src/test/java/org/apache/brooklyn/util/pool/BasicPoolTest.java
index 16d3877..5b0007a 100644
--- a/utils/common/src/test/java/org/apache/brooklyn/util/pool/BasicPoolTest.java
+++ b/utils/common/src/test/java/org/apache/brooklyn/util/pool/BasicPoolTest.java
@@ -37,13 +37,13 @@ import org.apache.brooklyn.util.pool.Pool;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
-import org.testng.internal.annotations.Sets;
 
 import com.google.common.base.Function;
 import com.google.common.base.Predicates;
 import com.google.common.base.Supplier;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.ListeningExecutorService;


[6/8] brooklyn-server git commit: Make sure entity doesn't equal null

Posted by al...@apache.org.
Make sure entity doesn't equal null


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

Branch: refs/heads/master
Commit: fe2b4b6997c1d48541f100d3fcb02f6f89223426
Parents: b6af270
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Thu Nov 10 22:24:36 2016 +0200
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Thu Nov 10 22:46:46 2016 +0200

----------------------------------------------------------------------
 .../org/apache/brooklyn/core/entity/AbstractEntity.java     | 5 +++--
 .../brooklyn/core/entity/AbstractApplicationLegacyTest.java | 9 +++++++--
 .../apache/brooklyn/core/entity/EntityAutomanagedTest.java  | 7 +++++++
 3 files changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/fe2b4b69/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
index 6c5f73e..fd7a403 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
@@ -429,8 +429,9 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
     
     @Override
     public boolean equals(Object o) {
-        return (o == this || o == selfProxy) || 
-                (o instanceof Entity && Objects.equal(getId(), ((Entity)o).getId()));
+        return o != null &&
+                ((o == this || o == selfProxy) ||
+                (o instanceof Entity && Objects.equal(getId(), ((Entity)o).getId())));
     }
     
     /** internal use only */ @Beta

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/fe2b4b69/core/src/test/java/org/apache/brooklyn/core/entity/AbstractApplicationLegacyTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/AbstractApplicationLegacyTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/AbstractApplicationLegacyTest.java
index d1d4dc3..68ac612 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/AbstractApplicationLegacyTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/AbstractApplicationLegacyTest.java
@@ -20,6 +20,8 @@ package org.apache.brooklyn.core.entity;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotEquals;
+import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import java.util.List;
@@ -92,8 +94,11 @@ public class AbstractApplicationLegacyTest extends BrooklynAppUnitTestSupport {
         assertTrue(Entities.isManaged(app2));
         assertTrue(Entities.isManaged(child));
         assertEquals(child.getCallHistory(), ImmutableList.of("start"));
-        assertEquals(mgmt.getEntityManager().getEntity(app2.getId()), app2);
-        assertEquals(mgmt.getEntityManager().getEntity(child.getId()), child);
+        assertNull(mgmt.getEntityManager().getEntity(app2.getId()), "app2 shouldn't be managed by mgmt");
+        assertNull(mgmt.getEntityManager().getEntity(child.getId()), "child shouldn't be managed by mgmt");
+        assertNotEquals(mgmt, app2.getManagementContext(), "managing app2 creates a new management context");
+        assertEquals(app2.getManagementContext().getEntityManager().getEntity(app2.getId()), app2);
+        assertEquals(app2.getManagementContext().getEntityManager().getEntity(child.getId()), child);
         
         app2.stop();
         assertEquals(child.getCallHistory(), ImmutableList.of("start", "stop"));

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/fe2b4b69/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java
index 741b936..84c7eef 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java
@@ -20,6 +20,7 @@ package org.apache.brooklyn.core.entity;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotEquals;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
@@ -32,6 +33,7 @@ import org.apache.brooklyn.core.entity.EntityAutomanagedTest.RecordingCollection
 import org.apache.brooklyn.core.entity.EntityAutomanagedTest.RecordingCollectionChangeListener.ChangeType;
 import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
 import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.entity.TestApplicationImpl;
 import org.apache.brooklyn.core.test.entity.TestEntity;
 import org.apache.brooklyn.test.Asserts;
 import org.testng.annotations.BeforeMethod;
@@ -263,6 +265,11 @@ public class EntityAutomanagedTest extends BrooklynAppUnitTestSupport {
         listener.assertEventsEqualsEventually(ImmutableList.of(new ChangeEvent(ChangeType.ADDED, e)));
     }
 
+    @Test
+    public void testEntityNotEqualNull() {
+        assertNotEquals(new TestApplicationImpl(), null);
+    }
+
     // TODO Compiler problems - see comment at top of class
     public static class RecordingCollectionChangeListener { // FIXME implements CollectionChangeListener<Entity> {
         public enum ChangeType {


[5/8] brooklyn-server git commit: brooklyn-locations-jclouds integration test fixes

Posted by al...@apache.org.
brooklyn-locations-jclouds integration test fixes


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

Branch: refs/heads/master
Commit: b6af2702d8ac247a4d383775daeeb4772d20b60e
Parents: 2d3caac
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Thu Nov 10 17:42:23 2016 +0200
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Thu Nov 10 18:07:15 2016 +0200

----------------------------------------------------------------------
 .../java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b6af2702/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
----------------------------------------------------------------------
diff --git a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
index 423326f..6582b02 100644
--- a/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
+++ b/locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java
@@ -224,7 +224,7 @@ public class JcloudsLocation extends AbstractCloudMachineProvisioningLocation im
     private static final int NOTES_MAX_LENGTH = 1000;
 
     @VisibleForTesting
-    static final String AWS_VPC_HELP_URL = "http://brooklyn.apache.org/v/"+BrooklynVersion.get()+"/ops/locations/more-clouds.html";
+    static final String AWS_VPC_HELP_URL = "http://brooklyn.apache.org/v/latest/ops/locations/index.html#ec2-classic-problems-with-vpc-only-hardware-instance-types";
 
     private final AtomicBoolean loggedSshKeysHint = new AtomicBoolean(false);
     private final AtomicBoolean listedAvailableTemplatesOnNoSuchTemplate = new AtomicBoolean(false);