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:40 UTC
[02/19] incubator-brooklyn git commit: [BROOKLYN-162] Rename
./api/basic; use the no split package convention
[BROOKLYN-162] Rename ./api/basic; use the no split package convention
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/9bb882c5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/9bb882c5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/9bb882c5
Branch: refs/heads/master
Commit: 9bb882c5d92c223c5268bcc39224a7efb548cfce
Parents: 4243d53
Author: Hadrian Zbarcea <ha...@apache.org>
Authored: Wed Aug 12 20:06:36 2015 -0400
Committer: Hadrian Zbarcea <ha...@apache.org>
Committed: Wed Aug 12 20:06:36 2015 -0400
----------------------------------------------------------------------
.../basic/AbstractBrooklynObjectSpec.java | 141 ------------------
.../java/brooklyn/basic/BrooklynObject.java | 76 ----------
.../main/java/brooklyn/basic/BrooklynType.java | 54 -------
.../basic/internal/ApiObjectsFactory.java | 61 --------
.../internal/ApiObjectsFactoryInterface.java | 29 ----
api/src/main/java/brooklyn/entity/Entity.java | 2 +-
.../main/java/brooklyn/entity/EntityType.java | 3 +-
.../brooklyn/entity/proxying/EntitySpec.java | 2 +-
.../entity/rebind/BrooklynObjectType.java | 3 +-
.../brooklyn/entity/rebind/ChangeListener.java | 2 +-
.../rebind/PersistenceExceptionHandler.java | 3 +-
.../brooklyn/entity/rebind/RebindContext.java | 3 +-
.../entity/rebind/RebindExceptionHandler.java | 3 +-
.../main/java/brooklyn/location/Location.java | 3 +-
.../java/brooklyn/location/LocationSpec.java | 2 +-
.../java/brooklyn/location/LocationType.java | 2 +-
.../api/basic/AbstractBrooklynObjectSpec.java | 142 +++++++++++++++++++
.../brooklyn/api/basic/BrooklynObject.java | 76 ++++++++++
.../apache/brooklyn/api/basic/BrooklynType.java | 54 +++++++
.../api/basic/internal/ApiObjectsFactory.java | 61 ++++++++
.../internal/ApiObjectsFactoryInterface.java | 29 ++++
.../apache/brooklyn/catalog/CatalogItem.java | 2 +-
.../brooklyn/management/ManagementContext.java | 3 +-
.../mementos/BrooklynMementoPersister.java | 3 +-
.../apache/brooklyn/policy/EnricherSpec.java | 2 +-
.../apache/brooklyn/policy/EnricherType.java | 2 +-
.../apache/brooklyn/policy/EntityAdjunct.java | 2 +-
.../org/apache/brooklyn/policy/PolicySpec.java | 2 +-
.../org/apache/brooklyn/policy/PolicyType.java | 2 +-
.../brooklyn/basic/AbstractBrooklynObject.java | 2 +-
.../brooklyn/basic/BrooklynDynamicType.java | 2 +
.../brooklyn/basic/BrooklynObjectInternal.java | 2 +
.../brooklyn/basic/BrooklynTypeSnapshot.java | 2 +
.../main/java/brooklyn/basic/BrooklynTypes.java | 1 +
.../basic/internal/ApiObjectsFactoryImpl.java | 2 +-
.../catalog/internal/BasicBrooklynCatalog.java | 2 +-
.../brooklyn/catalog/internal/CatalogUtils.java | 2 +-
.../basic/EntityTransientCopyInternal.java | 2 +-
.../rebind/ActivePartialRebindIteration.java | 2 +-
.../rebind/ImmediateDeltaChangeListener.java | 2 +-
.../rebind/PeriodicDeltaChangeListener.java | 2 +-
.../rebind/PersistenceExceptionHandlerImpl.java | 2 +-
.../entity/rebind/RebindContextImpl.java | 3 +-
.../rebind/RebindContextLookupContext.java | 4 +-
.../rebind/RebindExceptionHandlerImpl.java | 4 +-
.../brooklyn/entity/rebind/RebindIteration.java | 2 +-
.../entity/rebind/RebindManagerImpl.java | 2 +-
.../entity/rebind/dto/MementosGenerators.java | 2 +-
.../BrooklynMementoPersisterToObjectStore.java | 4 +-
.../persister/BrooklynPersistenceUtils.java | 2 +-
.../rebind/persister/XmlMementoSerializer.java | 4 +-
.../internal/AbstractManagementContext.java | 4 +-
.../internal/BrooklynObjectManagerInternal.java | 2 +-
.../NonDeploymentManagementContext.java | 4 +-
...yn.basic.internal.ApiObjectsFactoryInterface | 19 ---
...pi.basic.internal.ApiObjectsFactoryInterface | 19 +++
.../entity/rebind/ActivePartialRebindTest.java | 2 +-
.../rebind/RecordingRebindExceptionHandler.java | 3 +-
.../persister/XmlMementoSerializerTest.java | 4 +-
.../osgi/OsgiVersionMoreEntityTest.java | 4 +-
.../org/apache/brooklyn/cli/ItemLister.java | 4 +-
.../apache/brooklyn/cli/lister/ClassFinder.java | 2 +-
.../brooklyn/cli/lister/ItemDescriptors.java | 8 +-
.../rest/domain/SummaryComparators.java | 3 +-
.../rest/util/json/BidiSerialization.java | 2 +-
65 files changed, 446 insertions(+), 455 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/basic/AbstractBrooklynObjectSpec.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/basic/AbstractBrooklynObjectSpec.java b/api/src/main/java/brooklyn/basic/AbstractBrooklynObjectSpec.java
deleted file mode 100644
index 83db969..0000000
--- a/api/src/main/java/brooklyn/basic/AbstractBrooklynObjectSpec.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.basic;
-
-import java.io.Serializable;
-import java.lang.reflect.Modifier;
-import java.util.Set;
-
-import brooklyn.basic.internal.ApiObjectsFactory;
-import brooklyn.util.collections.MutableSet;
-import brooklyn.util.exceptions.Exceptions;
-
-import com.google.common.base.Objects;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-
-public abstract class AbstractBrooklynObjectSpec<T,K extends AbstractBrooklynObjectSpec<T,K>> implements Serializable {
-
- private static final long serialVersionUID = 3010955277740333030L;
-
- private final Class<? extends T> type;
- private String displayName;
- private String catalogItemId;
- private Set<Object> tags = MutableSet.of();
-
- protected AbstractBrooklynObjectSpec(Class<? extends T> type) {
- checkValidType(type);
- this.type = type;
- this.catalogItemId = ApiObjectsFactory.get().getCatalogItemIdFromContext();
- }
-
- @SuppressWarnings("unchecked")
- protected K self() {
- return (K) this;
- }
-
- @Override
- public String toString() {
- return Objects.toStringHelper(this).add("type", getType()).toString();
- }
-
- protected abstract void checkValidType(Class<? extends T> type);
-
- public K displayName(String val) {
- displayName = val;
- return self();
- }
-
- public K catalogItemId(String val) {
- catalogItemId = val;
- return self();
- }
-
- public K tag(Object tag) {
- tags.add(tag);
- return self();
- }
-
- /** adds the given tags */
- public K tags(Iterable<Object> tagsToAdd) {
- Iterables.addAll(this.tags, tagsToAdd);
- return self();
- }
-
- /**
- * @return The type of the object (or significant interface)
- */
- public Class<? extends T> getType() {
- return type;
- }
-
- /**
- * @return The display name of the object
- */
- public final String getDisplayName() {
- return displayName;
- }
-
- public final String getCatalogItemId() {
- return catalogItemId;
- }
-
- public final Set<Object> getTags() {
- return ImmutableSet.copyOf(tags);
- }
-
- // TODO Duplicates method in BasicEntityTypeRegistry and InternalEntityFactory.isNewStyleEntity
- protected final void checkIsNewStyleImplementation(Class<?> implClazz) {
- try {
- implClazz.getConstructor(new Class[0]);
- } catch (NoSuchMethodException e) {
- throw new IllegalStateException("Implementation "+implClazz+" must have a no-argument constructor");
- } catch (SecurityException e) {
- throw Exceptions.propagate(e);
- }
-
- if (implClazz.isInterface()) throw new IllegalStateException("Implementation "+implClazz+" is an interface, but must be a non-abstract class");
- if (Modifier.isAbstract(implClazz.getModifiers())) throw new IllegalStateException("Implementation "+implClazz+" is abstract, but must be a non-abstract class");
- }
-
- // TODO Duplicates method in BasicEntityTypeRegistry
- protected final void checkIsImplementation(Class<?> val, Class<? super T> requiredInterface) {
- if (!requiredInterface.isAssignableFrom(val)) throw new IllegalStateException("Implementation "+val+" does not implement "+requiredInterface.getName());
- if (val.isInterface()) throw new IllegalStateException("Implementation "+val+" is an interface, but must be a non-abstract class");
- if (Modifier.isAbstract(val.getModifiers())) throw new IllegalStateException("Implementation "+val+" is abstract, but must be a non-abstract class");
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj==null) return false;
- if (!obj.getClass().equals(getClass())) return false;
- AbstractBrooklynObjectSpec<?,?> other = (AbstractBrooklynObjectSpec<?,?>)obj;
- if (!Objects.equal(getDisplayName(), other.getDisplayName())) return false;
- if (!Objects.equal(getCatalogItemId(), other.getCatalogItemId())) return false;
- if (!Objects.equal(getType(), other.getType())) return false;
- if (!Objects.equal(getTags(), other.getTags())) return false;
- return true;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(getCatalogItemId(), getDisplayName(), getType(), getTags());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/basic/BrooklynObject.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/basic/BrooklynObject.java b/api/src/main/java/brooklyn/basic/BrooklynObject.java
deleted file mode 100644
index bf1e4e7..0000000
--- a/api/src/main/java/brooklyn/basic/BrooklynObject.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.basic;
-
-import java.util.Set;
-
-import javax.annotation.Nonnull;
-
-import brooklyn.entity.trait.Configurable;
-import brooklyn.entity.trait.Identifiable;
-
-import com.google.common.collect.ImmutableMap;
-
-/**
- * Super-type of entity, location, policy and enricher.
- */
-public interface BrooklynObject extends Identifiable, Configurable {
-
- /**
- * A display name; recommended to be a concise single-line description.
- */
- String getDisplayName();
-
- /**
- * The catalog item ID this object was loaded from.
- * <p>
- * This can be used to understand the appropriate classloading context,
- * such as for versioning purposes, as well as meta-information such as
- * branding (maybe you can even get an icon) and
- * potentially things like resource lifecycle (if a software version is being sunsetted).
- * <p>
- * In some cases this may be set heuristically from context and so may not be accurate.
- * Callers can set an explicit catalog item ID if inferencing is not correct.
- */
- String getCatalogItemId();
-
- /**
- * Tags are arbitrary objects which can be attached to an entity for subsequent reference.
- * They must not be null (as {@link ImmutableMap} may be used under the covers; also there is little point!);
- * and they should be amenable to our persistence (on-disk serialization) and our JSON serialization in the REST API.
- */
- TagSupport tags();
-
- public interface TagSupport {
- /**
- * @return An immutable copy of the set of tags on this entity.
- * Note {@link #containsTag(Object)} will be more efficient,
- * and {@link #addTag(Object)} and {@link #removeTag(Object)} will not work on the returned set.
- */
- @Nonnull Set<Object> getTags();
-
- boolean containsTag(@Nonnull Object tag);
-
- boolean addTag(@Nonnull Object tag);
-
- boolean addTags(@Nonnull Iterable<?> tags);
-
- boolean removeTag(@Nonnull Object tag);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/basic/BrooklynType.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/basic/BrooklynType.java b/api/src/main/java/brooklyn/basic/BrooklynType.java
deleted file mode 100644
index fe1efe2..0000000
--- a/api/src/main/java/brooklyn/basic/BrooklynType.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.basic;
-
-import java.io.Serializable;
-import java.util.Set;
-
-import brooklyn.config.ConfigKey;
-
-/**
- * Gives type information for a {@link BrooklynObject}. It is an immutable snapshot.
- *
- * It reflects a given brooklyn object at the time the snapshot was created: if anything
- * were added or removed on-the-fly then those changes will be included in subsequent
- * snapshots. Therefore instances of a given class could have different {@link BrooklynType}s.
- */
-public interface BrooklynType extends Serializable {
-
- /**
- * The type name of this entity (normally the fully qualified class name).
- */
- String getName();
-
- /**
- * The simple type name of this entity (normally the unqualified class name).
- */
- String getSimpleName();
-
- /**
- * ConfigKeys available on this entity.
- */
- Set<ConfigKey<?>> getConfigKeys();
-
- /**
- * The ConfigKey with the given name, or null if not found.
- */
- ConfigKey<?> getConfigKey(String name);
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactory.java b/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactory.java
deleted file mode 100644
index 5a87805..0000000
--- a/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactory.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.basic.internal;
-
-import java.util.ServiceLoader;
-
-import brooklyn.util.guava.Maybe;
-
-import com.google.common.annotations.Beta;
-
-/**
- * This class grants access to implementations in core for operations needed in API classes.
- * The majority of the API classes are interfaces or have minimal behaviour, but there are a
- * few instances where more complex behaviour from core is desired.
- * <p>
- * This class acts as a bridge for those instances. See the concrete implementation of the
- * {@link ApiObjectsFactoryInterface} in brooklyn-core class ApiObjectsFactoryImpl.
- */
-@Beta
-public class ApiObjectsFactory {
-
- private static Maybe<ApiObjectsFactoryInterface> INSTANCE;
-
- private static synchronized ApiObjectsFactoryInterface getFactoryInstance() {
- // defer initialization to allow any other static initialization to complete,
- // and use maybe so we (1) don't check multiple times, but (2) do throw error in the caller's stack
- if (INSTANCE!=null) return INSTANCE.get();
-
- ServiceLoader<ApiObjectsFactoryInterface> LOADER = ServiceLoader.load(ApiObjectsFactoryInterface.class);
- for (ApiObjectsFactoryInterface item : LOADER) {
- INSTANCE = Maybe.of(item);
- return INSTANCE.get();
- }
- INSTANCE = Maybe.absent("Implementation of " + ApiObjectsFactoryInterface.class + " not found on classpath; "
- + "can be caused by IDE not copying resources, or by something else clobbering non-class resources needed for service loading");
- return INSTANCE.get();
- }
-
- /**
- * Create (if necessary) and return the concrete implementation from core for the
- * methods exposed here. */
- public static ApiObjectsFactoryInterface get() {
- return getFactoryInstance();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryInterface.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryInterface.java b/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryInterface.java
deleted file mode 100644
index 275e102..0000000
--- a/api/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryInterface.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.basic.internal;
-
-/**
- * Methods from downstream projects used in API classes at runtime.
- * See {@link ApiObjectsFactory}.
- */
-public interface ApiObjectsFactoryInterface {
-
- public String getCatalogItemIdFromContext();
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/entity/Entity.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/Entity.java b/api/src/main/java/brooklyn/entity/Entity.java
index 3959273..336ebd1 100644
--- a/api/src/main/java/brooklyn/entity/Entity.java
+++ b/api/src/main/java/brooklyn/entity/Entity.java
@@ -23,13 +23,13 @@ import java.util.Map;
import javax.annotation.Nullable;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.management.Task;
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.basic.BrooklynObject;
import brooklyn.config.ConfigKey;
import brooklyn.config.ConfigKey.HasConfigKey;
import brooklyn.entity.proxying.EntitySpec;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/entity/EntityType.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/EntityType.java b/api/src/main/java/brooklyn/entity/EntityType.java
index fd7ae72..673a448 100644
--- a/api/src/main/java/brooklyn/entity/EntityType.java
+++ b/api/src/main/java/brooklyn/entity/EntityType.java
@@ -21,7 +21,8 @@ package brooklyn.entity;
import java.util.NoSuchElementException;
import java.util.Set;
-import brooklyn.basic.BrooklynType;
+import org.apache.brooklyn.api.basic.BrooklynType;
+
import brooklyn.event.Sensor;
import brooklyn.util.guava.Maybe;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/entity/proxying/EntitySpec.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/proxying/EntitySpec.java b/api/src/main/java/brooklyn/entity/proxying/EntitySpec.java
index bed88f2..ebbf486 100644
--- a/api/src/main/java/brooklyn/entity/proxying/EntitySpec.java
+++ b/api/src/main/java/brooklyn/entity/proxying/EntitySpec.java
@@ -27,6 +27,7 @@ import java.util.Set;
import javax.annotation.Nullable;
+import org.apache.brooklyn.api.basic.AbstractBrooklynObjectSpec;
import org.apache.brooklyn.management.Task;
import org.apache.brooklyn.policy.Enricher;
import org.apache.brooklyn.policy.EnricherSpec;
@@ -35,7 +36,6 @@ import org.apache.brooklyn.policy.PolicySpec;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import brooklyn.basic.AbstractBrooklynObjectSpec;
import brooklyn.config.ConfigKey;
import brooklyn.config.ConfigKey.HasConfigKey;
import brooklyn.entity.Entity;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/entity/rebind/BrooklynObjectType.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/rebind/BrooklynObjectType.java b/api/src/main/java/brooklyn/entity/rebind/BrooklynObjectType.java
index 582c0b1..bc3276e 100644
--- a/api/src/main/java/brooklyn/entity/rebind/BrooklynObjectType.java
+++ b/api/src/main/java/brooklyn/entity/rebind/BrooklynObjectType.java
@@ -18,8 +18,7 @@
*/
package brooklyn.entity.rebind;
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.policy.Enricher;
import org.apache.brooklyn.policy.Policy;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/entity/rebind/ChangeListener.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/rebind/ChangeListener.java b/api/src/main/java/brooklyn/entity/rebind/ChangeListener.java
index 02d4ad2..b54af1a 100644
--- a/api/src/main/java/brooklyn/entity/rebind/ChangeListener.java
+++ b/api/src/main/java/brooklyn/entity/rebind/ChangeListener.java
@@ -18,7 +18,7 @@
*/
package brooklyn.entity.rebind;
-import brooklyn.basic.BrooklynObject;
+import org.apache.brooklyn.api.basic.BrooklynObject;
/**
* Listener to be notified of changes within brooklyn, so that the new state
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/entity/rebind/PersistenceExceptionHandler.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/rebind/PersistenceExceptionHandler.java b/api/src/main/java/brooklyn/entity/rebind/PersistenceExceptionHandler.java
index 9c8385a..d7903c4 100644
--- a/api/src/main/java/brooklyn/entity/rebind/PersistenceExceptionHandler.java
+++ b/api/src/main/java/brooklyn/entity/rebind/PersistenceExceptionHandler.java
@@ -18,10 +18,9 @@
*/
package brooklyn.entity.rebind;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.mementos.Memento;
-import brooklyn.basic.BrooklynObject;
-
import com.google.common.annotations.Beta;
/**
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/entity/rebind/RebindContext.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/rebind/RebindContext.java b/api/src/main/java/brooklyn/entity/rebind/RebindContext.java
index a17ccbe..13b0a30 100644
--- a/api/src/main/java/brooklyn/entity/rebind/RebindContext.java
+++ b/api/src/main/java/brooklyn/entity/rebind/RebindContext.java
@@ -20,10 +20,9 @@ package brooklyn.entity.rebind;
import java.util.Map;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.mementos.BrooklynMementoPersister.LookupContext;
-import brooklyn.basic.BrooklynObject;
-
import com.google.common.annotations.Beta;
/**
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/entity/rebind/RebindExceptionHandler.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/entity/rebind/RebindExceptionHandler.java b/api/src/main/java/brooklyn/entity/rebind/RebindExceptionHandler.java
index 62cfb1e..932a32f 100644
--- a/api/src/main/java/brooklyn/entity/rebind/RebindExceptionHandler.java
+++ b/api/src/main/java/brooklyn/entity/rebind/RebindExceptionHandler.java
@@ -20,8 +20,7 @@ package brooklyn.entity.rebind;
import java.util.List;
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.policy.Enricher;
import org.apache.brooklyn.policy.Policy;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/location/Location.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/location/Location.java b/api/src/main/java/brooklyn/location/Location.java
index 5707dbd..791ca7a 100644
--- a/api/src/main/java/brooklyn/location/Location.java
+++ b/api/src/main/java/brooklyn/location/Location.java
@@ -22,7 +22,8 @@ import java.io.Serializable;
import java.util.Collection;
import java.util.Map;
-import brooklyn.basic.BrooklynObject;
+import org.apache.brooklyn.api.basic.BrooklynObject;
+
import brooklyn.config.ConfigKey;
import brooklyn.config.ConfigKey.HasConfigKey;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/location/LocationSpec.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/location/LocationSpec.java b/api/src/main/java/brooklyn/location/LocationSpec.java
index e89c64c..d13b7d1 100644
--- a/api/src/main/java/brooklyn/location/LocationSpec.java
+++ b/api/src/main/java/brooklyn/location/LocationSpec.java
@@ -23,11 +23,11 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Collections;
import java.util.Map;
+import org.apache.brooklyn.api.basic.AbstractBrooklynObjectSpec;
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;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/brooklyn/location/LocationType.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/location/LocationType.java b/api/src/main/java/brooklyn/location/LocationType.java
index 7bdb179..dceabe3 100644
--- a/api/src/main/java/brooklyn/location/LocationType.java
+++ b/api/src/main/java/brooklyn/location/LocationType.java
@@ -18,7 +18,7 @@
*/
package brooklyn.location;
-import brooklyn.basic.BrooklynType;
+import org.apache.brooklyn.api.basic.BrooklynType;
import com.google.common.annotations.Beta;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/org/apache/brooklyn/api/basic/AbstractBrooklynObjectSpec.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/basic/AbstractBrooklynObjectSpec.java b/api/src/main/java/org/apache/brooklyn/api/basic/AbstractBrooklynObjectSpec.java
new file mode 100644
index 0000000..df41378
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/basic/AbstractBrooklynObjectSpec.java
@@ -0,0 +1,142 @@
+/*
+ * 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.basic;
+
+import java.io.Serializable;
+import java.lang.reflect.Modifier;
+import java.util.Set;
+
+import org.apache.brooklyn.api.basic.internal.ApiObjectsFactory;
+
+import brooklyn.util.collections.MutableSet;
+import brooklyn.util.exceptions.Exceptions;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+
+public abstract class AbstractBrooklynObjectSpec<T,K extends AbstractBrooklynObjectSpec<T,K>> implements Serializable {
+
+ private static final long serialVersionUID = 3010955277740333030L;
+
+ private final Class<? extends T> type;
+ private String displayName;
+ private String catalogItemId;
+ private Set<Object> tags = MutableSet.of();
+
+ protected AbstractBrooklynObjectSpec(Class<? extends T> type) {
+ checkValidType(type);
+ this.type = type;
+ this.catalogItemId = ApiObjectsFactory.get().getCatalogItemIdFromContext();
+ }
+
+ @SuppressWarnings("unchecked")
+ protected K self() {
+ return (K) this;
+ }
+
+ @Override
+ public String toString() {
+ return Objects.toStringHelper(this).add("type", getType()).toString();
+ }
+
+ protected abstract void checkValidType(Class<? extends T> type);
+
+ public K displayName(String val) {
+ displayName = val;
+ return self();
+ }
+
+ public K catalogItemId(String val) {
+ catalogItemId = val;
+ return self();
+ }
+
+ public K tag(Object tag) {
+ tags.add(tag);
+ return self();
+ }
+
+ /** adds the given tags */
+ public K tags(Iterable<Object> tagsToAdd) {
+ Iterables.addAll(this.tags, tagsToAdd);
+ return self();
+ }
+
+ /**
+ * @return The type of the object (or significant interface)
+ */
+ public Class<? extends T> getType() {
+ return type;
+ }
+
+ /**
+ * @return The display name of the object
+ */
+ public final String getDisplayName() {
+ return displayName;
+ }
+
+ public final String getCatalogItemId() {
+ return catalogItemId;
+ }
+
+ public final Set<Object> getTags() {
+ return ImmutableSet.copyOf(tags);
+ }
+
+ // TODO Duplicates method in BasicEntityTypeRegistry and InternalEntityFactory.isNewStyleEntity
+ protected final void checkIsNewStyleImplementation(Class<?> implClazz) {
+ try {
+ implClazz.getConstructor(new Class[0]);
+ } catch (NoSuchMethodException e) {
+ throw new IllegalStateException("Implementation "+implClazz+" must have a no-argument constructor");
+ } catch (SecurityException e) {
+ throw Exceptions.propagate(e);
+ }
+
+ if (implClazz.isInterface()) throw new IllegalStateException("Implementation "+implClazz+" is an interface, but must be a non-abstract class");
+ if (Modifier.isAbstract(implClazz.getModifiers())) throw new IllegalStateException("Implementation "+implClazz+" is abstract, but must be a non-abstract class");
+ }
+
+ // TODO Duplicates method in BasicEntityTypeRegistry
+ protected final void checkIsImplementation(Class<?> val, Class<? super T> requiredInterface) {
+ if (!requiredInterface.isAssignableFrom(val)) throw new IllegalStateException("Implementation "+val+" does not implement "+requiredInterface.getName());
+ if (val.isInterface()) throw new IllegalStateException("Implementation "+val+" is an interface, but must be a non-abstract class");
+ if (Modifier.isAbstract(val.getModifiers())) throw new IllegalStateException("Implementation "+val+" is abstract, but must be a non-abstract class");
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj==null) return false;
+ if (!obj.getClass().equals(getClass())) return false;
+ AbstractBrooklynObjectSpec<?,?> other = (AbstractBrooklynObjectSpec<?,?>)obj;
+ if (!Objects.equal(getDisplayName(), other.getDisplayName())) return false;
+ if (!Objects.equal(getCatalogItemId(), other.getCatalogItemId())) return false;
+ if (!Objects.equal(getType(), other.getType())) return false;
+ if (!Objects.equal(getTags(), other.getTags())) return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(getCatalogItemId(), getDisplayName(), getType(), getTags());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/org/apache/brooklyn/api/basic/BrooklynObject.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/basic/BrooklynObject.java b/api/src/main/java/org/apache/brooklyn/api/basic/BrooklynObject.java
new file mode 100644
index 0000000..8c05ad0
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/basic/BrooklynObject.java
@@ -0,0 +1,76 @@
+/*
+ * 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.basic;
+
+import java.util.Set;
+
+import javax.annotation.Nonnull;
+
+import brooklyn.entity.trait.Configurable;
+import brooklyn.entity.trait.Identifiable;
+
+import com.google.common.collect.ImmutableMap;
+
+/**
+ * Super-type of entity, location, policy and enricher.
+ */
+public interface BrooklynObject extends Identifiable, Configurable {
+
+ /**
+ * A display name; recommended to be a concise single-line description.
+ */
+ String getDisplayName();
+
+ /**
+ * The catalog item ID this object was loaded from.
+ * <p>
+ * This can be used to understand the appropriate classloading context,
+ * such as for versioning purposes, as well as meta-information such as
+ * branding (maybe you can even get an icon) and
+ * potentially things like resource lifecycle (if a software version is being sunsetted).
+ * <p>
+ * In some cases this may be set heuristically from context and so may not be accurate.
+ * Callers can set an explicit catalog item ID if inferencing is not correct.
+ */
+ String getCatalogItemId();
+
+ /**
+ * Tags are arbitrary objects which can be attached to an entity for subsequent reference.
+ * They must not be null (as {@link ImmutableMap} may be used under the covers; also there is little point!);
+ * and they should be amenable to our persistence (on-disk serialization) and our JSON serialization in the REST API.
+ */
+ TagSupport tags();
+
+ public interface TagSupport {
+ /**
+ * @return An immutable copy of the set of tags on this entity.
+ * Note {@link #containsTag(Object)} will be more efficient,
+ * and {@link #addTag(Object)} and {@link #removeTag(Object)} will not work on the returned set.
+ */
+ @Nonnull Set<Object> getTags();
+
+ boolean containsTag(@Nonnull Object tag);
+
+ boolean addTag(@Nonnull Object tag);
+
+ boolean addTags(@Nonnull Iterable<?> tags);
+
+ boolean removeTag(@Nonnull Object tag);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/org/apache/brooklyn/api/basic/BrooklynType.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/basic/BrooklynType.java b/api/src/main/java/org/apache/brooklyn/api/basic/BrooklynType.java
new file mode 100644
index 0000000..d967cbd
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/basic/BrooklynType.java
@@ -0,0 +1,54 @@
+/*
+ * 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.basic;
+
+import java.io.Serializable;
+import java.util.Set;
+
+import brooklyn.config.ConfigKey;
+
+/**
+ * Gives type information for a {@link BrooklynObject}. It is an immutable snapshot.
+ *
+ * It reflects a given brooklyn object at the time the snapshot was created: if anything
+ * were added or removed on-the-fly then those changes will be included in subsequent
+ * snapshots. Therefore instances of a given class could have different {@link BrooklynType}s.
+ */
+public interface BrooklynType extends Serializable {
+
+ /**
+ * The type name of this entity (normally the fully qualified class name).
+ */
+ String getName();
+
+ /**
+ * The simple type name of this entity (normally the unqualified class name).
+ */
+ String getSimpleName();
+
+ /**
+ * ConfigKeys available on this entity.
+ */
+ Set<ConfigKey<?>> getConfigKeys();
+
+ /**
+ * The ConfigKey with the given name, or null if not found.
+ */
+ ConfigKey<?> getConfigKey(String name);
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/org/apache/brooklyn/api/basic/internal/ApiObjectsFactory.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/basic/internal/ApiObjectsFactory.java b/api/src/main/java/org/apache/brooklyn/api/basic/internal/ApiObjectsFactory.java
new file mode 100644
index 0000000..f1e7e14
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/basic/internal/ApiObjectsFactory.java
@@ -0,0 +1,61 @@
+/*
+ * 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.basic.internal;
+
+import java.util.ServiceLoader;
+
+import brooklyn.util.guava.Maybe;
+
+import com.google.common.annotations.Beta;
+
+/**
+ * This class grants access to implementations in core for operations needed in API classes.
+ * The majority of the API classes are interfaces or have minimal behaviour, but there are a
+ * few instances where more complex behaviour from core is desired.
+ * <p>
+ * This class acts as a bridge for those instances. See the concrete implementation of the
+ * {@link ApiObjectsFactoryInterface} in brooklyn-core class ApiObjectsFactoryImpl.
+ */
+@Beta
+public class ApiObjectsFactory {
+
+ private static Maybe<ApiObjectsFactoryInterface> INSTANCE;
+
+ private static synchronized ApiObjectsFactoryInterface getFactoryInstance() {
+ // defer initialization to allow any other static initialization to complete,
+ // and use maybe so we (1) don't check multiple times, but (2) do throw error in the caller's stack
+ if (INSTANCE!=null) return INSTANCE.get();
+
+ ServiceLoader<ApiObjectsFactoryInterface> LOADER = ServiceLoader.load(ApiObjectsFactoryInterface.class);
+ for (ApiObjectsFactoryInterface item : LOADER) {
+ INSTANCE = Maybe.of(item);
+ return INSTANCE.get();
+ }
+ INSTANCE = Maybe.absent("Implementation of " + ApiObjectsFactoryInterface.class + " not found on classpath; "
+ + "can be caused by IDE not copying resources, or by something else clobbering non-class resources needed for service loading");
+ return INSTANCE.get();
+ }
+
+ /**
+ * Create (if necessary) and return the concrete implementation from core for the
+ * methods exposed here. */
+ public static ApiObjectsFactoryInterface get() {
+ return getFactoryInstance();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/org/apache/brooklyn/api/basic/internal/ApiObjectsFactoryInterface.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/basic/internal/ApiObjectsFactoryInterface.java b/api/src/main/java/org/apache/brooklyn/api/basic/internal/ApiObjectsFactoryInterface.java
new file mode 100644
index 0000000..a0c34c4
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/basic/internal/ApiObjectsFactoryInterface.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.api.basic.internal;
+
+/**
+ * Methods from downstream projects used in API classes at runtime.
+ * See {@link ApiObjectsFactory}.
+ */
+public interface ApiObjectsFactoryInterface {
+
+ public String getCatalogItemIdFromContext();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/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 dc05961..9b34cb2 100644
--- a/api/src/main/java/org/apache/brooklyn/catalog/CatalogItem.java
+++ b/api/src/main/java/org/apache/brooklyn/catalog/CatalogItem.java
@@ -22,9 +22,9 @@ import java.util.Collection;
import javax.annotation.Nullable;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.mementos.CatalogItemMemento;
-import brooklyn.basic.BrooklynObject;
import brooklyn.entity.rebind.RebindSupport;
import brooklyn.entity.rebind.Rebindable;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/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 2c8d9d1..924b929 100644
--- a/api/src/main/java/org/apache/brooklyn/management/ManagementContext.java
+++ b/api/src/main/java/org/apache/brooklyn/management/ManagementContext.java
@@ -22,8 +22,7 @@ import java.io.Serializable;
import java.net.URI;
import java.util.Collection;
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.BrooklynCatalog;
import org.apache.brooklyn.management.entitlement.EntitlementManager;
import org.apache.brooklyn.management.ha.HighAvailabilityManager;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/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 4d57f64..cac71d2 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java
@@ -25,8 +25,7 @@ import java.util.concurrent.TimeoutException;
import javax.annotation.Nullable;
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.management.ManagementContext;
import org.apache.brooklyn.policy.Enricher;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/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 94c9473..b3309de 100644
--- a/api/src/main/java/org/apache/brooklyn/policy/EnricherSpec.java
+++ b/api/src/main/java/org/apache/brooklyn/policy/EnricherSpec.java
@@ -23,11 +23,11 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Collections;
import java.util.Map;
+import org.apache.brooklyn.api.basic.AbstractBrooklynObjectSpec;
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;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/org/apache/brooklyn/policy/EnricherType.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/policy/EnricherType.java b/api/src/main/java/org/apache/brooklyn/policy/EnricherType.java
index aba79a7..e96b3cd 100644
--- a/api/src/main/java/org/apache/brooklyn/policy/EnricherType.java
+++ b/api/src/main/java/org/apache/brooklyn/policy/EnricherType.java
@@ -18,7 +18,7 @@
*/
package org.apache.brooklyn.policy;
-import brooklyn.basic.BrooklynType;
+import org.apache.brooklyn.api.basic.BrooklynType;
import com.google.common.annotations.Beta;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/org/apache/brooklyn/policy/EntityAdjunct.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/policy/EntityAdjunct.java b/api/src/main/java/org/apache/brooklyn/policy/EntityAdjunct.java
index f21f347..daa6cd0 100644
--- a/api/src/main/java/org/apache/brooklyn/policy/EntityAdjunct.java
+++ b/api/src/main/java/org/apache/brooklyn/policy/EntityAdjunct.java
@@ -20,7 +20,7 @@ package org.apache.brooklyn.policy;
import javax.annotation.Nullable;
-import brooklyn.basic.BrooklynObject;
+import org.apache.brooklyn.api.basic.BrooklynObject;
/**
* EntityAdjuncts are supplementary logic that can be attached to Entities,
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/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 afcfaef..ffb69f9 100644
--- a/api/src/main/java/org/apache/brooklyn/policy/PolicySpec.java
+++ b/api/src/main/java/org/apache/brooklyn/policy/PolicySpec.java
@@ -23,11 +23,11 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Collections;
import java.util.Map;
+import org.apache.brooklyn.api.basic.AbstractBrooklynObjectSpec;
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;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/api/src/main/java/org/apache/brooklyn/policy/PolicyType.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/policy/PolicyType.java b/api/src/main/java/org/apache/brooklyn/policy/PolicyType.java
index 30c78e5..8d83c28 100644
--- a/api/src/main/java/org/apache/brooklyn/policy/PolicyType.java
+++ b/api/src/main/java/org/apache/brooklyn/policy/PolicyType.java
@@ -18,7 +18,7 @@
*/
package org.apache.brooklyn.policy;
-import brooklyn.basic.BrooklynType;
+import org.apache.brooklyn.api.basic.BrooklynType;
import com.google.common.annotations.Beta;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/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 8ad5bcd..948792c 100644
--- a/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
+++ b/core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
@@ -22,11 +22,11 @@ import java.util.Collections;
import java.util.Map;
import java.util.Set;
+import org.apache.brooklyn.api.basic.internal.ApiObjectsFactory;
import org.apache.brooklyn.management.ManagementContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import brooklyn.basic.internal.ApiObjectsFactory;
import brooklyn.entity.basic.AbstractEntity;
import brooklyn.entity.proxying.InternalFactory;
import brooklyn.entity.rebind.RebindManagerImpl;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/basic/BrooklynDynamicType.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/BrooklynDynamicType.java b/core/src/main/java/brooklyn/basic/BrooklynDynamicType.java
index a7ce807..dbf8bbc 100644
--- a/core/src/main/java/brooklyn/basic/BrooklynDynamicType.java
+++ b/core/src/main/java/brooklyn/basic/BrooklynDynamicType.java
@@ -32,6 +32,8 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.basic.BrooklynType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/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 81ddc7f..f75d7a5 100644
--- a/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
+++ b/core/src/main/java/brooklyn/basic/BrooklynObjectInternal.java
@@ -20,6 +20,8 @@ package brooklyn.basic;
import java.util.Map;
+import org.apache.brooklyn.api.basic.BrooklynObject;
+
import brooklyn.config.ConfigKey;
import brooklyn.config.ConfigKey.HasConfigKey;
import brooklyn.entity.rebind.RebindSupport;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/basic/BrooklynTypeSnapshot.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/basic/BrooklynTypeSnapshot.java b/core/src/main/java/brooklyn/basic/BrooklynTypeSnapshot.java
index 61e31a0..1d0ba73 100644
--- a/core/src/main/java/brooklyn/basic/BrooklynTypeSnapshot.java
+++ b/core/src/main/java/brooklyn/basic/BrooklynTypeSnapshot.java
@@ -21,6 +21,8 @@ package brooklyn.basic;
import java.util.Map;
import java.util.Set;
+import org.apache.brooklyn.api.basic.BrooklynType;
+
import brooklyn.config.ConfigKey;
import brooklyn.util.text.Strings;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/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 084ecc7..b732026 100644
--- a/core/src/main/java/brooklyn/basic/BrooklynTypes.java
+++ b/core/src/main/java/brooklyn/basic/BrooklynTypes.java
@@ -20,6 +20,7 @@ package brooklyn.basic;
import java.util.Map;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.policy.Enricher;
import org.apache.brooklyn.policy.Policy;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/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 32b3fb6..b19b964 100644
--- a/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java
+++ b/core/src/main/java/brooklyn/basic/internal/ApiObjectsFactoryImpl.java
@@ -18,9 +18,9 @@
*/
package brooklyn.basic.internal;
+import org.apache.brooklyn.api.basic.internal.ApiObjectsFactoryInterface;
import org.apache.brooklyn.management.Task;
-import brooklyn.basic.internal.ApiObjectsFactoryInterface;
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/9bb882c5/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 dd365da..a5d5fd3 100644
--- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
+++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
@@ -38,10 +38,10 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.yaml.snakeyaml.Yaml;
-import brooklyn.basic.AbstractBrooklynObjectSpec;
import brooklyn.basic.BrooklynObjectInternal.ConfigurationSupportInternal;
import brooklyn.camp.brooklyn.api.AssemblyTemplateSpecInstantiator;
+import org.apache.brooklyn.api.basic.AbstractBrooklynObjectSpec;
import org.apache.brooklyn.catalog.BrooklynCatalog;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/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 b70420a..bcc7589 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
@@ -25,9 +25,9 @@ import javax.annotation.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import brooklyn.basic.BrooklynObject;
import brooklyn.basic.BrooklynObjectInternal;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.BrooklynCatalog;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/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 057e46a..dfda0a7 100644
--- a/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java
+++ b/core/src/main/java/brooklyn/entity/basic/EntityTransientCopyInternal.java
@@ -25,13 +25,13 @@ import java.util.Set;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import org.apache.brooklyn.api.basic.BrooklynObject.TagSupport;
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;
-import brooklyn.basic.BrooklynObject.TagSupport;
import brooklyn.config.ConfigKey;
import brooklyn.config.ConfigKey.HasConfigKey;
import brooklyn.entity.Application;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/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 fe2a461..723ff22 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.api.basic.BrooklynObject;
import org.apache.brooklyn.management.ha.ManagementNodeState;
import org.apache.brooklyn.mementos.BrooklynMementoPersister;
import org.apache.brooklyn.mementos.BrooklynMementoRawData;
@@ -33,7 +34,6 @@ import org.apache.brooklyn.mementos.BrooklynMementoRawData.Builder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import brooklyn.basic.BrooklynObject;
import brooklyn.basic.BrooklynObjectInternal;
import brooklyn.entity.Entity;
import brooklyn.entity.basic.EntityInternal;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/entity/rebind/ImmediateDeltaChangeListener.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/ImmediateDeltaChangeListener.java b/core/src/main/java/brooklyn/entity/rebind/ImmediateDeltaChangeListener.java
index 0f41389..7796c27 100644
--- a/core/src/main/java/brooklyn/entity/rebind/ImmediateDeltaChangeListener.java
+++ b/core/src/main/java/brooklyn/entity/rebind/ImmediateDeltaChangeListener.java
@@ -21,9 +21,9 @@ package brooklyn.entity.rebind;
import java.util.Collection;
import java.util.Map;
-import brooklyn.basic.BrooklynObject;
import brooklyn.basic.BrooklynObjectInternal;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.mementos.BrooklynMementoPersister;
import org.apache.brooklyn.mementos.CatalogItemMemento;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java b/core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java
index 484e6f4..a8bac53 100644
--- a/core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java
+++ b/core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java
@@ -30,9 +30,9 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import brooklyn.basic.BrooklynObject;
import brooklyn.basic.BrooklynObjectInternal;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.management.ExecutionContext;
import org.apache.brooklyn.management.Task;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/entity/rebind/PersistenceExceptionHandlerImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/PersistenceExceptionHandlerImpl.java b/core/src/main/java/brooklyn/entity/rebind/PersistenceExceptionHandlerImpl.java
index 0a540f2..198097d 100644
--- a/core/src/main/java/brooklyn/entity/rebind/PersistenceExceptionHandlerImpl.java
+++ b/core/src/main/java/brooklyn/entity/rebind/PersistenceExceptionHandlerImpl.java
@@ -21,11 +21,11 @@ package brooklyn.entity.rebind;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.mementos.Memento;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import brooklyn.basic.BrooklynObject;
import brooklyn.util.exceptions.Exceptions;
import com.google.common.collect.Sets;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java b/core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java
index 1d7f0e2..a3e6e34 100644
--- a/core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java
+++ b/core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java
@@ -23,8 +23,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Collection;
import java.util.Map;
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.management.ManagementContext;
import org.apache.brooklyn.mementos.BrooklynMementoPersister.LookupContext;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/entity/rebind/RebindContextLookupContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/RebindContextLookupContext.java b/core/src/main/java/brooklyn/entity/rebind/RebindContextLookupContext.java
index e46ff66..7974efd 100644
--- a/core/src/main/java/brooklyn/entity/rebind/RebindContextLookupContext.java
+++ b/core/src/main/java/brooklyn/entity/rebind/RebindContextLookupContext.java
@@ -22,9 +22,7 @@ import javax.annotation.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.management.ManagementContext;
import org.apache.brooklyn.mementos.BrooklynMementoPersister.LookupContext;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/entity/rebind/RebindExceptionHandlerImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/RebindExceptionHandlerImpl.java b/core/src/main/java/brooklyn/entity/rebind/RebindExceptionHandlerImpl.java
index 261a0a7..b2da05a 100644
--- a/core/src/main/java/brooklyn/entity/rebind/RebindExceptionHandlerImpl.java
+++ b/core/src/main/java/brooklyn/entity/rebind/RebindExceptionHandlerImpl.java
@@ -26,9 +26,7 @@ import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.policy.Enricher;
import org.apache.brooklyn.policy.Policy;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/entity/rebind/RebindIteration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/RebindIteration.java b/core/src/main/java/brooklyn/entity/rebind/RebindIteration.java
index 87d611f..f6ffc12 100644
--- a/core/src/main/java/brooklyn/entity/rebind/RebindIteration.java
+++ b/core/src/main/java/brooklyn/entity/rebind/RebindIteration.java
@@ -34,9 +34,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import brooklyn.basic.AbstractBrooklynObject;
-import brooklyn.basic.BrooklynObject;
import brooklyn.basic.BrooklynObjectInternal;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.BrooklynCatalog;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.management.classloading.BrooklynClassLoadingContext;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java b/core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java
index 7aa542f..45153f1 100644
--- a/core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java
+++ b/core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java
@@ -29,6 +29,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.management.ExecutionContext;
import org.apache.brooklyn.management.Task;
import org.apache.brooklyn.management.ha.ManagementNodeState;
@@ -39,7 +40,6 @@ import org.apache.brooklyn.mementos.TreeNode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import brooklyn.basic.BrooklynObject;
import brooklyn.config.BrooklynServerConfig;
import brooklyn.config.ConfigKey;
import brooklyn.enricher.basic.AbstractEnricher;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java b/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
index 9e697fb..a2bb4cb 100644
--- a/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
+++ b/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
@@ -25,9 +25,9 @@ import java.lang.reflect.Proxy;
import java.util.Map;
import java.util.Set;
-import brooklyn.basic.BrooklynObject;
import brooklyn.basic.BrooklynTypes;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.management.ManagementContext;
import org.apache.brooklyn.management.Task;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
index 74690cb..5cc4daa 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
@@ -37,9 +37,7 @@ import javax.annotation.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.mementos.BrooklynMemento;
import org.apache.brooklyn.mementos.BrooklynMementoManifest;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynPersistenceUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynPersistenceUtils.java b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynPersistenceUtils.java
index 73b82fe..6e45c22 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynPersistenceUtils.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynPersistenceUtils.java
@@ -23,9 +23,9 @@ import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import brooklyn.basic.BrooklynObject;
import brooklyn.basic.BrooklynObjectInternal;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.management.ManagementContext;
import org.apache.brooklyn.management.ha.HighAvailabilityMode;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/entity/rebind/persister/XmlMementoSerializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/persister/XmlMementoSerializer.java b/core/src/main/java/brooklyn/entity/rebind/persister/XmlMementoSerializer.java
index 87db916..445ccb2 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/XmlMementoSerializer.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/XmlMementoSerializer.java
@@ -29,9 +29,7 @@ import java.util.concurrent.atomic.AtomicReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-import brooklyn.basic.AbstractBrooklynObjectSpec;
-
+import org.apache.brooklyn.api.basic.AbstractBrooklynObjectSpec;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.management.ManagementContext;
import org.apache.brooklyn.management.Task;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/management/internal/AbstractManagementContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/AbstractManagementContext.java b/core/src/main/java/brooklyn/management/internal/AbstractManagementContext.java
index 7115eb1..164c02d 100644
--- a/core/src/main/java/brooklyn/management/internal/AbstractManagementContext.java
+++ b/core/src/main/java/brooklyn/management/internal/AbstractManagementContext.java
@@ -34,9 +34,7 @@ import javax.annotation.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.BrooklynCatalog;
import org.apache.brooklyn.catalog.CatalogItem;
import org.apache.brooklyn.management.ExecutionContext;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/management/internal/BrooklynObjectManagerInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/BrooklynObjectManagerInternal.java b/core/src/main/java/brooklyn/management/internal/BrooklynObjectManagerInternal.java
index 93045be..2af7e77 100644
--- a/core/src/main/java/brooklyn/management/internal/BrooklynObjectManagerInternal.java
+++ b/core/src/main/java/brooklyn/management/internal/BrooklynObjectManagerInternal.java
@@ -18,7 +18,7 @@
*/
package brooklyn.management.internal;
-import brooklyn.basic.BrooklynObject;
+import org.apache.brooklyn.api.basic.BrooklynObject;
public interface BrooklynObjectManagerInternal<T extends BrooklynObject> {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/java/brooklyn/management/internal/NonDeploymentManagementContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/internal/NonDeploymentManagementContext.java b/core/src/main/java/brooklyn/management/internal/NonDeploymentManagementContext.java
index f664ce4..32401b8 100644
--- a/core/src/main/java/brooklyn/management/internal/NonDeploymentManagementContext.java
+++ b/core/src/main/java/brooklyn/management/internal/NonDeploymentManagementContext.java
@@ -31,9 +31,7 @@ import java.util.concurrent.TimeoutException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.BrooklynCatalog;
import org.apache.brooklyn.management.AccessController;
import org.apache.brooklyn.management.EntityManager;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/resources/META-INF/services/brooklyn.basic.internal.ApiObjectsFactoryInterface
----------------------------------------------------------------------
diff --git a/core/src/main/resources/META-INF/services/brooklyn.basic.internal.ApiObjectsFactoryInterface b/core/src/main/resources/META-INF/services/brooklyn.basic.internal.ApiObjectsFactoryInterface
deleted file mode 100644
index 4af251f..0000000
--- a/core/src/main/resources/META-INF/services/brooklyn.basic.internal.ApiObjectsFactoryInterface
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-brooklyn.basic.internal.ApiObjectsFactoryImpl
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/main/resources/META-INF/services/org.apache.brooklyn.api.basic.internal.ApiObjectsFactoryInterface
----------------------------------------------------------------------
diff --git a/core/src/main/resources/META-INF/services/org.apache.brooklyn.api.basic.internal.ApiObjectsFactoryInterface b/core/src/main/resources/META-INF/services/org.apache.brooklyn.api.basic.internal.ApiObjectsFactoryInterface
new file mode 100644
index 0000000..4af251f
--- /dev/null
+++ b/core/src/main/resources/META-INF/services/org.apache.brooklyn.api.basic.internal.ApiObjectsFactoryInterface
@@ -0,0 +1,19 @@
+#
+# 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.
+#
+brooklyn.basic.internal.ApiObjectsFactoryImpl
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/test/java/brooklyn/entity/rebind/ActivePartialRebindTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/entity/rebind/ActivePartialRebindTest.java b/core/src/test/java/brooklyn/entity/rebind/ActivePartialRebindTest.java
index 137639e..7caf02e 100644
--- a/core/src/test/java/brooklyn/entity/rebind/ActivePartialRebindTest.java
+++ b/core/src/test/java/brooklyn/entity/rebind/ActivePartialRebindTest.java
@@ -18,13 +18,13 @@
*/
package brooklyn.entity.rebind;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.test.entity.TestEntity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.Assert;
import org.testng.annotations.Test;
-import brooklyn.basic.BrooklynObject;
import brooklyn.entity.Entity;
import brooklyn.entity.basic.AbstractEntity;
import brooklyn.entity.basic.Entities;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/test/java/brooklyn/entity/rebind/RecordingRebindExceptionHandler.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/entity/rebind/RecordingRebindExceptionHandler.java b/core/src/test/java/brooklyn/entity/rebind/RecordingRebindExceptionHandler.java
index 41cead5..0658c59 100644
--- a/core/src/test/java/brooklyn/entity/rebind/RecordingRebindExceptionHandler.java
+++ b/core/src/test/java/brooklyn/entity/rebind/RecordingRebindExceptionHandler.java
@@ -21,7 +21,8 @@ package brooklyn.entity.rebind;
import java.util.List;
import java.util.Map;
-import brooklyn.basic.BrooklynObject;
+import org.apache.brooklyn.api.basic.BrooklynObject;
+
import brooklyn.entity.Entity;
import brooklyn.location.Location;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/test/java/brooklyn/entity/rebind/persister/XmlMementoSerializerTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/entity/rebind/persister/XmlMementoSerializerTest.java b/core/src/test/java/brooklyn/entity/rebind/persister/XmlMementoSerializerTest.java
index 0738a7c..5cfa30f 100644
--- a/core/src/test/java/brooklyn/entity/rebind/persister/XmlMementoSerializerTest.java
+++ b/core/src/test/java/brooklyn/entity/rebind/persister/XmlMementoSerializerTest.java
@@ -44,9 +44,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import brooklyn.catalog.internal.CatalogItemBuilder;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/core/src/test/java/brooklyn/management/osgi/OsgiVersionMoreEntityTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/management/osgi/OsgiVersionMoreEntityTest.java b/core/src/test/java/brooklyn/management/osgi/OsgiVersionMoreEntityTest.java
index da7dd08..c12c92e 100644
--- a/core/src/test/java/brooklyn/management/osgi/OsgiVersionMoreEntityTest.java
+++ b/core/src/test/java/brooklyn/management/osgi/OsgiVersionMoreEntityTest.java
@@ -31,9 +31,7 @@ import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.CatalogItem;
import brooklyn.catalog.internal.CatalogEntityItemDto;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/usage/cli/src/main/java/org/apache/brooklyn/cli/ItemLister.java
----------------------------------------------------------------------
diff --git a/usage/cli/src/main/java/org/apache/brooklyn/cli/ItemLister.java b/usage/cli/src/main/java/org/apache/brooklyn/cli/ItemLister.java
index 5027fa0..e985b87 100644
--- a/usage/cli/src/main/java/org/apache/brooklyn/cli/ItemLister.java
+++ b/usage/cli/src/main/java/org/apache/brooklyn/cli/ItemLister.java
@@ -32,9 +32,7 @@ import java.util.ServiceLoader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-import brooklyn.basic.BrooklynObject;
-
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.catalog.Catalog;
import org.apache.brooklyn.cli.lister.ClassFinder;
import org.apache.brooklyn.cli.lister.ItemDescriptors;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/usage/cli/src/main/java/org/apache/brooklyn/cli/lister/ClassFinder.java
----------------------------------------------------------------------
diff --git a/usage/cli/src/main/java/org/apache/brooklyn/cli/lister/ClassFinder.java b/usage/cli/src/main/java/org/apache/brooklyn/cli/lister/ClassFinder.java
index 9a22f83..7470392 100644
--- a/usage/cli/src/main/java/org/apache/brooklyn/cli/lister/ClassFinder.java
+++ b/usage/cli/src/main/java/org/apache/brooklyn/cli/lister/ClassFinder.java
@@ -26,6 +26,7 @@ import java.util.Collection;
import java.util.List;
import java.util.Set;
+import org.apache.brooklyn.api.basic.BrooklynObject;
import org.apache.brooklyn.policy.Enricher;
import org.apache.brooklyn.policy.Policy;
import org.reflections.Reflections;
@@ -36,7 +37,6 @@ import org.reflections.util.ConfigurationBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import brooklyn.basic.BrooklynObject;
import brooklyn.enricher.basic.AbstractEnricher;
import brooklyn.entity.Application;
import brooklyn.entity.Entity;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/usage/cli/src/main/java/org/apache/brooklyn/cli/lister/ItemDescriptors.java
----------------------------------------------------------------------
diff --git a/usage/cli/src/main/java/org/apache/brooklyn/cli/lister/ItemDescriptors.java b/usage/cli/src/main/java/org/apache/brooklyn/cli/lister/ItemDescriptors.java
index d7e2c8c..17a9ffd 100644
--- a/usage/cli/src/main/java/org/apache/brooklyn/cli/lister/ItemDescriptors.java
+++ b/usage/cli/src/main/java/org/apache/brooklyn/cli/lister/ItemDescriptors.java
@@ -28,16 +28,19 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import brooklyn.basic.BrooklynDynamicType;
-import brooklyn.basic.BrooklynObject;
-import brooklyn.basic.BrooklynType;
import brooklyn.basic.BrooklynTypes;
+
+import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.basic.BrooklynType;
import org.apache.brooklyn.catalog.Catalog;
+
import brooklyn.config.ConfigKey;
import brooklyn.entity.Effector;
import brooklyn.entity.EntityType;
import brooklyn.entity.basic.BrooklynConfigKeys;
import brooklyn.event.Sensor;
import brooklyn.location.LocationResolver;
+
import org.apache.brooklyn.rest.domain.EffectorSummary;
import org.apache.brooklyn.rest.domain.EntityConfigSummary;
import org.apache.brooklyn.rest.domain.SensorSummary;
@@ -45,6 +48,7 @@ import org.apache.brooklyn.rest.domain.SummaryComparators;
import org.apache.brooklyn.rest.transform.EffectorTransformer;
import org.apache.brooklyn.rest.transform.EntityTransformer;
import org.apache.brooklyn.rest.transform.SensorTransformer;
+
import brooklyn.util.exceptions.RuntimeInterruptedException;
import com.google.common.base.Strings;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9bb882c5/usage/rest-api/src/main/java/org/apache/brooklyn/rest/domain/SummaryComparators.java
----------------------------------------------------------------------
diff --git a/usage/rest-api/src/main/java/org/apache/brooklyn/rest/domain/SummaryComparators.java b/usage/rest-api/src/main/java/org/apache/brooklyn/rest/domain/SummaryComparators.java
index 857716a..8d96efd 100644
--- a/usage/rest-api/src/main/java/org/apache/brooklyn/rest/domain/SummaryComparators.java
+++ b/usage/rest-api/src/main/java/org/apache/brooklyn/rest/domain/SummaryComparators.java
@@ -22,7 +22,8 @@ import java.util.Comparator;
import javax.annotation.Nonnull;
-import brooklyn.basic.BrooklynObject;
+import org.apache.brooklyn.api.basic.BrooklynObject;
+
import brooklyn.util.text.NaturalOrderComparator;
import brooklyn.util.text.Strings;