You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by ha...@apache.org on 2015/08/18 17:03:35 UTC

[26/64] [abbrv] incubator-brooklyn git commit: BROOKLYN-162 - apply org.apache package prefix to utils-common

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/exceptions/PropagatedRuntimeException.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/exceptions/PropagatedRuntimeException.java b/utils/common/src/main/java/brooklyn/util/exceptions/PropagatedRuntimeException.java
deleted file mode 100644
index 07f4ca7..0000000
--- a/utils/common/src/main/java/brooklyn/util/exceptions/PropagatedRuntimeException.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.exceptions;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/** Indicates a runtime exception which has been propagated via {@link Exceptions#propagate} */
-public class PropagatedRuntimeException extends RuntimeException {
-
-    private static final long serialVersionUID = 3959054308510077172L;
-    private static final Logger LOG = LoggerFactory.getLogger(PropagatedRuntimeException.class);
-
-    private final boolean causeEmbeddedInMessage;
-    
-    /** Callers should typically *not* attempt to summarise the cause in the message here; use toString() to get extended information */
-    public PropagatedRuntimeException(String message, Throwable cause) {
-        super(message, cause);
-        warnIfWrapping(cause);
-        causeEmbeddedInMessage = message.endsWith(Exceptions.collapseText(getCause()));
-    }
-
-    public PropagatedRuntimeException(String message, Throwable cause, boolean causeEmbeddedInMessage) {
-        super(message, cause);
-        warnIfWrapping(cause);
-        this.causeEmbeddedInMessage = causeEmbeddedInMessage;
-    }
-
-    public PropagatedRuntimeException(Throwable cause) {
-        super("" /* do not use default message as that destroys the toString */, cause);
-        warnIfWrapping(cause);
-        causeEmbeddedInMessage = false;
-    }
-
-    private void warnIfWrapping(Throwable cause) {
-        if (LOG.isTraceEnabled() && cause instanceof PropagatedRuntimeException) {
-            LOG.trace("Wrapping a PropagatedRuntimeException in another PropagatedRuntimeException. Call chain:", new Exception());
-        }
-    }
-
-    @Override
-    public String toString() {
-        if (causeEmbeddedInMessage) {
-            return super.toString();
-        } else {
-            return Exceptions.appendSeparator(super.toString(), Exceptions.collapseText(getCause()));
-        }
-    }
-
-    public boolean isCauseEmbeddedInMessage() {
-        return causeEmbeddedInMessage;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/exceptions/ReferenceWithError.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/exceptions/ReferenceWithError.java b/utils/common/src/main/java/brooklyn/util/exceptions/ReferenceWithError.java
deleted file mode 100644
index bd52b3f..0000000
--- a/utils/common/src/main/java/brooklyn/util/exceptions/ReferenceWithError.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.exceptions;
-
-import javax.annotation.Nullable;
-
-import com.google.common.annotations.Beta;
-import com.google.common.base.Supplier;
-
-/** A reference to an object which can carry an object alongside it. */
-@Beta
-public class ReferenceWithError<T> implements Supplier<T> {
-
-    private final T object;
-    private final Throwable error;
-    private final boolean maskError;
-
-    /** returns a reference which includes an error, and where attempts to get the content cause the error to throw */
-    public static <T> ReferenceWithError<T> newInstanceThrowingError(T object, Throwable error) {
-        return new ReferenceWithError<T>(object, error, false);
-    }
-    
-    /** returns a reference which includes an error, but attempts to get the content do not cause the error to throw */
-    public static <T> ReferenceWithError<T> newInstanceMaskingError(T object, Throwable error) {
-        return new ReferenceWithError<T>(object, error, true);
-    }
-    
-    /** returns a reference which includes an error, but attempts to get the content do not cause the error to throw */
-    public static <T> ReferenceWithError<T> newInstanceWithoutError(T object) {
-        return new ReferenceWithError<T>(object, null, false);
-    }
-    
-    protected ReferenceWithError(@Nullable T object, @Nullable Throwable error, boolean maskError) {
-        this.object = object;
-        this.error = error;
-        this.maskError = maskError;
-    }
-
-    /** whether this will mask any error on an attempt to {@link #get()};
-     * if false (if created with {@link #newInstanceThrowingError(Object, Throwable)}) a call to {@link #get()} will throw if there is an error;
-     * true if created with {@link #newInstanceMaskingError(Object, Throwable)} and {@link #get()} will not throw */
-    public boolean masksErrorIfPresent() {
-        return maskError;
-    }
-
-    /** returns the underlying value, throwing if there is an error which is not masked (ie {@link #throwsErrorOnAccess()} is set) */
-    public T get() {
-        if (masksErrorIfPresent()) {
-            return getWithoutError();
-        }
-        return getWithError();
-    }
-
-    /** returns the object, ignoring any error (even non-masked) */
-    public T getWithoutError() {
-        return object;
-    }
-
-    /** throws error, even if there is one (even if masked), else returns the object */
-    public T getWithError() {
-        checkNoError();
-        return object;
-    }
-
-    /** throws if there is an error (even if masked) */
-    public void checkNoError() {
-        if (hasError())
-            Exceptions.propagate(error);
-    }
-
-    /** returns the error (not throwing) */
-    public Throwable getError() {
-        return error;
-    }
-    
-    /** true if there is an error (whether masked or not) */
-    public boolean hasError() {
-        return error!=null;
-    }
-
-    @Override
-    public String toString() {
-        return getClass().getSimpleName()+"["+object+(error!=null?"/"+(maskError?"masking:":"throwing:")+error:"")+"]";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/exceptions/RuntimeInterruptedException.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/exceptions/RuntimeInterruptedException.java b/utils/common/src/main/java/brooklyn/util/exceptions/RuntimeInterruptedException.java
deleted file mode 100644
index d9dae6b..0000000
--- a/utils/common/src/main/java/brooklyn/util/exceptions/RuntimeInterruptedException.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.exceptions;
-
-/**
- * A {@link RuntimeException} that is thrown when a Thread is interrupted.
- * <p>
- * This exception is useful if a Thread needs to be interrupted, but the {@link InterruptedException} can't be thrown
- * because it is checked.
- * <p>
- * When the {@link RuntimeInterruptedException} is created, it will automatically set the interrupt status on the calling
- * thread.
- *
- * @author Peter Veentjer.
- */
-public class RuntimeInterruptedException extends RuntimeException {
-
-    private static final long serialVersionUID = 915050245927866175L;
-
-    public RuntimeInterruptedException(InterruptedException cause) {
-        super(cause);
-        Thread.currentThread().interrupt();
-    }
-
-    public RuntimeInterruptedException(String msg, InterruptedException cause) {
-        super(msg, cause);
-        Thread.currentThread().interrupt();
-    }
-
-    @Override
-    public InterruptedException getCause() {
-        return (InterruptedException) super.getCause();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/exceptions/RuntimeTimeoutException.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/exceptions/RuntimeTimeoutException.java b/utils/common/src/main/java/brooklyn/util/exceptions/RuntimeTimeoutException.java
deleted file mode 100644
index 865ae73..0000000
--- a/utils/common/src/main/java/brooklyn/util/exceptions/RuntimeTimeoutException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.exceptions;
-
-public class RuntimeTimeoutException extends IllegalStateException {
-
-    private static final long serialVersionUID = -3359163414517503809L;
-
-    public RuntimeTimeoutException() {
-        super("timeout");
-    }
-    
-    public RuntimeTimeoutException(String message) {
-        super(message);
-    }
-    
-    public RuntimeTimeoutException(String message, Throwable cause) {
-        super(message, cause);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/exceptions/UserFacingException.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/exceptions/UserFacingException.java b/utils/common/src/main/java/brooklyn/util/exceptions/UserFacingException.java
deleted file mode 100644
index b7237ac..0000000
--- a/utils/common/src/main/java/brooklyn/util/exceptions/UserFacingException.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.exceptions;
-
-/** marker interface, to show that an exception is suitable for pretty-printing to an end-user,
- * without including a stack trace */
-public class UserFacingException extends RuntimeException {
-
-    private static final long serialVersionUID = 2216885527195571323L;
-
-    public UserFacingException(String message) {
-        super(message);
-    }
-
-    public UserFacingException(Throwable cause) {
-        super(cause.getMessage(), cause);
-    }
-
-    public UserFacingException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/git/GithubUrls.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/git/GithubUrls.java b/utils/common/src/main/java/brooklyn/util/git/GithubUrls.java
deleted file mode 100644
index d38b66d..0000000
--- a/utils/common/src/main/java/brooklyn/util/git/GithubUrls.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.git;
-
-import brooklyn.util.net.Urls;
-
-public class GithubUrls {
-
-    public static String BASE_URL = "https://github.com/";
-    
-    /** returns URL for the root of the given repo */
-    public static String root(String owner, String repo) {
-        return Urls.mergePaths(BASE_URL, owner, repo);
-    }
-    
-    /** returns URL for downloading a .tar.gz version of a tag of a repository */
-    public static String tgz(String owner, String repo, String tag) {
-        return Urls.mergePaths(root(owner, repo), "archive", tag+".tar.gz");
-    }
-
-    /** returns URL for downloading a .zip version of a tag of a repository */
-    public static String zip(String owner, String repo, String tag) {
-        return Urls.mergePaths(root(owner, repo), "archive", tag+".zip");
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/guava/Functionals.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/guava/Functionals.java b/utils/common/src/main/java/brooklyn/util/guava/Functionals.java
deleted file mode 100644
index 08e41b1..0000000
--- a/utils/common/src/main/java/brooklyn/util/guava/Functionals.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.guava;
-
-import java.util.concurrent.Callable;
-
-import brooklyn.util.guava.IfFunctions.IfFunctionBuilderApplyingFirst;
-
-import com.google.common.base.Function;
-import com.google.common.base.Functions;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-
-public class Functionals {
-
-    /** applies f1 to the input, then the result of that is passed to f2 (note opposite semantics to {@link Functions#compose(Function, Function)} */ 
-    public static <A,B,C> Function<A,C> chain(final Function<A,? extends B> f1, final Function<B,C> f2) {
-        return Functions.compose(f2, f1);
-    }
-    
-    /** applies f1 to the input, then f2 to that result, then f3 to that result */
-    public static <A,B,C,D> Function<A,D> chain(final Function<A,? extends B> f1, final Function<B,? extends C> f2, final Function<C,D> f3) {
-        return chain(f1, chain(f2, f3));
-    }
-    
-    /** applies f1 to the input, then f2 to that result, then f3 to that result, then f4 to that result */
-    public static <A,B,C,D,E> Function<A,E> chain(final Function<A,? extends B> f1, final Function<B,? extends C> f2, final Function<C,? extends D> f3, final Function<D,E> f4) {
-        return chain(f1, chain(f2, chain(f3, f4)));
-    }
-
-    /** @see IfFunctions */
-    public static <I> IfFunctionBuilderApplyingFirst<I> ifEquals(I test) {
-        return IfFunctions.ifEquals(test);
-    }
-
-    /** @see IfFunctions */
-    public static <I> IfFunctionBuilderApplyingFirst<I> ifNotEquals(I test) {
-        return IfFunctions.ifNotEquals(test);
-    }
-    
-    /** @see IfFunctions */
-    public static <I> IfFunctionBuilderApplyingFirst<I> ifPredicate(Predicate<I> test) {
-        return IfFunctions.ifPredicate(test);
-    }
-
-    /** like guava equivalent but parametrises the input generic type, and allows tostring to be customised */
-    public static final class ConstantFunction<I, O> implements Function<I, O> {
-        private final O constant;
-        private Object toStringDescription;
-
-        public ConstantFunction(O constant) {
-            this(constant, null);
-        }
-        public ConstantFunction(O constant, Object toStringDescription) {
-            this.constant = constant;
-            this.toStringDescription = toStringDescription;
-        }
-
-        @Override
-        public O apply(I input) {
-            return constant;
-        }
-        
-        @Override
-        public String toString() {
-            return toStringDescription==null ? "constant("+constant+")" : toStringDescription.toString();
-        }
-    }
-
-    /** like guava {@link Functions#forSupplier(Supplier)} but parametrises the input generic type */
-    public static <I,O> Function<I,O> function(final Supplier<O> supplier) {
-        class SupplierAsFunction implements Function<I,O> {
-            @Override public O apply(I input) {
-                return supplier.get();
-            }
-            @Override public String toString() {
-                return "function("+supplier+")";
-            }
-        }
-        return new SupplierAsFunction();
-    }
-
-    public static <I> Function<I,Void> function(final Runnable runnable) {
-        class RunnableAsFunction implements Function<I,Void> {
-            @Override public Void apply(I input) {
-                runnable.run();
-                return null;
-            }
-        }
-        return new RunnableAsFunction();
-    }
-
-    public static Runnable runnable(final Supplier<?> supplier) {
-        class SupplierAsRunnable implements Runnable {
-            @Override
-            public void run() {
-                supplier.get();
-            }
-        }
-        return new SupplierAsRunnable();
-    }
-
-    public static <T> Callable<T> callable(final Supplier<T> supplier) {
-        class SupplierAsCallable implements Callable<T> {
-            @Override
-            public T call() {
-                return supplier.get();
-            }
-            @Override
-            public String toString() {
-                return "callable("+supplier+")";
-            }
-        }
-        return new SupplierAsCallable();
-    }
-    public static <T,U> Callable<U> callable(Function<T,U> f, T x) {
-        return callable(Suppliers.compose(f, Suppliers.ofInstance(x)));
-    }
-
-    public static <T> Predicate<T> predicate(final Function<T,Boolean> f) {
-        class FunctionAsPredicate implements Predicate<T> {
-            @Override
-            public boolean apply(T input) {
-                return f.apply(input);
-            }
-            @Override
-            public String toString() {
-                return "predicate("+f+")";
-            }
-        }
-        return new FunctionAsPredicate();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/guava/IfFunctions.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/guava/IfFunctions.java b/utils/common/src/main/java/brooklyn/util/guava/IfFunctions.java
deleted file mode 100644
index ceea8c3..0000000
--- a/utils/common/src/main/java/brooklyn/util/guava/IfFunctions.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.guava;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import com.google.common.annotations.Beta;
-import com.google.common.base.Function;
-import com.google.common.base.Functions;
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
-import com.google.common.base.Supplier;
-
-/** Utilities for building {@link Function} instances which return specific values
- * (or {@link Supplier} or {@link Function} instances) when certain predicates are satisfied,
- * tested in order and returning the first matching,
- * with support for an "else" default value if none are satisfied (null by default). */
-public class IfFunctions {
-
-    public static <I,O> IfFunctionBuilder<I,O> newInstance(Class<I> testType, Class<O> returnType) {
-        return new IfFunctionBuilder<I,O>();
-    }
-    
-    public static <I> IfFunctionBuilderApplyingFirst<I> ifPredicate(Predicate<? super I> test) {
-        return new IfFunctionBuilderApplyingFirst<I>(test);
-    }
-    public static <I> IfFunctionBuilderApplyingFirst<I> ifEquals(I test) {
-        return ifPredicate(Predicates.equalTo(test));
-    }
-    public static <I> IfFunctionBuilderApplyingFirst<I> ifNotEquals(I test) {
-        return ifPredicate(Predicates.not(Predicates.equalTo(test)));
-    }
-    
-    @Beta
-    public static class IfFunction<I,O> implements Function<I,O> {
-        protected final Map<Predicate<? super I>,Function<? super I,? extends O>> tests = new LinkedHashMap<Predicate<? super I>,Function<? super I,? extends O>>();
-        protected Function<? super I,? extends O> defaultFunction = null;
-        
-        protected IfFunction(IfFunction<I,O> input) {
-            this.tests.putAll(input.tests);
-            this.defaultFunction = input.defaultFunction;
-        }
-
-        protected IfFunction() {
-        }
-        
-        @Override
-        public O apply(I input) {
-            for (Map.Entry<Predicate<? super I>,Function<? super I,? extends O>> test: tests.entrySet()) {
-                if (test.getKey().apply(input)) 
-                    return test.getValue().apply(input);
-            }
-            return defaultFunction==null ? null : defaultFunction.apply(input);
-        }
-        
-        @Override
-        public String toString() {
-            return "if["+tests+"]"+(defaultFunction!=null ? "-else["+defaultFunction+"]" : "");
-        }
-    }
-    
-    @Beta
-    public static class IfFunctionBuilder<I,O> extends IfFunction<I,O> {
-        protected IfFunctionBuilder() { super(); }
-        protected IfFunctionBuilder(IfFunction<I,O> input) { super(input); }
-        
-        public IfFunction<I,O> build() {
-            return new IfFunction<I,O>(this);
-        }
-        
-        public IfFunctionBuilderApplying<I,O> ifPredicate(Predicate<I> test) {
-            return new IfFunctionBuilderApplying<I,O>(this, (Predicate<I>)test);
-        }
-        public IfFunctionBuilderApplying<I,O> ifEquals(I test) {
-            return ifPredicate(Predicates.equalTo(test));
-        }
-        public IfFunctionBuilderApplying<I,O> ifNotEquals(I test) {
-            return ifPredicate(Predicates.not(Predicates.equalTo(test)));
-        }
-
-        public IfFunctionBuilder<I,O> defaultValue(O defaultValue) {
-            return defaultApply(new Functionals.ConstantFunction<I,O>(defaultValue, defaultValue));
-        }
-        @SuppressWarnings("unchecked")
-        public IfFunctionBuilder<I,O> defaultGet(Supplier<? extends O> defaultSupplier) {
-            return defaultApply((Function<I,O>)Functions.forSupplier(defaultSupplier));
-        }
-        public IfFunctionBuilder<I,O> defaultApply(Function<? super I,? extends O> defaultFunction) {
-            IfFunctionBuilder<I, O> result = new IfFunctionBuilder<I,O>(this);
-            result.defaultFunction = defaultFunction;
-            return result;
-        }
-    }
-
-    @Beta
-    public static class IfFunctionBuilderApplying<I,O> {
-        private IfFunction<I, O> input;
-        private Predicate<? super I> test;
-        
-        private IfFunctionBuilderApplying(IfFunction<I,O> input, Predicate<? super I> test) {
-            this.input = input;
-            this.test = test;
-        }
-        
-        public IfFunctionBuilder<I,O> value(O value) {
-            return apply(new Functionals.ConstantFunction<I,O>(value, value));
-        }
-        @SuppressWarnings("unchecked")
-        public IfFunctionBuilder<I,O> get(Supplier<? extends O> supplier) {
-            return apply((Function<I,O>)Functions.forSupplier(supplier));
-        }
-        public IfFunctionBuilder<I,O> apply(Function<? super I,? extends O> function) {
-            IfFunctionBuilder<I, O> result = new IfFunctionBuilder<I,O>(input);
-            result.tests.put(test, function);
-            return result;
-        }
-    }
-
-    @Beta
-    public static class IfFunctionBuilderApplyingFirst<I> {
-        private Predicate<? super I> test;
-        
-        private IfFunctionBuilderApplyingFirst(Predicate<? super I> test) {
-            this.test = test;
-        }
-        
-        public <O> IfFunctionBuilder<I,O> value(O value) {
-            return apply(new Functionals.ConstantFunction<I,O>(value, value));
-        }
-        @SuppressWarnings("unchecked")
-        public <O> IfFunctionBuilder<I,O> get(Supplier<? extends O> supplier) {
-            return apply((Function<I,O>)Functions.forSupplier(supplier));
-        }
-        public <O> IfFunctionBuilder<I,O> apply(Function<? super I,? extends O> function) {
-            IfFunctionBuilder<I, O> result = new IfFunctionBuilder<I,O>();
-            result.tests.put(test, function);
-            return result;
-        }
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/guava/IllegalStateExceptionSupplier.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/guava/IllegalStateExceptionSupplier.java b/utils/common/src/main/java/brooklyn/util/guava/IllegalStateExceptionSupplier.java
deleted file mode 100644
index b75bca2..0000000
--- a/utils/common/src/main/java/brooklyn/util/guava/IllegalStateExceptionSupplier.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.guava;
-
-import com.google.common.base.Supplier;
-
-public class IllegalStateExceptionSupplier implements Supplier<RuntimeException> {
-
-    public static final IllegalStateExceptionSupplier EMPTY_EXCEPTION = new IllegalStateExceptionSupplier();
-    
-    protected final String message;
-    protected final Throwable cause;
-    
-    public IllegalStateExceptionSupplier() { this(null, null); }
-    public IllegalStateExceptionSupplier(String message) { this(message, null); }
-    public IllegalStateExceptionSupplier(Throwable cause) { this(cause!=null ? cause.getMessage() : null, cause); }
-    public IllegalStateExceptionSupplier(String message, Throwable cause) { 
-        this.message = message;
-        this.cause = cause;
-    }
-    
-    @Override
-    public RuntimeException get() {
-        return new IllegalStateException(message, cause);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/guava/KeyTransformingLoadingCache.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/guava/KeyTransformingLoadingCache.java b/utils/common/src/main/java/brooklyn/util/guava/KeyTransformingLoadingCache.java
deleted file mode 100644
index 73ab2f5..0000000
--- a/utils/common/src/main/java/brooklyn/util/guava/KeyTransformingLoadingCache.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.guava;
-
-import java.util.concurrent.Callable;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.ExecutionException;
-
-import com.google.common.base.Function;
-import com.google.common.cache.AbstractLoadingCache;
-import com.google.common.cache.CacheStats;
-import com.google.common.cache.LoadingCache;
-import com.google.common.collect.ImmutableMap;
-
-/**
- * A cache that transforms its keys before deferring to a delegate {@link LoadingCache}.
- */
-// Concise names welcome.
-public class KeyTransformingLoadingCache<A, B, V> extends AbstractLoadingCache<A, V> {
-
-    private final LoadingCache<B, V> delegate;
-    private final Function<A, B> keyTransformer;
-
-    public KeyTransformingLoadingCache(LoadingCache<B, V> delegate, Function<A, B> keyTransformer) {
-        this.delegate = delegate;
-        this.keyTransformer = keyTransformer;
-    }
-
-    public static <A, B, V> KeyTransformingLoadingCache<A, B, V> from(LoadingCache<B, V> delegate, Function<A, B> keyTransformer) {
-        return new KeyTransformingLoadingCache<A, B, V>(delegate, keyTransformer);
-    }
-
-    protected Function<A, B> keyTransformer() {
-        return keyTransformer;
-    }
-
-    protected LoadingCache<B, V> delegate() {
-        return delegate;
-    }
-
-    @Override
-    public V getIfPresent(Object key) {
-        try {
-            @SuppressWarnings("unchecked")
-            A cast = (A) key;
-            return delegate().getIfPresent(keyTransformer().apply(cast));
-        } catch (ClassCastException e) {
-            return null;
-        }
-    }
-
-    @Override
-    public V get(A key, Callable<? extends V> valueLoader) throws ExecutionException {
-        return delegate().get(keyTransformer().apply(key), valueLoader);
-    }
-
-    /**
-     * Undefined because we can't prohibit a surjective {@link #keyTransformer()}.
-     * @throws UnsupportedOperationException
-     */
-    @Override
-    public ImmutableMap<A, V> getAllPresent(Iterable<?> keys) {
-        throw new UnsupportedOperationException("getAllPresent in "+getClass().getName() + " undefined");
-    }
-
-    @Override
-    public void put(A key, V value) {
-        delegate().put(keyTransformer().apply(key), value);
-    }
-
-    @Override
-    public void invalidate(Object key) {
-        try {
-            @SuppressWarnings("unchecked")
-            A cast = (A) key;
-            delegate().invalidate(keyTransformer().apply(cast));
-        } catch (ClassCastException e) {
-            // Ignore
-        }
-    }
-
-    @Override
-    public void invalidateAll() {
-        delegate().invalidateAll();
-    }
-
-    @Override
-    public long size() {
-        return delegate().size();
-    }
-
-    @Override
-    public CacheStats stats() {
-        return delegate().stats();
-    }
-
-    @Override
-    public V get(A key) throws ExecutionException {
-        return delegate().get(keyTransformer().apply(key));
-    }
-
-    @Override
-    public void refresh(A key) {
-        delegate().refresh(keyTransformer().apply(key));
-    }
-
-    /**
-     * Undefined because input values are not tracked.
-     * @throws UnsupportedOperationException
-     */
-    @Override
-    public ConcurrentMap<A, V> asMap() {
-        throw new UnsupportedOperationException("asMap in " + getClass().getName() + " undefined");
-    }
-
-    @Override
-    public void cleanUp() {
-        delegate().cleanUp();
-    }
-
-    // Users can avoid middle type parameter.
-    public static class KeyTransformingSameTypeLoadingCache<A, V> extends KeyTransformingLoadingCache<A, A, V> {
-        public KeyTransformingSameTypeLoadingCache(LoadingCache<A, V> delegate, Function<A, A> keyTransformer) {
-            super(delegate, keyTransformer);
-        }
-
-        // IDE note: This was named `from` to be consistent with KeyTransformingLoadingCache but Intellij 13
-        // claims a name clash with the superclass `from`:
-        // java: name clash: <A,V>from(LoadingCache<A,V>, Function<A,A>) in KeyTransformingSameTypeLoadingCache
-        // and <A,B,V>from(LoadingCache<B,V>, Function<A,B>) in KeyTransformingLoadingCache have the same erasure,
-        // yet neither hides the other
-        public static <A, V> KeyTransformingSameTypeLoadingCache<A, V> with(LoadingCache<A, V> delegate, Function<A, A> keyTransformer) {
-            return new KeyTransformingSameTypeLoadingCache<A, V>(delegate, keyTransformer);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/guava/Maybe.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/guava/Maybe.java b/utils/common/src/main/java/brooklyn/util/guava/Maybe.java
deleted file mode 100644
index 1c0fcda..0000000
--- a/utils/common/src/main/java/brooklyn/util/guava/Maybe.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.guava;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.io.Serializable;
-import java.lang.ref.SoftReference;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.Set;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import brooklyn.util.javalang.JavaClassNames;
-
-import com.google.common.annotations.Beta;
-import com.google.common.base.Function;
-import com.google.common.base.Objects;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Supplier;
-import com.google.common.collect.AbstractIterator;
-import com.google.common.collect.ImmutableSet;
-
-/** Like Guava Optional but permitting null and permitting errors to be thrown. */
-public abstract class Maybe<T> implements Serializable, Supplier<T> {
-
-    private static final long serialVersionUID = -6372099069863179019L;
-
-    public static <T> Maybe<T> absent() {
-        return new Absent<T>();
-    }
-
-    /** Creates an absent whose get throws an {@link IllegalStateException} with the indicated message.
-     * Both stack traces (the cause and the callers) are provided, which can be quite handy. */
-    public static <T> Maybe<T> absent(final String message) {
-        return absent(new IllegalStateExceptionSupplier(message));
-    }
-
-    /** Creates an absent whose get throws an {@link IllegalStateException} with the indicated cause.
-     * Both stack traces (the cause and the callers) are provided, which can be quite handy. */
-    public static <T> Maybe<T> absent(final Throwable cause) {
-        return absent(new IllegalStateExceptionSupplier(cause));
-    }
-    
-    /** Creates an absent whose get throws an {@link IllegalStateException} with the indicated message and underlying cause.
-     * Both stack traces (the cause and the callers) are provided, which can be quite handy. */
-    public static <T> Maybe<T> absent(final String message, final Throwable cause) {
-        return absent(new IllegalStateExceptionSupplier(message, cause));
-    }
-    
-    /** Creates an absent whose get throws an {@link RuntimeException} generated on demand from the given supplier */
-    public static <T> Maybe<T> absent(final Supplier<? extends RuntimeException> exceptionSupplier) {
-        return new Absent<T>(Preconditions.checkNotNull(exceptionSupplier));
-    }
-    
-    public static <T> Maybe<T> of(@Nullable T value) {
-        return new Present<T>(value);
-    }
-
-    /** creates an instance wrapping a {@link SoftReference}, so it might go absent later on */
-    public static <T> Maybe<T> soft(T value) {
-        return softThen(value, null);
-    }
-    /** creates an instance wrapping a {@link SoftReference}, using the second item given if lost */
-    public static <T> Maybe<T> softThen(T value, Maybe<T> ifEmpty) {
-        if (value==null) return of((T)null);
-        return new SoftlyPresent<T>(value).usingAfterExpiry(ifEmpty);
-    }
-
-    /** like {@link Optional#fromNullable(Object)}, returns absent if the argument is null */
-    public static <T> Maybe<T> fromNullable(@Nullable T value) {
-        if (value==null) return absent();
-        return new Present<T>(value);
-    }
-
-    public static <T> Maybe<T> of(final Optional<T> value) {
-        if (value.isPresent()) return new AbstractPresent<T>() {
-            private static final long serialVersionUID = -5735268814211401356L;
-            @Override
-            public T get() {
-                return value.get();
-            }
-        };
-        return absent();
-    }
-    
-    public static <T> Maybe<T> of(final Supplier<T> value) {
-        return new AbstractPresent<T>() {
-            private static final long serialVersionUID = -5735268814211401356L;
-            @Override
-            public T get() {
-                return value.get();
-            }
-        };
-    }
-    
-    /** returns a Maybe containing the next element in the iterator, or absent if none */ 
-    public static <T> Maybe<T> next(Iterator<T> iterator) {
-        return iterator.hasNext() ? Maybe.of(iterator.next()) : Maybe.<T>absent();
-    }
-
-    public abstract boolean isPresent();
-    public abstract T get();
-    
-    public boolean isAbsent() {
-        return !isPresent(); 
-    }
-    public boolean isAbsentOrNull() {
-        return !isPresentAndNonNull();
-    }
-    public boolean isPresentAndNonNull() {
-        return isPresent() && get()!=null;
-    }
-    
-    public T or(T nextValue) {
-        if (isPresent()) return get();
-        return nextValue;
-    }
-
-    public Maybe<T> or(Maybe<T> nextValue) {
-        if (isPresent()) return this;
-        return nextValue;
-    }
-
-    public T or(Supplier<T> nextValue) {
-        if (isPresent()) return get();
-        return nextValue.get();
-    }
-
-    public T orNull() {
-        if (isPresent()) return get();
-        return null;
-    }
-    
-    public Set<T> asSet() {
-        if (isPresent()) return ImmutableSet.of(get());
-        return Collections.emptySet();
-    }
-    
-    public <V> Maybe<V> transform(final Function<? super T, V> f) {
-        if (isPresent()) return new AbstractPresent<V>() {
-            private static final long serialVersionUID = 325089324325L;
-            public V get() {
-                return f.apply(Maybe.this.get());
-            }
-        };
-        return absent();
-    }
-
-    /**
-     * Returns the value of each present instance from the supplied {@code maybes}, in order,
-     * skipping over occurrences of {@link Maybe#absent()}. Iterators are unmodifiable and are
-     * evaluated lazily.
-     *
-     * @see Optional#presentInstances(Iterable)
-     */
-    @Beta
-    public static <T> Iterable<T> presentInstances(final Iterable<? extends Maybe<? extends T>> maybes) {
-        checkNotNull(maybes);
-        return new Iterable<T>() {
-            @Override
-            public Iterator<T> iterator() {
-                return new AbstractIterator<T>() {
-                    private final Iterator<? extends Maybe<? extends T>> iterator = checkNotNull(maybes.iterator());
-
-                    @Override
-                    protected T computeNext() {
-                        while (iterator.hasNext()) {
-                            Maybe<? extends T> maybe = iterator.next();
-                            if (maybe.isPresent()) { return maybe.get(); }
-                        }
-                        return endOfData();
-                    }
-                };
-            }
-        };
-    }
-    
-    public static class Absent<T> extends Maybe<T> {
-        private static final long serialVersionUID = -757170462010887057L;
-        private final Supplier<? extends RuntimeException> exception;
-        public Absent() {
-            this(IllegalStateExceptionSupplier.EMPTY_EXCEPTION);
-        }
-        public Absent(Supplier<? extends RuntimeException> exception) {
-            this.exception = exception;
-        }
-        @Override
-        public boolean isPresent() {
-            return false;
-        }
-        @Override
-        public T get() {
-            throw getException();
-        }
-        public RuntimeException getException() {
-            return exception.get();
-        }
-    }
-
-    public static abstract class AbstractPresent<T> extends Maybe<T> {
-        private static final long serialVersionUID = -2266743425340870492L;
-        protected AbstractPresent() {
-        }
-        @Override
-        public boolean isPresent() {
-            return true;
-        }
-    }
-
-    public static class Present<T> extends AbstractPresent<T> {
-        private static final long serialVersionUID = 436799990500336015L;
-        private final T value;
-        protected Present(T value) {
-            this.value = value;
-        }
-        @Override
-        public T get() {
-            return value;
-        }
-    }
-
-    public static class SoftlyPresent<T> extends Maybe<T> {
-        private static final long serialVersionUID = 436799990500336015L;
-        private final SoftReference<T> value;
-        private Maybe<T> defaultValue;
-        protected SoftlyPresent(@Nonnull T value) {
-            this.value = new SoftReference<T>(value);
-        }
-        @Override
-        public T get() {
-            T result = value.get();
-            if (result!=null) return result;
-            if (defaultValue==null) throw new IllegalStateException("Softly present item has been GC'd");
-            return defaultValue.get();
-        }
-        @Override
-        public T orNull() {
-            T result = value.get();
-            if (result!=null) return result;
-            if (defaultValue==null) return null;
-            return defaultValue.orNull();
-        }
-        @Override
-        public boolean isPresent() {
-            return value.get()!=null || (defaultValue!=null && defaultValue.isPresent()); 
-        }
-        public Maybe<T> solidify() {
-            return Maybe.fromNullable(value.get());
-        }
-        SoftlyPresent<T> usingAfterExpiry(Maybe<T> defaultValue) {
-            this.defaultValue = defaultValue;
-            return this;
-        }
-    }
-
-    @Override
-    public String toString() {
-        return JavaClassNames.simpleClassName(this)+"["+(isPresent()?"value="+get():"")+"]";
-    }
-
-    @Override
-    public int hashCode() {
-        if (!isPresent()) return Objects.hashCode(31, isPresent());
-        return Objects.hashCode(31, get());
-    }
-    
-    @Override
-    public boolean equals(Object obj) {
-        if (!(obj instanceof Maybe)) return false;
-        Maybe<?> other = (Maybe<?>)obj;
-        if (!isPresent()) 
-            return !other.isPresent();
-        return Objects.equal(get(), other.get());
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/guava/MaybeFunctions.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/guava/MaybeFunctions.java b/utils/common/src/main/java/brooklyn/util/guava/MaybeFunctions.java
deleted file mode 100644
index 2955785..0000000
--- a/utils/common/src/main/java/brooklyn/util/guava/MaybeFunctions.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.guava;
-
-import com.google.common.base.Function;
-
-public class MaybeFunctions {
-
-    public static <T> Function<T, Maybe<T>> wrap() {
-        return new Function<T, Maybe<T>>() {
-            @Override
-            public Maybe<T> apply(T input) {
-                return Maybe.fromNullable(input);
-            }
-        };
-    }
-
-    public static <T> Function<Maybe<T>, T> get() {
-        return new Function<Maybe<T>, T>() {
-            @Override
-            public T apply(Maybe<T> input) {
-                return input.get();
-            }
-        };
-    }
-
-    public static <T> Function<Maybe<T>, T> or(final T value) {
-        return new Function<Maybe<T>, T>() {
-            @Override
-            public T apply(Maybe<T> input) {
-                return input.or(value);
-            }
-        };
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/guava/SerializablePredicate.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/guava/SerializablePredicate.java b/utils/common/src/main/java/brooklyn/util/guava/SerializablePredicate.java
deleted file mode 100644
index e090320..0000000
--- a/utils/common/src/main/java/brooklyn/util/guava/SerializablePredicate.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.guava;
-
-import java.io.Serializable;
-
-import com.google.common.base.Predicate;
-
-public interface SerializablePredicate<T> extends Predicate<T>, Serializable {
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/guava/TypeTokens.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/guava/TypeTokens.java b/utils/common/src/main/java/brooklyn/util/guava/TypeTokens.java
deleted file mode 100644
index ca69a97..0000000
--- a/utils/common/src/main/java/brooklyn/util/guava/TypeTokens.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.guava;
-
-import javax.annotation.Nullable;
-
-import com.google.common.reflect.TypeToken;
-
-public class TypeTokens {
-
-    /** returns raw type, if it's raw, else null;
-     * used e.g. to set only one of the raw type or the type token,
-     * for instance to make serialized output nicer */
-    @Nullable
-    public static <T> Class<? super T> getRawTypeIfRaw(@Nullable TypeToken<T> type) {
-        if (type==null || !type.equals(TypeToken.of(type.getRawType()))) {
-            return null;
-        } else {
-            return type.getRawType();
-        }
-    }
-    
-    /** returns null if it's raw, else the type token */
-    @Nullable
-    public static <T> TypeToken<T> getTypeTokenIfNotRaw(@Nullable TypeToken<T> type) {
-        if (type==null || type.equals(TypeToken.of(type.getRawType()))) {
-            return null;
-        } else {
-            return type;
-        }
-    }
-    
-    /** given either a token or a raw type, returns the raw type */
-    public static <T> Class<? super T> getRawType(TypeToken<T> token, Class<? super T> raw) {
-        if (raw!=null) return raw;
-        if (token!=null) return token.getRawType();
-        throw new IllegalStateException("Both indicators of type are null");
-    }
-    
-    
-    /** given either a token or a raw type, returns the token */
-    @SuppressWarnings("unchecked")
-    public static <T> TypeToken<T> getTypeToken(TypeToken<T> token, Class<? super T> raw) {
-        if (token!=null) return token;
-        if (raw!=null) return TypeToken.of((Class<T>)raw);
-        throw new IllegalStateException("Both indicators of type are null");
-    }
-
-    /** gets the Class<T> object from a token; normal methods return Class<? super T> which may technically be correct 
-     * with generics but this sloppily but handily gives you Class<T> which is usually what you have anyway */
-    @SuppressWarnings({ "rawtypes", "unchecked" })
-    public static <T> Class<T> getRawRawType(TypeToken<T> token) {
-        return (Class)token.getRawType();
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/internal/BasicDelegatingSystemProperty.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/internal/BasicDelegatingSystemProperty.java b/utils/common/src/main/java/brooklyn/util/internal/BasicDelegatingSystemProperty.java
deleted file mode 100644
index a1c766b..0000000
--- a/utils/common/src/main/java/brooklyn/util/internal/BasicDelegatingSystemProperty.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.internal;
-
-public class BasicDelegatingSystemProperty {
-    protected final StringSystemProperty delegate;
-
-    public BasicDelegatingSystemProperty(String name) {
-        delegate = new StringSystemProperty(name);
-    }
-    public String getPropertyName() {
-        return delegate.getPropertyName();
-    }
-    public boolean isAvailable() {
-        return delegate.isAvailable();
-    }
-    public String toString() {
-        return delegate.toString();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/internal/BooleanSystemProperty.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/internal/BooleanSystemProperty.java b/utils/common/src/main/java/brooklyn/util/internal/BooleanSystemProperty.java
deleted file mode 100644
index 66b119d..0000000
--- a/utils/common/src/main/java/brooklyn/util/internal/BooleanSystemProperty.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.internal;
-
-public class BooleanSystemProperty extends BasicDelegatingSystemProperty {
-    public BooleanSystemProperty(String name) {
-        super(name);
-    }
-    public boolean isEnabled() {
-        // actually access system property!
-        return Boolean.getBoolean(getPropertyName());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/internal/BrooklynSystemProperties.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/internal/BrooklynSystemProperties.java b/utils/common/src/main/java/brooklyn/util/internal/BrooklynSystemProperties.java
deleted file mode 100644
index 9737d48..0000000
--- a/utils/common/src/main/java/brooklyn/util/internal/BrooklynSystemProperties.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.internal;
-
-/** 
- * Convenience for retrieving well-defined system properties, including checking if they have been set etc.
- */
-public class BrooklynSystemProperties {
-
-    // TODO should these become ConfigKeys ?
-    
-    public static BooleanSystemProperty DEBUG = new BooleanSystemProperty("brooklyn.debug");
-    public static BooleanSystemProperty EXPERIMENTAL = new BooleanSystemProperty("brooklyn.experimental");
-    
-    /** controls how long jsch delays between commands it issues */
-    // -Dbrooklyn.jsch.exec.delay=100
-    public static IntegerSystemProperty JSCH_EXEC_DELAY = new IntegerSystemProperty("brooklyn.jsch.exec.delay");
-
-    /** allows specifying a particular geo lookup service (to lookup IP addresses), as the class FQN to use */
-    // -Dbrooklyn.location.geo.HostGeoLookup=brooklyn.location.geo.UtraceHostGeoLookup
-    public static StringSystemProperty HOST_GEO_LOOKUP_IMPL = new StringSystemProperty("brooklyn.location.geo.HostGeoLookup");
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/internal/DoubleSystemProperty.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/internal/DoubleSystemProperty.java b/utils/common/src/main/java/brooklyn/util/internal/DoubleSystemProperty.java
deleted file mode 100644
index 6003148..0000000
--- a/utils/common/src/main/java/brooklyn/util/internal/DoubleSystemProperty.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.internal;
-
-public class DoubleSystemProperty extends BasicDelegatingSystemProperty {
-    public DoubleSystemProperty(String name) {
-        super(name);
-    }
-    public double getValue() {
-        return Double.parseDouble(delegate.getValue());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/internal/IntegerSystemProperty.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/internal/IntegerSystemProperty.java b/utils/common/src/main/java/brooklyn/util/internal/IntegerSystemProperty.java
deleted file mode 100644
index 9150725..0000000
--- a/utils/common/src/main/java/brooklyn/util/internal/IntegerSystemProperty.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.internal;
-
-public class IntegerSystemProperty extends BasicDelegatingSystemProperty {
-    public IntegerSystemProperty(String name) {
-        super(name);
-    }
-    public int getValue() {
-        return Integer.parseInt(delegate.getValue());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/internal/StringSystemProperty.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/internal/StringSystemProperty.java b/utils/common/src/main/java/brooklyn/util/internal/StringSystemProperty.java
deleted file mode 100644
index b635202..0000000
--- a/utils/common/src/main/java/brooklyn/util/internal/StringSystemProperty.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.internal;
-
-public class StringSystemProperty {
-
-    // TODO replace usages of this and related items with ConfigKeys
-    
-    public StringSystemProperty(String name) {
-        this.propertyName = name;
-    }
-
-    private final String propertyName;
-
-    public String getPropertyName() {
-        return propertyName;
-    }
-
-    public boolean isAvailable() {
-        String property = System.getProperty(getPropertyName());
-        return property!=null;
-    }
-    public boolean isNonEmpty() {
-        String property = System.getProperty(getPropertyName());
-        return property!=null && !property.equals("");
-    }
-    public String getValue() {
-        return System.getProperty(getPropertyName());
-    }
-    @Override
-    public String toString() {
-        return getPropertyName()+(isAvailable()?"="+getValue():"(unset)");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/io/FileUtil.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/io/FileUtil.java b/utils/common/src/main/java/brooklyn/util/io/FileUtil.java
deleted file mode 100644
index 66e7fc1..0000000
--- a/utils/common/src/main/java/brooklyn/util/io/FileUtil.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.io;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.List;
-import java.util.regex.Pattern;
-
-import org.apache.commons.io.FileUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import brooklyn.util.exceptions.Exceptions;
-import brooklyn.util.guava.Maybe;
-import brooklyn.util.os.Os;
-import brooklyn.util.stream.StreamGobbler;
-import brooklyn.util.stream.Streams;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.ImmutableList;
-
-public class FileUtil {
-
-    private static final Logger LOG = LoggerFactory.getLogger(FileUtil.class);
-
-    private static boolean loggedSetFilePermissionsWarning = false;
-    
-    // When we move to java 7, we can use Files.setPosixFilePermissions
-    public static void setFilePermissionsTo700(File file) throws IOException {
-        file.createNewFile();
-        boolean setRead = file.setReadable(false, false) & file.setReadable(true, true);
-        boolean setWrite = file.setWritable(false, false) & file.setWritable(true, true);
-        boolean setExec = file.setExecutable(false, false) & file.setExecutable(true, true);
-        
-        if (setRead && setWrite && setExec) {
-            if (LOG.isTraceEnabled()) LOG.trace("Set permissions to 700 for file {}", file.getAbsolutePath());
-        } else {
-            if (loggedSetFilePermissionsWarning) {
-                if (LOG.isTraceEnabled()) LOG.trace("Failed to set permissions to 700 for file {}: setRead={}, setWrite={}, setExecutable={}",
-                        new Object[] {file.getAbsolutePath(), setRead, setWrite, setExec});
-            } else {
-                if (Os.isMicrosoftWindows()) {
-                    if (LOG.isDebugEnabled()) LOG.debug("Failed to set permissions to 700 for file {}; expected behaviour on Windows; setRead={}, setWrite={}, setExecutable={}; subsequent failures (on any file) will be logged at trace",
-                            new Object[] {file.getAbsolutePath(), setRead, setWrite, setExec});
-                } else {
-                    LOG.warn("Failed to set permissions to 700 for file {}: setRead={}, setWrite={}, setExecutable={}; subsequent failures (on any file) will be logged at trace",
-                            new Object[] {file.getAbsolutePath(), setRead, setWrite, setExec});
-                }
-                loggedSetFilePermissionsWarning = true;
-            }
-        }
-    }
-    
-    // When we move to java 7, we can use Files.setPosixFilePermissions
-    public static void setFilePermissionsTo600(File file) throws IOException {
-        file.createNewFile();
-        file.setExecutable(false, false);
-        file.setReadable(false, false);
-        file.setWritable(false, false);
-        file.setReadable(true, true);
-        file.setWritable(true, true);
-        
-        boolean setRead = file.setReadable(false, false) & file.setReadable(true, true);
-        boolean setWrite = file.setWritable(false, false) & file.setWritable(true, true);
-        boolean setExec = file.setExecutable(false, false);
-        
-        if (setRead && setWrite && setExec) {
-            if (LOG.isTraceEnabled()) LOG.trace("Set permissions to 600 for file {}", file.getAbsolutePath());
-        } else {
-            if (loggedSetFilePermissionsWarning) {
-                if (LOG.isTraceEnabled()) LOG.trace("Failed to set permissions to 600 for file {}: setRead={}, setWrite={}, setExecutable={}",
-                        new Object[] {file.getAbsolutePath(), setRead, setWrite, setExec});
-            } else {
-                if (Os.isMicrosoftWindows()) {
-                    if (LOG.isDebugEnabled()) LOG.debug("Failed to set permissions to 600 for file {}; expected behaviour on Windows; setRead={}, setWrite={}, setExecutable={}; subsequent failures (on any file) will be logged at trace",
-                            new Object[] {file.getAbsolutePath(), setRead, setWrite, setExec});
-                } else {
-                    LOG.warn("Failed to set permissions to 600 for file {}: setRead={}, setWrite={}, setExecutable={}; subsequent failures (on any file) will be logged at trace",
-                            new Object[] {file.getAbsolutePath(), setRead, setWrite, setExec});
-                }
-                loggedSetFilePermissionsWarning = true;
-            }
-        }
-    }
-    
-    public static void moveDir(File srcDir, File destDir) throws IOException, InterruptedException {
-        if (!Os.isMicrosoftWindows()) {
-            String cmd = "mv '"+srcDir.getAbsolutePath()+"' '"+destDir.getAbsolutePath()+"'";
-            Process proc = Runtime.getRuntime().exec(cmd);
-            proc.waitFor();
-            if (proc.exitValue() == 0) return;
-        }
-        
-        FileUtils.moveDirectory(srcDir, destDir);
-    }
-    
-    public static void copyDir(File srcDir, File destDir) throws IOException, InterruptedException {
-        if (!Os.isMicrosoftWindows()) {
-            String cmd = "cp -R '"+srcDir.getAbsolutePath()+"' '"+destDir.getAbsolutePath()+"'";
-            Process proc = Runtime.getRuntime().exec(cmd);
-            proc.waitFor();
-            if (proc.exitValue() == 0) return;
-        }
-        
-        FileUtils.copyDirectory(srcDir, destDir);
-    }
-    
-    /**
-     * This utility will be deleted when we move to Java 7
-     * 
-     * @return The file permission (in a form like "-rwxr--r--"), or null if the permissions could not be determined.
-     */
-    @Beta
-    public static Maybe<String> getFilePermissions(File file) {
-        if (!file.exists()) return Maybe.absent("File "+file+" does not exist");
-        
-        if (Os.isMicrosoftWindows()) {
-            return Maybe.absent("Cannot determine permissions on windows");
-        } else {
-            ByteArrayOutputStream out = new ByteArrayOutputStream();
-            ByteArrayOutputStream err = new ByteArrayOutputStream();
-            int exitcode = exec(ImmutableList.of("ls", "-ld", file.getAbsolutePath()), out, err);
-            if (exitcode != 0) {
-                if (LOG.isDebugEnabled()) LOG.debug("Could not determine permissions of file "+file+"; exit code "+exitcode+"; stderr "+new String(err.toByteArray()));
-                return Maybe.absent("Could not determine permission of file "+file+"; exit code "+exitcode);
-            }
-            String stdout = new String(out.toByteArray());
-            return (stdout.trim().isEmpty() ? Maybe.<String>absent("empty output") : Maybe.of(stdout.split("\\s")[0]));
-        }
-    }
-
-    // guava's Files.copy(InputStreamSupplier, File) is deprecated, and will be deleted in guava 18.0
-    @Beta
-    public static void copyTo(InputStream in, File dest) {
-        FileOutputStream out = null;
-        try {
-            out = new FileOutputStream(dest);
-            Streams.copy(in, out);
-        } catch (FileNotFoundException e) {
-            throw Exceptions.propagate(e);
-        } finally {
-            Streams.closeQuietly(out);
-        }
-    }
-    
-    private static int exec(List<String> cmds, OutputStream out, OutputStream err) {
-        StreamGobbler errgobbler = null;
-        StreamGobbler outgobbler = null;
-        
-        ProcessBuilder pb = new ProcessBuilder(cmds);
-        
-        try {
-            Process p = pb.start();
-            
-            if (out != null) {
-                InputStream outstream = p.getInputStream();
-                outgobbler = new StreamGobbler(outstream, out, (Logger) null);
-                outgobbler.start();
-            }
-            if (err != null) {
-                InputStream errstream = p.getErrorStream();
-                errgobbler = new StreamGobbler(errstream, err, (Logger) null);
-                errgobbler.start();
-            }
-            
-            int result = p.waitFor();
-            
-            if (outgobbler != null) outgobbler.blockUntilFinished();
-            if (errgobbler != null) errgobbler.blockUntilFinished();
-            
-            return result;
-        } catch (Exception e) {
-            throw Exceptions.propagate(e);
-        } finally {
-            Streams.closeQuietly(outgobbler);
-            Streams.closeQuietly(errgobbler);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/javalang/AggregateClassLoader.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/javalang/AggregateClassLoader.java b/utils/common/src/main/java/brooklyn/util/javalang/AggregateClassLoader.java
deleted file mode 100644
index db0254b..0000000
--- a/utils/common/src/main/java/brooklyn/util/javalang/AggregateClassLoader.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.javalang;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import com.google.common.collect.Sets;
-
-/** looks for classes and resources in the classloaders added here
- * <p>
- * similar to XStream's CompositeClassLoader, but also supporting resources,
- * exposing more info, a few conveniences, and a nice toString */
-public class AggregateClassLoader extends ClassLoader {
-
-    // thread safe -- and all access in this class is also synchronized, 
-    // so that reset is guaranteed not to interfere with an add(0, cl) 
-    private final CopyOnWriteArrayList<ClassLoader> classLoaders = new CopyOnWriteArrayList<ClassLoader>();
-
-    private AggregateClassLoader() {
-        //Don't pass load requests to the app classloader,
-        //always relay to the classLoaders list.
-        super(null);
-    }
-    
-    /** creates default instance, with classloaders of Object and AggregateClassLoader */
-    public static AggregateClassLoader newInstanceWithDefaultLoaders() {
-        AggregateClassLoader cl = new AggregateClassLoader();
-        cl.addFirst(AggregateClassLoader.class.getClassLoader()); // whichever classloader loaded this jar.
-        cl.addFirst(Object.class.getClassLoader()); // bootstrap loader.
-        return cl;
-    }
-    /** creates default instance, with no classloaders (assuming this instance will itself be nested,
-     * or defaults will be added by caller) */
-    public static AggregateClassLoader newInstanceWithNoLoaders() {
-        return new AggregateClassLoader();
-    }
-
-    /** Add a loader to the first position in the search path. */
-    public void addFirst(ClassLoader classLoader) {
-        if (classLoader != null) {
-            synchronized (classLoaders) {
-                classLoaders.add(0, classLoader);
-            }
-        }
-    }
-    /** Add a loader to the last position in the search path. */
-    public void addLast(ClassLoader classLoader) {
-        if (classLoader != null) {
-            synchronized (classLoaders) {
-                classLoaders.add(classLoader);
-            }
-        }
-    }
-    /** Add a loader to the specific position in the search path. 
-     * (It is callers responsibility to ensure that position is valid.) */
-    public void add(int index, ClassLoader classLoader) {
-        if (classLoader != null) {
-            synchronized (classLoaders) {
-                classLoaders.add(index, classLoader);
-            }
-        }
-    }
-    
-    /** Resets the classloader shown here to be the given set */
-    public void reset(Collection<? extends ClassLoader> newClassLoaders) {
-        synchronized (classLoaders) {
-            // synchronize:
-            // * to prevent concurrent invocations
-            // * so add(0, cl) doesn't interfere
-            // * and for good measure we add before removing so that iterator always contains everything
-            //   although since iterator access is synchronized that shouldn't be necessary
-            int count = classLoaders.size();
-            classLoaders.addAll(newClassLoaders);
-            for (int i=0; i<count; i++) {
-                classLoaders.remove(0);
-            }
-        }
-    }
-
-    /** True if nothing is in the list here */
-    public boolean isEmpty() {
-        return classLoaders.isEmpty();
-    }
-    
-    /** Returns the _live_ (and modifiable) list of classloaders; dangerous and discouraged. 
-     * @deprecated since 0.7.0 */
-    @Deprecated
-    public List<ClassLoader> getList() {
-        return classLoaders;
-    }
-
-    public Iterator<ClassLoader> iterator() {
-        synchronized (classLoaders) {
-            // CopyOnWriteList iterator is immutable view of snapshot
-            return classLoaders.iterator();
-        }
-    }
-    
-    @Override
-    protected Class<?> findClass(String name) throws ClassNotFoundException {
-        for (ClassLoader classLoader: classLoaders) {
-            try {
-                return classLoader.loadClass(name);
-            } catch (ClassNotFoundException notFound) {
-                /* ignore (nice if there were a better way than throwing... */
-            }
-        }
-        // last resort. see comment in XStream CompositeClassLoader
-        ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
-        if (contextClassLoader != null)
-            return contextClassLoader.loadClass(name);
-        throw new ClassNotFoundException(name);
-    }
-
-    @Override
-    public String toString() {
-        return "AggregateClassLoader"+classLoaders;
-    }
-
-    @Override
-    public URL getResource(String name) {
-        URL result = null;
-        Iterator<ClassLoader> cli = iterator();
-        while (cli.hasNext()) {
-            ClassLoader classLoader=cli.next();
-            result = classLoader.getResource(name);
-            if (result!=null) return result;
-        }
-        // last resort. see comment in XStream CompositeClassLoader
-        ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
-        if (contextClassLoader != null) 
-            return contextClassLoader.getResource(name);
-        return null;
-    }
-
-    @Override
-    public Enumeration<URL> getResources(String name) throws IOException {
-        Set<URL> resources = Sets.newLinkedHashSet();
-        Iterator<ClassLoader> cli = iterator();
-        while (cli.hasNext()) {
-            ClassLoader classLoader=cli.next();
-            resources.addAll(Collections.list(classLoader.getResources(name)));
-        }
-        return Collections.enumeration(resources);
-    }
-
-    // TODO lesser used items, such as getPackage, findLibrary
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/cf2f7a93/utils/common/src/main/java/brooklyn/util/javalang/AtomicReferences.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/brooklyn/util/javalang/AtomicReferences.java b/utils/common/src/main/java/brooklyn/util/javalang/AtomicReferences.java
deleted file mode 100644
index baac3a8..0000000
--- a/utils/common/src/main/java/brooklyn/util/javalang/AtomicReferences.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.util.javalang;
-
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicReference;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Supplier;
-
-public class AtomicReferences {
-
-    /** sets the atomic reference to the given value, and returns whether there is any change */
-    public static boolean setIfDifferent(AtomicBoolean ref, boolean value) {
-        return ref.getAndSet(value) != value;
-    }
-
-    /** sets the atomic reference to the given value, and returns whether there is any change */
-    public static <T> boolean setIfDifferent(AtomicReference<T> ref, T value) {
-        return !Objects.equal(ref.getAndSet(value), value);
-    }
-    
-    /** returns the given atomic as a Supplier */
-    public static <T> Supplier<T> supplier(final AtomicReference<T> ref) {
-        Preconditions.checkNotNull(ref);
-        return new Supplier<T>() {
-            @Override public T get() { return ref.get(); }
-            @Override public String toString() { return "AtomicRefSupplier"; }
-        };
-    }
-}