You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2017/03/29 09:51:38 UTC
[1/3] brooklyn-server git commit: Deprecate passing groovy to
Brooklyn Main
Repository: brooklyn-server
Updated Branches:
refs/heads/master 5e0749ef9 -> 93523965f
Deprecate passing groovy to Brooklyn Main
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/1d056d81
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/1d056d81
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/1d056d81
Branch: refs/heads/master
Commit: 1d056d812d15a6ddd92e29cafd07d8f3b03c736e
Parents: 7d8dfdd
Author: Aled Sage <al...@gmail.com>
Authored: Fri Mar 24 18:15:38 2017 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Mar 28 10:37:48 2017 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/brooklyn/cli/Main.java | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1d056d81/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java
----------------------------------------------------------------------
diff --git a/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java b/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java
index 1863f71..3cf0bc9 100644
--- a/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java
+++ b/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java
@@ -207,14 +207,14 @@ public class Main extends AbstractMain {
@Option(name = { "-a", "--app" }, title = "application class or file",
description = "The Application to start. " +
- "For example, my.AppName, file://my/app.yaml, or classpath://my/AppName.groovy -- "
- + "note that a BROOKLYN_CLASSPATH environment variable may be required to "
- + "load classes from other locations")
+ "For example, my.AppName, file://my/app.yaml, or classpath://my/AppName.groovy "
+ + "(but passing groovy scripts is deprecated) -- note that a BROOKLYN_CLASSPATH "
+ + "environment variable may be required to load classes from other locations")
public String app;
@Beta
@Option(name = { "-s", "--script" }, title = "script URI",
- description = "EXPERIMENTAL. URI for a Groovy script to parse and load." +
+ description = "DEPRECATED. URI for a Groovy script to parse and load." +
" This script will run before starting the app.")
public String script = null;
@@ -414,6 +414,7 @@ public class Main extends AbstractMain {
// First, run a setup script if the user has provided one
if (script != null) {
+ log.warn("Use of --script for groovy-script execution is deprecated");
execGroovyScript(utils, loader, script);
}
@@ -747,6 +748,7 @@ public class Main extends AbstractMain {
log.debug("Loading \"{}\" as class on classpath failed, now trying as .groovy source file", app);
String content = utils.getResourceAsString(app);
tempclazz = loader.parseClass(content);
+ log.warn("Use of --app with a groovy source file is deprecated");
}
final Class<?> clazz = tempclazz;
[3/3] brooklyn-server git commit: This closes #611
Posted by al...@apache.org.
This closes #611
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/93523965
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/93523965
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/93523965
Branch: refs/heads/master
Commit: 93523965f32298f912a69d5aa2cdca04a1f46105
Parents: 5e0749e 1d056d8
Author: Aled Sage <al...@gmail.com>
Authored: Wed Mar 29 10:50:48 2017 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Wed Mar 29 10:50:48 2017 +0100
----------------------------------------------------------------------
.../brooklyn/api/mgmt/ExecutionManager.java | 16 +++--
.../core/effector/ExplicitEffector.java | 28 +++++++--
.../brooklyn/core/effector/MethodEffector.java | 4 ++
.../core/internal/BrooklynPropertiesImpl.java | 4 +-
.../mgmt/internal/BasicSubscriptionContext.java | 36 ++++++++++-
.../apache/brooklyn/core/policy/Policies.java | 20 ++++++-
.../core/sensor/DependentConfiguration.java | 63 ++++++++++++++++++--
.../stock/CustomAggregatingEnricher.java | 29 ++++++++-
.../stock/SensorTransformingEnricher.java | 9 +++
.../feed/function/FunctionPollConfig.java | 4 ++
.../brooklyn/util/core/flags/FlagUtils.java | 14 ++++-
.../brooklyn/util/core/flags/TypeCoercions.java | 7 ++-
.../util/core/task/BasicExecutionManager.java | 9 ++-
.../brooklyn/util/core/task/BasicTask.java | 18 +++++-
.../brooklyn/util/core/task/CompoundTask.java | 15 +++--
.../util/core/task/DynamicSequentialTask.java | 3 +-
.../core/entity/hello/LocalEntitiesTest.java | 4 +-
.../policy/autoscaling/AutoScalerPolicy.java | 1 +
.../enricher/TimeWeightedDeltaEnricher.java | 6 ++
.../main/java/org/apache/brooklyn/cli/Main.java | 10 ++--
.../software/base/SoftwareProcessImpl.java | 5 ++
.../software/base/lifecycle/ScriptHelper.java | 6 ++
.../org/apache/brooklyn/feed/jmx/JmxHelper.java | 15 +++++
.../java/org/apache/brooklyn/test/Asserts.java | 4 ++
.../brooklyn/util/JavaGroovyEquivalents.java | 4 ++
.../org/apache/brooklyn/util/ShellUtils.java | 4 ++
.../apache/brooklyn/util/repeat/Repeater.java | 4 ++
.../brooklyn/util/repeat/RepeaterTest.java | 2 +-
.../util/groovy/FromCallableClosure.java | 4 ++
.../util/groovy/FromFunctionClosure.java | 4 ++
.../util/groovy/FromRunnableClosure.java | 4 ++
.../brooklyn/util/groovy/GroovyJavaMethods.java | 9 ++-
.../util/groovy/GroovJavaMethodsTest.java | 4 ++
.../brooklyn/util/groovy/PojoTestingFields.java | 4 ++
34 files changed, 335 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
[2/3] brooklyn-server git commit: Deprecate groovy methods
Posted by al...@apache.org.
Deprecate groovy methods
Deprecate methods that take explicit groovy types (e.g. groovy.lang.Closure,
groovy.time.TimeDuration, etc).
Also updates some javadoc that mentioned \u201cClosure\u201d to say that its
Usage is deprecated.
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/7d8dfdd9
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/7d8dfdd9
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/7d8dfdd9
Branch: refs/heads/master
Commit: 7d8dfdd97636d219ca0365331285c3f13f26f657
Parents: a940d49
Author: Aled Sage <al...@gmail.com>
Authored: Fri Mar 24 18:04:45 2017 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Mar 28 10:37:48 2017 +0100
----------------------------------------------------------------------
.../brooklyn/api/mgmt/ExecutionManager.java | 16 +++--
.../core/effector/ExplicitEffector.java | 28 +++++++--
.../brooklyn/core/effector/MethodEffector.java | 4 ++
.../core/internal/BrooklynPropertiesImpl.java | 4 +-
.../mgmt/internal/BasicSubscriptionContext.java | 36 ++++++++++-
.../apache/brooklyn/core/policy/Policies.java | 20 ++++++-
.../core/sensor/DependentConfiguration.java | 63 ++++++++++++++++++--
.../stock/CustomAggregatingEnricher.java | 29 ++++++++-
.../stock/SensorTransformingEnricher.java | 9 +++
.../feed/function/FunctionPollConfig.java | 4 ++
.../brooklyn/util/core/flags/FlagUtils.java | 14 ++++-
.../brooklyn/util/core/flags/TypeCoercions.java | 7 ++-
.../util/core/task/BasicExecutionManager.java | 9 ++-
.../brooklyn/util/core/task/BasicTask.java | 18 +++++-
.../brooklyn/util/core/task/CompoundTask.java | 15 +++--
.../util/core/task/DynamicSequentialTask.java | 3 +-
.../core/entity/hello/LocalEntitiesTest.java | 4 +-
.../policy/autoscaling/AutoScalerPolicy.java | 1 +
.../enricher/TimeWeightedDeltaEnricher.java | 6 ++
.../software/base/SoftwareProcessImpl.java | 5 ++
.../software/base/lifecycle/ScriptHelper.java | 6 ++
.../org/apache/brooklyn/feed/jmx/JmxHelper.java | 15 +++++
.../java/org/apache/brooklyn/test/Asserts.java | 4 ++
.../brooklyn/util/JavaGroovyEquivalents.java | 4 ++
.../org/apache/brooklyn/util/ShellUtils.java | 4 ++
.../apache/brooklyn/util/repeat/Repeater.java | 4 ++
.../brooklyn/util/repeat/RepeaterTest.java | 2 +-
.../util/groovy/FromCallableClosure.java | 4 ++
.../util/groovy/FromFunctionClosure.java | 4 ++
.../util/groovy/FromRunnableClosure.java | 4 ++
.../brooklyn/util/groovy/GroovyJavaMethods.java | 9 ++-
.../util/groovy/GroovJavaMethodsTest.java | 4 ++
.../brooklyn/util/groovy/PojoTestingFields.java | 4 ++
33 files changed, 329 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/api/src/main/java/org/apache/brooklyn/api/mgmt/ExecutionManager.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/mgmt/ExecutionManager.java b/api/src/main/java/org/apache/brooklyn/api/mgmt/ExecutionManager.java
index 4988721..97108ab 100644
--- a/api/src/main/java/org/apache/brooklyn/api/mgmt/ExecutionManager.java
+++ b/api/src/main/java/org/apache/brooklyn/api/mgmt/ExecutionManager.java
@@ -33,7 +33,7 @@ import org.apache.brooklyn.api.entity.Entity;
* where jobs can be:
* <ul>
* <li>Tracked with tags/buckets
- * <li>Be {@link Runnable}s, {@link Callable}s, or {@link groovy.lang.Closure}s
+ * <li>Be {@link Runnable}s or {@link Callable}s, (support for {@link groovy.lang.Closure} is deprecated)
* <li>Remembered after completion
* <li>Treated as {@link Task} instances (see below)
* <li>Given powerful synchronization capabilities
@@ -104,11 +104,17 @@ public interface ExecutionManager {
* used for associating with contexts, mutex execution, and other purposes
* <li><em>synchId</em> - A string, or {@link Collection} of strings, representing a category on which an object should own a synch lock
* <li><em>synchObj</em> - A string, or {@link Collection} of strings, representing a category on which an object should own a synch lock
- * <li><em>newTaskStartCallback</em> - A {@link groovy.lang.Closure} that will be invoked just before the task starts if it starts as a result of this call
- * <li><em>newTaskEndCallback</em> - A {@link groovy.lang.Closure} that will be invoked when the task completes if it starts as a result of this call
+ * <li><em>newTaskStartCallback</em> - A callback that will be invoked just before the task starts if it starts as a result of this call.
+ * <li><em>newTaskEndCallback</em> - A callback that will be invoked when the task completes if it starts as a result of this call
+ * </ul>
+ *
+ * Callbacks run in the task's thread. It can be one of the following types:
+ * <ul>
+ * <li>{@link Runnable}
+ * <li>{@link Callable}
+ * <li>{@link com.google.common.base.Function} that matches the generics {@code <? super Task, ?>}
+ * <li>Support for {@link groovy.lang.Closure} is deprecated.
* </ul>
- * Callbacks run in the task's thread, and if the callback is a {@link groovy.lang.Closure} it is passed the task for convenience. The closure can be any of the
- * following types; either a {@link groovy.lang.Closure}, {@link Runnable} or {@link Callable}.
* <p>
* If a Map is supplied it must be modifiable (currently; may allow immutable maps in future).
*/
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/core/effector/ExplicitEffector.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/effector/ExplicitEffector.java b/core/src/main/java/org/apache/brooklyn/core/effector/ExplicitEffector.java
index c9ae61b..88eacfb 100644
--- a/core/src/main/java/org/apache/brooklyn/core/effector/ExplicitEffector.java
+++ b/core/src/main/java/org/apache/brooklyn/core/effector/ExplicitEffector.java
@@ -18,18 +18,30 @@
*/
package org.apache.brooklyn.core.effector;
-import groovy.lang.Closure;
-
import java.util.List;
import java.util.Map;
import org.apache.brooklyn.api.effector.ParameterType;
import org.apache.brooklyn.api.entity.Entity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableList;
+import groovy.lang.Closure;
+
+/**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted
+ * (currently only used via {@link #create(String, Class, List, String, Closure)},
+ * so class is not deemed useful enough - extend {@link AbstractEffector} directly
+ * if really required).
+ */
+@Deprecated
public abstract class ExplicitEffector<I,T> extends AbstractEffector<T> {
+
+ private static final Logger LOG = LoggerFactory.getLogger(ExplicitEffector.class);
+
public ExplicitEffector(String name, Class<T> type, String description) {
this(name, type, ImmutableList.<ParameterType<?>>of(), description);
}
@@ -46,12 +58,20 @@ public abstract class ExplicitEffector<I,T> extends AbstractEffector<T> {
/** convenience to create an effector supplying a closure; annotations are preferred,
* and subclass here would be failback, but this is offered as
- * workaround for bug GROOVY-5122, as discussed in test class CanSayHi
+ * workaround for bug GROOVY-5122, as discussed in test class CanSayHi.
+ *
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
*/
+ @Deprecated
public static <I,T> ExplicitEffector<I,T> create(String name, Class<T> type, List<ParameterType<?>> parameters, String description, Closure body) {
+ LOG.warn("Use of groovy.lang.Closure is deprecated, in ExplicitEffector.create()");
return new ExplicitEffectorFromClosure<I,T>(name, type, parameters, description, body);
}
-
+
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
private static class ExplicitEffectorFromClosure<I,T> extends ExplicitEffector<I,T> {
private static final long serialVersionUID = -5771188171702382236L;
final Closure<T> body;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/core/effector/MethodEffector.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/effector/MethodEffector.java b/core/src/main/java/org/apache/brooklyn/core/effector/MethodEffector.java
index 7350902..8cf40f4 100644
--- a/core/src/main/java/org/apache/brooklyn/core/effector/MethodEffector.java
+++ b/core/src/main/java/org/apache/brooklyn/core/effector/MethodEffector.java
@@ -133,6 +133,10 @@ public class MethodEffector<T> extends AbstractEffector<T> {
this(new AnnotationsOnMethod(method.getDeclaringClass(), method), null);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public MethodEffector(MethodClosure mc) {
this(new AnnotationsOnMethod((Class<?>)mc.getDelegate(), mc.getMethod()), null);
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/core/internal/BrooklynPropertiesImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/internal/BrooklynPropertiesImpl.java b/core/src/main/java/org/apache/brooklyn/core/internal/BrooklynPropertiesImpl.java
index 7044bf1..0faa5b5 100644
--- a/core/src/main/java/org/apache/brooklyn/core/internal/BrooklynPropertiesImpl.java
+++ b/core/src/main/java/org/apache/brooklyn/core/internal/BrooklynPropertiesImpl.java
@@ -385,8 +385,10 @@ public class BrooklynPropertiesImpl implements BrooklynProperties {
}
if (flags.get("failIfNone")!=null && !Boolean.FALSE.equals(flags.get("failIfNone"))) {
Object f = flags.get("failIfNone");
- if (f instanceof Closure)
+ if (f instanceof Closure) {
+ LOG.warn("Use of groovy.lang.Closure is deprecated as value for 'failIfNone', in BrooklynProperties.getFirst()");
((Closure)f).call((Object[])keys);
+ }
if (Boolean.TRUE.equals(f))
throw new NoSuchElementException("Brooklyn unable to find mandatory property "+keys[0]+
(keys.length>1 ? " (or "+(keys.length-1)+" other possible names, full list is "+Arrays.asList(keys)+")" : "") );
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BasicSubscriptionContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BasicSubscriptionContext.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BasicSubscriptionContext.java
index 3064fc0..62f19fe 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BasicSubscriptionContext.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BasicSubscriptionContext.java
@@ -66,14 +66,24 @@ public class BasicSubscriptionContext implements SubscriptionContext {
if (flags!=null) this.flags.putAll(flags);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
@SuppressWarnings("rawtypes")
public <T> SubscriptionHandle subscribe(Entity producer, Sensor<T> sensor, Closure c) {
+ LOG.warn("Use of groovy.lang.Closure is deprecated in BasicSubscriptionContext.subscribe()");
return subscribe(Collections.<String,Object>emptyMap(), producer, sensor, c);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
@SuppressWarnings("rawtypes")
public <T> SubscriptionHandle subscribe(Map<String, ?> newFlags, Entity producer, Sensor<T> sensor, Closure c) {
- return subscribe(newFlags, producer, sensor, toSensorEventListener(c));
+ LOG.warn("Use of groovy.lang.Closure is deprecated in BasicSubscriptionContext.subscribe()");
+ return subscribe(newFlags, producer, sensor, toSensorEventListener(c));
}
@Override
@@ -88,13 +98,23 @@ public class BasicSubscriptionContext implements SubscriptionContext {
return manager.subscribe(subscriptionFlags, producer, sensor, listener);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
@SuppressWarnings("rawtypes")
public <T> SubscriptionHandle subscribeToChildren(Entity parent, Sensor<T> sensor, Closure c) {
+ LOG.warn("Use of groovy.lang.Closure is deprecated in BasicSubscriptionContext.subscribeToChildren()");
return subscribeToChildren(Collections.<String,Object>emptyMap(), parent, sensor, c);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
@SuppressWarnings("rawtypes")
public <T> SubscriptionHandle subscribeToChildren(Map<String, Object> newFlags, Entity parent, Sensor<T> sensor, Closure c) {
+ LOG.warn("Use of groovy.lang.Closure is deprecated in BasicSubscriptionContext.subscribeToChildren()");
return subscribeToChildren(newFlags, parent, sensor, toSensorEventListener(c));
}
@@ -110,13 +130,23 @@ public class BasicSubscriptionContext implements SubscriptionContext {
return manager.subscribeToChildren(subscriptionFlags, parent, sensor, listener);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
@SuppressWarnings("rawtypes")
public <T> SubscriptionHandle subscribeToMembers(Group parent, Sensor<T> sensor, Closure c) {
+ LOG.warn("Use of groovy.lang.Closure is deprecated in BasicSubscriptionContext.subscribeToMembers()");
return subscribeToMembers(Collections.<String,Object>emptyMap(), parent, sensor, c);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
@SuppressWarnings("rawtypes")
public <T> SubscriptionHandle subscribeToMembers(Map<String, Object> newFlags, Group parent, Sensor<T> sensor, Closure c) {
+ LOG.warn("Use of groovy.lang.Closure is deprecated in BasicSubscriptionContext.subscribeToMembers()");
return subscribeToMembers(newFlags, parent, sensor, toSensorEventListener(c));
}
@@ -171,6 +201,10 @@ public class BasicSubscriptionContext implements SubscriptionContext {
return count;
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
@SuppressWarnings("rawtypes")
private <T> SensorEventListener<T> toSensorEventListener(final Closure c) {
return new SensorEventListener<T>() {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/core/policy/Policies.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/policy/Policies.java b/core/src/main/java/org/apache/brooklyn/core/policy/Policies.java
index 6ef9038..db9bece 100644
--- a/core/src/main/java/org/apache/brooklyn/core/policy/Policies.java
+++ b/core/src/main/java/org/apache/brooklyn/core/policy/Policies.java
@@ -25,14 +25,22 @@ import org.apache.brooklyn.api.sensor.Sensor;
import org.apache.brooklyn.api.sensor.SensorEvent;
import org.apache.brooklyn.api.sensor.SensorEventListener;
import org.apache.brooklyn.core.entity.lifecycle.Lifecycle;
-import org.apache.brooklyn.core.policy.AbstractPolicy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import groovy.lang.Closure;
@SuppressWarnings({"rawtypes","unchecked"})
public class Policies {
+ private static final Logger LOG = LoggerFactory.getLogger(Policies.class);
+
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static SensorEventListener listenerFromValueClosure(final Closure code) {
+ LOG.warn("Use of groovy.lang.Closure is deprecated in Policies.listenerFromValueClosure()");
return new SensorEventListener() {
@Override
public void onEvent(SensorEvent event) {
@@ -41,7 +49,12 @@ public class Policies {
};
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static <T> Policy newSingleSensorValuePolicy(final Sensor<T> sensor, final Closure code) {
+ LOG.warn("Use of groovy.lang.Closure is deprecated in Policies.newSingleSensorValuePolicy()");
return new AbstractPolicy() {
@Override
public void setEntity(EntityLocal entity) {
@@ -51,8 +64,13 @@ public class Policies {
};
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static <S,T> Policy newSingleSensorValuePolicy(final Entity remoteEntity, final Sensor<T> remoteSensor,
final Closure code) {
+ LOG.warn("Use of groovy.lang.Closure is deprecated in Policies.newSingleSensorValuePolicy()");
return new AbstractPolicy() {
@Override
public void setEntity(EntityLocal entity) {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java b/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java
index 32a409f..5b1c57f 100644
--- a/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java
+++ b/core/src/main/java/org/apache/brooklyn/core/sensor/DependentConfiguration.java
@@ -119,6 +119,10 @@ public class DependentConfiguration {
return attributeWhenReady(source, sensor, GroovyJavaMethods.truthPredicate());
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static <T> Task<T> attributeWhenReady(Entity source, AttributeSensor<T> sensor, Closure<Boolean> ready) {
Predicate<Object> readyPredicate = (ready != null) ? GroovyJavaMethods.<Object>predicateFromClosure(ready) : GroovyJavaMethods.truthPredicate();
return attributeWhenReady(source, sensor, readyPredicate);
@@ -134,12 +138,20 @@ public class DependentConfiguration {
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static <T,V> Task<V> attributePostProcessedWhenReady(Entity source, AttributeSensor<T> sensor, Closure<Boolean> ready, Closure<V> postProcess) {
Predicate<? super T> readyPredicate = (ready != null) ? GroovyJavaMethods.predicateFromClosure(ready) : GroovyJavaMethods.truthPredicate();
Function<? super T, V> postProcessFunction = GroovyJavaMethods.<T,V>functionFromClosure(postProcess);
return attributePostProcessedWhenReady(source, sensor, readyPredicate, postProcessFunction);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static <T,V> Task<V> attributePostProcessedWhenReady(Entity source, AttributeSensor<T> sensor, Closure<V> postProcess) {
return attributePostProcessedWhenReady(source, sensor, GroovyJavaMethods.truthPredicate(), GroovyJavaMethods.<T,V>functionFromClosure(postProcess));
}
@@ -152,10 +164,18 @@ public class DependentConfiguration {
return attributePostProcessedWhenReady(source, sensor, GroovyJavaMethods.truthPredicate(), valueProvider);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static <T,V> Task<V> valueWhenAttributeReady(Entity source, AttributeSensor<T> sensor, Closure<V> valueProvider) {
return attributePostProcessedWhenReady(source, sensor, GroovyJavaMethods.truthPredicate(), valueProvider);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static <T,V> Task<V> attributePostProcessedWhenReady(final Entity source, final AttributeSensor<T> sensor, final Predicate<? super T> ready, final Closure<V> postProcess) {
return attributePostProcessedWhenReady(source, sensor, ready, GroovyJavaMethods.<T,V>functionFromClosure(postProcess));
}
@@ -395,13 +415,20 @@ public class DependentConfiguration {
return transform(MutableMap.of("displayName", "transforming "+task), task, transformer);
}
- /** @see #transform(Task, Function) */
+ /**
+ * @see #transform(Task, Function)
+ *
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
@SuppressWarnings({ "unchecked", "rawtypes" })
public static <U,T> Task<T> transform(Task<U> task, Closure transformer) {
return transform(task, GroovyJavaMethods.functionFromClosure(transformer));
}
- /** @see #transform(Task, Function) */
+ /**
+ * @see #transform(Task, Function)
+ */
@SuppressWarnings({ "rawtypes" })
public static <U,T> Task<T> transform(final Map flags, final TaskAdaptable<U> task, final Function<U,T> transformer) {
return new BasicTask<T>(flags, new Callable<T>() {
@@ -421,13 +448,23 @@ public class DependentConfiguration {
return transformMultiple(MutableMap.of("displayName", "transforming multiple"), transformer, tasks);
}
- /** @see #transformMultiple(Function, TaskAdaptable...) */
+ /**
+ * @see #transformMultiple(Function, TaskAdaptable...)
+ *
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
@SuppressWarnings({ "unchecked", "rawtypes" })
public static <U,T> Task<T> transformMultiple(Closure transformer, TaskAdaptable<U> ...tasks) {
return transformMultiple(GroovyJavaMethods.functionFromClosure(transformer), tasks);
}
- /** @see #transformMultiple(Function, TaskAdaptable...) */
+ /**
+ * @see #transformMultiple(Function, TaskAdaptable...)
+ *
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
@SuppressWarnings({ "unchecked", "rawtypes" })
public static <U,T> Task<T> transformMultiple(Map flags, Closure transformer, TaskAdaptable<U> ...tasks) {
return transformMultiple(flags, GroovyJavaMethods.functionFromClosure(transformer), tasks);
@@ -736,7 +773,11 @@ public class DependentConfiguration {
public static <T> Task<List<T>> listAttributesWhenReady(AttributeSensor<T> sensor, Iterable<Entity> entities) {
return listAttributesWhenReady(sensor, entities, GroovyJavaMethods.truthPredicate());
}
-
+
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static <T> Task<List<T>> listAttributesWhenReady(AttributeSensor<T> sensor, Iterable<Entity> entities, Closure<Boolean> readiness) {
Predicate<Object> readinessPredicate = (readiness != null) ? GroovyJavaMethods.<Object>predicateFromClosure(readiness) : GroovyJavaMethods.truthPredicate();
return listAttributesWhenReady(sensor, entities, readinessPredicate);
@@ -850,6 +891,10 @@ public class DependentConfiguration {
abortIfOnFire();
return (Builder<T2, T2>) this;
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public Builder<T,V> readiness(Closure<Boolean> val) {
this.readiness = GroovyJavaMethods.predicateFromClosure(checkNotNull(val, "val"));
return this;
@@ -858,6 +903,10 @@ public class DependentConfiguration {
this.readiness = checkNotNull(val, "ready");
return this;
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
@SuppressWarnings({ "unchecked", "rawtypes" })
public <V2> Builder<T,V2> postProcess(Closure<V2> val) {
this.postProcess = (Function) GroovyJavaMethods.<T,V2>functionFromClosure(checkNotNull(val, "postProcess"));
@@ -1008,6 +1057,10 @@ public class DependentConfiguration {
return postProcessFromMultiple(Functions.forPredicate(val));
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public <V1> MultiBuilder<T, V1, V2> postProcess(Closure<V1> val) {
builder.postProcess(val);
return (MultiBuilder<T, V1, V2>) this;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricher.java b/core/src/main/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricher.java
index 4b49637..2d797da 100644
--- a/core/src/main/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricher.java
+++ b/core/src/main/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricher.java
@@ -54,7 +54,7 @@ public class CustomAggregatingEnricher<S,T> extends AbstractAggregatingEnricher<
* - producers: a collection of entities to be aggregated
* - allMembers: indicates that should track members of the entity that the aggregator is associated with,
* to aggregate across all those members.
- * - filter: a Predicate or Closure, indicating which entities to include
+ * - filter: a Predicate indicating which entities to include (support for {@link groovy.lang.Closure} is deprecated)
*
* @param flags
* @param source
@@ -92,21 +92,36 @@ public class CustomAggregatingEnricher<S,T> extends AbstractAggregatingEnricher<
* @param defaultValueForUnreportedSensors
*
* @see #CustomAggregatingEnricher(Map, AttributeSensor, AttributeSensor, Function, Object)
+ *
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
*/
+ @Deprecated
@SuppressWarnings("unchecked")
public CustomAggregatingEnricher(Map<String,?> flags, AttributeSensor<? extends S> source, AttributeSensor<T> target,
Closure<?> aggregator, S defaultValueForUnreportedSensors) {
this(flags, source, target, GroovyJavaMethods.<Collection<S>, T>functionFromClosure((Closure<T>)aggregator), defaultValueForUnreportedSensors);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public CustomAggregatingEnricher(Map<String,?> flags, AttributeSensor<? extends S> source, AttributeSensor<T> target, Closure<?> aggregator) {
this(flags, source, target, aggregator, null);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public CustomAggregatingEnricher(AttributeSensor<S> source, AttributeSensor<T> target, Closure<?> aggregator, S defaultValueForUnreportedSensors) {
this(Collections.<String,Object>emptyMap(), source, target, aggregator, defaultValueForUnreportedSensors);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public CustomAggregatingEnricher(AttributeSensor<S> source, AttributeSensor<T> target, Closure<?> aggregator) {
this(Collections.<String,Object>emptyMap(), source, target, aggregator, null);
}
@@ -152,14 +167,26 @@ public class CustomAggregatingEnricher<S,T> extends AbstractAggregatingEnricher<
Map<String,?> flags, AttributeSensor<S> source, AttributeSensor<T> target, Closure<?> aggregator, S defaultVal) {
return new CustomAggregatingEnricher<S,T>(flags, source, target, aggregator, defaultVal);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static <S,T> CustomAggregatingEnricher<S,T> newEnricher(
Map<String,?> flags, AttributeSensor<S> source, AttributeSensor<T> target, Closure<?> aggregator) {
return newEnricher(flags, source, target, aggregator, null);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static <S,T> CustomAggregatingEnricher<S,T> newEnricher(
AttributeSensor<S> source, AttributeSensor<T> target, Closure<?> aggregator, S defaultVal) {
return newEnricher(Collections.<String,Object>emptyMap(), source, target, aggregator, defaultVal);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static <S,T> CustomAggregatingEnricher<S,T> newEnricher(
AttributeSensor<S> source, AttributeSensor<T> target, Closure<?> aggregator) {
return newEnricher(Collections.<String,Object>emptyMap(), source, target, aggregator, null);
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/enricher/stock/SensorTransformingEnricher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/enricher/stock/SensorTransformingEnricher.java b/core/src/main/java/org/apache/brooklyn/enricher/stock/SensorTransformingEnricher.java
index 11212a2..339325b 100644
--- a/core/src/main/java/org/apache/brooklyn/enricher/stock/SensorTransformingEnricher.java
+++ b/core/src/main/java/org/apache/brooklyn/enricher/stock/SensorTransformingEnricher.java
@@ -43,6 +43,10 @@ public class SensorTransformingEnricher<T,U> extends AbstractTypeTransformingEnr
this.uniqueTag = JavaClassNames.simpleClassName(getClass())+":"+source.getName()+"*->"+target.getName();;
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public SensorTransformingEnricher(Entity producer, Sensor<T> source, Sensor<U> target, Closure transformation) {
this(producer, source, target, GroovyJavaMethods.functionFromClosure(transformation));
}
@@ -51,11 +55,16 @@ public class SensorTransformingEnricher<T,U> extends AbstractTypeTransformingEnr
this(null, source, target, transformation);
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public SensorTransformingEnricher(Sensor<T> source, Sensor<U> target, Closure transformation) {
this(null, source, target, GroovyJavaMethods.functionFromClosure(transformation));
}
@Override
+ @SuppressWarnings({ "rawtypes", "unchecked" })
public void onEvent(SensorEvent event) {
if (accept((T)event.getValue())) {
if (target instanceof AttributeSensor)
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/feed/function/FunctionPollConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/feed/function/FunctionPollConfig.java b/core/src/main/java/org/apache/brooklyn/feed/function/FunctionPollConfig.java
index bd7c2bc..ffe690a 100644
--- a/core/src/main/java/org/apache/brooklyn/feed/function/FunctionPollConfig.java
+++ b/core/src/main/java/org/apache/brooklyn/feed/function/FunctionPollConfig.java
@@ -97,6 +97,10 @@ public class FunctionPollConfig<S, T> extends PollConfig<S, T, FunctionPollConfi
return (FunctionPollConfig<newS, T>) this;
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public FunctionPollConfig<S, T> closure(Closure<?> val) {
this.callable = GroovyJavaMethods.callableFromClosure(checkNotNull(val, "closure"));
return this;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/util/core/flags/FlagUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/flags/FlagUtils.java b/core/src/main/java/org/apache/brooklyn/util/core/flags/FlagUtils.java
index 0d4cc74..d160a93 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/flags/FlagUtils.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/flags/FlagUtils.java
@@ -286,7 +286,11 @@ public class FlagUtils {
}
/** returns all fields on the given class, superclasses, and interfaces thereof, in that order of preference,
- * (excluding fields on Object) */
+ * (excluding fields on Object)
+ *
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static List<Field> getAllFields(Class<?> base, Closure<Boolean> filter) {
return getAllFields(base, GroovyJavaMethods.<Field>predicateFromClosure(filter));
}
@@ -300,6 +304,10 @@ public class FlagUtils {
public static List<Field> getLocalFields(List<Class<?>> classes) {
return getLocalFields(classes, Predicates.<Field>alwaysTrue());
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static List<Field> getLocalFields(List<Class<?>> classes, Closure<Boolean> filter) {
return getLocalFields(classes, GroovyJavaMethods.<Field>predicateFromClosure(filter));
}
@@ -321,6 +329,10 @@ public class FlagUtils {
}
});
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static List<Class<?>> getAllAssignableTypes(Class<?> base, Closure<Boolean> filter) {
return getAllAssignableTypes(base, GroovyJavaMethods.<Class<?>>predicateFromClosure(filter));
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/util/core/flags/TypeCoercions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/flags/TypeCoercions.java b/core/src/main/java/org/apache/brooklyn/util/core/flags/TypeCoercions.java
index 29d8d4b..9b39a56 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/flags/TypeCoercions.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/flags/TypeCoercions.java
@@ -117,11 +117,16 @@ public class TypeCoercions {
});
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
@SuppressWarnings("rawtypes")
public static void registerGroovyAdapters() {
registerAdapter(Closure.class, Predicate.class, new Function<Closure,Predicate>() {
@Override
public Predicate<?> apply(final Closure closure) {
+ log.warn("Use of groovy.lang.Closure is deprecated, in TypeCoercions Closure->Predicate");
return new Predicate<Object>() {
@Override public boolean apply(Object input) {
return (Boolean) closure.call(input);
@@ -132,6 +137,7 @@ public class TypeCoercions {
registerAdapter(Closure.class, Function.class, new Function<Closure,Function>() {
@Override
public Function apply(final Closure closure) {
+ log.warn("Use of groovy.lang.Closure is deprecated, in TypeCoercions Closure->Function");
return new Function() {
@Override public Object apply(Object input) {
return closure.call(input);
@@ -140,7 +146,6 @@ public class TypeCoercions {
}
});
registerAdapter(Object.class, TimeDuration.class, new Function<Object,TimeDuration>() {
- @SuppressWarnings("deprecation")
@Override
public TimeDuration apply(final Object input) {
log.warn("deprecated automatic coercion of Object to TimeDuration (set breakpoint in TypeCoercions to inspect, convert to Duration)");
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java
index 8b59498..aa16e7b 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionManager.java
@@ -792,7 +792,13 @@ public class BasicExecutionManager implements ExecutionManager {
// not ideal, such loose typing on the callback -- should prefer Function<Task,Object>
// but at least it's package-private
static Object invokeCallback(Object callable, Task<?> task) {
- if (callable instanceof Closure) return ((Closure<?>)callable).call(task);
+ if (callable instanceof Closure) {
+ if (!loggedClosureDeprecatedInInvokeCallback) {
+ log.warn("Use of groovy.lang.Closure is deprecated, in ExecutionManager.invokeCallback");
+ loggedClosureDeprecatedInInvokeCallback = true;
+ }
+ return ((Closure<?>)callable).call(task);
+ }
if (callable instanceof Callable) {
try {
return ((Callable<?>)callable).call();
@@ -805,6 +811,7 @@ public class BasicExecutionManager implements ExecutionManager {
if (callable==null) return null;
throw new IllegalArgumentException("Cannot invoke unexpected callback object "+callable+" of type "+callable.getClass()+" on "+task);
}
+ private static boolean loggedClosureDeprecatedInInvokeCallback;
/** normally (if not interrupted) called once for each call to {@link #beforeSubmitScheduledTaskAllIterations(Map, Task)} */
protected void afterEndScheduledTaskAllIterations(Map<?,?> flags, Task<?> task) {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java
index 583f404..aa8cf65 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java
@@ -67,8 +67,8 @@ import com.google.common.util.concurrent.ListenableFuture;
/**
* The basic concrete implementation of a {@link Task} to be executed.
*
- * A {@link Task} is a wrapper for an executable unit, such as a {@link Closure} or a {@link Runnable} or
- * {@link Callable} and will run in its own {@link Thread}.
+ * A {@link Task} is a wrapper for an executable unit, such as a {@link Runnable} or
+ * {@link Callable} ({@link Closure} support is deprecated), and will run in its own {@link Thread}.
* <p>
* The task can be given an optional displayName and description in its constructor (as named
* arguments in the first {@link Map} parameter). It is guaranteed to have {@link Object#notify()} called
@@ -102,8 +102,12 @@ public class BasicTask<T> implements TaskInternal<T> {
* Constructor needed to prevent confusion in groovy stubs when looking for default constructor,
*
* The generics on {@link Closure} break it if that is first constructor.
+ *
+ * @deprecated since 0.11.0; present only as a workaround for Groovy.
*/
+ @Deprecated
protected BasicTask() { this(Collections.emptyMap()); }
+
protected BasicTask(Map<?,?> flags) { this(flags, (Callable<T>) null); }
public BasicTask(Callable<T> job) { this(Collections.emptyMap(), job); }
@@ -128,7 +132,17 @@ public class BasicTask<T> implements TaskInternal<T> {
public BasicTask(Runnable job) { this(GroovyJavaMethods.<T>callableFromRunnable(job)); }
public BasicTask(Map<?,?> flags, Runnable job) { this(flags, GroovyJavaMethods.<T>callableFromRunnable(job)); }
+
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public BasicTask(Closure<T> job) { this(GroovyJavaMethods.callableFromClosure(job)); }
+
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public BasicTask(Map<?,?> flags, Closure<T> job) { this(flags, GroovyJavaMethods.callableFromClosure(job)); }
@Override
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/util/core/task/CompoundTask.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/CompoundTask.java b/core/src/main/java/org/apache/brooklyn/util/core/task/CompoundTask.java
index db17229..3cbb548 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/task/CompoundTask.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/task/CompoundTask.java
@@ -40,7 +40,7 @@ import org.slf4j.LoggerFactory;
/**
* A {@link Task} that is comprised of other units of work: possibly a heterogeneous mix of {@link Task},
- * {@link Runnable}, {@link Callable} and {@link Closure} instances.
+ * {@link Runnable} and {@link Callable} instances (support for {@link Closure} is deprecated).
*
* This class holds the collection of child tasks, but subclasses have the responsibility of executing them in a
* sensible manner by implementing the abstract {@link #runJobs} method.
@@ -56,7 +56,8 @@ public abstract class CompoundTask<T> extends BasicTask<List<T>> implements HasT
/**
* Constructs a new compound task containing the specified units of work.
*
- * @param jobs A potentially heterogeneous mixture of {@link Runnable}, {@link Callable}, {@link Closure} and {@link Task} can be provided.
+ * @param jobs A potentially heterogeneous mixture of {@link Runnable}, {@link Callable}, and {@link Task} can be provided
+ * (support for {@link Closure} is deprecated).
* @throws IllegalArgumentException if any of the passed child jobs is not one of the above types
*/
public CompoundTask(Object... jobs) {
@@ -66,7 +67,8 @@ public abstract class CompoundTask<T> extends BasicTask<List<T>> implements HasT
/**
* Constructs a new compound task containing the specified units of work.
*
- * @param jobs A potentially heterogeneous mixture of {@link Runnable}, {@link Callable}, {@link Closure} and {@link Task} can be provided.
+ * @param jobs A potentially heterogeneous mixture of {@link Runnable}, {@link Callable} and {@link Task} can be provided
+ * (support for {@link Closure} is deprecated).
* @throws IllegalArgumentException if any of the passed child jobs is not one of the above types
*/
public CompoundTask(Collection<?> jobs) {
@@ -87,12 +89,15 @@ public abstract class CompoundTask<T> extends BasicTask<List<T>> implements HasT
for (Object job : jobs) {
Task subtask;
if (job instanceof TaskAdaptable) { subtask = ((TaskAdaptable)job).asTask(); }
- else if (job instanceof Closure) { subtask = new BasicTask<T>((Closure) job); }
+ else if (job instanceof Closure) {
+ log.warn("Use of groovy.lang.Closure is deprecated, in CompoundTask jobs");
+ subtask = new BasicTask<T>((Closure) job);
+ }
else if (job instanceof Callable) { subtask = new BasicTask<T>((Callable) job); }
else if (job instanceof Runnable) { subtask = new BasicTask<T>((Runnable) job); }
else throw new IllegalArgumentException("Invalid child "+(job == null ? null : job.getClass() + " ("+job+")")+
- " passed to compound task; must be Runnable, Callable, Closure or Task");
+ " passed to compound task; must be Runnable, Callable or Task (Closure support is deprecated)");
BrooklynTaskTags.addTagDynamically(subtask, ManagementContextInternal.SUB_TASK_TAG);
children.add(subtask);
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/main/java/org/apache/brooklyn/util/core/task/DynamicSequentialTask.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/DynamicSequentialTask.java b/core/src/main/java/org/apache/brooklyn/util/core/task/DynamicSequentialTask.java
index 2869ff9..5fb8ee8 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/task/DynamicSequentialTask.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/task/DynamicSequentialTask.java
@@ -126,7 +126,8 @@ public class DynamicSequentialTask<T> extends BasicTask<T> implements HasTaskChi
/**
* Constructs a new compound task containing the specified units of work.
*
- * @param jobs A potentially heterogeneous mixture of {@link Runnable}, {@link Callable}, {@link Closure} and {@link Task} can be provided.
+ * @param jobs A potentially heterogeneous mixture of {@link Runnable}, {@link Callable} and {@link Task} can be provided
+ * (support for {@link Closure} is deprecated).
* @throws IllegalArgumentException if any of the passed child jobs is not one of the above types
*/
public DynamicSequentialTask() {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java
index ddab413..985997e 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java
@@ -25,7 +25,6 @@ import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.fail;
-import groovy.lang.Closure;
import java.util.List;
import java.util.concurrent.CountDownLatch;
@@ -50,6 +49,7 @@ import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.time.Time;
import com.google.common.base.Function;
+import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.base.Stopwatch;
import com.google.common.base.Suppliers;
@@ -262,7 +262,7 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport {
HelloEntity dad = app.createAndManageChild(EntitySpec.create(HelloEntity.class));
// the unnecessary (HelloEntity) cast is required as a work-around to an IntelliJ issue that prevents Brooklyn from launching from the IDE
HelloEntity son = (HelloEntity) dad.addChild(EntitySpec.create(HelloEntity.class)
- .configure(HelloEntity.MY_NAME, transform(attributeWhenReady(dad, HelloEntity.FAVOURITE_NAME, (Closure)null), new Function<String,String>() {
+ .configure(HelloEntity.MY_NAME, transform(attributeWhenReady(dad, HelloEntity.FAVOURITE_NAME, (Predicate<String>)null), new Function<String,String>() {
@Override
public String apply(String input) {
return input+input.charAt(input.length()-1)+"y";
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/policy/src/main/java/org/apache/brooklyn/policy/autoscaling/AutoScalerPolicy.java
----------------------------------------------------------------------
diff --git a/policy/src/main/java/org/apache/brooklyn/policy/autoscaling/AutoScalerPolicy.java b/policy/src/main/java/org/apache/brooklyn/policy/autoscaling/AutoScalerPolicy.java
index 9bad039..9b48e76 100644
--- a/policy/src/main/java/org/apache/brooklyn/policy/autoscaling/AutoScalerPolicy.java
+++ b/policy/src/main/java/org/apache/brooklyn/policy/autoscaling/AutoScalerPolicy.java
@@ -228,6 +228,7 @@ public class AutoScalerPolicy extends AbstractPolicy {
TypeCoercions.registerAdapter(Closure.class, ResizeOperator.class, new Function<Closure,ResizeOperator>() {
@Override
public ResizeOperator apply(final Closure closure) {
+ LOG.warn("Use of groovy.lang.Closure is deprecated in AutoScalerPolicy type-coercion Closure -> ResizeOperator");
return new ResizeOperator() {
@Override public Integer resize(Entity entity, Integer input) {
return (Integer) closure.call(entity, input);
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/policy/src/main/java/org/apache/brooklyn/policy/enricher/TimeWeightedDeltaEnricher.java
----------------------------------------------------------------------
diff --git a/policy/src/main/java/org/apache/brooklyn/policy/enricher/TimeWeightedDeltaEnricher.java b/policy/src/main/java/org/apache/brooklyn/policy/enricher/TimeWeightedDeltaEnricher.java
index 4a3c7fa..fbf9960 100644
--- a/policy/src/main/java/org/apache/brooklyn/policy/enricher/TimeWeightedDeltaEnricher.java
+++ b/policy/src/main/java/org/apache/brooklyn/policy/enricher/TimeWeightedDeltaEnricher.java
@@ -74,9 +74,15 @@ public class TimeWeightedDeltaEnricher<T extends Number> extends AbstractTypeTra
public TimeWeightedDeltaEnricher() { // for rebind
}
+
public TimeWeightedDeltaEnricher(Entity producer, Sensor<T> source, Sensor<Double> target, int unitMillis) {
this(producer, source, target, unitMillis, Functions.<Double>identity());
}
+
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public TimeWeightedDeltaEnricher(Entity producer, Sensor<T> source, Sensor<Double> target, int unitMillis, Closure<Double> postProcessor) {
this(producer, source, target, unitMillis, GroovyJavaMethods.<Double,Double>functionFromClosure(postProcessor));
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java
index 595be97..68b7955 100644
--- a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java
+++ b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java
@@ -476,6 +476,11 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft
public void waitForServiceUp(Duration duration) {
Entities.waitForServiceUp(this, duration);
}
+
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public void waitForServiceUp(TimeDuration duration) {
waitForServiceUp(duration.toMilliseconds(), TimeUnit.MILLISECONDS);
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/software/base/src/main/java/org/apache/brooklyn/entity/software/base/lifecycle/ScriptHelper.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/lifecycle/ScriptHelper.java b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/lifecycle/ScriptHelper.java
index e7aa1f0..8b13a9e 100644
--- a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/lifecycle/ScriptHelper.java
+++ b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/lifecycle/ScriptHelper.java
@@ -87,7 +87,10 @@ public class ScriptHelper {
/**
* Takes a closure which accepts this ScriptHelper and returns true or false
* as to whether the script needs to run (or can throw error if desired)
+ *
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
*/
+ @Deprecated
@SuppressWarnings({ "rawtypes", "unchecked" })
public ScriptHelper executeIf(Closure c) {
Predicate<ScriptHelper> predicate = GroovyJavaMethods.predicateFromClosure(c);
@@ -176,7 +179,10 @@ public class ScriptHelper {
* and returns false if it is invalid. Default is that this resultCodeCheck
* closure always returns true (and the exit code is made available to the
* caller if they care)
+ *
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
*/
+ @Deprecated
@SuppressWarnings({ "rawtypes", "unchecked" })
public ScriptHelper requireResultCode(Closure integerFilter) {
Predicate<Integer> objectPredicate = GroovyJavaMethods.predicateFromClosure(integerFilter);
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/software/base/src/main/java/org/apache/brooklyn/feed/jmx/JmxHelper.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/org/apache/brooklyn/feed/jmx/JmxHelper.java b/software/base/src/main/java/org/apache/brooklyn/feed/jmx/JmxHelper.java
index 7807cfd..dd93d72 100644
--- a/software/base/src/main/java/org/apache/brooklyn/feed/jmx/JmxHelper.java
+++ b/software/base/src/main/java/org/apache/brooklyn/feed/jmx/JmxHelper.java
@@ -556,6 +556,11 @@ public class JmxHelper {
public Set<ObjectInstance> doesMBeanExistsEventually(final ObjectName objectName, Duration timeout) {
return doesMBeanExistsEventually(objectName, timeout.toMilliseconds(), TimeUnit.MILLISECONDS);
}
+
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public Set<ObjectInstance> doesMBeanExistsEventually(final ObjectName objectName, TimeDuration timeout) {
return doesMBeanExistsEventually(objectName, timeout.toMilliseconds(), TimeUnit.MILLISECONDS);
}
@@ -567,6 +572,11 @@ public class JmxHelper {
public Set<ObjectInstance> doesMBeanExistsEventually(String objectName, Duration timeout) {
return doesMBeanExistsEventually(createObjectName(objectName), timeout);
}
+
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public Set<ObjectInstance> doesMBeanExistsEventually(String objectName, TimeDuration timeout) {
return doesMBeanExistsEventually(createObjectName(objectName), timeout);
}
@@ -601,6 +611,11 @@ public class JmxHelper {
public void assertMBeanExistsEventually(ObjectName objectName, Duration timeout) {
assertMBeanExistsEventually(objectName, timeout.toMilliseconds(), TimeUnit.MILLISECONDS);
}
+
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public void assertMBeanExistsEventually(ObjectName objectName, TimeDuration timeout) {
assertMBeanExistsEventually(objectName, timeout.toMilliseconds(), TimeUnit.MILLISECONDS);
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/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 9097b74..443d42b 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
@@ -1062,6 +1062,10 @@ public class Asserts {
assertFailsWith(c, Predicates.alwaysTrue());
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static void assertFailsWith(Callable<?> c, final Closure<Boolean> exceptionChecker) {
assertFailsWith(c, new Predicate<Throwable>() {
@Override
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/utils/common/src/main/java/org/apache/brooklyn/util/JavaGroovyEquivalents.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/JavaGroovyEquivalents.java b/utils/common/src/main/java/org/apache/brooklyn/util/JavaGroovyEquivalents.java
index c6b8050..e73aa7d 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/JavaGroovyEquivalents.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/JavaGroovyEquivalents.java
@@ -171,6 +171,10 @@ public class JavaGroovyEquivalents {
}
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+ @Deprecated
public static <T> Predicate<T> toPredicate(final Closure<Boolean> c) {
return new Predicate<T>() {
@Override public boolean apply(T input) {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/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 defa676..792d8d6 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
@@ -33,6 +33,7 @@ import org.apache.brooklyn.util.stream.StreamGobbler;
import org.apache.brooklyn.util.stream.Streams;
import org.apache.brooklyn.util.text.Strings;
import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.google.common.collect.Maps;
import com.google.common.io.Closer;
@@ -44,6 +45,8 @@ import com.google.common.io.Closer;
@Deprecated
public class ShellUtils {
+ private static final Logger LOG = LoggerFactory.getLogger(ShellUtils.class);
+
public static long TIMEOUT = 60*1000;
/**
@@ -84,6 +87,7 @@ public class ShellUtils {
if (tf instanceof Number) {
timeout = ((Number) tf).longValue();
} else if (tf instanceof TimeDuration) {
+ LOG.warn("Use of groovy.time.TimeuDuration is deprecated in ShellUtils, for configuring timeout");
timeout = ((TimeDuration) tf).toMilliseconds();
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/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 fc9a1f5..b08050b 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
@@ -194,6 +194,10 @@ public class Repeater implements Callable<Boolean> {
return delayOnIteration(Functions.constant(duration));
}
+ /**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted (instead use {@link #every(Duration)}).
+ */
+ @Deprecated
public Repeater every(groovy.time.Duration duration) {
return every(Duration.of(duration));
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/utils/common/src/test/java/org/apache/brooklyn/util/repeat/RepeaterTest.java
----------------------------------------------------------------------
diff --git a/utils/common/src/test/java/org/apache/brooklyn/util/repeat/RepeaterTest.java b/utils/common/src/test/java/org/apache/brooklyn/util/repeat/RepeaterTest.java
index 499c58d..712b460 100644
--- a/utils/common/src/test/java/org/apache/brooklyn/util/repeat/RepeaterTest.java
+++ b/utils/common/src/test/java/org/apache/brooklyn/util/repeat/RepeaterTest.java
@@ -163,7 +163,7 @@ public class RepeaterTest {
* Check that the {@link Repeater} will stop after a time limit.
*
* The repeater is configured to run every 100ms and never stop until the limit is reached.
- * This is given as {@link Repeater#limitTimeTo(groovy.time.Duration)} and the execution time
+ * This is given as {@link Repeater#limitTimeTo(org.apache.brooklyn.util.time.Duration)} and the execution time
* is then checked to ensure it is between 100% and 400% of the specified value. Due to scheduling
* delays and other factors in a non RTOS system it is expected that the repeater will take much
* longer to exit occasionally.
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromCallableClosure.java
----------------------------------------------------------------------
diff --git a/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromCallableClosure.java b/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromCallableClosure.java
index 0ad414f..a395c24 100644
--- a/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromCallableClosure.java
+++ b/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromCallableClosure.java
@@ -22,6 +22,10 @@ import java.util.concurrent.Callable;
import groovy.lang.Closure;
+/**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+@Deprecated
public class FromCallableClosure<T> extends Closure<T> {
private static final long serialVersionUID = 1L;
private Callable<T> job;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromFunctionClosure.java
----------------------------------------------------------------------
diff --git a/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromFunctionClosure.java b/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromFunctionClosure.java
index 80203fb..fa86f6f 100644
--- a/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromFunctionClosure.java
+++ b/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromFunctionClosure.java
@@ -22,6 +22,10 @@ import groovy.lang.Closure;
import com.google.common.base.Function;
+/**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+@Deprecated
public class FromFunctionClosure<T> extends Closure<T> {
private static final long serialVersionUID = 1L;
private Function<Object, T> job;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromRunnableClosure.java
----------------------------------------------------------------------
diff --git a/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromRunnableClosure.java b/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromRunnableClosure.java
index 3f60a3e..9ce7f56 100644
--- a/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromRunnableClosure.java
+++ b/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/FromRunnableClosure.java
@@ -24,6 +24,10 @@ import java.util.concurrent.Callable;
import org.codehaus.groovy.runtime.DefaultGroovyMethods;
+/**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+@Deprecated
public class FromRunnableClosure<T> extends Closure<T> {
private static final long serialVersionUID = 1L;
private Runnable job;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/GroovyJavaMethods.java
----------------------------------------------------------------------
diff --git a/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/GroovyJavaMethods.java b/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/GroovyJavaMethods.java
index ffd4c3b..ae8f859 100644
--- a/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/GroovyJavaMethods.java
+++ b/utils/groovy/src/main/java/org/apache/brooklyn/util/groovy/GroovyJavaMethods.java
@@ -34,8 +34,13 @@ import com.google.common.base.Predicate;
import groovy.lang.Closure;
import groovy.lang.GString;
-/** handy methods available in groovy packaged so they can be consumed from java,
- * and other conversion/conveniences; but see JavaGroovyEquivalents for faster alternatives */
+/**
+ * Handy methods available in groovy packaged so they can be consumed from java,
+ * and other conversion/conveniences; but see JavaGroovyEquivalents for faster alternatives.
+ *
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+@Deprecated
public class GroovyJavaMethods {
private static final CallSiteArray CALL_SITE_ARRAY = new CallSiteArray(GroovyJavaMethods.class, new String[] {"metaClass", "invokeMethod"});
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/utils/groovy/src/test/java/org/apache/brooklyn/util/groovy/GroovJavaMethodsTest.java
----------------------------------------------------------------------
diff --git a/utils/groovy/src/test/java/org/apache/brooklyn/util/groovy/GroovJavaMethodsTest.java b/utils/groovy/src/test/java/org/apache/brooklyn/util/groovy/GroovJavaMethodsTest.java
index 8db1af7..da90332 100644
--- a/utils/groovy/src/test/java/org/apache/brooklyn/util/groovy/GroovJavaMethodsTest.java
+++ b/utils/groovy/src/test/java/org/apache/brooklyn/util/groovy/GroovJavaMethodsTest.java
@@ -34,6 +34,10 @@ import com.google.common.collect.ImmutableList;
import groovy.lang.Closure;
import groovy.lang.GString;
+/**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+@Deprecated
public class GroovJavaMethodsTest {
private String gstringVal = "exampleGString";
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/7d8dfdd9/utils/groovy/src/test/java/org/apache/brooklyn/util/groovy/PojoTestingFields.java
----------------------------------------------------------------------
diff --git a/utils/groovy/src/test/java/org/apache/brooklyn/util/groovy/PojoTestingFields.java b/utils/groovy/src/test/java/org/apache/brooklyn/util/groovy/PojoTestingFields.java
index 9bbc3fb..af40bd6 100644
--- a/utils/groovy/src/test/java/org/apache/brooklyn/util/groovy/PojoTestingFields.java
+++ b/utils/groovy/src/test/java/org/apache/brooklyn/util/groovy/PojoTestingFields.java
@@ -18,6 +18,10 @@
*/
package org.apache.brooklyn.util.groovy;
+/**
+ * @deprecated since 0.11.0; explicit groovy utilities/support will be deleted.
+ */
+@Deprecated
public class PojoTestingFields {
private final int privateInt;