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;
