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 2015/08/12 11:01:05 UTC
[12/15] incubator-brooklyn git commit: [BROOKLYN-162] Package rename
in ./api/management
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/TaskAdaptable.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/TaskAdaptable.java b/api/src/main/java/org/apache/brooklyn/management/TaskAdaptable.java
new file mode 100644
index 0000000..8a50ebe
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/TaskAdaptable.java
@@ -0,0 +1,24 @@
+/*
+ * 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 org.apache.brooklyn.management;
+
+/** marker interface for something which can be adapted to a task */
+public interface TaskAdaptable<T> {
+ Task<T> asTask();
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/TaskFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/TaskFactory.java b/api/src/main/java/org/apache/brooklyn/management/TaskFactory.java
new file mode 100644
index 0000000..41ec32a
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/TaskFactory.java
@@ -0,0 +1,25 @@
+/*
+ * 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 org.apache.brooklyn.management;
+
+
+/** Interface for something which can generate tasks (or task wrappers) */
+public interface TaskFactory<T extends TaskAdaptable<?>> {
+ T newTask();
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/TaskQueueingContext.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/TaskQueueingContext.java b/api/src/main/java/org/apache/brooklyn/management/TaskQueueingContext.java
new file mode 100644
index 0000000..60703dd
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/TaskQueueingContext.java
@@ -0,0 +1,62 @@
+/*
+ * 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 org.apache.brooklyn.management;
+
+import java.util.List;
+
+import brooklyn.util.time.Duration;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * Marks a place where tasks can be added, e.g. a task which allows children to be added (including after it is activated);
+ * if the implementer of this is also a task, then it may be picked up by hierarchical methods (e.g. in DynamicTasks).
+ *
+ * @since 0.6.0
+ */
+@Beta
+public interface TaskQueueingContext {
+
+ /** queues the task for submission as part of this queueing context
+ * <p>
+ * implementations should mark it as queued but not yet submitted.
+ * note the task may have already been submitted, and is being queued here for informational purposes,
+ * in which case the implementation should not run it. */
+ public void queue(Task<?> t);
+
+ /** returns a list of queued tasks (immutable copy) */
+ public List<Task<?>> getQueue();
+
+ /** Drains the task queue for this context to complete, ie waits for this context to complete (or terminate early)
+ * @param optionalTimeout null to run forever
+ * @param includePrimaryThread whether the parent (this context) should also be joined on;
+ * should only be true if invoking this from another task, as otherwise it will be waiting for itself!
+ * @param throwFirstError whether to throw the first exception encountered
+ * <p>
+ * Also note that this waits on tasks so that blocking details on the caller are meaningful.
+ */
+ public void drain(Duration optionalTimeout, boolean includePrimaryThread, boolean throwFirstError);
+
+ /** Returns the task which is this queueing context */
+ public Task<?> asTask();
+
+ /** causes subsequent children failures not to fail the parent */
+ public void swallowChildrenFailures();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/TaskWrapper.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/TaskWrapper.java b/api/src/main/java/org/apache/brooklyn/management/TaskWrapper.java
new file mode 100644
index 0000000..2f92832
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/TaskWrapper.java
@@ -0,0 +1,28 @@
+/*
+ * 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 org.apache.brooklyn.management;
+
+/**
+ * Interface for something which is not a task, but which is closely linked to one, ie. it has a task.
+ *
+ * @since 0.6.0
+ */
+public interface TaskWrapper<T> extends TaskAdaptable<T> {
+ Task<T> getTask();
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/classloading/BrooklynClassLoadingContext.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/classloading/BrooklynClassLoadingContext.java b/api/src/main/java/org/apache/brooklyn/management/classloading/BrooklynClassLoadingContext.java
new file mode 100644
index 0000000..323f247
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/classloading/BrooklynClassLoadingContext.java
@@ -0,0 +1,51 @@
+/*
+ * 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 org.apache.brooklyn.management.classloading;
+
+import java.net.URL;
+
+import javax.annotation.Nullable;
+
+import org.apache.brooklyn.management.ManagementContext;
+
+import brooklyn.util.guava.Maybe;
+
+/**
+ * Provides functionality for loading classes based on the current context
+ * (e.g. catalog item, entity, etc).
+ */
+public interface BrooklynClassLoadingContext {
+
+ public ManagementContext getManagementContext();
+ public Class<?> loadClass(String className);
+ public <T> Class<? extends T> loadClass(String className, @Nullable Class<T> supertype);
+
+ public Maybe<Class<?>> tryLoadClass(String className);
+ public <T> Maybe<Class<? extends T>> tryLoadClass(String className, @Nullable Class<T> supertype);
+
+ /** As {@link ClassLoader#getResource(String)} */
+ public URL getResource(String name);
+
+ /**
+ * As {@link ClassLoader#getResources(String)} but returning an {@link Iterable} rather than
+ * an {@link java.util.Enumeration}.
+ */
+ public Iterable<URL> getResources(String name);
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/entitlement/EntitlementClass.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/entitlement/EntitlementClass.java b/api/src/main/java/org/apache/brooklyn/management/entitlement/EntitlementClass.java
new file mode 100644
index 0000000..c33950f
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/entitlement/EntitlementClass.java
@@ -0,0 +1,27 @@
+/*
+ * 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 org.apache.brooklyn.management.entitlement;
+
+import com.google.common.reflect.TypeToken;
+
+/** @see EntitlementManager */
+public interface EntitlementClass<T> {
+ String entitlementClassIdentifier();
+ TypeToken<T> entitlementClassArgumentType();
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/entitlement/EntitlementContext.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/entitlement/EntitlementContext.java b/api/src/main/java/org/apache/brooklyn/management/entitlement/EntitlementContext.java
new file mode 100644
index 0000000..c514ccd
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/entitlement/EntitlementContext.java
@@ -0,0 +1,24 @@
+/*
+ * 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 org.apache.brooklyn.management.entitlement;
+
+/** @see EntitlementManager */
+public interface EntitlementContext {
+ String user();
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/entitlement/EntitlementManager.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/entitlement/EntitlementManager.java b/api/src/main/java/org/apache/brooklyn/management/entitlement/EntitlementManager.java
new file mode 100644
index 0000000..674dfea
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/entitlement/EntitlementManager.java
@@ -0,0 +1,45 @@
+/*
+ * 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 org.apache.brooklyn.management.entitlement;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * Entitlement lookup relies on:
+ * <li>an "entitlement context", consisting of at minimum a string identifier of the user/actor for which entitlement is being requested
+ * <li>an "entitlement class", representing the category of activity for which entitlement is being requested
+ * <li>an "entitlement class argument", representing the specifics of the activity for which entitlement is being requested
+ * <p>
+ * Instances of this class typically have a 1-arg constructor taking a BrooklynProperties object
+ * (configuration injected by the Brooklyn framework)
+ * or a 0-arg constructor (if no external configuration is needed).
+ * <p>
+ * An EntitlementManagerAdapter class is available to do dispatch to common methods.
+ * <p>
+ * Instantiation is done e.g. by Entitlements.newManager.
+ * @since 0.7.0 */
+@Beta
+public interface EntitlementManager {
+
+ public <T> boolean isEntitled(@Nullable EntitlementContext context, @Nonnull EntitlementClass<T> entitlementClass, @Nullable T entitlementClassArgument);
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/ha/HighAvailabilityManager.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/ha/HighAvailabilityManager.java b/api/src/main/java/org/apache/brooklyn/management/ha/HighAvailabilityManager.java
new file mode 100644
index 0000000..f1030e2
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/ha/HighAvailabilityManager.java
@@ -0,0 +1,129 @@
+/*
+ * 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 org.apache.brooklyn.management.ha;
+
+import java.util.Map;
+
+import com.google.common.annotations.Beta;
+import com.google.common.annotations.VisibleForTesting;
+
+/**
+ * Monitors other management nodes (via the {@link ManagementPlaneSyncRecordPersister}) to detect
+ * if the current master has failed or stopped. If so, then deterministically chooses a new master.
+ * If that master is self, then promotes.
+
+ * Users are not expected to implement this class, or to call methods on it directly.
+ *
+ * Expected lifecycle of methods calls on this is:
+ * <ol>
+ * <li>{@link #setPersister(ManagementPlaneSyncRecordPersister)}
+ * <li>Exactly one of {@link #disabled()} or {@link #start(HighAvailabilityMode)}
+ * <li>{@link #stop()}
+ * </ol>
+ *
+ * @since 0.7.0
+ */
+@Beta
+public interface HighAvailabilityManager {
+
+ ManagementNodeState getNodeState();
+
+ /** The time in milliseconds when the state was last changed. -1 if no state transition has occurred yet.*/
+ long getLastStateChange();
+
+ /**
+ * @param persister
+ * @return self
+ */
+ HighAvailabilityManager setPersister(ManagementPlaneSyncRecordPersister persister);
+
+ /**
+ * Indicates that HA is disabled: this node will act as the only management node in this management plane,
+ * and will not persist HA meta-information (meaning other nodes cannot join).
+ * <p>
+ * Subsequently can expect {@link #getNodeState()} to be {@link ManagementNodeState#MASTER}
+ * and {@link #loadManagementPlaneSyncRecord(boolean)} to show just this one node --
+ * as if it were running HA with just one node --
+ * but {@link #isRunning()} will return false.
+ * <p>
+ * Currently this method is intended to be called early in the lifecycle,
+ * instead of {@link #start(HighAvailabilityMode)}. It may be an error if
+ * this is called after this HA Manager is started.
+ */
+ @Beta
+ void disabled();
+
+ /** Whether HA mode is operational */
+ boolean isRunning();
+
+ /**
+ * Starts the monitoring of other nodes (and thus potential promotion of this node from standby to master).
+ * <p>
+ * When this method returns, the status of this node will be set,
+ * either {@link ManagementNodeState#MASTER} if appropriate
+ * or {@link ManagementNodeState#STANDBY} / {@link ManagementNodeState#HOT_STANDBY} / {@link ManagementNodeState#HOT_BACKUP}.
+ *
+ * @param startMode mode to start with
+ * @throws IllegalStateException if current state of the management-plane doesn't match that desired by {@code startMode}
+ */
+ void start(HighAvailabilityMode startMode);
+
+ /**
+ * Stops this node, then publishes own status (via {@link ManagementPlaneSyncRecordPersister} of {@link ManagementNodeState#TERMINATED}.
+ */
+ void stop();
+
+ /** changes the mode that this HA server is running in
+ * <p>
+ * note it will be an error to {@link #changeMode(HighAvailabilityMode)} to {@link ManagementNodeState#MASTER}
+ * when there is already a master; to promote a node explicitly set its priority higher than
+ * the others and invoke {@link #changeMode(HighAvailabilityMode)} to a standby mode on the existing master */
+ void changeMode(HighAvailabilityMode mode);
+
+ /** sets the priority, and publishes it synchronously so it is canonical */
+ void setPriority(long priority);
+
+ long getPriority();
+
+ /** deletes non-master node records; active nodes (including this) will republish,
+ * so this provides a simple way to clean out the cache of dead brooklyn nodes */
+ @Beta
+ void publishClearNonMaster();
+
+ /**
+ * Returns a snapshot of the management-plane's current / most-recently-known status,
+ * as last read from {@link #loadManagementPlaneSyncRecord(boolean)}, or null if none read.
+ */
+ ManagementPlaneSyncRecord getLastManagementPlaneSyncRecord();
+
+ /**
+ * @param useLocalKnowledgeForThisNode - if true, the record for this mgmt node will be replaced with the
+ * actual current status known in this JVM (may be more recent than what is persisted);
+ * for most purposes there is little difference but in some cases the local node being updated
+ * may be explicitly wanted or not wanted
+ */
+ ManagementPlaneSyncRecord loadManagementPlaneSyncRecord(boolean useLocalKnowledgeForThisNode);
+
+ @VisibleForTesting
+ ManagementPlaneSyncRecordPersister getPersister();
+
+ /** Returns a collection of metrics */
+ Map<String,Object> getMetrics();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/ha/HighAvailabilityMode.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/ha/HighAvailabilityMode.java b/api/src/main/java/org/apache/brooklyn/management/ha/HighAvailabilityMode.java
new file mode 100644
index 0000000..755cf49
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/ha/HighAvailabilityMode.java
@@ -0,0 +1,67 @@
+/*
+ * 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 org.apache.brooklyn.management.ha;
+
+/** Specifies the HA mode that a mgmt node should run in */
+public enum HighAvailabilityMode {
+ /**
+ * Means HA mode should not be operational.
+ * <p>
+ * When specified for the initial HA mode, this simply turns off HA.
+ * <p>
+ * However if being used to {@link HighAvailabilityManager#changeMode(HighAvailabilityMode)},
+ * this will cause the node to transition to a {@link ManagementNodeState#FAILED} state.
+ * Switching to a "master-but-not-part-of-HA" state is not currently supported, as this would be
+ * problematic if another node (which was part of HA) then tries to become master,
+ * and the more common use of this at runtime is to disable a node from being part of the HA plane.
+ */
+ DISABLED,
+
+ /**
+ * Means auto-detect whether to be master or standby; if there is already a master then start as standby,
+ * otherwise start as master.
+ */
+ AUTO,
+
+ /**
+ * Means node must be lukewarm standby; if there is not already a master then fail fast on startup.
+ * See {@link ManagementNodeState#STANDBY}.
+ */
+ STANDBY,
+
+ /**
+ * Means node must be hot standby; if there is not already a master then fail fast on startup.
+ * See {@link ManagementNodeState#HOT_STANDBY}.
+ */
+ HOT_STANDBY,
+
+ /**
+ * Means node must be hot backup; do not attempt to become master (but it <i>can</i> start without a master).
+ * See {@link ManagementNodeState#HOT_BACKUP}.
+ */
+ HOT_BACKUP,
+
+ /**
+ * Means node must be master; if there is already a master then fail fast on startup.
+ * See {@link ManagementNodeState#MASTER}.
+ */
+ // TODO when multi-master supported we will of course not fail fast on startup when there is already a master;
+ // instead the responsibility for master entities will be divided among masters
+ MASTER;
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/ha/ManagementNodeState.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/ha/ManagementNodeState.java b/api/src/main/java/org/apache/brooklyn/management/ha/ManagementNodeState.java
new file mode 100644
index 0000000..798a587
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/ha/ManagementNodeState.java
@@ -0,0 +1,72 @@
+/*
+ * 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 org.apache.brooklyn.management.ha;
+
+import brooklyn.util.guava.Maybe;
+
+public enum ManagementNodeState {
+ /** Node is either coming online, or is in some kind of recovery/transitioning mode */
+ INITIALIZING,
+
+ /** Node is in "lukewarm standby" mode, where it is available to be promoted to master,
+ * but does not have entities loaded and will require some effort to be promoted */
+ STANDBY,
+ /** Node is acting as read-only proxy available to be promoted to master on existing master failure */
+ HOT_STANDBY,
+ /** Node is acting as a read-only proxy but not making itself available for promotion to master */
+ HOT_BACKUP,
+ /** Node is running as primary/master, able to manage entities and create new ones */
+ // the semantics are intended to support multi-master here; we could have multiple master nodes,
+ // but we need to look up who is master for any given entity
+ MASTER,
+
+ /** Node has failed and requires maintenance attention */
+ FAILED,
+ /** Node has gone away; maintenance not possible */
+ TERMINATED;
+
+ /** Converts a {@link HighAvailabilityMode} to a {@link ManagementNodeState}, if possible */
+ public static Maybe<ManagementNodeState> of(HighAvailabilityMode startMode) {
+ switch (startMode) {
+ case AUTO:
+ case DISABLED:
+ return Maybe.absent("Requested "+HighAvailabilityMode.class+" mode "+startMode+" cannot be converted to "+ManagementNodeState.class);
+ case HOT_BACKUP:
+ return Maybe.of(HOT_BACKUP);
+ case HOT_STANDBY:
+ return Maybe.of(HOT_STANDBY);
+ case MASTER:
+ return Maybe.of(MASTER);
+ case STANDBY:
+ return Maybe.of(STANDBY);
+ }
+ // above should be exhaustive
+ return Maybe.absent("Requested "+HighAvailabilityMode.class+" mode "+startMode+" was not expected");
+ }
+
+ /** true for hot non-master modes, where we are proxying the data from the persistent store */
+ public static boolean isHotProxy(ManagementNodeState state) {
+ return state==HOT_BACKUP || state==HOT_STANDBY;
+ }
+
+ /** true for non-master modes which can be promoted to master */
+ public static boolean isStandby(ManagementNodeState state) {
+ return state==ManagementNodeState.STANDBY || state==ManagementNodeState.HOT_STANDBY;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/ha/ManagementNodeSyncRecord.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/ha/ManagementNodeSyncRecord.java b/api/src/main/java/org/apache/brooklyn/management/ha/ManagementNodeSyncRecord.java
new file mode 100644
index 0000000..2176968
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/ha/ManagementNodeSyncRecord.java
@@ -0,0 +1,62 @@
+/*
+ * 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 org.apache.brooklyn.management.ha;
+
+import java.net.URI;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * Represents the state of a management-node.
+ *
+ * @see {@link ManagementPlaneSyncRecord#getManagementNodes()}
+ *
+ * @since 0.7.0
+ *
+ * @author aled
+ */
+@Beta
+public interface ManagementNodeSyncRecord {
+
+ // TODO Not setting URI currently; ManagementContext doesn't know its URI; only have one if web-console was enabled.
+
+ // TODO Add getPlaneId(); but first need to set it in a sensible way
+
+ String getBrooklynVersion();
+
+ String getNodeId();
+
+ URI getUri();
+
+ ManagementNodeState getStatus();
+
+ Long getPriority();
+
+ /** timestamp set by the originating management machine */
+ long getLocalTimestamp();
+
+ /** timestamp set by shared persistent store, if available
+ * <p>
+ * this will not be set on records originating at this machine, nor will it be persisted,
+ * but it will be populated for records being read */
+ Long getRemoteTimestamp();
+
+ String toVerboseString();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/ha/ManagementPlaneSyncRecord.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/ha/ManagementPlaneSyncRecord.java b/api/src/main/java/org/apache/brooklyn/management/ha/ManagementPlaneSyncRecord.java
new file mode 100644
index 0000000..fdeed86
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/ha/ManagementPlaneSyncRecord.java
@@ -0,0 +1,51 @@
+/*
+ * 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 org.apache.brooklyn.management.ha;
+
+import java.util.Map;
+
+import org.apache.brooklyn.mementos.BrooklynMemento;
+import org.apache.brooklyn.mementos.BrooklynMementoPersister;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * Meta-data about the management plane - the management nodes and who is currently master.
+ * Does not contain any data about the entities under management.
+ * <p>
+ * This is very similar to how {@link BrooklynMemento} is used by {@link BrooklynMementoPersister},
+ * but it is not a memento in the sense it does not reconstitute the entire management plane
+ * (so is not called Memento although it can be used by the same memento-serializers).
+ *
+ * @since 0.7.0
+ *
+ * @author aled
+ */
+@Beta
+public interface ManagementPlaneSyncRecord {
+
+ // TODO Add getPlaneId(); but first need to set it sensibly on each management node
+
+ String getMasterNodeId();
+
+ /** returns map of {@link ManagementNodeSyncRecord} instances keyed by the nodes' IDs */
+ Map<String, ManagementNodeSyncRecord> getManagementNodes();
+
+ String toVerboseString();
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/ha/ManagementPlaneSyncRecordPersister.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/ha/ManagementPlaneSyncRecordPersister.java b/api/src/main/java/org/apache/brooklyn/management/ha/ManagementPlaneSyncRecordPersister.java
new file mode 100644
index 0000000..5da6d45
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/ha/ManagementPlaneSyncRecordPersister.java
@@ -0,0 +1,69 @@
+/*
+ * 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 org.apache.brooklyn.management.ha;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.concurrent.TimeoutException;
+
+import org.apache.brooklyn.mementos.BrooklynMementoPersister;
+
+import brooklyn.util.time.Duration;
+
+import com.google.common.annotations.Beta;
+import com.google.common.annotations.VisibleForTesting;
+
+/**
+ * Controls the persisting and reading back of mementos relating to the management plane.
+ * This state does not relate to the entities being managed.
+ *
+ * @see {@link HighAvailabilityManager#setPersister(ManagementPlaneSyncRecordPersister)} for its use in management-node failover
+ *
+ * @since 0.7.0
+ */
+@Beta
+public interface ManagementPlaneSyncRecordPersister {
+
+ /**
+ * Analogue to {@link BrooklynMementoPersister#loadMemento(org.apache.brooklyn.mementos.BrooklynMementoPersister.LookupContext)}
+ * <p>
+ * Note that this method is *not* thread safe.
+ */
+ ManagementPlaneSyncRecord loadSyncRecord() throws IOException;
+
+ void delta(Delta delta);
+
+ void stop();
+
+ @VisibleForTesting
+ void waitForWritesCompleted(Duration timeout) throws InterruptedException, TimeoutException;
+
+ public interface Delta {
+ public enum MasterChange {
+ NO_CHANGE,
+ SET_MASTER,
+ CLEAR_MASTER
+ }
+ Collection<ManagementNodeSyncRecord> getNodes();
+ Collection<String> getRemovedNodeIds();
+ MasterChange getMasterChange();
+ String getNewMasterOrNull();
+ String getExpectedMasterToClear();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/management/ha/MementoCopyMode.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/ha/MementoCopyMode.java b/api/src/main/java/org/apache/brooklyn/management/ha/MementoCopyMode.java
new file mode 100644
index 0000000..de7fb28
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/management/ha/MementoCopyMode.java
@@ -0,0 +1,29 @@
+/*
+ * 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 org.apache.brooklyn.management.ha;
+
+public enum MementoCopyMode {
+ /** Use items currently managed at this node */
+ LOCAL,
+ /** Use items as stored in the remote persistence store */
+ REMOTE,
+ /** Auto-detect whether to use {@link #LOCAL} or {@link #REMOTE} depending on the
+ * HA mode of this management node (usually {@link #LOCAL} for master and {@link #REMOTE} otherwise)*/
+ AUTO
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java b/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java
index c888fcf..4d57f64 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java
@@ -28,6 +28,7 @@ import javax.annotation.Nullable;
import brooklyn.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.management.ManagementContext;
import org.apache.brooklyn.policy.Enricher;
import org.apache.brooklyn.policy.Policy;
@@ -38,7 +39,6 @@ import brooklyn.entity.rebind.PersistenceExceptionHandler;
import brooklyn.entity.rebind.RebindExceptionHandler;
import brooklyn.entity.rebind.RebindManager;
import brooklyn.location.Location;
-import brooklyn.management.ManagementContext;
import brooklyn.util.time.Duration;
import com.google.common.annotations.Beta;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/policy/EnricherSpec.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/policy/EnricherSpec.java b/api/src/main/java/org/apache/brooklyn/policy/EnricherSpec.java
index 9cb1900..94c9473 100644
--- a/api/src/main/java/org/apache/brooklyn/policy/EnricherSpec.java
+++ b/api/src/main/java/org/apache/brooklyn/policy/EnricherSpec.java
@@ -23,13 +23,13 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Collections;
import java.util.Map;
+import org.apache.brooklyn.management.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import brooklyn.basic.AbstractBrooklynObjectSpec;
import brooklyn.config.ConfigKey;
import brooklyn.config.ConfigKey.HasConfigKey;
-import brooklyn.management.Task;
import com.google.common.collect.Maps;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/api/src/main/java/org/apache/brooklyn/policy/PolicySpec.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/policy/PolicySpec.java b/api/src/main/java/org/apache/brooklyn/policy/PolicySpec.java
index 0ca9a76..afcfaef 100644
--- a/api/src/main/java/org/apache/brooklyn/policy/PolicySpec.java
+++ b/api/src/main/java/org/apache/brooklyn/policy/PolicySpec.java
@@ -23,13 +23,13 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Collections;
import java.util.Map;
+import org.apache.brooklyn.management.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import brooklyn.basic.AbstractBrooklynObjectSpec;
import brooklyn.config.ConfigKey;
import brooklyn.config.ConfigKey.HasConfigKey;
-import brooklyn.management.Task;
import com.google.common.collect.Maps;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/BrooklynVersion.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/BrooklynVersion.java b/core/src/main/java/brooklyn/BrooklynVersion.java
index d9815bc..bc880c8 100644
--- a/core/src/main/java/brooklyn/BrooklynVersion.java
+++ b/core/src/main/java/brooklyn/BrooklynVersion.java
@@ -28,6 +28,7 @@ import java.util.Map;
import java.util.Properties;
import java.util.concurrent.atomic.AtomicReference;
import java.util.jar.Attributes;
+
import javax.annotation.Nullable;
import org.osgi.framework.Constants;
@@ -42,7 +43,8 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import org.apache.brooklyn.catalog.CatalogItem;
-import brooklyn.management.ManagementContext;
+import org.apache.brooklyn.management.ManagementContext;
+
import brooklyn.management.classloading.OsgiBrooklynClassLoadingContext;
import brooklyn.util.ResourceUtils;
import brooklyn.util.exceptions.Exceptions;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java b/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
index a020796..8ad5bcd 100644
--- a/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
+++ b/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
@@ -22,6 +22,7 @@ import java.util.Collections;
import java.util.Map;
import java.util.Set;
+import org.apache.brooklyn.management.ManagementContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,7 +30,6 @@ import brooklyn.basic.internal.ApiObjectsFactory;
import brooklyn.entity.basic.AbstractEntity;
import brooklyn.entity.proxying.InternalFactory;
import brooklyn.entity.rebind.RebindManagerImpl;
-import brooklyn.management.ManagementContext;
import brooklyn.management.internal.ManagementContextInternal;
import brooklyn.util.config.ConfigBag;
import brooklyn.util.flags.SetFromFlag;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/basic/BasicConfigurableObject.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/BasicConfigurableObject.java b/core/src/main/java/brooklyn/basic/BasicConfigurableObject.java
index 5d1bc95..91ba2de 100644
--- a/core/src/main/java/brooklyn/basic/BasicConfigurableObject.java
+++ b/core/src/main/java/brooklyn/basic/BasicConfigurableObject.java
@@ -18,15 +18,16 @@
*/
package brooklyn.basic;
+import org.apache.brooklyn.management.ManagementContext;
+import org.apache.brooklyn.management.Task;
+
import brooklyn.camp.brooklyn.api.HasBrooklynManagementContext;
import brooklyn.config.ConfigKey;
import brooklyn.config.ConfigKey.HasConfigKey;
import brooklyn.config.ConfigMap;
import brooklyn.entity.trait.Configurable;
import brooklyn.entity.trait.Identifiable;
-import brooklyn.management.ManagementContext;
import brooklyn.management.ManagementContextInjectable;
-import brooklyn.management.Task;
import brooklyn.util.config.ConfigBag;
import brooklyn.util.flags.SetFromFlag;
import brooklyn.util.text.Identifiers;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java b/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java
index f705494..32b3fb6 100644
--- a/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java
+++ b/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java
@@ -18,10 +18,11 @@
*/
package brooklyn.basic.internal;
+import org.apache.brooklyn.management.Task;
+
import brooklyn.basic.internal.ApiObjectsFactoryInterface;
import brooklyn.entity.Entity;
import brooklyn.entity.basic.BrooklynTaskTags;
-import brooklyn.management.Task;
import brooklyn.util.task.Tasks;
public class ApiObjectsFactoryImpl implements ApiObjectsFactoryInterface {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/camp/brooklyn/api/AssemblyTemplateSpecInstantiator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/camp/brooklyn/api/AssemblyTemplateSpecInstantiator.java b/core/src/main/java/brooklyn/camp/brooklyn/api/AssemblyTemplateSpecInstantiator.java
index 60b7921..d017995 100644
--- a/core/src/main/java/brooklyn/camp/brooklyn/api/AssemblyTemplateSpecInstantiator.java
+++ b/core/src/main/java/brooklyn/camp/brooklyn/api/AssemblyTemplateSpecInstantiator.java
@@ -24,8 +24,9 @@ import io.brooklyn.camp.spi.instantiate.AssemblyTemplateInstantiator;
import java.util.Set;
+import org.apache.brooklyn.management.classloading.BrooklynClassLoadingContext;
+
import brooklyn.entity.proxying.EntitySpec;
-import brooklyn.management.classloading.BrooklynClassLoadingContext;
public interface AssemblyTemplateSpecInstantiator extends AssemblyTemplateInstantiator {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/camp/brooklyn/api/HasBrooklynManagementContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/camp/brooklyn/api/HasBrooklynManagementContext.java b/core/src/main/java/brooklyn/camp/brooklyn/api/HasBrooklynManagementContext.java
index b8c1280..6281b71 100644
--- a/core/src/main/java/brooklyn/camp/brooklyn/api/HasBrooklynManagementContext.java
+++ b/core/src/main/java/brooklyn/camp/brooklyn/api/HasBrooklynManagementContext.java
@@ -18,7 +18,7 @@
*/
package brooklyn.camp.brooklyn.api;
-import brooklyn.management.ManagementContext;
+import org.apache.brooklyn.management.ManagementContext;
public interface HasBrooklynManagementContext {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/catalog/CatalogPredicates.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/CatalogPredicates.java b/core/src/main/java/brooklyn/catalog/CatalogPredicates.java
index cc7cc94..e1855e9 100644
--- a/core/src/main/java/brooklyn/catalog/CatalogPredicates.java
+++ b/core/src/main/java/brooklyn/catalog/CatalogPredicates.java
@@ -22,6 +22,7 @@ import javax.annotation.Nullable;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.catalog.CatalogItem.CatalogItemType;
+import org.apache.brooklyn.management.ManagementContext;
import org.apache.brooklyn.policy.Policy;
import org.apache.brooklyn.policy.PolicySpec;
@@ -31,7 +32,6 @@ import brooklyn.entity.Entity;
import brooklyn.entity.proxying.EntitySpec;
import brooklyn.location.Location;
import brooklyn.location.LocationSpec;
-import brooklyn.management.ManagementContext;
import brooklyn.management.entitlement.Entitlements;
import com.google.common.base.Function;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
index ba28071..dd365da 100644
--- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
+++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
@@ -46,6 +46,8 @@ import org.apache.brooklyn.catalog.BrooklynCatalog;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
import org.apache.brooklyn.catalog.CatalogItem.CatalogItemType;
+import org.apache.brooklyn.management.ManagementContext;
+import org.apache.brooklyn.management.classloading.BrooklynClassLoadingContext;
import org.apache.brooklyn.policy.Policy;
import org.apache.brooklyn.policy.PolicySpec;
@@ -55,8 +57,6 @@ import brooklyn.config.BrooklynServerConfig;
import brooklyn.location.Location;
import brooklyn.location.LocationSpec;
import brooklyn.location.basic.BasicLocationRegistry;
-import brooklyn.management.ManagementContext;
-import brooklyn.management.classloading.BrooklynClassLoadingContext;
import brooklyn.management.internal.ManagementContextInternal;
import brooklyn.util.collections.MutableList;
import brooklyn.util.collections.MutableMap;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java
index 057b770..164d7e0 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogDo.java
@@ -24,11 +24,11 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import org.apache.brooklyn.management.ManagementContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import brooklyn.catalog.internal.CatalogClasspathDo.CatalogScanningModes;
-import brooklyn.management.ManagementContext;
import brooklyn.management.internal.ManagementContextInternal;
import brooklyn.util.collections.MutableList;
import brooklyn.util.exceptions.Exceptions;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/catalog/internal/CatalogInitialization.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogInitialization.java b/core/src/main/java/brooklyn/catalog/internal/CatalogInitialization.java
index 6b9c3cb..0d93b6f 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogInitialization.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogInitialization.java
@@ -24,12 +24,12 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.management.ManagementContext;
+import org.apache.brooklyn.management.ha.ManagementNodeState;
+
import brooklyn.config.BrooklynServerConfig;
-import brooklyn.management.ManagementContext;
import brooklyn.management.ManagementContextInjectable;
-import brooklyn.management.ha.ManagementNodeState;
import brooklyn.management.internal.ManagementContextInternal;
import brooklyn.util.ResourceUtils;
import brooklyn.util.collections.MutableList;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
index eb7b3f6..7a4213b 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
@@ -26,11 +26,11 @@ import javax.annotation.Nullable;
import brooklyn.basic.BrooklynObjectInternal;
import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.management.ManagementContext;
import org.apache.brooklyn.mementos.CatalogItemMemento;
import brooklyn.config.ConfigKey;
import brooklyn.entity.rebind.RebindSupport;
-import brooklyn.management.ManagementContext;
import com.google.common.base.Preconditions;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java b/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
index a0faa56..b70420a 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
@@ -27,16 +27,18 @@ import org.slf4j.LoggerFactory;
import brooklyn.basic.BrooklynObject;
import brooklyn.basic.BrooklynObjectInternal;
+
import org.apache.brooklyn.catalog.BrooklynCatalog;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
+import org.apache.brooklyn.management.ManagementContext;
+import org.apache.brooklyn.management.classloading.BrooklynClassLoadingContext;
+
import brooklyn.catalog.internal.BasicBrooklynCatalog.BrooklynLoaderTracker;
import brooklyn.config.BrooklynLogging;
import brooklyn.entity.Entity;
import brooklyn.entity.basic.EntityInternal;
import brooklyn.entity.rebind.RebindManagerImpl.RebindTracker;
-import brooklyn.management.ManagementContext;
-import brooklyn.management.classloading.BrooklynClassLoadingContext;
import brooklyn.management.classloading.BrooklynClassLoadingContextSequential;
import brooklyn.management.classloading.JavaBrooklynClassLoadingContext;
import brooklyn.management.classloading.OsgiBrooklynClassLoadingContext;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/config/BrooklynServerConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/BrooklynServerConfig.java b/core/src/main/java/brooklyn/config/BrooklynServerConfig.java
index a1fdd32..44c97db 100644
--- a/core/src/main/java/brooklyn/config/BrooklynServerConfig.java
+++ b/core/src/main/java/brooklyn/config/BrooklynServerConfig.java
@@ -25,12 +25,12 @@ import java.io.File;
import java.net.URI;
import java.util.Map;
+import org.apache.brooklyn.management.ManagementContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import brooklyn.catalog.internal.CatalogInitialization;
import brooklyn.entity.basic.ConfigKeys;
-import brooklyn.management.ManagementContext;
import brooklyn.util.guava.Maybe;
import brooklyn.util.os.Os;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/config/BrooklynServerPaths.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/BrooklynServerPaths.java b/core/src/main/java/brooklyn/config/BrooklynServerPaths.java
index ae56d96..6109044 100644
--- a/core/src/main/java/brooklyn/config/BrooklynServerPaths.java
+++ b/core/src/main/java/brooklyn/config/BrooklynServerPaths.java
@@ -23,11 +23,11 @@ import java.util.Map;
import javax.annotation.Nullable;
+import org.apache.brooklyn.management.ManagementContext;
import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import brooklyn.management.ManagementContext;
import brooklyn.management.internal.ManagementContextInternal;
import brooklyn.util.collections.MutableMap;
import brooklyn.util.exceptions.Exceptions;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/config/BrooklynServiceAttributes.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/BrooklynServiceAttributes.java b/core/src/main/java/brooklyn/config/BrooklynServiceAttributes.java
index bdacd35..c8e6320 100644
--- a/core/src/main/java/brooklyn/config/BrooklynServiceAttributes.java
+++ b/core/src/main/java/brooklyn/config/BrooklynServiceAttributes.java
@@ -18,7 +18,8 @@
*/
package brooklyn.config;
-import brooklyn.management.ManagementContext;
+import org.apache.brooklyn.management.ManagementContext;
+
import brooklyn.util.internal.StringSystemProperty;
/** attributes which callers can set and a service application
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/AbstractEffector.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractEffector.java b/core/src/main/java/brooklyn/entity/basic/AbstractEffector.java
index 6c84c29..cfde203 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractEffector.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractEffector.java
@@ -22,6 +22,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
+import org.apache.brooklyn.management.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -31,7 +32,6 @@ import brooklyn.entity.ParameterType;
import brooklyn.entity.effector.EffectorBase;
import brooklyn.entity.effector.EffectorTasks.EffectorTaskFactory;
import brooklyn.entity.effector.EffectorWithBody;
-import brooklyn.management.Task;
import brooklyn.management.internal.EffectorUtils;
import brooklyn.util.config.ConfigBag;
import brooklyn.util.task.DynamicSequentialTask;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java b/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
index 301599e..b329877 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
@@ -27,6 +27,12 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.brooklyn.management.EntityManager;
+import org.apache.brooklyn.management.ExecutionContext;
+import org.apache.brooklyn.management.ManagementContext;
+import org.apache.brooklyn.management.SubscriptionContext;
+import org.apache.brooklyn.management.SubscriptionHandle;
+import org.apache.brooklyn.management.Task;
import org.apache.brooklyn.mementos.EntityMemento;
import org.apache.brooklyn.policy.Enricher;
import org.apache.brooklyn.policy.EnricherSpec;
@@ -71,12 +77,6 @@ import brooklyn.internal.storage.Reference;
import brooklyn.internal.storage.impl.BasicReference;
import brooklyn.location.Location;
import brooklyn.location.basic.Locations;
-import brooklyn.management.EntityManager;
-import brooklyn.management.ExecutionContext;
-import brooklyn.management.ManagementContext;
-import brooklyn.management.SubscriptionContext;
-import brooklyn.management.SubscriptionHandle;
-import brooklyn.management.Task;
import brooklyn.management.internal.EffectorUtils;
import brooklyn.management.internal.EntityManagementSupport;
import brooklyn.management.internal.ManagementContextInternal;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/ApplicationBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/ApplicationBuilder.java b/core/src/main/java/brooklyn/entity/basic/ApplicationBuilder.java
index f3be0e0..bca54a5 100644
--- a/core/src/main/java/brooklyn/entity/basic/ApplicationBuilder.java
+++ b/core/src/main/java/brooklyn/entity/basic/ApplicationBuilder.java
@@ -23,13 +23,13 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.brooklyn.management.EntityManager;
+import org.apache.brooklyn.management.ManagementContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import brooklyn.entity.Entity;
import brooklyn.entity.proxying.EntitySpec;
-import brooklyn.management.EntityManager;
-import brooklyn.management.ManagementContext;
import com.google.common.annotations.Beta;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/Attributes.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/Attributes.java b/core/src/main/java/brooklyn/entity/basic/Attributes.java
index 3ff977c..e818873 100644
--- a/core/src/main/java/brooklyn/entity/basic/Attributes.java
+++ b/core/src/main/java/brooklyn/entity/basic/Attributes.java
@@ -22,6 +22,8 @@ import java.net.URI;
import java.util.List;
import java.util.Map;
+import org.apache.brooklyn.management.ManagementContext;
+
import brooklyn.config.render.RendererHints;
import brooklyn.event.AttributeSensor;
import brooklyn.event.Sensor;
@@ -30,7 +32,6 @@ import brooklyn.event.basic.BasicAttributeSensorAndConfigKey;
import brooklyn.event.basic.BasicNotificationSensor;
import brooklyn.event.basic.PortAttributeSensorAndConfigKey;
import brooklyn.event.basic.Sensors;
-import brooklyn.management.ManagementContext;
import brooklyn.util.net.UserAndHostAndPort;
import com.google.common.annotations.Beta;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/BasicStartableImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BasicStartableImpl.java b/core/src/main/java/brooklyn/entity/basic/BasicStartableImpl.java
index 0f92141..0ef423a 100644
--- a/core/src/main/java/brooklyn/entity/basic/BasicStartableImpl.java
+++ b/core/src/main/java/brooklyn/entity/basic/BasicStartableImpl.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import org.apache.brooklyn.management.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,7 +30,6 @@ import brooklyn.entity.Entity;
import brooklyn.entity.trait.Startable;
import brooklyn.entity.trait.StartableMethods;
import brooklyn.location.Location;
-import brooklyn.management.Task;
import brooklyn.util.exceptions.Exceptions;
import com.google.common.base.Predicates;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/BrooklynShutdownHooks.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BrooklynShutdownHooks.java b/core/src/main/java/brooklyn/entity/basic/BrooklynShutdownHooks.java
index 1e37b6e..14d9dab 100644
--- a/core/src/main/java/brooklyn/entity/basic/BrooklynShutdownHooks.java
+++ b/core/src/main/java/brooklyn/entity/basic/BrooklynShutdownHooks.java
@@ -23,13 +23,13 @@ import java.util.Set;
import java.util.concurrent.Semaphore;
import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.brooklyn.management.ManagementContext;
+import org.apache.brooklyn.management.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import brooklyn.entity.Entity;
import brooklyn.entity.trait.Startable;
-import brooklyn.management.ManagementContext;
-import brooklyn.management.Task;
import brooklyn.management.internal.ManagementContextInternal;
import brooklyn.util.collections.MutableList;
import brooklyn.util.collections.MutableSet;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java b/core/src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java
index 901191a..53ef26c 100644
--- a/core/src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java
+++ b/core/src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java
@@ -28,15 +28,15 @@ import java.util.Set;
import javax.annotation.Nullable;
+import org.apache.brooklyn.management.ExecutionManager;
+import org.apache.brooklyn.management.Task;
+import org.apache.brooklyn.management.entitlement.EntitlementContext;
import org.codehaus.jackson.annotate.JsonProperty;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import brooklyn.entity.Effector;
import brooklyn.entity.Entity;
-import brooklyn.management.ExecutionManager;
-import brooklyn.management.Task;
-import brooklyn.management.entitlement.EntitlementContext;
import brooklyn.util.config.ConfigBag;
import brooklyn.util.guava.Maybe;
import brooklyn.util.javalang.MemoryUsageTracker;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/DynamicGroupImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/DynamicGroupImpl.java b/core/src/main/java/brooklyn/entity/basic/DynamicGroupImpl.java
index 5a2dcef..259178c 100644
--- a/core/src/main/java/brooklyn/entity/basic/DynamicGroupImpl.java
+++ b/core/src/main/java/brooklyn/entity/basic/DynamicGroupImpl.java
@@ -23,6 +23,7 @@ import groovy.lang.Closure;
import java.util.Collection;
import java.util.Map;
+import org.apache.brooklyn.management.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,7 +33,6 @@ import brooklyn.entity.Entity;
import brooklyn.event.Sensor;
import brooklyn.event.SensorEvent;
import brooklyn.event.SensorEventListener;
-import brooklyn.management.Task;
import brooklyn.management.internal.CollectionChangeListener;
import brooklyn.management.internal.ManagementContextInternal;
import brooklyn.util.GroovyJavaMethods;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/Entities.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/Entities.java b/core/src/main/java/brooklyn/entity/basic/Entities.java
index ae36117..a828bc1 100644
--- a/core/src/main/java/brooklyn/entity/basic/Entities.java
+++ b/core/src/main/java/brooklyn/entity/basic/Entities.java
@@ -39,6 +39,12 @@ import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
+import org.apache.brooklyn.management.ExecutionContext;
+import org.apache.brooklyn.management.LocationManager;
+import org.apache.brooklyn.management.ManagementContext;
+import org.apache.brooklyn.management.Task;
+import org.apache.brooklyn.management.TaskAdaptable;
+import org.apache.brooklyn.management.TaskFactory;
import org.apache.brooklyn.policy.Enricher;
import org.apache.brooklyn.policy.Policy;
import org.slf4j.Logger;
@@ -66,12 +72,6 @@ import brooklyn.location.Location;
import brooklyn.location.LocationSpec;
import brooklyn.location.basic.LocationInternal;
import brooklyn.location.basic.Locations;
-import brooklyn.management.ExecutionContext;
-import brooklyn.management.LocationManager;
-import brooklyn.management.ManagementContext;
-import brooklyn.management.Task;
-import brooklyn.management.TaskAdaptable;
-import brooklyn.management.TaskFactory;
import brooklyn.management.internal.EffectorUtils;
import brooklyn.management.internal.EntityManagerInternal;
import brooklyn.management.internal.LocalManagementContext;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/EntityConfigMap.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/EntityConfigMap.java b/core/src/main/java/brooklyn/entity/basic/EntityConfigMap.java
index 95ce3d0..4038713 100644
--- a/core/src/main/java/brooklyn/entity/basic/EntityConfigMap.java
+++ b/core/src/main/java/brooklyn/entity/basic/EntityConfigMap.java
@@ -26,6 +26,8 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
+import org.apache.brooklyn.management.ExecutionContext;
+import org.apache.brooklyn.management.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -33,8 +35,6 @@ import brooklyn.config.ConfigInheritance;
import brooklyn.config.ConfigKey;
import brooklyn.config.internal.AbstractConfigMapImpl;
import brooklyn.event.basic.StructuredConfigKey;
-import brooklyn.management.ExecutionContext;
-import brooklyn.management.Task;
import brooklyn.util.collections.MutableMap;
import brooklyn.util.config.ConfigBag;
import brooklyn.util.flags.FlagUtils;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/EntityFunctions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/EntityFunctions.java b/core/src/main/java/brooklyn/entity/basic/EntityFunctions.java
index ebd4c39..26d5f3b 100644
--- a/core/src/main/java/brooklyn/entity/basic/EntityFunctions.java
+++ b/core/src/main/java/brooklyn/entity/basic/EntityFunctions.java
@@ -23,13 +23,14 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Collection;
import java.util.Map;
+import org.apache.brooklyn.management.ManagementContext;
+
import brooklyn.config.ConfigKey;
import brooklyn.entity.Application;
import brooklyn.entity.Entity;
import brooklyn.entity.trait.Identifiable;
import brooklyn.event.AttributeSensor;
import brooklyn.location.Location;
-import brooklyn.management.ManagementContext;
import brooklyn.util.flags.TypeCoercions;
import brooklyn.util.guava.Functionals;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/EntityInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/EntityInternal.java b/core/src/main/java/brooklyn/entity/basic/EntityInternal.java
index 91fd3cb..d951bc7 100644
--- a/core/src/main/java/brooklyn/entity/basic/EntityInternal.java
+++ b/core/src/main/java/brooklyn/entity/basic/EntityInternal.java
@@ -21,6 +21,9 @@ package brooklyn.entity.basic;
import java.util.Collection;
import java.util.Map;
+import org.apache.brooklyn.management.ExecutionContext;
+import org.apache.brooklyn.management.ManagementContext;
+import org.apache.brooklyn.management.SubscriptionContext;
import org.apache.brooklyn.mementos.EntityMemento;
import brooklyn.basic.BrooklynObjectInternal;
@@ -31,9 +34,6 @@ import brooklyn.entity.rebind.RebindSupport;
import brooklyn.entity.rebind.Rebindable;
import brooklyn.event.AttributeSensor;
import brooklyn.location.Location;
-import brooklyn.management.ExecutionContext;
-import brooklyn.management.ManagementContext;
-import brooklyn.management.SubscriptionContext;
import brooklyn.management.internal.EntityManagementSupport;
import brooklyn.util.config.ConfigBag;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/EntityTasks.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/EntityTasks.java b/core/src/main/java/brooklyn/entity/basic/EntityTasks.java
index 99c5ca3..3b8cf15 100644
--- a/core/src/main/java/brooklyn/entity/basic/EntityTasks.java
+++ b/core/src/main/java/brooklyn/entity/basic/EntityTasks.java
@@ -18,10 +18,11 @@
*/
package brooklyn.entity.basic;
+import org.apache.brooklyn.management.Task;
+
import brooklyn.entity.Entity;
import brooklyn.event.AttributeSensor;
import brooklyn.event.basic.DependentConfiguration;
-import brooklyn.management.Task;
import brooklyn.util.collections.CollectionFunctionals;
import brooklyn.util.time.Duration;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java b/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java
index 027c357..057e46a 100644
--- a/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java
+++ b/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java
@@ -25,6 +25,8 @@ import java.util.Set;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import org.apache.brooklyn.management.ExecutionContext;
+import org.apache.brooklyn.management.ManagementContext;
import org.apache.brooklyn.mementos.EntityMemento;
import org.apache.brooklyn.policy.Enricher;
import org.apache.brooklyn.policy.Policy;
@@ -42,8 +44,6 @@ import brooklyn.entity.proxying.EntityProxyImpl;
import brooklyn.entity.rebind.RebindSupport;
import brooklyn.event.AttributeSensor;
import brooklyn.location.Location;
-import brooklyn.management.ExecutionContext;
-import brooklyn.management.ManagementContext;
import brooklyn.management.internal.EntityManagementSupport;
import brooklyn.util.config.ConfigBag;
import brooklyn.util.guava.Maybe;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/effector/EffectorBody.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/effector/EffectorBody.java b/core/src/main/java/brooklyn/entity/effector/EffectorBody.java
index 72d4a58..c5e1a65 100644
--- a/core/src/main/java/brooklyn/entity/effector/EffectorBody.java
+++ b/core/src/main/java/brooklyn/entity/effector/EffectorBody.java
@@ -18,11 +18,12 @@
*/
package brooklyn.entity.effector;
+import org.apache.brooklyn.management.Task;
+import org.apache.brooklyn.management.TaskAdaptable;
+import org.apache.brooklyn.management.TaskFactory;
+
import brooklyn.entity.basic.BrooklynTaskTags;
import brooklyn.entity.basic.EntityInternal;
-import brooklyn.management.Task;
-import brooklyn.management.TaskAdaptable;
-import brooklyn.management.TaskFactory;
import brooklyn.util.config.ConfigBag;
import brooklyn.util.flags.TypeCoercions;
import brooklyn.util.task.DynamicSequentialTask;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/effector/EffectorTasks.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/effector/EffectorTasks.java b/core/src/main/java/brooklyn/entity/effector/EffectorTasks.java
index 83d27ea..8888c81 100644
--- a/core/src/main/java/brooklyn/entity/effector/EffectorTasks.java
+++ b/core/src/main/java/brooklyn/entity/effector/EffectorTasks.java
@@ -22,6 +22,8 @@ import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.atomic.AtomicReference;
+import org.apache.brooklyn.management.Task;
+import org.apache.brooklyn.management.TaskAdaptable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -34,8 +36,6 @@ import brooklyn.entity.basic.ConfigKeys;
import brooklyn.location.basic.Machines;
import brooklyn.location.basic.SshMachineLocation;
import brooklyn.location.basic.WinRmMachineLocation;
-import brooklyn.management.Task;
-import brooklyn.management.TaskAdaptable;
import brooklyn.management.internal.EffectorUtils;
import brooklyn.util.config.ConfigBag;
import brooklyn.util.javalang.Reflections;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/effector/Effectors.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/effector/Effectors.java b/core/src/main/java/brooklyn/entity/effector/Effectors.java
index 4039e67..aedd6cf 100644
--- a/core/src/main/java/brooklyn/entity/effector/Effectors.java
+++ b/core/src/main/java/brooklyn/entity/effector/Effectors.java
@@ -26,6 +26,7 @@ import java.util.Map;
import javax.annotation.Nullable;
+import org.apache.brooklyn.management.TaskAdaptable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,7 +42,6 @@ import brooklyn.entity.basic.EntityLocal;
import brooklyn.entity.effector.EffectorTasks.EffectorBodyTaskFactory;
import brooklyn.entity.effector.EffectorTasks.EffectorMarkingTaskFactory;
import brooklyn.entity.effector.EffectorTasks.EffectorTaskFactory;
-import brooklyn.management.TaskAdaptable;
import brooklyn.util.collections.MutableMap;
import brooklyn.util.config.ConfigBag;
import brooklyn.util.task.Tasks;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java b/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java
index 6b27a2a..d582944 100644
--- a/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java
+++ b/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java
@@ -31,6 +31,7 @@ import java.util.Set;
import javax.annotation.Nullable;
+import org.apache.brooklyn.management.Task;
import org.apache.brooklyn.policy.Policy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -55,7 +56,6 @@ import brooklyn.location.Location;
import brooklyn.location.MachineProvisioningLocation;
import brooklyn.location.basic.Locations;
import brooklyn.location.cloud.AvailabilityZoneExtension;
-import brooklyn.management.Task;
import brooklyn.util.collections.MutableList;
import brooklyn.util.collections.MutableMap;
import brooklyn.util.exceptions.Exceptions;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java b/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java
index 894027e..8c13ce2 100644
--- a/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java
+++ b/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java
@@ -27,6 +27,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;
+import org.apache.brooklyn.management.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,7 +46,6 @@ import brooklyn.entity.proxying.EntitySpec;
import brooklyn.entity.trait.Changeable;
import brooklyn.entity.trait.Startable;
import brooklyn.location.Location;
-import brooklyn.management.Task;
import brooklyn.util.GroovyJavaMethods;
import brooklyn.util.collections.MutableList;
import brooklyn.util.exceptions.Exceptions;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/group/DynamicRegionsFabricImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/group/DynamicRegionsFabricImpl.java b/core/src/main/java/brooklyn/entity/group/DynamicRegionsFabricImpl.java
index 8de9763..9b20ac9 100644
--- a/core/src/main/java/brooklyn/entity/group/DynamicRegionsFabricImpl.java
+++ b/core/src/main/java/brooklyn/entity/group/DynamicRegionsFabricImpl.java
@@ -21,6 +21,7 @@ package brooklyn.entity.group;
import java.util.Arrays;
import java.util.Collection;
+import org.apache.brooklyn.management.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,7 +30,6 @@ import brooklyn.entity.basic.Entities;
import brooklyn.entity.basic.EntityInternal;
import brooklyn.entity.trait.Startable;
import brooklyn.location.Location;
-import brooklyn.management.Task;
import brooklyn.util.exceptions.Exceptions;
import com.google.common.base.Preconditions;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/group/QuarantineGroupImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/group/QuarantineGroupImpl.java b/core/src/main/java/brooklyn/entity/group/QuarantineGroupImpl.java
index 27587b8..aece11d 100644
--- a/core/src/main/java/brooklyn/entity/group/QuarantineGroupImpl.java
+++ b/core/src/main/java/brooklyn/entity/group/QuarantineGroupImpl.java
@@ -21,6 +21,7 @@ package brooklyn.entity.group;
import java.util.Map;
import java.util.Set;
+import org.apache.brooklyn.management.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -30,7 +31,6 @@ import brooklyn.entity.basic.AbstractGroupImpl;
import brooklyn.entity.basic.Entities;
import brooklyn.entity.effector.Effectors;
import brooklyn.entity.trait.Startable;
-import brooklyn.management.Task;
import brooklyn.util.exceptions.Exceptions;
import brooklyn.util.task.DynamicTasks;
import brooklyn.util.task.Tasks;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/proxying/EntityProxyImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/proxying/EntityProxyImpl.java b/core/src/main/java/brooklyn/entity/proxying/EntityProxyImpl.java
index 7e5b009..9bb7de9 100644
--- a/core/src/main/java/brooklyn/entity/proxying/EntityProxyImpl.java
+++ b/core/src/main/java/brooklyn/entity/proxying/EntityProxyImpl.java
@@ -28,6 +28,8 @@ import java.util.Map;
import java.util.Set;
import java.util.WeakHashMap;
+import org.apache.brooklyn.management.ManagementContext;
+import org.apache.brooklyn.management.TaskAdaptable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,8 +42,6 @@ import brooklyn.entity.basic.EntityTransientCopyInternal;
import brooklyn.entity.basic.EntityTransientCopyInternal.SpecialEntityTransientCopyInternal;
import brooklyn.entity.effector.EffectorWithBody;
import brooklyn.entity.rebind.RebindManagerImpl.RebindTracker;
-import brooklyn.management.ManagementContext;
-import brooklyn.management.TaskAdaptable;
import brooklyn.management.internal.EffectorUtils;
import brooklyn.management.internal.EntityManagerInternal;
import brooklyn.management.internal.ManagementTransitionMode;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/proxying/InternalEntityFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/proxying/InternalEntityFactory.java b/core/src/main/java/brooklyn/entity/proxying/InternalEntityFactory.java
index d6ee513..9855d39 100644
--- a/core/src/main/java/brooklyn/entity/proxying/InternalEntityFactory.java
+++ b/core/src/main/java/brooklyn/entity/proxying/InternalEntityFactory.java
@@ -156,7 +156,7 @@ public class InternalEntityFactory extends InternalFactory {
* fully initialized ({@link AbstractEntity#init()} invoked) and ready for
* management -- commonly the caller will next call
* {@link Entities#manage(Entity)} (if it's in a managed application)
- * or {@link Entities#startManagement(brooklyn.entity.Application, brooklyn.management.ManagementContext)}
+ * or {@link Entities#startManagement(brooklyn.entity.Application, org.apache.brooklyn.management.ManagementContext)}
* (if it's an application) */
public <T extends Entity> T createEntity(EntitySpec<T> spec) {
/* Order is important here. Changed Jul 2014 when supporting children in spec.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java b/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java
index 4e6c0d7..2396718 100644
--- a/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java
+++ b/core/src/main/java/brooklyn/entity/proxying/InternalLocationFactory.java
@@ -22,13 +22,14 @@ import java.lang.reflect.InvocationTargetException;
import java.util.Map;
import java.util.Map.Entry;
+import org.apache.brooklyn.management.ManagementContext;
+
import brooklyn.config.ConfigKey;
import brooklyn.entity.basic.AbstractEntity;
import brooklyn.location.Location;
import brooklyn.location.LocationSpec;
import brooklyn.location.basic.AbstractLocation;
import brooklyn.location.basic.LocationInternal;
-import brooklyn.management.ManagementContext;
import brooklyn.management.internal.LocalLocationManager;
import brooklyn.management.internal.ManagementContextInternal;
import brooklyn.util.config.ConfigBag;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java b/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
index 27beeaf..02c0d45 100644
--- a/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
+++ b/core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
@@ -20,6 +20,7 @@ package brooklyn.entity.proxying;
import java.util.Map;
+import org.apache.brooklyn.management.ManagementContext;
import org.apache.brooklyn.policy.Enricher;
import org.apache.brooklyn.policy.EnricherSpec;
import org.apache.brooklyn.policy.Policy;
@@ -29,7 +30,6 @@ import brooklyn.config.ConfigKey;
import brooklyn.enricher.basic.AbstractEnricher;
import brooklyn.entity.Feed;
import brooklyn.entity.basic.AbstractEntity;
-import brooklyn.management.ManagementContext;
import brooklyn.management.internal.ManagementContextInternal;
import brooklyn.policy.basic.AbstractPolicy;
import brooklyn.util.collections.MutableMap;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f7f03580/core/src/main/java/brooklyn/entity/rebind/ActivePartialRebindIteration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/ActivePartialRebindIteration.java b/core/src/main/java/brooklyn/entity/rebind/ActivePartialRebindIteration.java
index 8d59ef7..fe2a461 100644
--- a/core/src/main/java/brooklyn/entity/rebind/ActivePartialRebindIteration.java
+++ b/core/src/main/java/brooklyn/entity/rebind/ActivePartialRebindIteration.java
@@ -25,6 +25,7 @@ import java.util.Set;
import java.util.concurrent.Semaphore;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.brooklyn.management.ha.ManagementNodeState;
import org.apache.brooklyn.mementos.BrooklynMementoPersister;
import org.apache.brooklyn.mementos.BrooklynMementoRawData;
import org.apache.brooklyn.mementos.Memento;
@@ -39,7 +40,6 @@ import brooklyn.entity.basic.EntityInternal;
import brooklyn.entity.rebind.persister.BrooklynMementoPersisterToObjectStore;
import brooklyn.entity.rebind.persister.PersistenceActivityMetrics;
import brooklyn.entity.rebind.transformer.CompoundTransformer;
-import brooklyn.management.ha.ManagementNodeState;
import brooklyn.util.collections.MutableList;
import brooklyn.util.collections.MutableSet;