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

[16/19] incubator-brooklyn git commit: [BROOKLYN-162] Rename ./api/entity; use the no split package convention

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindManager.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindManager.java b/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindManager.java
new file mode 100644
index 0000000..891a6e0
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindManager.java
@@ -0,0 +1,133 @@
+/*
+ * 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.api.entity.rebind;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeoutException;
+
+import javax.annotation.Nullable;
+
+import org.apache.brooklyn.api.entity.Application;
+import org.apache.brooklyn.management.ha.ManagementNodeState;
+import org.apache.brooklyn.mementos.BrooklynMementoPersister;
+import org.apache.brooklyn.mementos.BrooklynMementoRawData;
+
+import brooklyn.util.time.Duration;
+
+import com.google.common.annotations.Beta;
+import com.google.common.annotations.VisibleForTesting;
+
+/**
+ * Manages the persisting of brooklyn's state, and recreating that state, e.g. on
+ * brooklyn restart.
+ * 
+ * Users are not expected to implement this class, or to call methods on it directly.
+ */
+public interface RebindManager {
+    
+    // FIXME Should we be calling managementContext.getRebindManager().rebind, using a
+    // new empty instance of managementContext?
+    //
+    // Or is that a risky API because you could call it on a non-empty managementContext?
+    
+    public enum RebindFailureMode {
+        FAIL_FAST,
+        FAIL_AT_END,
+        CONTINUE;
+    }
+    
+    public void setPersister(BrooklynMementoPersister persister);
+
+    public void setPersister(BrooklynMementoPersister persister, PersistenceExceptionHandler exceptionHandler);
+
+    @VisibleForTesting
+    public BrooklynMementoPersister getPersister();
+
+    /** @deprecated since 0.7; use {@link #rebind(ClassLoader, RebindExceptionHandler, ManagementNodeState)} */ @Deprecated
+    public List<Application> rebind();
+    
+    /** @deprecated since 0.7; use {@link #rebind(ClassLoader, RebindExceptionHandler, ManagementNodeState)} */ @Deprecated
+    public List<Application> rebind(ClassLoader classLoader);
+    /** @deprecated since 0.7; use {@link #rebind(ClassLoader, RebindExceptionHandler, ManagementNodeState)} */ @Deprecated
+    public List<Application> rebind(ClassLoader classLoader, RebindExceptionHandler exceptionHandler);
+    /** Causes this management context to rebind, loading data from the given backing store.
+     * use wisely, as this can cause local entities to be completely lost, or will throw in many other situations.
+     * in general it may be invoked for a new node becoming {@link ManagementNodeState#MASTER} 
+     * or periodically for a node in {@link ManagementNodeState#HOT_STANDBY} or {@link ManagementNodeState#HOT_BACKUP}. */
+    @Beta
+    public List<Application> rebind(ClassLoader classLoader, RebindExceptionHandler exceptionHandler, ManagementNodeState mode);
+
+    public BrooklynMementoRawData retrieveMementoRawData();
+
+    public ChangeListener getChangeListener();
+
+    /**
+     * Starts the background persisting of state
+     * (if persister is set; otherwise will start persisting as soon as persister is set). 
+     * Until this is called, no data will be persisted although entities can be rebinded.
+     */
+    public void startPersistence();
+
+    /** Stops the background persistence of state. 
+     * Waits for any current persistence to complete. */
+    public void stopPersistence();
+
+    /**
+     * Perform an initial load of state read-only and starts a background process 
+     * reading (mirroring) state periodically.
+     */
+    public void startReadOnly(ManagementNodeState mode);
+    /** Stops the background reading (mirroring) of state. 
+     * Interrupts any current activity and waits for it to cease. */
+    public void stopReadOnly();
+    
+    /** Starts the appropriate background processes, {@link #startPersistence()} if {@link ManagementNodeState#MASTER},
+     * {@link #startReadOnly()} if {@link ManagementNodeState#HOT_STANDBY} or {@link ManagementNodeState#HOT_BACKUP} */
+    public void start();
+    /** Stops the appropriate background processes, {@link #stopPersistence()} or {@link #stopReadOnly()},
+     * waiting for activity there to cease (interrupting in the case of {@link #stopReadOnly()}). */
+    public void stop();
+    
+    @VisibleForTesting
+    /** waits for any needed or pending writes to complete */
+    public void waitForPendingComplete(Duration duration, boolean canTrigger) throws InterruptedException, TimeoutException;
+    /** Forcibly performs persistence, in the foreground 
+     * @deprecated since 0.7.0; use {@link #forcePersistNow(boolean, PersistenceExceptionHandler)}, 
+     * default parameter here is false to mean incremental, with null/default exception handler */
+    @VisibleForTesting
+    public void forcePersistNow();
+    /** Forcibly performs persistence, in the foreground, either full (all entities) or incremental;
+     * if no exception handler specified, the default one from the persister is used.
+     * <p>
+     * Note that full persistence does *not* delete items; incremental should normally be sufficient.
+     * (A clear then full persistence would have the same effect, but that is risky in a production
+     * setting if the process fails after the clear!) */
+    @VisibleForTesting
+    public void forcePersistNow(boolean full, @Nullable PersistenceExceptionHandler exceptionHandler);
+    
+    /** Whether the management state has changed to a state where a rebind is needed
+     * but we are still awaiting the first run; 
+     * ie state is master or hot, but list of apps is not yet accurate */
+    public boolean isAwaitingInitialRebind();
+
+    /** Metrics about rebind, last success, etc. */
+    public Map<String,Object> getMetrics();
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindSupport.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindSupport.java b/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindSupport.java
new file mode 100644
index 0000000..9cced02
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindSupport.java
@@ -0,0 +1,57 @@
+/*
+ * 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.api.entity.rebind;
+
+import org.apache.brooklyn.mementos.BrooklynMementoPersister;
+import org.apache.brooklyn.mementos.Memento;
+
+/**
+ * Supporter instance for behaviour related to rebinding a given entity/location/policy.
+ * 
+ * For example, the brooklyn framework may call {@code entity.getRebindSupport().getMemento()}
+ * and persist this using a {@link BrooklynMementoPersister}. Later (e.g. after a brooklyn
+ * restart) a new entity instance may be created and populated by the framework calling 
+ * {@code entity.getRebindSupport().reconstruct(rebindContext, memento)}.
+ * 
+ * @author aled
+ */
+public interface RebindSupport<T extends Memento> {
+
+    /**
+     * Creates a memento representing this entity's current state. This is useful for when restarting brooklyn.
+     */
+    T getMemento();
+
+    /**
+     * Reconstructs this entity, given a memento of its state. Sets the internal state 
+     * (including id and config keys), and sets the parent/children/locations of this entity.
+     * 
+     * Implementations should be very careful to not invoke or inspect these other entities/locations,
+     * as they may also be being reconstructed at this time.
+     * 
+     * Called during rebind, after creation and before the call to start management.
+     */
+    void reconstruct(RebindContext rebindContext, T memento);
+
+    void addPolicies(RebindContext rebindContext, T Memento);
+    
+    void addEnrichers(RebindContext rebindContext, T Memento);
+    
+    void addFeeds(RebindContext rebindContext, T Memento);
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/api/entity/rebind/Rebindable.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/entity/rebind/Rebindable.java b/api/src/main/java/org/apache/brooklyn/api/entity/rebind/Rebindable.java
new file mode 100644
index 0000000..9a65531
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/entity/rebind/Rebindable.java
@@ -0,0 +1,40 @@
+/*
+ * 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.api.entity.rebind;
+
+import org.apache.brooklyn.mementos.Memento;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * Indicates that this can be recreated, e.g. after a brooklyn restart, and by
+ * using a {@link Memento} it can repopulate the brooklyn objects. The purpose
+ * of the rebind is to reconstruct and reconnect the brooklyn objects, including
+ * binding them to external resources.
+ * 
+ * Users are strongly discouraged to call or use this interface.
+ * It is for internal use only, relating to persisting/rebinding entities.
+ * This interface may change (or be removed) in a future release without notice.
+ */
+@Beta
+public interface Rebindable {
+
+    public RebindSupport getRebindSupport();
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/api/entity/trait/Configurable.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/entity/trait/Configurable.java b/api/src/main/java/org/apache/brooklyn/api/entity/trait/Configurable.java
new file mode 100644
index 0000000..aebb657
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/entity/trait/Configurable.java
@@ -0,0 +1,94 @@
+/*
+ * 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.api.entity.trait;
+
+import org.apache.brooklyn.management.Task;
+
+import brooklyn.config.ConfigKey;
+import brooklyn.config.ConfigKey.HasConfigKey;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * Something that has mutable config, such as an entity or policy.
+ * 
+ * @author aled
+ */
+public interface Configurable {
+
+    // FIXME Moved from core project to api project, as part of moving EntityLocal.
+    // (though maybe it's fine here?)
+
+    /**
+     * @return the old value, or null if there was not one
+     * @deprecated since 0.7.0; use {@link ConfigurationSupport#set(ConfigKey, Object)}, such as {@code config().set(key, val)} 
+     */
+    @Deprecated
+    public <T> T setConfig(ConfigKey<T> key, T val);
+
+    ConfigurationSupport config();
+    
+    @Beta
+    public interface ConfigurationSupport {
+
+        /**
+         * Gets the given configuration value for this entity, in the following order of precedence:
+         * <ol>
+         *   <li> value (including null) explicitly set on the entity
+         *   <li> value (including null) explicitly set on an ancestor (inherited)
+         *   <li> a default value (including null) on the best equivalent static key of the same name declared on the entity
+         *        (where best equivalence is defined as preferring a config key which extends another, 
+         *        as computed in EntityDynamicType.getConfigKeys)
+         *   <li> a default value (including null) on the key itself
+         *   <li> null
+         * </ol>
+         */
+        <T> T get(ConfigKey<T> key);
+        
+        /**
+         * @see {@link #getConfig(ConfigKey)}
+         */
+        <T> T get(HasConfigKey<T> key);
+
+        /**
+         * Sets the config to the given value.
+         */
+        <T> T set(ConfigKey<T> key, T val);
+        
+        /**
+         * @see {@link #setConfig(HasConfigKey, Object)}
+         */
+        <T> T set(HasConfigKey<T> key, T val);
+        
+        /**
+         * Sets the config to the value returned by the task.
+         * 
+         * Returns immediately without blocking; subsequent calls to {@link #getConfig(ConfigKey)} 
+         * will execute the task, and block until the task completes.
+         * 
+         * @see {@link #setConfig(ConfigKey, Object)}
+         */
+        <T> T set(ConfigKey<T> key, Task<T> val);
+        
+        /**
+         * @see {@link #setConfig(ConfigKey, Task)}
+         */
+        <T> T set(HasConfigKey<T> key, Task<T> val);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/api/entity/trait/HasShortName.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/entity/trait/HasShortName.java b/api/src/main/java/org/apache/brooklyn/api/entity/trait/HasShortName.java
new file mode 100644
index 0000000..c6d10c5
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/entity/trait/HasShortName.java
@@ -0,0 +1,26 @@
+/*
+ * 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.api.entity.trait;
+
+public interface HasShortName {
+
+    /** gets a short name, for human-friendly identification e.g. inside the name of a VM */
+    String getShortName();
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/api/entity/trait/Identifiable.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/entity/trait/Identifiable.java b/api/src/main/java/org/apache/brooklyn/api/entity/trait/Identifiable.java
new file mode 100644
index 0000000..9fb8aa1
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/entity/trait/Identifiable.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.api.entity.trait;
+
+public interface Identifiable {
+
+    String getId();
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/catalog/CatalogItem.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/catalog/CatalogItem.java b/api/src/main/java/org/apache/brooklyn/catalog/CatalogItem.java
index 9b34cb2..7ef1570 100644
--- a/api/src/main/java/org/apache/brooklyn/catalog/CatalogItem.java
+++ b/api/src/main/java/org/apache/brooklyn/catalog/CatalogItem.java
@@ -23,11 +23,10 @@ import java.util.Collection;
 import javax.annotation.Nullable;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
+import org.apache.brooklyn.api.entity.rebind.Rebindable;
 import org.apache.brooklyn.mementos.CatalogItemMemento;
 
-import brooklyn.entity.rebind.RebindSupport;
-import brooklyn.entity.rebind.Rebindable;
-
 import com.google.common.annotations.Beta;
 
 @Beta

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/management/AccessController.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/AccessController.java b/api/src/main/java/org/apache/brooklyn/management/AccessController.java
index a7d8a4f..78eea31 100644
--- a/api/src/main/java/org/apache/brooklyn/management/AccessController.java
+++ b/api/src/main/java/org/apache/brooklyn/management/AccessController.java
@@ -18,7 +18,8 @@
  */
 package org.apache.brooklyn.management;
 
-import brooklyn.entity.Entity;
+import org.apache.brooklyn.api.entity.Entity;
+
 import brooklyn.location.Location;
 
 import com.google.common.annotations.Beta;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/management/EntityManager.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/EntityManager.java b/api/src/main/java/org/apache/brooklyn/management/EntityManager.java
index 0c784d9..030fe90 100644
--- a/api/src/main/java/org/apache/brooklyn/management/EntityManager.java
+++ b/api/src/main/java/org/apache/brooklyn/management/EntityManager.java
@@ -23,16 +23,15 @@ import java.util.Map;
 
 import javax.annotation.Nullable;
 
+import org.apache.brooklyn.api.entity.Application;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.proxying.EntitySpec;
+import org.apache.brooklyn.api.entity.proxying.EntityTypeRegistry;
 import org.apache.brooklyn.policy.Enricher;
 import org.apache.brooklyn.policy.EnricherSpec;
 import org.apache.brooklyn.policy.Policy;
 import org.apache.brooklyn.policy.PolicySpec;
 
-import brooklyn.entity.Application;
-import brooklyn.entity.Entity;
-import brooklyn.entity.proxying.EntitySpec;
-import brooklyn.entity.proxying.EntityTypeRegistry;
-
 import com.google.common.base.Predicate;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/management/ExecutionContext.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/ExecutionContext.java b/api/src/main/java/org/apache/brooklyn/management/ExecutionContext.java
index f783619..147689f 100644
--- a/api/src/main/java/org/apache/brooklyn/management/ExecutionContext.java
+++ b/api/src/main/java/org/apache/brooklyn/management/ExecutionContext.java
@@ -23,7 +23,7 @@ import java.util.Set;
 import java.util.concurrent.Callable;
 import java.util.concurrent.Executor;
 
-import brooklyn.entity.Entity;
+import org.apache.brooklyn.api.entity.Entity;
 
 /**
  * This is a Brooklyn extension to the Java {@link Executor}.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/management/ExecutionManager.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/ExecutionManager.java b/api/src/main/java/org/apache/brooklyn/management/ExecutionManager.java
index 431faa5..5c70b61 100644
--- a/api/src/main/java/org/apache/brooklyn/management/ExecutionManager.java
+++ b/api/src/main/java/org/apache/brooklyn/management/ExecutionManager.java
@@ -24,7 +24,7 @@ import java.util.Set;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
 
-import brooklyn.entity.Entity;
+import org.apache.brooklyn.api.entity.Entity;
 
 /** 
  * This class manages the execution of a number of jobs with tags.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/management/ManagementContext.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/ManagementContext.java b/api/src/main/java/org/apache/brooklyn/management/ManagementContext.java
index 924b929..d142711 100644
--- a/api/src/main/java/org/apache/brooklyn/management/ManagementContext.java
+++ b/api/src/main/java/org/apache/brooklyn/management/ManagementContext.java
@@ -23,17 +23,17 @@ import java.net.URI;
 import java.util.Collection;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.entity.Application;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.drivers.DriverDependentEntity;
+import org.apache.brooklyn.api.entity.drivers.EntityDriverManager;
+import org.apache.brooklyn.api.entity.drivers.downloads.DownloadResolverManager;
+import org.apache.brooklyn.api.entity.rebind.RebindManager;
 import org.apache.brooklyn.catalog.BrooklynCatalog;
 import org.apache.brooklyn.management.entitlement.EntitlementManager;
 import org.apache.brooklyn.management.ha.HighAvailabilityManager;
 
 import brooklyn.config.StringConfigMap;
-import brooklyn.entity.Application;
-import brooklyn.entity.Entity;
-import brooklyn.entity.drivers.DriverDependentEntity;
-import brooklyn.entity.drivers.EntityDriverManager;
-import brooklyn.entity.drivers.downloads.DownloadResolverManager;
-import brooklyn.entity.rebind.RebindManager;
 import brooklyn.location.LocationRegistry;
 import brooklyn.util.guava.Maybe;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/management/SubscriptionContext.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/SubscriptionContext.java b/api/src/main/java/org/apache/brooklyn/management/SubscriptionContext.java
index 76715ae..240823a 100644
--- a/api/src/main/java/org/apache/brooklyn/management/SubscriptionContext.java
+++ b/api/src/main/java/org/apache/brooklyn/management/SubscriptionContext.java
@@ -21,8 +21,9 @@ package org.apache.brooklyn.management;
 import java.util.Map;
 import java.util.Set;
 
-import brooklyn.entity.Entity;
-import brooklyn.entity.Group;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.Group;
+
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;
 import brooklyn.event.SensorEventListener;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/management/SubscriptionManager.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/management/SubscriptionManager.java b/api/src/main/java/org/apache/brooklyn/management/SubscriptionManager.java
index 3e5802b..22f5f12 100644
--- a/api/src/main/java/org/apache/brooklyn/management/SubscriptionManager.java
+++ b/api/src/main/java/org/apache/brooklyn/management/SubscriptionManager.java
@@ -21,8 +21,9 @@ package org.apache.brooklyn.management;
 import java.util.Map;
 import java.util.Set;
 
-import brooklyn.entity.Entity;
-import brooklyn.entity.Group;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.Group;
+
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;
 import brooklyn.event.SensorEventListener;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoManifest.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoManifest.java b/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoManifest.java
index 99c53c6..3341a0f 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoManifest.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoManifest.java
@@ -22,7 +22,7 @@ import java.io.Serializable;
 import java.util.Collection;
 import java.util.Map;
 
-import brooklyn.entity.trait.Identifiable;
+import org.apache.brooklyn.api.entity.trait.Identifiable;
 
 /**
  * Represents a manifest of the entities etc in the overall memento.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 cac71d2..ee3a8c1 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java
@@ -26,17 +26,17 @@ import java.util.concurrent.TimeoutException;
 import javax.annotation.Nullable;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.Feed;
+import org.apache.brooklyn.api.entity.rebind.BrooklynObjectType;
+import org.apache.brooklyn.api.entity.rebind.PersistenceExceptionHandler;
+import org.apache.brooklyn.api.entity.rebind.RebindExceptionHandler;
+import org.apache.brooklyn.api.entity.rebind.RebindManager;
 import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.management.ManagementContext;
 import org.apache.brooklyn.policy.Enricher;
 import org.apache.brooklyn.policy.Policy;
 
-import brooklyn.entity.Entity;
-import brooklyn.entity.Feed;
-import brooklyn.entity.rebind.BrooklynObjectType;
-import brooklyn.entity.rebind.PersistenceExceptionHandler;
-import brooklyn.entity.rebind.RebindExceptionHandler;
-import brooklyn.entity.rebind.RebindManager;
 import brooklyn.location.Location;
 import brooklyn.util.time.Duration;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoRawData.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoRawData.java b/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoRawData.java
index d48db0f..ea77e90 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoRawData.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoRawData.java
@@ -21,7 +21,7 @@ package org.apache.brooklyn.mementos;
 import java.util.Collections;
 import java.util.Map;
 
-import brooklyn.entity.rebind.BrooklynObjectType;
+import org.apache.brooklyn.api.entity.rebind.BrooklynObjectType;
 
 import com.google.common.annotations.Beta;
 import com.google.common.collect.Maps;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/mementos/EnricherMemento.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/mementos/EnricherMemento.java b/api/src/main/java/org/apache/brooklyn/mementos/EnricherMemento.java
index c2e89b5..c3458fd 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/EnricherMemento.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/EnricherMemento.java
@@ -20,7 +20,7 @@ package org.apache.brooklyn.mementos;
 
 import java.util.Map;
 
-import brooklyn.entity.rebind.RebindSupport;
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
 
 /**
  * Represents the state of an enricher, so that it can be reconstructed (e.g. after restarting brooklyn).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/mementos/EntityMemento.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/mementos/EntityMemento.java b/api/src/main/java/org/apache/brooklyn/mementos/EntityMemento.java
index 4a5f902..2747ff6 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/EntityMemento.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/EntityMemento.java
@@ -22,9 +22,10 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.brooklyn.api.entity.Effector;
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
+
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.Effector;
-import brooklyn.entity.rebind.RebindSupport;
 import brooklyn.event.AttributeSensor;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/mementos/FeedMemento.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/mementos/FeedMemento.java b/api/src/main/java/org/apache/brooklyn/mementos/FeedMemento.java
index f3b30f3..e9e371b 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/FeedMemento.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/FeedMemento.java
@@ -20,7 +20,7 @@ package org.apache.brooklyn.mementos;
 
 import java.util.Map;
 
-import brooklyn.entity.rebind.RebindSupport;
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
 
 /**
  * Represents the state of a feed, so that it can be reconstructed (e.g. after restarting brooklyn).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/mementos/LocationMemento.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/mementos/LocationMemento.java b/api/src/main/java/org/apache/brooklyn/mementos/LocationMemento.java
index 5d6cc84..92d378f 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/LocationMemento.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/LocationMemento.java
@@ -21,7 +21,7 @@ package org.apache.brooklyn.mementos;
 import java.util.Map;
 import java.util.Set;
 
-import brooklyn.entity.rebind.RebindSupport;
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
 
 /**
  * Represents the state of a location, so that it can be reconstructed (e.g. after restarting brooklyn).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/mementos/Memento.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/mementos/Memento.java b/api/src/main/java/org/apache/brooklyn/mementos/Memento.java
index 25dea5b..d63d003 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/Memento.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/Memento.java
@@ -22,11 +22,10 @@ import java.io.Serializable;
 import java.util.Collection;
 import java.util.Map;
 
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
 import org.apache.brooklyn.policy.EntityAdjunct;
 
-import brooklyn.entity.Entity;
-import brooklyn.entity.rebind.RebindSupport;
-
 /**
  * Represents the internal state of something in brooklyn, so that it can be reconstructed (e.g. after restarting brooklyn).
  * 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/mementos/PolicyMemento.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/mementos/PolicyMemento.java b/api/src/main/java/org/apache/brooklyn/mementos/PolicyMemento.java
index ee75801..b9b5e7b 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/PolicyMemento.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/PolicyMemento.java
@@ -20,7 +20,7 @@ package org.apache.brooklyn.mementos;
 
 import java.util.Map;
 
-import brooklyn.entity.rebind.RebindSupport;
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
 
 /**
  * Represents the state of an policy, so that it can be reconstructed (e.g. after restarting brooklyn).

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/policy/Enricher.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/policy/Enricher.java b/api/src/main/java/org/apache/brooklyn/policy/Enricher.java
index 5897fd4..19d60e4 100644
--- a/api/src/main/java/org/apache/brooklyn/policy/Enricher.java
+++ b/api/src/main/java/org/apache/brooklyn/policy/Enricher.java
@@ -20,12 +20,12 @@ package org.apache.brooklyn.policy;
 
 import java.util.Map;
 
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
+import org.apache.brooklyn.api.entity.rebind.Rebindable;
+import org.apache.brooklyn.api.entity.trait.Configurable;
 import org.apache.brooklyn.mementos.EnricherMemento;
 
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.rebind.RebindSupport;
-import brooklyn.entity.rebind.Rebindable;
-import brooklyn.entity.trait.Configurable;
 
 import com.google.common.annotations.Beta;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/api/src/main/java/org/apache/brooklyn/policy/Policy.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/policy/Policy.java b/api/src/main/java/org/apache/brooklyn/policy/Policy.java
index 67f1b58..d062334 100644
--- a/api/src/main/java/org/apache/brooklyn/policy/Policy.java
+++ b/api/src/main/java/org/apache/brooklyn/policy/Policy.java
@@ -20,12 +20,12 @@ package org.apache.brooklyn.policy;
 
 import java.util.Map;
 
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
+import org.apache.brooklyn.api.entity.rebind.Rebindable;
+import org.apache.brooklyn.api.entity.trait.Configurable;
 import org.apache.brooklyn.mementos.PolicyMemento;
 
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.rebind.RebindSupport;
-import brooklyn.entity.rebind.Rebindable;
-import brooklyn.entity.trait.Configurable;
 
 import com.google.common.annotations.Beta;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 91ba2de..0309a8c 100644
--- a/core/src/main/java/brooklyn/basic/BasicConfigurableObject.java
+++ b/core/src/main/java/brooklyn/basic/BasicConfigurableObject.java
@@ -18,6 +18,8 @@
  */
 package brooklyn.basic;
 
+import org.apache.brooklyn.api.entity.trait.Configurable;
+import org.apache.brooklyn.api.entity.trait.Identifiable;
 import org.apache.brooklyn.management.ManagementContext;
 import org.apache.brooklyn.management.Task;
 
@@ -25,8 +27,6 @@ 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.ManagementContextInjectable;
 import brooklyn.util.config.ConfigBag;
 import brooklyn.util.flags.SetFromFlag;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java b/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
index f75d7a5..038013f 100644
--- a/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
+++ b/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
@@ -21,12 +21,12 @@ package brooklyn.basic;
 import java.util.Map;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
+import org.apache.brooklyn.api.entity.rebind.Rebindable;
+import org.apache.brooklyn.api.entity.trait.Configurable;
 
 import brooklyn.config.ConfigKey;
 import brooklyn.config.ConfigKey.HasConfigKey;
-import brooklyn.entity.rebind.RebindSupport;
-import brooklyn.entity.rebind.Rebindable;
-import brooklyn.entity.trait.Configurable;
 import brooklyn.util.config.ConfigBag;
 import brooklyn.util.guava.Maybe;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/basic/BrooklynTypes.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/BrooklynTypes.java b/core/src/main/java/brooklyn/basic/BrooklynTypes.java
index b732026..781787e 100644
--- a/core/src/main/java/brooklyn/basic/BrooklynTypes.java
+++ b/core/src/main/java/brooklyn/basic/BrooklynTypes.java
@@ -21,12 +21,12 @@ package brooklyn.basic;
 import java.util.Map;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.policy.Enricher;
 import org.apache.brooklyn.policy.Policy;
 
 import brooklyn.config.ConfigKey;
 import brooklyn.enricher.basic.EnricherDynamicType;
-import brooklyn.entity.Entity;
 import brooklyn.entity.basic.EntityDynamicType;
 import brooklyn.event.Sensor;
 import brooklyn.location.Location;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 b19b964..1a1f1a1 100644
--- a/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java
+++ b/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java
@@ -19,9 +19,9 @@
 package brooklyn.basic.internal;
 
 import org.apache.brooklyn.api.basic.internal.ApiObjectsFactoryInterface;
+import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.management.Task;
 
-import brooklyn.entity.Entity;
 import brooklyn.entity.basic.BrooklynTaskTags;
 import brooklyn.util.task.Tasks;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 d017995..21b742f 100644
--- a/core/src/main/java/brooklyn/camp/brooklyn/api/AssemblyTemplateSpecInstantiator.java
+++ b/core/src/main/java/brooklyn/camp/brooklyn/api/AssemblyTemplateSpecInstantiator.java
@@ -24,10 +24,9 @@ import io.brooklyn.camp.spi.instantiate.AssemblyTemplateInstantiator;
 
 import java.util.Set;
 
+import org.apache.brooklyn.api.entity.proxying.EntitySpec;
 import org.apache.brooklyn.management.classloading.BrooklynClassLoadingContext;
 
-import brooklyn.entity.proxying.EntitySpec;
-
 public interface AssemblyTemplateSpecInstantiator extends AssemblyTemplateInstantiator {
 
     EntitySpec<?> createSpec(AssemblyTemplate template, CampPlatform platform, BrooklynClassLoadingContext loader, boolean autoUnwrapIfAppropriate);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 e1855e9..2d9eb63 100644
--- a/core/src/main/java/brooklyn/catalog/CatalogPredicates.java
+++ b/core/src/main/java/brooklyn/catalog/CatalogPredicates.java
@@ -20,6 +20,9 @@ package brooklyn.catalog;
 
 import javax.annotation.Nullable;
 
+import org.apache.brooklyn.api.entity.Application;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.proxying.EntitySpec;
 import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.catalog.CatalogItem.CatalogItemType;
 import org.apache.brooklyn.management.ManagementContext;
@@ -27,9 +30,6 @@ import org.apache.brooklyn.policy.Policy;
 import org.apache.brooklyn.policy.PolicySpec;
 
 import brooklyn.catalog.internal.CatalogUtils;
-import brooklyn.entity.Application;
-import brooklyn.entity.Entity;
-import brooklyn.entity.proxying.EntitySpec;
 import brooklyn.location.Location;
 import brooklyn.location.LocationSpec;
 import brooklyn.management.entitlement.Entitlements;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java
index 046d69c..aa4e8ba 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java
@@ -31,14 +31,14 @@ import javax.annotation.Nullable;
 import org.reflections.util.ClasspathHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.apache.brooklyn.api.entity.Application;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.proxying.ImplementedBy;
 import org.apache.brooklyn.catalog.Catalog;
 import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.policy.Policy;
 
-import brooklyn.entity.Application;
-import brooklyn.entity.Entity;
 import brooklyn.entity.basic.ApplicationBuilder;
-import brooklyn.entity.proxying.ImplementedBy;
 import brooklyn.location.Location;
 import brooklyn.management.internal.ManagementContextInternal;
 import brooklyn.util.ResourceUtils;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/catalog/internal/CatalogEntityItemDto.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogEntityItemDto.java b/core/src/main/java/brooklyn/catalog/internal/CatalogEntityItemDto.java
index 4cb4243..577eff5 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogEntityItemDto.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogEntityItemDto.java
@@ -18,8 +18,8 @@
  */
 package brooklyn.catalog.internal;
 
-import brooklyn.entity.Entity;
-import brooklyn.entity.proxying.EntitySpec;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.proxying.EntitySpec;
 
 
 public class CatalogEntityItemDto extends CatalogItemDtoAbstract<Entity,EntitySpec<?>> {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 7a4213b..33aa337 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
@@ -25,12 +25,12 @@ import javax.annotation.Nullable;
 
 import brooklyn.basic.BrooklynObjectInternal;
 
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
 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 com.google.common.base.Preconditions;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
index fe84ed8..87a5810 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
@@ -31,12 +31,12 @@ import org.slf4j.LoggerFactory;
 
 import brooklyn.basic.AbstractBrooklynObject;
 
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
 import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.mementos.CatalogItemMemento;
 
 import brooklyn.config.ConfigKey;
 import brooklyn.entity.rebind.BasicCatalogItemRebindSupport;
-import brooklyn.entity.rebind.RebindSupport;
 import brooklyn.util.collections.MutableList;
 import brooklyn.util.flags.FlagUtils;
 import brooklyn.util.flags.SetFromFlag;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/catalog/internal/CatalogTemplateItemDto.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogTemplateItemDto.java b/core/src/main/java/brooklyn/catalog/internal/CatalogTemplateItemDto.java
index fa473bf..1003a4c 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogTemplateItemDto.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogTemplateItemDto.java
@@ -18,8 +18,8 @@
  */
 package brooklyn.catalog.internal;
 
-import brooklyn.entity.Application;
-import brooklyn.entity.proxying.EntitySpec;
+import org.apache.brooklyn.api.entity.Application;
+import org.apache.brooklyn.api.entity.proxying.EntitySpec;
 
 public class CatalogTemplateItemDto extends CatalogItemDtoAbstract<Application,EntitySpec<? extends Application>> {
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 bcc7589..ea31808 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
@@ -28,6 +28,7 @@ import org.slf4j.LoggerFactory;
 import brooklyn.basic.BrooklynObjectInternal;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.catalog.BrooklynCatalog;
 import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
@@ -36,7 +37,6 @@ 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.classloading.BrooklynClassLoadingContextSequential;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/config/BrooklynLogging.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/BrooklynLogging.java b/core/src/main/java/brooklyn/config/BrooklynLogging.java
index 8a27ebd..379a04d 100644
--- a/core/src/main/java/brooklyn/config/BrooklynLogging.java
+++ b/core/src/main/java/brooklyn/config/BrooklynLogging.java
@@ -18,9 +18,9 @@
  */
 package brooklyn.config;
 
+import org.apache.brooklyn.api.entity.Entity;
 import org.slf4j.Logger;
 
-import brooklyn.entity.Entity;
 import brooklyn.entity.basic.EntityInternal;
 
 /** contains common logging categories */

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/config/ConfigUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/ConfigUtils.java b/core/src/main/java/brooklyn/config/ConfigUtils.java
index c060a68..a080667 100644
--- a/core/src/main/java/brooklyn/config/ConfigUtils.java
+++ b/core/src/main/java/brooklyn/config/ConfigUtils.java
@@ -27,11 +27,11 @@ import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.brooklyn.api.entity.Entity;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.ConfigKey.HasConfigKey;
-import brooklyn.entity.Entity;
 import brooklyn.entity.basic.ConfigKeys;
 import brooklyn.event.basic.BasicConfigKey;
 import brooklyn.util.exceptions.Exceptions;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/config/render/RendererHints.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/render/RendererHints.java b/core/src/main/java/brooklyn/config/render/RendererHints.java
index 60f89d7..f53f02f 100644
--- a/core/src/main/java/brooklyn/config/render/RendererHints.java
+++ b/core/src/main/java/brooklyn/config/render/RendererHints.java
@@ -22,11 +22,11 @@ import groovy.lang.Closure;
 
 import java.util.Set;
 
+import org.apache.brooklyn.api.entity.Entity;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.Entity;
 import brooklyn.event.AttributeSensor;
 import brooklyn.util.GroovyJavaMethods;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/Enrichers.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/Enrichers.java b/core/src/main/java/brooklyn/enricher/Enrichers.java
index a4d7599..3aed8de 100644
--- a/core/src/main/java/brooklyn/enricher/Enrichers.java
+++ b/core/src/main/java/brooklyn/enricher/Enrichers.java
@@ -26,6 +26,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.policy.Enricher;
 import org.apache.brooklyn.policy.EnricherSpec;
 
@@ -36,7 +37,6 @@ import brooklyn.enricher.basic.Joiner;
 import brooklyn.enricher.basic.Propagator;
 import brooklyn.enricher.basic.Transformer;
 import brooklyn.enricher.basic.UpdatingMap;
-import brooklyn.entity.Entity;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/AbstractAggregatingEnricher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/AbstractAggregatingEnricher.java b/core/src/main/java/brooklyn/enricher/basic/AbstractAggregatingEnricher.java
index b8f4b8b..21cc238 100644
--- a/core/src/main/java/brooklyn/enricher/basic/AbstractAggregatingEnricher.java
+++ b/core/src/main/java/brooklyn/enricher/basic/AbstractAggregatingEnricher.java
@@ -24,12 +24,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.Group;
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import brooklyn.entity.Entity;
-import brooklyn.entity.Group;
-import brooklyn.entity.basic.EntityLocal;
 import brooklyn.entity.trait.Changeable;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/AbstractAggregator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/AbstractAggregator.java b/core/src/main/java/brooklyn/enricher/basic/AbstractAggregator.java
index 951a75c..0711579 100644
--- a/core/src/main/java/brooklyn/enricher/basic/AbstractAggregator.java
+++ b/core/src/main/java/brooklyn/enricher/basic/AbstractAggregator.java
@@ -22,15 +22,15 @@ import static com.google.common.base.Preconditions.checkState;
 
 import java.util.Set;
 
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.Group;
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.Entity;
-import brooklyn.entity.Group;
 import brooklyn.entity.basic.AbstractEntity;
 import brooklyn.entity.basic.ConfigKeys;
-import brooklyn.entity.basic.EntityLocal;
 import brooklyn.entity.trait.Changeable;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/AbstractEnricher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/AbstractEnricher.java b/core/src/main/java/brooklyn/enricher/basic/AbstractEnricher.java
index d394631..a2dfcd1 100644
--- a/core/src/main/java/brooklyn/enricher/basic/AbstractEnricher.java
+++ b/core/src/main/java/brooklyn/enricher/basic/AbstractEnricher.java
@@ -22,6 +22,8 @@ import static com.google.common.base.Preconditions.checkState;
 
 import java.util.Map;
 
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
 import org.apache.brooklyn.mementos.EnricherMemento;
 import org.apache.brooklyn.policy.Enricher;
 import org.apache.brooklyn.policy.EnricherType;
@@ -30,9 +32,7 @@ import brooklyn.config.ConfigKey;
 import brooklyn.entity.basic.ConfigKeys;
 import brooklyn.entity.basic.Entities;
 import brooklyn.entity.basic.EntityInternal;
-import brooklyn.entity.basic.EntityLocal;
 import brooklyn.entity.rebind.BasicEnricherRebindSupport;
-import brooklyn.entity.rebind.RebindSupport;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.policy.basic.AbstractEntityAdjunct;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/AbstractMultipleSensorAggregator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/AbstractMultipleSensorAggregator.java b/core/src/main/java/brooklyn/enricher/basic/AbstractMultipleSensorAggregator.java
index 793d8a9..9593546 100644
--- a/core/src/main/java/brooklyn/enricher/basic/AbstractMultipleSensorAggregator.java
+++ b/core/src/main/java/brooklyn/enricher/basic/AbstractMultipleSensorAggregator.java
@@ -25,11 +25,11 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Map.Entry;
 
+import org.apache.brooklyn.api.entity.Entity;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.BrooklynLogging;
-import brooklyn.entity.Entity;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/AbstractTransformer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/AbstractTransformer.java b/core/src/main/java/brooklyn/enricher/basic/AbstractTransformer.java
index 47e3642..2b284de 100644
--- a/core/src/main/java/brooklyn/enricher/basic/AbstractTransformer.java
+++ b/core/src/main/java/brooklyn/enricher/basic/AbstractTransformer.java
@@ -18,13 +18,13 @@
  */
 package brooklyn.enricher.basic;
 
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.Entity;
 import brooklyn.entity.basic.ConfigKeys;
-import brooklyn.entity.basic.EntityLocal;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/AbstractTransformingEnricher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/AbstractTransformingEnricher.java b/core/src/main/java/brooklyn/enricher/basic/AbstractTransformingEnricher.java
index be0dd8c..e211ce5 100644
--- a/core/src/main/java/brooklyn/enricher/basic/AbstractTransformingEnricher.java
+++ b/core/src/main/java/brooklyn/enricher/basic/AbstractTransformingEnricher.java
@@ -18,7 +18,8 @@
  */
 package brooklyn.enricher.basic;
 
-import brooklyn.entity.Entity;
+import org.apache.brooklyn.api.entity.Entity;
+
 import brooklyn.event.Sensor;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/AbstractTypeTransformingEnricher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/AbstractTypeTransformingEnricher.java b/core/src/main/java/brooklyn/enricher/basic/AbstractTypeTransformingEnricher.java
index ab31ebc..bab952b 100644
--- a/core/src/main/java/brooklyn/enricher/basic/AbstractTypeTransformingEnricher.java
+++ b/core/src/main/java/brooklyn/enricher/basic/AbstractTypeTransformingEnricher.java
@@ -18,8 +18,9 @@
  */
 package brooklyn.enricher.basic;
 
-import brooklyn.entity.Entity;
-import brooklyn.entity.basic.EntityLocal;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
+
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEventListener;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/AddingEnricher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/AddingEnricher.java b/core/src/main/java/brooklyn/enricher/basic/AddingEnricher.java
index 868240d..2688d64 100644
--- a/core/src/main/java/brooklyn/enricher/basic/AddingEnricher.java
+++ b/core/src/main/java/brooklyn/enricher/basic/AddingEnricher.java
@@ -18,7 +18,8 @@
  */
 package brooklyn.enricher.basic;
 
-import brooklyn.entity.basic.EntityLocal;
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
+
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/Aggregator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/Aggregator.java b/core/src/main/java/brooklyn/enricher/basic/Aggregator.java
index a58d4a3..1391c4e 100644
--- a/core/src/main/java/brooklyn/enricher/basic/Aggregator.java
+++ b/core/src/main/java/brooklyn/enricher/basic/Aggregator.java
@@ -25,13 +25,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
+import org.apache.brooklyn.api.entity.Entity;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.BrooklynLogging;
 import brooklyn.config.ConfigKey;
 import brooklyn.enricher.Enrichers;
-import brooklyn.entity.Entity;
 import brooklyn.entity.basic.ConfigKeys;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/Combiner.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/Combiner.java b/core/src/main/java/brooklyn/enricher/basic/Combiner.java
index 74a400c..440c75b 100644
--- a/core/src/main/java/brooklyn/enricher/basic/Combiner.java
+++ b/core/src/main/java/brooklyn/enricher/basic/Combiner.java
@@ -27,13 +27,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.Entity;
 import brooklyn.entity.basic.ConfigKeys;
-import brooklyn.entity.basic.EntityLocal;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/Joiner.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/Joiner.java b/core/src/main/java/brooklyn/enricher/basic/Joiner.java
index 96509e1..3a66327 100644
--- a/core/src/main/java/brooklyn/enricher/basic/Joiner.java
+++ b/core/src/main/java/brooklyn/enricher/basic/Joiner.java
@@ -20,13 +20,13 @@ package brooklyn.enricher.basic;
 
 import java.util.Map;
 
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.Entity;
 import brooklyn.entity.basic.ConfigKeys;
-import brooklyn.entity.basic.EntityLocal;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/Propagator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/Propagator.java b/core/src/main/java/brooklyn/enricher/basic/Propagator.java
index 06f63c4..413c53a 100644
--- a/core/src/main/java/brooklyn/enricher/basic/Propagator.java
+++ b/core/src/main/java/brooklyn/enricher/basic/Propagator.java
@@ -22,14 +22,14 @@ import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.Entity;
 import brooklyn.entity.basic.Attributes;
 import brooklyn.entity.basic.ConfigKeys;
-import brooklyn.entity.basic.EntityLocal;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/SensorPropagatingEnricher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/SensorPropagatingEnricher.java b/core/src/main/java/brooklyn/enricher/basic/SensorPropagatingEnricher.java
index 8e863f7..615b29e 100644
--- a/core/src/main/java/brooklyn/enricher/basic/SensorPropagatingEnricher.java
+++ b/core/src/main/java/brooklyn/enricher/basic/SensorPropagatingEnricher.java
@@ -22,12 +22,12 @@ import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.enricher.Enrichers;
-import brooklyn.entity.Entity;
-import brooklyn.entity.basic.EntityLocal;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/SensorTransformingEnricher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/SensorTransformingEnricher.java b/core/src/main/java/brooklyn/enricher/basic/SensorTransformingEnricher.java
index 314e833..b188289 100644
--- a/core/src/main/java/brooklyn/enricher/basic/SensorTransformingEnricher.java
+++ b/core/src/main/java/brooklyn/enricher/basic/SensorTransformingEnricher.java
@@ -18,8 +18,9 @@
  */
 package brooklyn.enricher.basic;
 
+import org.apache.brooklyn.api.entity.Entity;
+
 import groovy.lang.Closure;
-import brooklyn.entity.Entity;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/enricher/basic/UpdatingMap.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/enricher/basic/UpdatingMap.java b/core/src/main/java/brooklyn/enricher/basic/UpdatingMap.java
index 049d414..63fc07d 100644
--- a/core/src/main/java/brooklyn/enricher/basic/UpdatingMap.java
+++ b/core/src/main/java/brooklyn/enricher/basic/UpdatingMap.java
@@ -20,13 +20,13 @@ package brooklyn.enricher.basic;
 
 import java.util.Map;
 
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.ConfigKey;
 import brooklyn.entity.basic.ConfigKeys;
 import brooklyn.entity.basic.Entities;
-import brooklyn.entity.basic.EntityLocal;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/AbstractApplication.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractApplication.java b/core/src/main/java/brooklyn/entity/basic/AbstractApplication.java
index d916afc..dc99712 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractApplication.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractApplication.java
@@ -21,12 +21,12 @@ package brooklyn.entity.basic;
 import java.util.Collection;
 import java.util.Map;
 
+import org.apache.brooklyn.api.entity.Application;
+import org.apache.brooklyn.api.entity.Entity;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.Application;
-import brooklyn.entity.Entity;
 import brooklyn.entity.basic.ServiceStateLogic.ServiceProblemsLogic;
 import brooklyn.entity.trait.StartableMethods;
 import brooklyn.location.Location;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/AbstractConfigurableEntityFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractConfigurableEntityFactory.java b/core/src/main/java/brooklyn/entity/basic/AbstractConfigurableEntityFactory.java
index 274c1de..9ca3692 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractConfigurableEntityFactory.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractConfigurableEntityFactory.java
@@ -23,11 +23,11 @@ import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
+import org.apache.brooklyn.api.entity.Entity;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.Entity;
 import brooklyn.util.exceptions.Exceptions;
 
 public abstract class AbstractConfigurableEntityFactory<T extends Entity> implements ConfigurableEntityFactory<T>, Serializable {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 cfde203..f705aa8 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractEffector.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractEffector.java
@@ -22,13 +22,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Callable;
 
+import org.apache.brooklyn.api.entity.Effector;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.ParameterType;
 import org.apache.brooklyn.management.Task;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import brooklyn.entity.Effector;
-import brooklyn.entity.Entity;
-import brooklyn.entity.ParameterType;
 import brooklyn.entity.effector.EffectorBase;
 import brooklyn.entity.effector.EffectorTasks.EffectorTaskFactory;
 import brooklyn.entity.effector.EffectorWithBody;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 b329877..c91e80c 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
@@ -27,6 +27,15 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.brooklyn.api.entity.Application;
+import org.apache.brooklyn.api.entity.Effector;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.EntityType;
+import org.apache.brooklyn.api.entity.Feed;
+import org.apache.brooklyn.api.entity.Group;
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
+import org.apache.brooklyn.api.entity.proxying.EntitySpec;
+import org.apache.brooklyn.api.entity.rebind.RebindSupport;
 import org.apache.brooklyn.management.EntityManager;
 import org.apache.brooklyn.management.ExecutionContext;
 import org.apache.brooklyn.management.ManagementContext;
@@ -50,16 +59,8 @@ import brooklyn.config.ConfigKey;
 import brooklyn.config.ConfigKey.HasConfigKey;
 import brooklyn.config.render.RendererHints;
 import brooklyn.enricher.basic.AbstractEnricher;
-import brooklyn.entity.Application;
-import brooklyn.entity.Effector;
-import brooklyn.entity.Entity;
-import brooklyn.entity.EntityType;
-import brooklyn.entity.Feed;
-import brooklyn.entity.Group;
 import brooklyn.entity.basic.ServiceStateLogic.ServiceNotUpLogic;
-import brooklyn.entity.proxying.EntitySpec;
 import brooklyn.entity.rebind.BasicEntityRebindSupport;
-import brooklyn.entity.rebind.RebindSupport;
 import brooklyn.event.AttributeSensor;
 import brooklyn.event.Sensor;
 import brooklyn.event.SensorEvent;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/AbstractGroup.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractGroup.java b/core/src/main/java/brooklyn/entity/basic/AbstractGroup.java
index aeafc12..932e5ef 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractGroup.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractGroup.java
@@ -20,9 +20,10 @@ package brooklyn.entity.basic;
 
 import java.util.Collection;
 
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.Group;
+
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.Entity;
-import brooklyn.entity.Group;
 import brooklyn.entity.basic.ServiceStateLogic.ComputeServiceIndicatorsFromChildrenAndMembers;
 import brooklyn.entity.trait.Changeable;
 import brooklyn.event.AttributeSensor;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java b/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java
index 14ccd25..07287dc 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java
@@ -24,12 +24,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.Group;
+import org.apache.brooklyn.api.entity.basic.EntityLocal;
+import org.apache.brooklyn.api.entity.proxying.EntitySpec;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import brooklyn.entity.Entity;
-import brooklyn.entity.Group;
-import brooklyn.entity.proxying.EntitySpec;
 import brooklyn.internal.BrooklynFeatureEnablement;
 import brooklyn.management.internal.ManagementContextInternal;
 import brooklyn.util.collections.SetFromLiveMap;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 bca54a5..852570f 100644
--- a/core/src/main/java/brooklyn/entity/basic/ApplicationBuilder.java
+++ b/core/src/main/java/brooklyn/entity/basic/ApplicationBuilder.java
@@ -23,14 +23,13 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.proxying.EntitySpec;
 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 com.google.common.annotations.Beta;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/BasicApplication.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BasicApplication.java b/core/src/main/java/brooklyn/entity/basic/BasicApplication.java
index 97dfe03..b2bf657 100644
--- a/core/src/main/java/brooklyn/entity/basic/BasicApplication.java
+++ b/core/src/main/java/brooklyn/entity/basic/BasicApplication.java
@@ -18,7 +18,7 @@
  */
 package brooklyn.entity.basic;
 
-import brooklyn.entity.proxying.ImplementedBy;
+import org.apache.brooklyn.api.entity.proxying.ImplementedBy;
 
 /**
  * The most basic implementation of an application possible.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/BasicConfigurableEntityFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BasicConfigurableEntityFactory.java b/core/src/main/java/brooklyn/entity/basic/BasicConfigurableEntityFactory.java
index 5d1d892..72a620c 100644
--- a/core/src/main/java/brooklyn/entity/basic/BasicConfigurableEntityFactory.java
+++ b/core/src/main/java/brooklyn/entity/basic/BasicConfigurableEntityFactory.java
@@ -27,7 +27,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.util.HashMap;
 import java.util.Map;
 
-import brooklyn.entity.Entity;
+import org.apache.brooklyn.api.entity.Entity;
 
 import com.google.common.base.Objects;
 import com.google.common.base.Throwables;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/BasicEntity.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BasicEntity.java b/core/src/main/java/brooklyn/entity/basic/BasicEntity.java
index b6a5c7d..7c88c91 100644
--- a/core/src/main/java/brooklyn/entity/basic/BasicEntity.java
+++ b/core/src/main/java/brooklyn/entity/basic/BasicEntity.java
@@ -18,8 +18,8 @@
  */
 package brooklyn.entity.basic;
 
-import brooklyn.entity.Entity;
-import brooklyn.entity.proxying.ImplementedBy;
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.proxying.ImplementedBy;
 
 /**
  * This is the most basic entity possible - does nothing beyond AbstractEntity.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/BasicGroup.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BasicGroup.java b/core/src/main/java/brooklyn/entity/basic/BasicGroup.java
index 77ac1da..0bb67b6 100644
--- a/core/src/main/java/brooklyn/entity/basic/BasicGroup.java
+++ b/core/src/main/java/brooklyn/entity/basic/BasicGroup.java
@@ -18,8 +18,9 @@
  */
 package brooklyn.entity.basic;
 
+import org.apache.brooklyn.api.entity.proxying.ImplementedBy;
+
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.proxying.ImplementedBy;
 import brooklyn.event.basic.BasicConfigKey;
 import brooklyn.util.flags.SetFromFlag;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/BasicGroupImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BasicGroupImpl.java b/core/src/main/java/brooklyn/entity/basic/BasicGroupImpl.java
index 00b8b8d..9b982d3 100644
--- a/core/src/main/java/brooklyn/entity/basic/BasicGroupImpl.java
+++ b/core/src/main/java/brooklyn/entity/basic/BasicGroupImpl.java
@@ -18,7 +18,7 @@
  */
 package brooklyn.entity.basic;
 
-import brooklyn.entity.Entity;
+import org.apache.brooklyn.api.entity.Entity;
 
 public class BasicGroupImpl extends AbstractGroupImpl implements BasicGroup {
     

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/BasicParameterType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BasicParameterType.java b/core/src/main/java/brooklyn/entity/basic/BasicParameterType.java
index 76846f5..bc1eb6f 100644
--- a/core/src/main/java/brooklyn/entity/basic/BasicParameterType.java
+++ b/core/src/main/java/brooklyn/entity/basic/BasicParameterType.java
@@ -21,7 +21,7 @@ package brooklyn.entity.basic;
 import java.util.Collections;
 import java.util.Map;
 
-import brooklyn.entity.ParameterType;
+import org.apache.brooklyn.api.entity.ParameterType;
 
 import com.google.common.base.Objects;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/BasicStartable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/BasicStartable.java b/core/src/main/java/brooklyn/entity/basic/BasicStartable.java
index 72b90fc..8ddc794 100644
--- a/core/src/main/java/brooklyn/entity/basic/BasicStartable.java
+++ b/core/src/main/java/brooklyn/entity/basic/BasicStartable.java
@@ -20,9 +20,10 @@ package brooklyn.entity.basic;
 
 import java.util.List;
 
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.proxying.ImplementedBy;
+
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.Entity;
-import brooklyn.entity.proxying.ImplementedBy;
 import brooklyn.entity.trait.Startable;
 import brooklyn.location.Location;
 import brooklyn.location.basic.Locations;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 0ef423a..d35c3ff 100644
--- a/core/src/main/java/brooklyn/entity/basic/BasicStartableImpl.java
+++ b/core/src/main/java/brooklyn/entity/basic/BasicStartableImpl.java
@@ -22,11 +22,11 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
+import org.apache.brooklyn.api.entity.Entity;
 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.entity.trait.StartableMethods;
 import brooklyn.location.Location;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 14d9dab..df1eed5 100644
--- a/core/src/main/java/brooklyn/entity/basic/BrooklynShutdownHooks.java
+++ b/core/src/main/java/brooklyn/entity/basic/BrooklynShutdownHooks.java
@@ -23,12 +23,12 @@ import java.util.Set;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import org.apache.brooklyn.api.entity.Entity;
 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.internal.ManagementContextInternal;
 import brooklyn.util.collections.MutableList;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/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 53ef26c..fe1efd3 100644
--- a/core/src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java
+++ b/core/src/main/java/brooklyn/entity/basic/BrooklynTaskTags.java
@@ -28,6 +28,8 @@ import java.util.Set;
 
 import javax.annotation.Nullable;
 
+import org.apache.brooklyn.api.entity.Effector;
+import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.management.ExecutionManager;
 import org.apache.brooklyn.management.Task;
 import org.apache.brooklyn.management.entitlement.EntitlementContext;
@@ -35,8 +37,6 @@ import org.codehaus.jackson.annotate.JsonProperty;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import brooklyn.entity.Effector;
-import brooklyn.entity.Entity;
 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/a76dac4f/core/src/main/java/brooklyn/entity/basic/ClosureEntityFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/ClosureEntityFactory.java b/core/src/main/java/brooklyn/entity/basic/ClosureEntityFactory.java
index f1a60b7..f83f972 100644
--- a/core/src/main/java/brooklyn/entity/basic/ClosureEntityFactory.java
+++ b/core/src/main/java/brooklyn/entity/basic/ClosureEntityFactory.java
@@ -18,12 +18,13 @@
  */
 package brooklyn.entity.basic;
 
-import brooklyn.entity.Entity;
 import groovy.lang.Closure;
 
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.brooklyn.api.entity.Entity;
+
 public class ClosureEntityFactory<T extends Entity> extends AbstractConfigurableEntityFactory<T> {
     private final Closure<T> closure;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/ConfigurableEntityFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/ConfigurableEntityFactory.java b/core/src/main/java/brooklyn/entity/basic/ConfigurableEntityFactory.java
index a99dc96..ebca1c1 100644
--- a/core/src/main/java/brooklyn/entity/basic/ConfigurableEntityFactory.java
+++ b/core/src/main/java/brooklyn/entity/basic/ConfigurableEntityFactory.java
@@ -19,10 +19,11 @@
 package brooklyn.entity.basic;
 
 import brooklyn.config.ConfigKey;
-import brooklyn.entity.Entity;
 
 import java.util.Map;
 
+import org.apache.brooklyn.api.entity.Entity;
+
 public interface ConfigurableEntityFactory<T extends Entity> extends EntityFactory<T> {
    ConfigurableEntityFactory<T> configure(Map flags);
    ConfigurableEntityFactory<T> configure(ConfigKey key, Object value);

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a76dac4f/core/src/main/java/brooklyn/entity/basic/ConfigurableEntityFactoryFromEntityFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/ConfigurableEntityFactoryFromEntityFactory.java b/core/src/main/java/brooklyn/entity/basic/ConfigurableEntityFactoryFromEntityFactory.java
index fe50486..c1fe332 100644
--- a/core/src/main/java/brooklyn/entity/basic/ConfigurableEntityFactoryFromEntityFactory.java
+++ b/core/src/main/java/brooklyn/entity/basic/ConfigurableEntityFactoryFromEntityFactory.java
@@ -18,11 +18,11 @@
  */
 package brooklyn.entity.basic;
 
-import brooklyn.entity.Entity;
-
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.brooklyn.api.entity.Entity;
+
 import static com.google.common.base.Preconditions.checkNotNull;
 
 public class ConfigurableEntityFactoryFromEntityFactory<T extends Entity> extends AbstractConfigurableEntityFactory<T> {