You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sv...@apache.org on 2016/10/31 12:24:25 UTC

[1/5] brooklyn-server git commit: add static Maybe.getException(maybe) to avoid messy casts to Absent, and Asserts methods

Repository: brooklyn-server
Updated Branches:
  refs/heads/master d7edfadaa -> f9637f3d1


add static Maybe.getException(maybe) to avoid messy casts to Absent, and Asserts methods


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

Branch: refs/heads/master
Commit: 9c040018d242373ce7270bf65302f89de8c0c742
Parents: aa3f183
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Sep 28 15:34:34 2016 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Sep 28 15:36:58 2016 +0100

----------------------------------------------------------------------
 .../spi/creation/BrooklynYamlLocationResolver.java    |  3 +--
 .../brooklyn/core/location/BasicLocationRegistry.java |  2 +-
 .../BrooklynClassLoadingContextSequential.java        |  4 ++--
 .../org/apache/brooklyn/core/mgmt/ha/OsgiManager.java |  2 +-
 .../core/resolve/entity/JavaEntitySpecResolver.java   |  2 +-
 .../brooklyn/location/byon/HostLocationResolver.java  |  2 +-
 .../location/byon/SingleMachineLocationResolver.java  |  2 +-
 .../main/java/org/apache/brooklyn/test/Asserts.java   | 14 ++++++++++++++
 .../java/org/apache/brooklyn/util/guava/Maybe.java    |  6 +++++-
 9 files changed, 27 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/9c040018/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlLocationResolver.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlLocationResolver.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlLocationResolver.java
index 390d784..b19e62e 100644
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlLocationResolver.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlLocationResolver.java
@@ -32,7 +32,6 @@ import org.apache.brooklyn.util.collections.MutableMap;
 import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.exceptions.UserFacingException;
 import org.apache.brooklyn.util.guava.Maybe;
-import org.apache.brooklyn.util.guava.Maybe.Absent;
 import org.apache.brooklyn.util.text.Strings;
 
 import com.google.common.collect.Iterables;
@@ -138,7 +137,7 @@ public class BrooklynYamlLocationResolver {
         Maybe<LocationSpec<?>> l = mgmt.getLocationRegistry().getLocationSpec(spec, flags);
         if (l.isPresent()) return l.get();
         
-        RuntimeException exception = ((Absent<?>)l).getException();
+        RuntimeException exception = Maybe.getException(l);
         if (exception instanceof NoSuchElementException && 
                 exception.getMessage().contains("Unknown location")) {
             // common case

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/9c040018/core/src/main/java/org/apache/brooklyn/core/location/BasicLocationRegistry.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/location/BasicLocationRegistry.java b/core/src/main/java/org/apache/brooklyn/core/location/BasicLocationRegistry.java
index 850f3d5..d4d7f7e 100644
--- a/core/src/main/java/org/apache/brooklyn/core/location/BasicLocationRegistry.java
+++ b/core/src/main/java/org/apache/brooklyn/core/location/BasicLocationRegistry.java
@@ -508,7 +508,7 @@ public class BasicLocationRegistry implements LocationRegistry {
         if (result.isPresent()) 
             return result;
         throw new IllegalStateException("Cannot instantiate location '"+ld+"' pointing at "+ld.getSpec(), 
-            ((Absent<?>)result).getException() );
+            Maybe.getException(result) );
     }
     
     @Override

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/9c040018/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/BrooklynClassLoadingContextSequential.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/BrooklynClassLoadingContextSequential.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/BrooklynClassLoadingContextSequential.java
index 530039a..19aa743 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/BrooklynClassLoadingContextSequential.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/BrooklynClassLoadingContextSequential.java
@@ -74,7 +74,7 @@ public final class BrooklynClassLoadingContextSequential extends AbstractBrookly
             Maybe<Class<?>> clazz = target.tryLoadClass(className);
             if (clazz.isPresent())
                 return clazz;
-            errors.add( ((Maybe.Absent<?>)clazz).getException() );
+            errors.add( Maybe.getException(clazz) );
         }
         boolean noPrimaryErrors = errors.isEmpty();
         for (BrooklynClassLoadingContext target: secondaries) {
@@ -82,7 +82,7 @@ public final class BrooklynClassLoadingContextSequential extends AbstractBrookly
             if (clazz.isPresent())
                 return clazz;
             if (noPrimaryErrors)
-                errors.add( ((Maybe.Absent<?>)clazz).getException() );
+                errors.add( Maybe.getException(clazz) );
         }
 
         return Maybe.absent(Exceptions.create("Unable to load "+className+" from "+primaries, errors));

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/9c040018/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/OsgiManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/OsgiManager.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/OsgiManager.java
index 2c68c8a..56d98a0 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/OsgiManager.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/OsgiManager.java
@@ -195,7 +195,7 @@ public class OsgiManager {
                     clazz = SystemFrameworkLoader.get().loadClassFromBundle(type, b);
                     return Maybe.of(clazz);
                 } else {
-                    bundleProblems.put(osgiBundle, ((Maybe.Absent<?>)bundle).getException());
+                    bundleProblems.put(osgiBundle, Maybe.getException(bundle));
                 }
                 
             } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/9c040018/core/src/main/java/org/apache/brooklyn/core/resolve/entity/JavaEntitySpecResolver.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/resolve/entity/JavaEntitySpecResolver.java b/core/src/main/java/org/apache/brooklyn/core/resolve/entity/JavaEntitySpecResolver.java
index 55cda9f..f600a30 100644
--- a/core/src/main/java/org/apache/brooklyn/core/resolve/entity/JavaEntitySpecResolver.java
+++ b/core/src/main/java/org/apache/brooklyn/core/resolve/entity/JavaEntitySpecResolver.java
@@ -70,7 +70,7 @@ public class JavaEntitySpecResolver extends AbstractEntitySpecResolver{
     private EntitySpec<?> resolveInternal(String localType, BrooklynClassLoadingContext loader) {
         Maybe<Class<? extends Entity>> javaTypeMaybe = tryLoadJavaType(localType, loader);
         if (javaTypeMaybe.isAbsent())
-            throw new IllegalStateException("Could not find "+localType, ((Maybe.Absent<?>)javaTypeMaybe).getException());
+            throw new IllegalStateException("Could not find "+localType, Maybe.getException(javaTypeMaybe));
         Class<? extends Entity> javaType = javaTypeMaybe.get();
 
         EntitySpec<? extends Entity> spec;

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/9c040018/core/src/main/java/org/apache/brooklyn/location/byon/HostLocationResolver.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/location/byon/HostLocationResolver.java b/core/src/main/java/org/apache/brooklyn/location/byon/HostLocationResolver.java
index f2d45ab..ab41c85 100644
--- a/core/src/main/java/org/apache/brooklyn/location/byon/HostLocationResolver.java
+++ b/core/src/main/java/org/apache/brooklyn/location/byon/HostLocationResolver.java
@@ -66,7 +66,7 @@ public class HostLocationResolver extends AbstractLocationResolver {
         Maybe<LocationSpec<?>> testResolve = managementContext.getLocationRegistry().getLocationSpec(target);
         if (!testResolve.isPresent()) {
             throw new IllegalArgumentException("Invalid target location '" + target + "' for location '"+HOST+"': "+
-                Exceptions.collapseText( ((Absent<?>)testResolve).getException() ), ((Absent<?>)testResolve).getException());
+                Exceptions.collapseText( Maybe.getException(testResolve) ), Maybe.getException(testResolve));
         }
         
         return LocationSpec.create(SingleMachineProvisioningLocation.class)

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/9c040018/core/src/main/java/org/apache/brooklyn/location/byon/SingleMachineLocationResolver.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/location/byon/SingleMachineLocationResolver.java b/core/src/main/java/org/apache/brooklyn/location/byon/SingleMachineLocationResolver.java
index 9c238eb..fa30b53 100644
--- a/core/src/main/java/org/apache/brooklyn/location/byon/SingleMachineLocationResolver.java
+++ b/core/src/main/java/org/apache/brooklyn/location/byon/SingleMachineLocationResolver.java
@@ -55,7 +55,7 @@ public class SingleMachineLocationResolver extends AbstractLocationResolver {
         Maybe<LocationSpec<?>> testResolve = managementContext.getLocationRegistry().getLocationSpec(target);
         if (!testResolve.isPresent()) {
             throw new IllegalArgumentException("Invalid target location '" + target + "' for location '"+SINGLE+"': "+
-                Exceptions.collapseText( ((Absent<?>)testResolve).getException() ));
+                Exceptions.collapseText( Maybe.getException(testResolve) ), Maybe.getException(testResolve));
         }
         
         return LocationSpec.create(SingleMachineProvisioningLocation.class)

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/9c040018/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 23624d9..a4f8747 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
@@ -1381,4 +1381,18 @@ public class Asserts {
         if (Iterables.size(list)!=expectedSize) fail("List has wrong size "+Iterables.size(list)+" (expected "+expectedSize+"): "+list);
     }
 
+    public static void assertInstanceOf(Object obj, Class<?> type) {
+        assertThat(obj, Predicates.instanceOf(type));
+    }
+
+    public static <T> void assertPresent(Maybe<T> candidate) {
+        if (candidate.isPresent()) return;
+        fail( Maybe.getException(candidate) );
+    }
+
+    public static <T> void assertNotPresent(Maybe<T> candidate) {
+        if (candidate.isAbsent()) return;
+        fail("Expected absent value; instead got: "+candidate.get());
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/9c040018/utils/common/src/main/java/org/apache/brooklyn/util/guava/Maybe.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/guava/Maybe.java b/utils/common/src/main/java/org/apache/brooklyn/util/guava/Maybe.java
index a53425f..37aa7c9 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/guava/Maybe.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/guava/Maybe.java
@@ -450,5 +450,9 @@ public abstract class Maybe<T> implements Serializable, Supplier<T> {
             return !other.isPresent();
         return Objects.equal(get(), other.get());
     }
-    
+
+    /** Finds the {@link Absent#getException()} if {@link #isAbsent()}, or null */
+    public static RuntimeException getException(Maybe<?> t) {
+        return ((Maybe.Absent<?>)t).getException();
+    }
 }


[2/5] brooklyn-server git commit: minor tidies to utils

Posted by sv...@apache.org.
minor tidies to utils


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

Branch: refs/heads/master
Commit: aa3f1835fbf8104c0426f201343fe2d48241d71d
Parents: d9e4bac
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Sep 28 15:28:02 2016 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Sep 28 15:36:58 2016 +0100

----------------------------------------------------------------------
 .../entity/chef/ChefLiveTestSupport.java        | 20 ++++++--------------
 .../org/apache/brooklyn/util/ShellUtils.java    |  8 ++++----
 .../org/apache/brooklyn/util/http/HttpTool.java |  2 ++
 .../brooklyn/util/io/FilePermissions.java       | 17 +++++++++--------
 .../util/net/ReachableSocketFinder.java         |  1 -
 .../java/org/apache/brooklyn/util/os/Os.java    |  4 +---
 .../apache/brooklyn/util/repeat/Repeater.java   |  2 +-
 .../util/stream/InputStreamSupplier.java        |  4 ++++
 .../apache/brooklyn/util/text/Identifiers.java  |  2 ++
 .../util/collections/MutableSetTest.java        |  1 -
 10 files changed, 29 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/aa3f1835/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefLiveTestSupport.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefLiveTestSupport.java b/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefLiveTestSupport.java
index 9ee38e7..ff389b0 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefLiveTestSupport.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefLiveTestSupport.java
@@ -19,7 +19,6 @@
 package org.apache.brooklyn.entity.chef;
 
 import java.io.File;
-import java.io.IOException;
 import java.io.InputStream;
 
 import org.apache.brooklyn.api.entity.Entity;
@@ -31,13 +30,11 @@ import org.apache.brooklyn.core.test.BrooklynAppLiveTestSupport;
 import org.apache.brooklyn.location.ssh.SshMachineLocation;
 import org.apache.brooklyn.util.core.ResourceUtils;
 import org.apache.brooklyn.util.io.FileUtil;
-import org.apache.brooklyn.util.stream.InputStreamSupplier;
 import org.apache.brooklyn.util.stream.Streams;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.annotations.BeforeMethod;
 
-import com.google.common.base.Throwables;
 import com.google.common.io.Files;
 
 public class ChefLiveTestSupport extends BrooklynAppLiveTestSupport {
@@ -82,18 +79,13 @@ public class ChefLiveTestSupport extends BrooklynAppLiveTestSupport {
         if (defaultConfigFile!=null) return defaultConfigFile;
         File tempDir = Files.createTempDir();
         ResourceUtils r = ResourceUtils.create(ChefServerTasksIntegrationTest.class);
-        try {
-            for (String f: new String[] { "knife.rb", "brooklyn-tests.pem", "brooklyn-validator.pem" }) {
-                String contents = r.getResourceAsString("classpath:///org/apache/brooklyn/entity/chef/hosted-chef-brooklyn-credentials/"+f);
-                InputStream in = InputStreamSupplier.fromString(contents).getInput();
-                try {
-                    FileUtil.copyTo(in, new File(tempDir, f));
-                } finally {
-                    Streams.closeQuietly(in);
-                }
+        for (String f: new String[] { "knife.rb", "brooklyn-tests.pem", "brooklyn-validator.pem" }) {
+            InputStream in = r.getResourceFromUrl("classpath:///org/apache/brooklyn/entity/chef/hosted-chef-brooklyn-credentials/"+f);
+            try {
+                FileUtil.copyTo(in, new File(tempDir, f));
+            } finally {
+                Streams.closeQuietly(in);
             }
-        } catch (IOException e) {
-            throw Throwables.propagate(e);
         }
         File knifeConfig = new File(tempDir, "knife.rb");
         defaultConfigFile = knifeConfig.getPath();

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/aa3f1835/utils/common/src/main/java/org/apache/brooklyn/util/ShellUtils.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/ShellUtils.java b/utils/common/src/main/java/org/apache/brooklyn/util/ShellUtils.java
index 7a9b1af..ce053b2 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/ShellUtils.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/ShellUtils.java
@@ -64,11 +64,11 @@ public class ShellUtils {
         return exec(new String[] { "bash", "-l", "-c", cmd }, null, null, input, log, context);
     }
     /** @see {@link #exec(Map, String[], String[], File, String, Logger, Object)} */
-    public static String[] exec(Map flags, String cmd, Logger log, Object context) {
+    public static String[] exec(Map<?,?> flags, String cmd, Logger log, Object context) {
         return exec(flags, new String[] { "bash", "-l", "-c", cmd }, null, null, null, log, context);
     }
     /** @see {@link #exec(Map, String[], String[], File, String, Logger, Object)} */
-    public static String[] exec(Map flags, String cmd, String input, Logger log, Object context) {
+    public static String[] exec(Map<?,?> flags, String cmd, String input, Logger log, Object context) {
         return exec(flags, new String[] { "bash", "-l", "-c", cmd }, null, null, input, log, context);
     }
     /** @see {@link #exec(Map, String[], String[], File, String, Logger, Object)} */
@@ -76,7 +76,7 @@ public class ShellUtils {
         return exec(Maps.newLinkedHashMap(), cmd, envp, dir, input, log, context);
     }
 
-    private static long getTimeoutMs(Map flags) {
+    private static long getTimeoutMs(Map<?,?> flags) {
         long timeout = TIMEOUT;
 
         Object tf = flags.get("timeout");
@@ -103,7 +103,7 @@ public class ShellUtils {
      * @throws IllegalStateException if return code non-zero
      * @return lines from stdout.
      */
-    public static String[] exec(Map flags, final String[] cmd, String[] envp, File dir, String input, final Logger log, final Object context) {
+    public static String[] exec(Map<?,?> flags, final String[] cmd, String[] envp, File dir, String input, final Logger log, final Object context) {
         if (log.isDebugEnabled()) {
             log.debug("Running local command: {}% {}", context, Strings.join(cmd, " "));
         }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/aa3f1835/utils/common/src/main/java/org/apache/brooklyn/util/http/HttpTool.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/http/HttpTool.java b/utils/common/src/main/java/org/apache/brooklyn/util/http/HttpTool.java
index 719f304..e704886 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/http/HttpTool.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/http/HttpTool.java
@@ -241,6 +241,8 @@ public class HttpTool {
         return new HttpClientBuilder();
     }
     
+    // TODO deprecate this and use the new Apache Commons HttpClientBuilder instead
+    @SuppressWarnings("deprecation")
     public static class HttpClientBuilder {
         private ClientConnectionManager clientConnectionManager;
         private HttpParams httpParams;

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/aa3f1835/utils/common/src/main/java/org/apache/brooklyn/util/io/FilePermissions.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/io/FilePermissions.java b/utils/common/src/main/java/org/apache/brooklyn/util/io/FilePermissions.java
index d366af5..b59d77e 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/io/FilePermissions.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/io/FilePermissions.java
@@ -15,23 +15,24 @@
  */
 package org.apache.brooklyn.util.io;
 
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.attribute.PosixFileAttributeView;
-import java.nio.file.attribute.PosixFilePermission;
 import static java.nio.file.attribute.PosixFilePermission.GROUP_EXECUTE;
 import static java.nio.file.attribute.PosixFilePermission.GROUP_READ;
 import static java.nio.file.attribute.PosixFilePermission.GROUP_WRITE;
+import static java.nio.file.attribute.PosixFilePermission.OTHERS_EXECUTE;
 import static java.nio.file.attribute.PosixFilePermission.OTHERS_READ;
 import static java.nio.file.attribute.PosixFilePermission.OTHERS_WRITE;
-import static java.nio.file.attribute.PosixFilePermission.OTHERS_EXECUTE;
+import static java.nio.file.attribute.PosixFilePermission.OWNER_EXECUTE;
 import static java.nio.file.attribute.PosixFilePermission.OWNER_READ;
 import static java.nio.file.attribute.PosixFilePermission.OWNER_WRITE;
-import static java.nio.file.attribute.PosixFilePermission.OWNER_EXECUTE;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.attribute.PosixFilePermission;
 import java.util.EnumSet;
 import java.util.Set;
+
 import org.apache.brooklyn.util.os.Os;
 
 /**

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/aa3f1835/utils/common/src/main/java/org/apache/brooklyn/util/net/ReachableSocketFinder.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/net/ReachableSocketFinder.java b/utils/common/src/main/java/org/apache/brooklyn/util/net/ReachableSocketFinder.java
index 72fb71c..05c1fa3 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/net/ReachableSocketFinder.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/net/ReachableSocketFinder.java
@@ -18,7 +18,6 @@ package org.apache.brooklyn.util.net;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
-import static com.google.common.util.concurrent.MoreExecutors.listeningDecorator;
 
 import java.util.Collection;
 import java.util.List;

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/aa3f1835/utils/common/src/main/java/org/apache/brooklyn/util/os/Os.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/os/Os.java b/utils/common/src/main/java/org/apache/brooklyn/util/os/Os.java
index 6ff2b3a..27a2c70 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/os/Os.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/os/Os.java
@@ -34,7 +34,7 @@ import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.guava.Maybe;
 import org.apache.brooklyn.util.javalang.JavaClassNames;
 import org.apache.brooklyn.util.net.Urls;
-import org.apache.brooklyn.util.os.Os;
+import org.apache.brooklyn.util.osgi.OsgiUtil;
 import org.apache.brooklyn.util.stream.Streams;
 import org.apache.brooklyn.util.text.Identifiers;
 import org.apache.brooklyn.util.text.Strings;
@@ -51,8 +51,6 @@ import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 import com.google.common.io.ByteStreams;
 import com.google.common.io.Files;
-import java.util.concurrent.atomic.AtomicBoolean;
-import org.apache.brooklyn.util.osgi.OsgiUtil;
 
 public class Os {
 

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/aa3f1835/utils/common/src/main/java/org/apache/brooklyn/util/repeat/Repeater.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/repeat/Repeater.java b/utils/common/src/main/java/org/apache/brooklyn/util/repeat/Repeater.java
index 9dfc9fb..581a61b 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/repeat/Repeater.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/repeat/Repeater.java
@@ -346,7 +346,7 @@ public class Repeater implements Callable<Boolean> {
                 if (log.isDebugEnabled()) {
                     String msg = String.format("%s: unsatisfied during iteration %s %s", description, iterations,
                         (iterationLimit > 0 ? "(max "+iterationLimit+" attempts)" : "") + 
-                        (timer.isRunning() ? "("+Time.makeTimeStringRounded(timer.getDurationRemaining())+" remaining)" : ""));
+                        (timer.isNotPaused() ? "("+Time.makeTimeStringRounded(timer.getDurationRemaining())+" remaining)" : ""));
                     if (iterations == 1) {
                         log.debug(msg);
                     } else {

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/aa3f1835/utils/common/src/main/java/org/apache/brooklyn/util/stream/InputStreamSupplier.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/stream/InputStreamSupplier.java b/utils/common/src/main/java/org/apache/brooklyn/util/stream/InputStreamSupplier.java
index e1832f1..2b6afac 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/stream/InputStreamSupplier.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/stream/InputStreamSupplier.java
@@ -21,8 +21,12 @@ package org.apache.brooklyn.util.stream;
 import java.io.IOException;
 import java.io.InputStream;
 
+import com.google.common.io.ByteSource;
 import com.google.common.io.InputSupplier;
 
+/** @deprecated since 0.10.0; underlying guava deprecated; 
+ * guava says to use a {@link ByteSource}; and in many cases there's also a better way */
+@Deprecated
 public class InputStreamSupplier implements InputSupplier<InputStream> {
 
     private final InputStream target;

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/aa3f1835/utils/common/src/main/java/org/apache/brooklyn/util/text/Identifiers.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/text/Identifiers.java b/utils/common/src/main/java/org/apache/brooklyn/util/text/Identifiers.java
index d025f5c..97eb024 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/text/Identifiers.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/text/Identifiers.java
@@ -168,9 +168,11 @@ public class Identifiers {
         return Joiner.on("").join(list);
     }
 
+    @SuppressWarnings({ "rawtypes", "unchecked" })  
     protected static String mergeCharacterSets(String... s) {
         Set characters = new HashSet<Character>();
         for (String characterSet : s) {
+            // more efficient to lose the generics here
             characters.addAll(Arrays.asList(characterSet.split("")));
         }
 

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/aa3f1835/utils/common/src/test/java/org/apache/brooklyn/util/collections/MutableSetTest.java
----------------------------------------------------------------------
diff --git a/utils/common/src/test/java/org/apache/brooklyn/util/collections/MutableSetTest.java b/utils/common/src/test/java/org/apache/brooklyn/util/collections/MutableSetTest.java
index fb776d3..fedb9c9 100644
--- a/utils/common/src/test/java/org/apache/brooklyn/util/collections/MutableSetTest.java
+++ b/utils/common/src/test/java/org/apache/brooklyn/util/collections/MutableSetTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.brooklyn.util.collections;
 
-import java.util.List;
 import java.util.Set;
 
 import org.testng.Assert;


[5/5] brooklyn-server git commit: Closes #359

Posted by sv...@apache.org.
Closes #359

Utils tidy

tiny tidies to utils, including deprecation making `Maybe` a bit easier to work with in a couple places


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

Branch: refs/heads/master
Commit: f9637f3d1059992e06f6b418f68662ba70c558e6
Parents: d7edfad 72ce981
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Mon Oct 31 14:23:35 2016 +0200
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Mon Oct 31 14:23:35 2016 +0200

----------------------------------------------------------------------
 .../creation/BrooklynYamlLocationResolver.java  |  3 +-
 .../core/location/BasicLocationRegistry.java    |  2 +-
 .../BrooklynClassLoadingContextSequential.java  |  4 +--
 .../brooklyn/core/mgmt/ha/OsgiManager.java      |  2 +-
 .../resolve/entity/JavaEntitySpecResolver.java  |  2 +-
 .../location/byon/HostLocationResolver.java     |  2 +-
 .../byon/SingleMachineLocationResolver.java     |  2 +-
 .../entity/chef/ChefLiveTestSupport.java        | 20 ++++---------
 .../java/org/apache/brooklyn/test/Asserts.java  | 30 +++++++++++++++++---
 .../org/apache/brooklyn/util/ShellUtils.java    |  8 +++---
 .../org/apache/brooklyn/util/guava/Maybe.java   |  6 +++-
 .../org/apache/brooklyn/util/http/HttpTool.java |  2 ++
 .../brooklyn/util/io/FilePermissions.java       | 17 +++++------
 .../java/org/apache/brooklyn/util/os/Os.java    |  4 +--
 .../apache/brooklyn/util/repeat/Repeater.java   |  2 +-
 .../util/stream/InputStreamSupplier.java        |  4 +++
 .../apache/brooklyn/util/text/Identifiers.java  | 12 +++++---
 .../util/collections/MutableSetTest.java        |  1 -
 .../brooklyn/util/text/IdentifiersTest.java     |  3 +-
 19 files changed, 76 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/f9637f3d/utils/common/src/main/java/org/apache/brooklyn/test/Asserts.java
----------------------------------------------------------------------


[4/5] brooklyn-server git commit: address Identifiers comment

Posted by sv...@apache.org.
address Identifiers comment


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

Branch: refs/heads/master
Commit: 72ce9816ebe36fc39571b3de6647320251410bb1
Parents: c8eb0de
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Oct 19 11:18:35 2016 -0400
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Oct 19 11:18:35 2016 -0400

----------------------------------------------------------------------
 .../org/apache/brooklyn/util/text/Identifiers.java    | 14 ++++++++------
 .../apache/brooklyn/util/text/IdentifiersTest.java    |  3 ++-
 2 files changed, 10 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/72ce9816/utils/common/src/main/java/org/apache/brooklyn/util/text/Identifiers.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/text/Identifiers.java b/utils/common/src/main/java/org/apache/brooklyn/util/text/Identifiers.java
index 97eb024..56af6cf 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/text/Identifiers.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/text/Identifiers.java
@@ -21,13 +21,15 @@ package org.apache.brooklyn.util.text;
 import java.security.SecureRandom;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Random;
 import java.util.Set;
 
+import org.apache.brooklyn.util.collections.MutableSet;
+
 import com.google.common.base.Joiner;
 import com.google.common.base.Preconditions;
+import com.google.common.primitives.Chars;
 
 public class Identifiers {
     
@@ -168,15 +170,15 @@ public class Identifiers {
         return Joiner.on("").join(list);
     }
 
-    @SuppressWarnings({ "rawtypes", "unchecked" })  
     protected static String mergeCharacterSets(String... s) {
-        Set characters = new HashSet<Character>();
+        Set<Character> characters = MutableSet.of();
         for (String characterSet : s) {
-            // more efficient to lose the generics here
-            characters.addAll(Arrays.asList(characterSet.split("")));
+            for (char c: characterSet.toCharArray()) {
+                characters.add(c);
+            }
         }
 
-        return Joiner.on("").join(characters);
+        return new String(Chars.toArray(characters));
     }
 
     /** creates a short identifier comfortable in java and OS's, given an input hash code

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/72ce9816/utils/common/src/test/java/org/apache/brooklyn/util/text/IdentifiersTest.java
----------------------------------------------------------------------
diff --git a/utils/common/src/test/java/org/apache/brooklyn/util/text/IdentifiersTest.java b/utils/common/src/test/java/org/apache/brooklyn/util/text/IdentifiersTest.java
index e21bb81..4b9c041 100644
--- a/utils/common/src/test/java/org/apache/brooklyn/util/text/IdentifiersTest.java
+++ b/utils/common/src/test/java/org/apache/brooklyn/util/text/IdentifiersTest.java
@@ -113,6 +113,7 @@ public class IdentifiersTest {
     public void testCharMerge() {
         String characters = Identifiers.mergeCharacterSets("abc", "bcd", "ghjj");
         Assert.assertEquals(characters.indexOf('b'), characters.lastIndexOf('b'));
+        Assert.assertEquals(characters, "abcdghj");
     }
-    
+
 }


[3/5] brooklyn-server git commit: fix Asserts missing import, tidy following review comments

Posted by sv...@apache.org.
fix Asserts missing import, tidy following review comments


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

Branch: refs/heads/master
Commit: c8eb0de0445846fce3ef222227444cf2a2d8608f
Parents: 9c04001
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Oct 19 11:01:17 2016 -0400
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Oct 19 11:01:17 2016 -0400

----------------------------------------------------------------------
 .../java/org/apache/brooklyn/test/Asserts.java    | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/c8eb0de0/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 a4f8747..eee4e21 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
@@ -18,8 +18,6 @@
  */
 package org.apache.brooklyn.test;
 
-import groovy.lang.Closure;
-
 import java.lang.reflect.Array;
 import java.util.Arrays;
 import java.util.Collection;
@@ -36,9 +34,11 @@ import java.util.concurrent.atomic.AtomicReference;
 import org.apache.brooklyn.util.collections.MutableList;
 import org.apache.brooklyn.util.collections.MutableSet;
 import org.apache.brooklyn.util.exceptions.Exceptions;
+import org.apache.brooklyn.util.guava.Maybe;
 import org.apache.brooklyn.util.javalang.JavaClassNames;
 import org.apache.brooklyn.util.repeat.Repeater;
 import org.apache.brooklyn.util.text.StringPredicates;
+import org.apache.brooklyn.util.text.Strings;
 import org.apache.brooklyn.util.time.CountdownTimer;
 import org.apache.brooklyn.util.time.Duration;
 import org.slf4j.Logger;
@@ -55,6 +55,8 @@ import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 
+import groovy.lang.Closure;
+
 /**
  * TODO should move this to new package brooklyn.util.assertions
  * and TODO should add a repeating() method which returns an AssertingRepeater extending Repeater
@@ -690,7 +692,7 @@ public class Asserts {
      * @param condition the condition to evaluate
      */
     public static void assertTrue(boolean condition) {
-        if (!condition) fail(null);
+        if (!condition) fail();
     }
 
     /**
@@ -723,6 +725,9 @@ public class Asserts {
     public static AssertionError fail(String message) {
         throw new AssertionError(message);
     }
+    public static AssertionError fail(Throwable error) {
+        throw new AssertionError(error);
+    }
     public static AssertionError fail() { throw new AssertionError(); }
 
     public static void assertEqualsIgnoringOrder(Iterable<?> actual, Iterable<?> expected) {
@@ -1097,8 +1102,11 @@ public class Asserts {
     }
 
     public static <T> void assertThat(T object, Predicate<T> condition) {
+        assertThat(object, condition, null);
+    }
+    public static <T> void assertThat(T object, Predicate<T> condition, String message) {
         if (condition.apply(object)) return;
-        fail("Failed "+condition+": "+object);
+        fail(Strings.isBlank(message) ? "Failed "+condition+": "+object : message);
     }
 
     public static void assertStringContains(String input, String phrase1ToContain, String ...optionalOtherPhrasesToContain) {
@@ -1382,7 +1390,7 @@ public class Asserts {
     }
 
     public static void assertInstanceOf(Object obj, Class<?> type) {
-        assertThat(obj, Predicates.instanceOf(type));
+        assertThat(obj, Predicates.instanceOf(type), "Expected "+type+" but found "+(obj==null ? "null" : obj+" ("+obj.getClass()+")"));
     }
 
     public static <T> void assertPresent(Maybe<T> candidate) {