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 05:32:15 UTC

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

[BROOKLYN-162] Rename ./api/catalog; 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/b6ef4533
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/b6ef4533
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/b6ef4533

Branch: refs/heads/master
Commit: b6ef45330f86ffe09f727bc1236d82c1d546b192
Parents: ee12c77
Author: Hadrian Zbarcea <ha...@apache.org>
Authored: Wed Aug 12 23:11:27 2015 -0400
Committer: Hadrian Zbarcea <ha...@apache.org>
Committed: Wed Aug 12 23:11:27 2015 -0400

----------------------------------------------------------------------
 .../brooklyn/api/catalog/BrooklynCatalog.java   | 158 +++++++++++++++++++
 .../apache/brooklyn/api/catalog/Catalog.java    |  42 +++++
 .../brooklyn/api/catalog/CatalogConfig.java     |  38 +++++
 .../brooklyn/api/catalog/CatalogItem.java       | 107 +++++++++++++
 .../api/entity/rebind/BrooklynObjectType.java   |   2 +-
 .../entity/rebind/RebindExceptionHandler.java   |   2 +-
 .../brooklyn/catalog/BrooklynCatalog.java       | 158 -------------------
 .../org/apache/brooklyn/catalog/Catalog.java    |  42 -----
 .../apache/brooklyn/catalog/CatalogConfig.java  |  38 -----
 .../apache/brooklyn/catalog/CatalogItem.java    | 107 -------------
 .../brooklyn/management/ManagementContext.java  |   2 +-
 .../mementos/BrooklynMementoPersister.java      |   2 +-
 .../brooklyn/mementos/CatalogItemMemento.java   |   2 +-
 .../src/main/java/brooklyn/BrooklynVersion.java |   2 +-
 .../brooklyn/catalog/CatalogPredicates.java     |   4 +-
 .../catalog/internal/BasicBrooklynCatalog.java  |   8 +-
 .../catalog/internal/CatalogBundleDto.java      |   2 +-
 .../catalog/internal/CatalogClasspathDo.java    |   4 +-
 .../brooklyn/catalog/internal/CatalogDto.java   |   2 +-
 .../catalog/internal/CatalogInitialization.java |   2 +-
 .../catalog/internal/CatalogItemBuilder.java    |   2 +-
 .../catalog/internal/CatalogItemComparator.java |   3 +-
 .../catalog/internal/CatalogItemDo.java         |   2 +-
 .../internal/CatalogItemDtoAbstract.java        |   2 +-
 .../catalog/internal/CatalogLibrariesDo.java    |   2 +-
 .../catalog/internal/CatalogLibrariesDto.java   |   2 +-
 .../brooklyn/catalog/internal/CatalogUtils.java |   6 +-
 .../rebind/ImmediateDeltaChangeListener.java    |   2 +-
 .../rebind/PeriodicDeltaChangeListener.java     |   2 +-
 .../entity/rebind/RebindContextImpl.java        |   2 +-
 .../rebind/RebindContextLookupContext.java      |   2 +-
 .../rebind/RebindExceptionHandlerImpl.java      |   2 +-
 .../brooklyn/entity/rebind/RebindIteration.java |   4 +-
 .../rebind/dto/BasicCatalogItemMemento.java     |   2 +-
 .../entity/rebind/dto/MementosGenerators.java   |   2 +-
 .../BrooklynMementoPersisterToObjectStore.java  |   2 +-
 .../persister/BrooklynPersistenceUtils.java     |   2 +-
 .../CatalogItemLibrariesConverter.java          |   5 +-
 .../rebind/persister/XmlMementoSerializer.java  |   2 +-
 .../location/basic/BasicLocationRegistry.java   |   4 +-
 .../location/basic/CatalogLocationResolver.java |   2 +-
 .../OsgiBrooklynClassLoadingContext.java        |   4 +-
 .../brooklyn/management/ha/OsgiManager.java     |   2 +-
 .../internal/AbstractManagementContext.java     |   4 +-
 .../NonDeploymentManagementContext.java         |   2 +-
 .../src/main/java/brooklyn/util/osgi/Osgis.java |   2 +-
 .../brooklyn/camp/lite/CampYamlLiteTest.java    |   4 +-
 .../catalog/internal/CatalogDtoTest.java        |   3 +-
 .../internal/CatalogItemComparatorTest.java     |   3 +-
 .../catalog/internal/CatalogLoadTest.java       |   2 +-
 .../catalog/internal/CatalogScanTest.java       |   4 +-
 .../catalog/internal/CatalogTestUtils.java      |   2 +-
 .../catalog/internal/CatalogVersioningTest.java |   5 +-
 .../catalog/internal/MyCatalogItems.java        |   3 +-
 .../rebind/ActivePartialRebindVersionTest.java  |   2 +-
 .../entity/rebind/RebindCatalogItemTest.java    |   4 +-
 ...talogWhenCatalogPersistenceDisabledTest.java |   2 +-
 .../entity/rebind/RebindTestFixture.java        |   4 +-
 .../persister/XmlMementoSerializerTest.java     |   2 +-
 .../osgi/OsgiVersionMoreEntityTest.java         |   2 +-
 .../brooklyn/demo/GlobalWebFabricExample.java   |   4 +-
 .../brooklyn/demo/CumulusRDFApplication.java    |   4 +-
 .../demo/HighAvailabilityCassandraCluster.java  |   4 +-
 .../brooklyn/demo/ResilientMongoDbApp.java      |   2 +-
 .../brooklyn/demo/RiakClusterExample.java       |   4 +-
 .../apache/brooklyn/demo/StormSampleApp.java    |   2 +-
 .../brooklyn/demo/WideAreaCassandraCluster.java |   4 +-
 .../brooklyn/demo/NodeJsTodoApplication.java    |   2 +-
 .../demo/WebClusterDatabaseExampleApp.java      |   4 +-
 .../java/brooklyn/enricher/DeltaEnricher.java   |   2 +-
 .../brooklyn/enricher/RollingMeanEnricher.java  |   2 +-
 .../enricher/TimeFractionDeltaEnricher.java     |   2 +-
 .../policy/autoscaling/AutoScalerPolicy.java    |   2 +-
 .../policy/ha/ConnectionFailureDetector.java    |   2 +-
 .../brooklyn/policy/ha/ServiceReplacer.java     |   2 +-
 .../brooklyn/policy/ha/ServiceRestarter.java    |   2 +-
 .../policy/ha/SshMachineFailureDetector.java    |   2 +-
 .../entity/basic/VanillaSoftwareProcess.java    |   2 +-
 .../brooklynnode/BrooklynEntityMirror.java      |   2 +-
 .../entity/brooklynnode/BrooklynNode.java       |   2 +-
 .../brooklyn/entity/machine/MachineEntity.java  |   2 +-
 .../java/brooklyn/entity/pool/ServerPool.java   |   2 +-
 .../entity/database/mariadb/MariaDbNode.java    |   2 +-
 .../entity/database/mysql/MySqlCluster.java     |   2 +-
 .../entity/database/mysql/MySqlNode.java        |   2 +-
 .../database/postgresql/PostgreSqlNode.java     |   2 +-
 .../entity/database/rubyrep/RubyRepNode.java    |   2 +-
 .../messaging/activemq/ActiveMQBroker.java      |   2 +-
 .../entity/messaging/kafka/KafkaCluster.java    |   2 +-
 .../entity/messaging/qpid/QpidBroker.java       |   2 +-
 .../entity/messaging/rabbit/RabbitBroker.java   |   2 +-
 .../brooklyn/entity/messaging/storm/Storm.java  |   2 +-
 .../entity/messaging/storm/StormDeployment.java |   2 +-
 .../entity/zookeeper/ZooKeeperEnsemble.java     |   2 +-
 .../entity/zookeeper/ZooKeeperNode.java         |   2 +-
 .../entity/monitoring/monit/MonitNode.java      |   2 +-
 .../entity/network/bind/BindDnsServer.java      |   2 +-
 .../nosql/cassandra/CassandraDatacenter.java    |   2 +-
 .../entity/nosql/cassandra/CassandraFabric.java |   2 +-
 .../entity/nosql/cassandra/CassandraNode.java   |   2 +-
 .../nosql/couchbase/CouchbaseCluster.java       |   2 +-
 .../entity/nosql/couchbase/CouchbaseNode.java   |   2 +-
 .../entity/nosql/couchdb/CouchDBNode.java       |   2 +-
 .../elasticsearch/ElasticSearchCluster.java     |   2 +-
 .../nosql/elasticsearch/ElasticSearchNode.java  |   2 +-
 .../entity/nosql/mongodb/MongoDBServer.java     |   2 +-
 .../nosql/mongodb/sharding/MongoDBRouter.java   |   2 +-
 .../sharding/MongoDBShardedDeployment.java      |   2 +-
 .../entity/nosql/redis/RedisCluster.java        |   2 +-
 .../brooklyn/entity/nosql/redis/RedisStore.java |   2 +-
 .../brooklyn/entity/nosql/riak/RiakCluster.java |   2 +-
 .../brooklyn/entity/nosql/riak/RiakNode.java    |   2 +-
 .../brooklyn/entity/nosql/solr/SolrServer.java  |   2 +-
 .../entity/osgi/karaf/KarafContainer.java       |   2 +-
 .../entity/proxy/nginx/NginxController.java     |   2 +-
 .../webapp/ControlledDynamicWebAppCluster.java  |   2 +-
 .../entity/webapp/DynamicWebAppCluster.java     |   2 +-
 .../entity/webapp/jboss/JBoss6Server.java       |   2 +-
 .../entity/webapp/jboss/JBoss7Server.java       |   2 +-
 .../entity/webapp/jetty/Jetty6Server.java       |   2 +-
 .../webapp/nodejs/NodeJsWebAppService.java      |   2 +-
 .../entity/webapp/tomcat/Tomcat8Server.java     |   2 +-
 .../entity/webapp/tomcat/TomcatServer.java      |   2 +-
 .../com/acme/sample/brooklyn/SampleMain.java    |   2 +-
 .../app/ClusterWebServerDatabaseSample.java     |   4 +-
 .../BrooklynAssemblyTemplateInstantiator.java   |   2 +-
 .../BrooklynComponentTemplateResolver.java      |   2 +-
 .../BrooklynEntityDecorationResolver.java       |   4 +-
 .../service/BrooklynServiceTypeResolver.java    |   2 +-
 .../service/ChefServiceTypeResolver.java        |   2 +-
 .../creation/service/ServiceTypeResolver.java   |   2 +-
 .../lookup/AbstractTemplateBrooklynLookup.java  |   2 +-
 .../lookup/AssemblyTemplateBrooklynLookup.java  |   2 +-
 ...PlatformComponentTemplateBrooklynLookup.java |   2 +-
 .../CatalogOsgiVersionMoreEntityTest.java       |   6 +-
 .../brooklyn/catalog/CatalogYamlCombiTest.java  |   2 +-
 .../brooklyn/catalog/CatalogYamlEntityTest.java |   4 +-
 .../catalog/CatalogYamlLocationTest.java        |   4 +-
 .../brooklyn/catalog/CatalogYamlPolicyTest.java |   2 +-
 .../catalog/CatalogYamlTemplateTest.java        |   6 +-
 .../catalog/CatalogYamlVersioningTest.java      |   4 +-
 .../org/apache/brooklyn/cli/AbstractMain.java   |   4 +-
 .../org/apache/brooklyn/cli/ItemLister.java     |   2 +-
 .../main/java/org/apache/brooklyn/cli/Main.java |   6 +-
 .../brooklyn/cli/lister/ItemDescriptors.java    |   2 +-
 .../BrooklynLauncherRebindCatalogTest.java      |   4 +-
 .../rest/resources/CatalogResource.java         |   4 +-
 .../rest/resources/LocationResource.java        |   4 +-
 .../rest/transform/CatalogTransformer.java      |   4 +-
 .../rest/transform/EntityTransformer.java       |   2 +-
 .../rest/util/BrooklynRestResourceUtils.java    |   4 +-
 .../rest/resources/CatalogResetTest.java        |   4 +-
 .../rest/resources/CatalogResourceTest.java     |   5 +-
 .../util/BrooklynRestResourceUtilsTest.java     |   2 +-
 .../brooklyn/osgi/tests/more/MorePolicy.java    |   3 +-
 .../brooklyn/osgi/tests/more/MoreEntity.java    |   2 +-
 .../brooklyn/osgi/tests/more/MoreLocation.java  |   2 +-
 .../brooklyn/osgi/tests/more/MorePolicy.java    |   2 +-
 .../brooklyn/osgi/tests/more/MoreTemplate.java  |   2 +-
 159 files changed, 546 insertions(+), 538 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/api/src/main/java/org/apache/brooklyn/api/catalog/BrooklynCatalog.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/catalog/BrooklynCatalog.java b/api/src/main/java/org/apache/brooklyn/api/catalog/BrooklynCatalog.java
new file mode 100644
index 0000000..00ce2e7
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/catalog/BrooklynCatalog.java
@@ -0,0 +1,158 @@
+/*
+ * 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.catalog;
+
+import java.util.Collection;
+import java.util.NoSuchElementException;
+
+import com.google.common.base.Predicate;
+
+public interface BrooklynCatalog {
+    static String DEFAULT_VERSION = "0.0.0_DEFAULT_VERSION";
+
+    /** @return The item with the given {@link brooklyn.catalog.CatalogItem#getSymbolicName()
+     * symbolicName}, or null if not found.
+     * @deprecated since 0.7.0 use {@link #getCatalogItem(String, String)};
+     * or see also CatalogUtils getCatalogItemOptionalVersion */
+    @Deprecated
+    CatalogItem<?,?> getCatalogItem(String symbolicName);
+
+    /** @return The item with the given {@link brooklyn.catalog.CatalogItem#getSymbolicName()
+     * symbolicName}, or null if not found. */
+    CatalogItem<?,?> getCatalogItem(String symbolicName, String version);
+
+    /** @return Deletes the item with the given
+     *  {@link brooklyn.catalog.CatalogItem#getSymbolicName() symbolicName}
+     * @throws NoSuchElementException if not found
+     * @deprecated since 0.7.0 use {@link #deleteCatalogItem(String, String)} */
+    @Deprecated
+    void deleteCatalogItem(String symbolicName);
+
+    /** @return Deletes the item with the given {@link brooklyn.catalog.CatalogItem#getSymbolicName()
+     * symbolicName} and version
+     * @throws NoSuchElementException if not found */
+    void deleteCatalogItem(String symbolicName, String version);
+
+    /** variant of {@link #getCatalogItem(String, String)} which checks (and casts) type for convenience
+     * (returns null if type does not match)
+     * @deprecated since 0.7.0 use {@link #getCatalogItem(Class<T>, String, String)} */
+    @Deprecated
+    <T,SpecT> CatalogItem<T,SpecT> getCatalogItem(Class<T> type, String symbolicName);
+
+    /** variant of {@link #getCatalogItem(String, String)} which checks (and casts) type for convenience
+     * (returns null if type does not match) */
+    <T,SpecT> CatalogItem<T,SpecT> getCatalogItem(Class<T> type, String symbolicName, String version);
+
+    /** @return All items in the catalog */
+    <T,SpecT> Iterable<CatalogItem<T,SpecT>> getCatalogItems();
+
+    /** convenience for filtering items in the catalog; see CatalogPredicates for useful filters */
+    <T,SpecT> Iterable<CatalogItem<T,SpecT>> getCatalogItems(Predicate<? super CatalogItem<T,SpecT>> filter);
+
+    /** persists the catalog item to the object store, if persistence is enabled */
+    public void persist(CatalogItem<?, ?> catalogItem);
+
+    /** @return The classloader which should be used to load classes and entities;
+     * this includes all the catalog's classloaders in the right order.
+     * This is a wrapper which will update as the underlying catalog items change,
+     * so it is safe for callers to keep a handle on this. */
+    public ClassLoader getRootClassLoader();
+
+    /** creates a spec for the given catalog item, throwing exceptions if any problems */
+    // TODO this should be cached on the item and renamed getSpec(...), else we re-create it too often (every time catalog is listed)
+    <T,SpecT> SpecT createSpec(CatalogItem<T,SpecT> item);
+    
+    /** throws exceptions if any problems 
+     * @deprecated since 0.7.0 use {@link #createSpec(CatalogItem)} */
+    @Deprecated
+    <T,SpecT> Class<? extends T> loadClass(CatalogItem<T,SpecT> item);
+    /** @deprecated since 0.7.0 use {@link #createSpec(CatalogItem)} */
+    @Deprecated
+    <T> Class<? extends T> loadClassByType(String typeName, Class<T> typeClass);
+    /** @deprecated since 0.7.0 use {@link #createSpec(CatalogItem)} */
+    CatalogItem<?,?> getCatalogItemForType(String typeName);
+
+    /**
+     * Adds an item (represented in yaml) to the catalog.
+     * Fails if the same version exists in catalog.
+     *
+     * @throws IllegalArgumentException if the yaml was invalid
+     * @deprecated since 0.7.0 use {@link #addItems(String, boolean)}
+     */
+    @Deprecated
+    CatalogItem<?,?> addItem(String yaml);
+    
+    /**
+     * Adds an item (represented in yaml) to the catalog.
+     * 
+     * @param forceUpdate If true allows catalog update even when an
+     * item exists with the same symbolicName and version
+     *
+     * @throws IllegalArgumentException if the yaml was invalid
+     * @deprecated since 0.7.0 use {@link #addItems(String, boolean)}
+     */
+    @Deprecated
+    CatalogItem<?,?> addItem(String yaml, boolean forceUpdate);
+    
+    /**
+     * Adds items (represented in yaml) to the catalog.
+     * Fails if the same version exists in catalog.
+     *
+     * @throws IllegalArgumentException if the yaml was invalid
+     */
+    Iterable<? extends CatalogItem<?,?>> addItems(String yaml);
+    
+    /**
+     * Adds items (represented in yaml) to the catalog.
+     * 
+     * @param forceUpdate If true allows catalog update even when an
+     * item exists with the same symbolicName and version
+     *
+     * @throws IllegalArgumentException if the yaml was invalid
+     */
+    Iterable<? extends CatalogItem<?,?>> addItems(String yaml, boolean forceUpdate);
+    
+    /**
+     * adds an item to the 'manual' catalog;
+     * this does not update the classpath or have a record to the java Class
+     *
+     * @deprecated since 0.7.0 Construct catalogs with yaml (referencing OSGi bundles) instead
+     */
+    // TODO maybe this should stay on the API? -AH Apr 2015 
+    @Deprecated
+    void addItem(CatalogItem<?,?> item);
+
+    /**
+     * Creates a catalog item and adds it to the 'manual' catalog,
+     * with the corresponding Class definition (loaded by a classloader)
+     * registered and available in the classloader.
+     * <p>
+     * Note that the class will be available for this session only,
+     * although the record of the item will appear in the catalog DTO if exported,
+     * so it is recommended to edit the 'manual' catalog DTO if using it to
+     * generate a catalog, either adding the appropriate classpath URL or removing this entry.
+     *
+     * @deprecated since 0.7.0 Construct catalogs with OSGi bundles instead
+     */
+    @Deprecated
+    CatalogItem<?,?> addItem(Class<?> clazz);
+
+    void reset(Collection<CatalogItem<?, ?>> entries);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/api/src/main/java/org/apache/brooklyn/api/catalog/Catalog.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/catalog/Catalog.java b/api/src/main/java/org/apache/brooklyn/api/catalog/Catalog.java
new file mode 100644
index 0000000..1c6b680
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/catalog/Catalog.java
@@ -0,0 +1,42 @@
+/*
+ * 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.catalog;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/** 
+ * annotation that can be placed on an Application (template), entity or policy 
+ * to give metadata for when used in a catalog and to indicate inclusion in annotation-scanned catalogs
+ * <p>
+ * the "id" field used in the catalog is not exposed here but is always taken as the Class.getName() of the annotated item
+ * if loaded from an annotation.  (the "type" field unsurprisingly is given the same value).  
+ * {@link #name()}, if not supplied, is the SimpleName of the class.
+ */
+@Retention(value = RetentionPolicy.RUNTIME)
+@Target(value = { ElementType.TYPE })
+public @interface Catalog {
+
+    String name() default "";
+    String description() default "";
+    String iconUrl() default "";
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogConfig.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogConfig.java b/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogConfig.java
new file mode 100644
index 0000000..88d72cb
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogConfig.java
@@ -0,0 +1,38 @@
+/*
+ * 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.catalog;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(value = RetentionPolicy.RUNTIME)
+@Target(value = { ElementType.FIELD })
+public @interface CatalogConfig {
+
+    /** a label to be displayed when a config key is exposed as editable in the catalog */ 
+    String label();
+    
+    /** a priority used to determine the order in which config keys are displayed when presenting as editable in the catalog;
+     * a higher value appears higher in the list. the default is 1.
+     * (negative values may be used to indicate advanced config which might not be shown unless requested.) */ 
+    double priority() default 1;
+    
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogItem.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogItem.java b/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogItem.java
new file mode 100644
index 0000000..8b3d394
--- /dev/null
+++ b/api/src/main/java/org/apache/brooklyn/api/catalog/CatalogItem.java
@@ -0,0 +1,107 @@
+/*
+ * 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.catalog;
+
+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 com.google.common.annotations.Beta;
+
+@Beta
+public interface CatalogItem<T,SpecT> extends BrooklynObject, Rebindable {
+    
+    public static enum CatalogItemType {
+        TEMPLATE, 
+        ENTITY, 
+        POLICY,
+        LOCATION;
+    }
+    
+    public static interface CatalogBundle {
+        public String getSymbolicName();
+        public String getVersion();
+        public String getUrl();
+
+        /** @return true if the bundle reference contains both name and version*/
+        public boolean isNamed();
+    }
+
+    @Deprecated
+    public static interface CatalogItemLibraries {
+        Collection<String> getBundles();
+    }
+
+    public CatalogItemType getCatalogItemType();
+
+    /** @return The high-level type of this entity, e.g. Entity (not a specific Entity class) */
+    public Class<T> getCatalogItemJavaType();
+
+    /** @return The type of the spec e.g. EntitySpec corresponding to {@link #getCatalogItemJavaType()} */
+    public Class<SpecT> getSpecType();
+    
+    /** @return The underlying java type of the item represented, or null if not known (e.g. if it comes from yaml) */
+    @Nullable public String getJavaType();
+
+    /** @deprecated since 0.7.0. Use {@link #getDisplayName} */
+    @Deprecated
+    public String getName();
+
+    /** @deprecated since 0.7.0. Use {@link #getSymbolicName} */
+    @Deprecated
+    public String getRegisteredTypeName();
+
+    @Nullable public String getDescription();
+
+    @Nullable public String getIconUrl();
+
+    public String getSymbolicName();
+
+    public String getVersion();
+
+    public Collection<CatalogBundle> getLibraries();
+
+    public String toXmlString();
+
+    /** @return The underlying YAML for this item, if known; 
+     * currently including `services:` or `brooklyn.policies:` prefix (but this will likely be removed) */
+    @Nullable public String getPlanYaml();
+
+    @Override
+    RebindSupport<CatalogItemMemento> getRebindSupport();
+    
+    /** Built up from {@link #getSymbolicName()} and {@link #getVersion()}.
+     * 
+     * (It is a bit self-referential having this method on this type of {@link BrooklynObject},
+     * but it is easier this than making the interface hierarchy more complicated.) */
+    @Override
+    public String getCatalogItemId();
+
+    public void setDeprecated(boolean deprecated);
+
+    /**
+     * @return True if the item has been deprecated and should not be shown in the catalog
+     */
+    boolean isDeprecated();
+}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/api/src/main/java/org/apache/brooklyn/api/entity/rebind/BrooklynObjectType.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/entity/rebind/BrooklynObjectType.java b/api/src/main/java/org/apache/brooklyn/api/entity/rebind/BrooklynObjectType.java
index 03323e9..56883fd 100644
--- a/api/src/main/java/org/apache/brooklyn/api/entity/rebind/BrooklynObjectType.java
+++ b/api/src/main/java/org/apache/brooklyn/api/entity/rebind/BrooklynObjectType.java
@@ -19,9 +19,9 @@
 package org.apache.brooklyn.api.entity.rebind;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.Feed;
-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/b6ef4533/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindExceptionHandler.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindExceptionHandler.java b/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindExceptionHandler.java
index 7feae31..39d3613 100644
--- a/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindExceptionHandler.java
+++ b/api/src/main/java/org/apache/brooklyn/api/entity/rebind/RebindExceptionHandler.java
@@ -21,10 +21,10 @@ package org.apache.brooklyn.api.entity.rebind;
 import java.util.List;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.Feed;
 import org.apache.brooklyn.api.entity.basic.EntityLocal;
-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/b6ef4533/api/src/main/java/org/apache/brooklyn/catalog/BrooklynCatalog.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/catalog/BrooklynCatalog.java b/api/src/main/java/org/apache/brooklyn/catalog/BrooklynCatalog.java
deleted file mode 100644
index 619b454..0000000
--- a/api/src/main/java/org/apache/brooklyn/catalog/BrooklynCatalog.java
+++ /dev/null
@@ -1,158 +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 org.apache.brooklyn.catalog;
-
-import java.util.Collection;
-import java.util.NoSuchElementException;
-
-import com.google.common.base.Predicate;
-
-public interface BrooklynCatalog {
-    static String DEFAULT_VERSION = "0.0.0_DEFAULT_VERSION";
-
-    /** @return The item with the given {@link brooklyn.catalog.CatalogItem#getSymbolicName()
-     * symbolicName}, or null if not found.
-     * @deprecated since 0.7.0 use {@link #getCatalogItem(String, String)};
-     * or see also CatalogUtils getCatalogItemOptionalVersion */
-    @Deprecated
-    CatalogItem<?,?> getCatalogItem(String symbolicName);
-
-    /** @return The item with the given {@link brooklyn.catalog.CatalogItem#getSymbolicName()
-     * symbolicName}, or null if not found. */
-    CatalogItem<?,?> getCatalogItem(String symbolicName, String version);
-
-    /** @return Deletes the item with the given
-     *  {@link brooklyn.catalog.CatalogItem#getSymbolicName() symbolicName}
-     * @throws NoSuchElementException if not found
-     * @deprecated since 0.7.0 use {@link #deleteCatalogItem(String, String)} */
-    @Deprecated
-    void deleteCatalogItem(String symbolicName);
-
-    /** @return Deletes the item with the given {@link brooklyn.catalog.CatalogItem#getSymbolicName()
-     * symbolicName} and version
-     * @throws NoSuchElementException if not found */
-    void deleteCatalogItem(String symbolicName, String version);
-
-    /** variant of {@link #getCatalogItem(String, String)} which checks (and casts) type for convenience
-     * (returns null if type does not match)
-     * @deprecated since 0.7.0 use {@link #getCatalogItem(Class<T>, String, String)} */
-    @Deprecated
-    <T,SpecT> CatalogItem<T,SpecT> getCatalogItem(Class<T> type, String symbolicName);
-
-    /** variant of {@link #getCatalogItem(String, String)} which checks (and casts) type for convenience
-     * (returns null if type does not match) */
-    <T,SpecT> CatalogItem<T,SpecT> getCatalogItem(Class<T> type, String symbolicName, String version);
-
-    /** @return All items in the catalog */
-    <T,SpecT> Iterable<CatalogItem<T,SpecT>> getCatalogItems();
-
-    /** convenience for filtering items in the catalog; see CatalogPredicates for useful filters */
-    <T,SpecT> Iterable<CatalogItem<T,SpecT>> getCatalogItems(Predicate<? super CatalogItem<T,SpecT>> filter);
-
-    /** persists the catalog item to the object store, if persistence is enabled */
-    public void persist(CatalogItem<?, ?> catalogItem);
-
-    /** @return The classloader which should be used to load classes and entities;
-     * this includes all the catalog's classloaders in the right order.
-     * This is a wrapper which will update as the underlying catalog items change,
-     * so it is safe for callers to keep a handle on this. */
-    public ClassLoader getRootClassLoader();
-
-    /** creates a spec for the given catalog item, throwing exceptions if any problems */
-    // TODO this should be cached on the item and renamed getSpec(...), else we re-create it too often (every time catalog is listed)
-    <T,SpecT> SpecT createSpec(CatalogItem<T,SpecT> item);
-    
-    /** throws exceptions if any problems 
-     * @deprecated since 0.7.0 use {@link #createSpec(CatalogItem)} */
-    @Deprecated
-    <T,SpecT> Class<? extends T> loadClass(CatalogItem<T,SpecT> item);
-    /** @deprecated since 0.7.0 use {@link #createSpec(CatalogItem)} */
-    @Deprecated
-    <T> Class<? extends T> loadClassByType(String typeName, Class<T> typeClass);
-    /** @deprecated since 0.7.0 use {@link #createSpec(CatalogItem)} */
-    CatalogItem<?,?> getCatalogItemForType(String typeName);
-
-    /**
-     * Adds an item (represented in yaml) to the catalog.
-     * Fails if the same version exists in catalog.
-     *
-     * @throws IllegalArgumentException if the yaml was invalid
-     * @deprecated since 0.7.0 use {@link #addItems(String, boolean)}
-     */
-    @Deprecated
-    CatalogItem<?,?> addItem(String yaml);
-    
-    /**
-     * Adds an item (represented in yaml) to the catalog.
-     * 
-     * @param forceUpdate If true allows catalog update even when an
-     * item exists with the same symbolicName and version
-     *
-     * @throws IllegalArgumentException if the yaml was invalid
-     * @deprecated since 0.7.0 use {@link #addItems(String, boolean)}
-     */
-    @Deprecated
-    CatalogItem<?,?> addItem(String yaml, boolean forceUpdate);
-    
-    /**
-     * Adds items (represented in yaml) to the catalog.
-     * Fails if the same version exists in catalog.
-     *
-     * @throws IllegalArgumentException if the yaml was invalid
-     */
-    Iterable<? extends CatalogItem<?,?>> addItems(String yaml);
-    
-    /**
-     * Adds items (represented in yaml) to the catalog.
-     * 
-     * @param forceUpdate If true allows catalog update even when an
-     * item exists with the same symbolicName and version
-     *
-     * @throws IllegalArgumentException if the yaml was invalid
-     */
-    Iterable<? extends CatalogItem<?,?>> addItems(String yaml, boolean forceUpdate);
-    
-    /**
-     * adds an item to the 'manual' catalog;
-     * this does not update the classpath or have a record to the java Class
-     *
-     * @deprecated since 0.7.0 Construct catalogs with yaml (referencing OSGi bundles) instead
-     */
-    // TODO maybe this should stay on the API? -AH Apr 2015 
-    @Deprecated
-    void addItem(CatalogItem<?,?> item);
-
-    /**
-     * Creates a catalog item and adds it to the 'manual' catalog,
-     * with the corresponding Class definition (loaded by a classloader)
-     * registered and available in the classloader.
-     * <p>
-     * Note that the class will be available for this session only,
-     * although the record of the item will appear in the catalog DTO if exported,
-     * so it is recommended to edit the 'manual' catalog DTO if using it to
-     * generate a catalog, either adding the appropriate classpath URL or removing this entry.
-     *
-     * @deprecated since 0.7.0 Construct catalogs with OSGi bundles instead
-     */
-    @Deprecated
-    CatalogItem<?,?> addItem(Class<?> clazz);
-
-    void reset(Collection<CatalogItem<?, ?>> entries);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/api/src/main/java/org/apache/brooklyn/catalog/Catalog.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/catalog/Catalog.java b/api/src/main/java/org/apache/brooklyn/catalog/Catalog.java
deleted file mode 100644
index 92498ac..0000000
--- a/api/src/main/java/org/apache/brooklyn/catalog/Catalog.java
+++ /dev/null
@@ -1,42 +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 org.apache.brooklyn.catalog;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/** 
- * annotation that can be placed on an Application (template), entity or policy 
- * to give metadata for when used in a catalog and to indicate inclusion in annotation-scanned catalogs
- * <p>
- * the "id" field used in the catalog is not exposed here but is always taken as the Class.getName() of the annotated item
- * if loaded from an annotation.  (the "type" field unsurprisingly is given the same value).  
- * {@link #name()}, if not supplied, is the SimpleName of the class.
- */
-@Retention(value = RetentionPolicy.RUNTIME)
-@Target(value = { ElementType.TYPE })
-public @interface Catalog {
-
-    String name() default "";
-    String description() default "";
-    String iconUrl() default "";
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/api/src/main/java/org/apache/brooklyn/catalog/CatalogConfig.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/catalog/CatalogConfig.java b/api/src/main/java/org/apache/brooklyn/catalog/CatalogConfig.java
deleted file mode 100644
index adf1336..0000000
--- a/api/src/main/java/org/apache/brooklyn/catalog/CatalogConfig.java
+++ /dev/null
@@ -1,38 +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 org.apache.brooklyn.catalog;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Retention(value = RetentionPolicy.RUNTIME)
-@Target(value = { ElementType.FIELD })
-public @interface CatalogConfig {
-
-    /** a label to be displayed when a config key is exposed as editable in the catalog */ 
-    String label();
-    
-    /** a priority used to determine the order in which config keys are displayed when presenting as editable in the catalog;
-     * a higher value appears higher in the list. the default is 1.
-     * (negative values may be used to indicate advanced config which might not be shown unless requested.) */ 
-    double priority() default 1;
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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
deleted file mode 100644
index 7ef1570..0000000
--- a/api/src/main/java/org/apache/brooklyn/catalog/CatalogItem.java
+++ /dev/null
@@ -1,107 +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 org.apache.brooklyn.catalog;
-
-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 com.google.common.annotations.Beta;
-
-@Beta
-public interface CatalogItem<T,SpecT> extends BrooklynObject, Rebindable {
-    
-    public static enum CatalogItemType {
-        TEMPLATE, 
-        ENTITY, 
-        POLICY,
-        LOCATION;
-    }
-    
-    public static interface CatalogBundle {
-        public String getSymbolicName();
-        public String getVersion();
-        public String getUrl();
-
-        /** @return true if the bundle reference contains both name and version*/
-        public boolean isNamed();
-    }
-
-    @Deprecated
-    public static interface CatalogItemLibraries {
-        Collection<String> getBundles();
-    }
-
-    public CatalogItemType getCatalogItemType();
-
-    /** @return The high-level type of this entity, e.g. Entity (not a specific Entity class) */
-    public Class<T> getCatalogItemJavaType();
-
-    /** @return The type of the spec e.g. EntitySpec corresponding to {@link #getCatalogItemJavaType()} */
-    public Class<SpecT> getSpecType();
-    
-    /** @return The underlying java type of the item represented, or null if not known (e.g. if it comes from yaml) */
-    @Nullable public String getJavaType();
-
-    /** @deprecated since 0.7.0. Use {@link #getDisplayName} */
-    @Deprecated
-    public String getName();
-
-    /** @deprecated since 0.7.0. Use {@link #getSymbolicName} */
-    @Deprecated
-    public String getRegisteredTypeName();
-
-    @Nullable public String getDescription();
-
-    @Nullable public String getIconUrl();
-
-    public String getSymbolicName();
-
-    public String getVersion();
-
-    public Collection<CatalogBundle> getLibraries();
-
-    public String toXmlString();
-
-    /** @return The underlying YAML for this item, if known; 
-     * currently including `services:` or `brooklyn.policies:` prefix (but this will likely be removed) */
-    @Nullable public String getPlanYaml();
-
-    @Override
-    RebindSupport<CatalogItemMemento> getRebindSupport();
-    
-    /** Built up from {@link #getSymbolicName()} and {@link #getVersion()}.
-     * 
-     * (It is a bit self-referential having this method on this type of {@link BrooklynObject},
-     * but it is easier this than making the interface hierarchy more complicated.) */
-    @Override
-    public String getCatalogItemId();
-
-    public void setDeprecated(boolean deprecated);
-
-    /**
-     * @return True if the item has been deprecated and should not be shown in the catalog
-     */
-    boolean isDeprecated();
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 d142711..9f9fb55 100644
--- a/api/src/main/java/org/apache/brooklyn/management/ManagementContext.java
+++ b/api/src/main/java/org/apache/brooklyn/management/ManagementContext.java
@@ -23,13 +23,13 @@ import java.net.URI;
 import java.util.Collection;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.BrooklynCatalog;
 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;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 ee3a8c1..d39f6a0 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/BrooklynMementoPersister.java
@@ -26,13 +26,13 @@ import java.util.concurrent.TimeoutException;
 import javax.annotation.Nullable;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 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;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/api/src/main/java/org/apache/brooklyn/mementos/CatalogItemMemento.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/mementos/CatalogItemMemento.java b/api/src/main/java/org/apache/brooklyn/mementos/CatalogItemMemento.java
index 5a0edda..3bf84d0 100644
--- a/api/src/main/java/org/apache/brooklyn/mementos/CatalogItemMemento.java
+++ b/api/src/main/java/org/apache/brooklyn/mementos/CatalogItemMemento.java
@@ -20,7 +20,7 @@ package org.apache.brooklyn.mementos;
 
 import java.util.Collection;
 
-import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 
 public interface CatalogItemMemento extends Memento {
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/BrooklynVersion.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/BrooklynVersion.java b/core/src/main/java/brooklyn/BrooklynVersion.java
index bc880c8..8410eeb 100644
--- a/core/src/main/java/brooklyn/BrooklynVersion.java
+++ b/core/src/main/java/brooklyn/BrooklynVersion.java
@@ -42,7 +42,7 @@ import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Maps;
 
-import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.management.ManagementContext;
 
 import brooklyn.management.classloading.OsgiBrooklynClassLoadingContext;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 2d9eb63..17c5768 100644
--- a/core/src/main/java/brooklyn/catalog/CatalogPredicates.java
+++ b/core/src/main/java/brooklyn/catalog/CatalogPredicates.java
@@ -20,11 +20,11 @@ package brooklyn.catalog;
 
 import javax.annotation.Nullable;
 
+import org.apache.brooklyn.api.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogItemType;
 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;
 import org.apache.brooklyn.policy.Policy;
 import org.apache.brooklyn.policy.PolicySpec;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 a5d5fd3..d65bd89 100644
--- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
+++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
@@ -42,10 +42,10 @@ 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;
-import org.apache.brooklyn.catalog.CatalogItem.CatalogItemType;
+import org.apache.brooklyn.api.catalog.BrooklynCatalog;
+import org.apache.brooklyn.api.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogItemType;
 import org.apache.brooklyn.management.ManagementContext;
 import org.apache.brooklyn.management.classloading.BrooklynClassLoadingContext;
 import org.apache.brooklyn.policy.Policy;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/catalog/internal/CatalogBundleDto.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogBundleDto.java b/core/src/main/java/brooklyn/catalog/internal/CatalogBundleDto.java
index b56e06b..1fb5bf3 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogBundleDto.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogBundleDto.java
@@ -21,7 +21,7 @@ package brooklyn.catalog.internal;
 import com.google.common.base.Objects;
 import com.google.common.base.Preconditions;
 
-import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
 
 public class CatalogBundleDto implements CatalogBundle {
     private String symbolicName;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 aa4e8ba..0f9bde9 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogClasspathDo.java
@@ -31,11 +31,11 @@ import javax.annotation.Nullable;
 import org.reflections.util.ClasspathHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.apache.brooklyn.api.catalog.Catalog;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 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.basic.ApplicationBuilder;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/catalog/internal/CatalogDto.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogDto.java b/core/src/main/java/brooklyn/catalog/internal/CatalogDto.java
index 5d7dfb0..535ce33 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogDto.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogDto.java
@@ -26,8 +26,8 @@ import java.util.Map;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 
-import org.apache.brooklyn.catalog.CatalogItem;
 import brooklyn.util.ResourceUtils;
 import brooklyn.util.collections.MutableList;
 import brooklyn.util.collections.MutableMap;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/catalog/internal/CatalogInitialization.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogInitialization.java b/core/src/main/java/brooklyn/catalog/internal/CatalogInitialization.java
index 0d93b6f..649b983 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogInitialization.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogInitialization.java
@@ -24,7 +24,7 @@ import java.util.List;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.management.ManagementContext;
 import org.apache.brooklyn.management.ha.ManagementNodeState;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/catalog/internal/CatalogItemBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemBuilder.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemBuilder.java
index 44ccaac..0001ac9 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemBuilder.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemBuilder.java
@@ -21,7 +21,7 @@ package brooklyn.catalog.internal;
 import java.util.Collection;
 import java.util.Collections;
 
-import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
 
 import com.google.common.base.Preconditions;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/catalog/internal/CatalogItemComparator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemComparator.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemComparator.java
index 2e8921c..8b868cc 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemComparator.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemComparator.java
@@ -23,7 +23,8 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Comparator;
 
-import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem;
+
 import brooklyn.util.text.NaturalOrderComparator;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 33aa337..2dc6570 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
@@ -25,8 +25,8 @@ import javax.annotation.Nullable;
 
 import brooklyn.basic.BrooklynObjectInternal;
 
+import org.apache.brooklyn.api.catalog.CatalogItem;
 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;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 87a5810..a3ea1b1 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
@@ -31,8 +31,8 @@ import org.slf4j.LoggerFactory;
 
 import brooklyn.basic.AbstractBrooklynObject;
 
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.rebind.RebindSupport;
-import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.mementos.CatalogItemMemento;
 
 import brooklyn.config.ConfigKey;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDo.java
index e9e171c..2adc851 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDo.java
@@ -20,7 +20,7 @@ package brooklyn.catalog.internal;
 
 import java.util.Collection;
 
-import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 
 import com.google.common.base.Preconditions;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDto.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDto.java b/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDto.java
index 1747922..47dcdd5 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDto.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogLibrariesDto.java
@@ -21,7 +21,7 @@ package brooklyn.catalog.internal;
 import java.util.Collection;
 import java.util.Collections;
 
-import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 
 import com.google.common.collect.ImmutableList;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 ea31808..a76488d 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogUtils.java
@@ -28,10 +28,10 @@ import org.slf4j.LoggerFactory;
 import brooklyn.basic.BrooklynObjectInternal;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.BrooklynCatalog;
+import org.apache.brooklyn.api.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
 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;
 import org.apache.brooklyn.management.ManagementContext;
 import org.apache.brooklyn.management.classloading.BrooklynClassLoadingContext;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 9a62c52..3039e89 100644
--- a/core/src/main/java/brooklyn/entity/rebind/ImmediateDeltaChangeListener.java
+++ b/core/src/main/java/brooklyn/entity/rebind/ImmediateDeltaChangeListener.java
@@ -24,10 +24,10 @@ import java.util.Map;
 import brooklyn.basic.BrooklynObjectInternal;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.rebind.ChangeListener;
 import org.apache.brooklyn.api.entity.rebind.PersistenceExceptionHandler;
-import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.mementos.BrooklynMementoPersister;
 import org.apache.brooklyn.mementos.CatalogItemMemento;
 import org.apache.brooklyn.mementos.EnricherMemento;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 6b79823..06dc029 100644
--- a/core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java
+++ b/core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java
@@ -33,12 +33,12 @@ import org.slf4j.LoggerFactory;
 import brooklyn.basic.BrooklynObjectInternal;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 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.ChangeListener;
 import org.apache.brooklyn.api.entity.rebind.PersistenceExceptionHandler;
-import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.management.ExecutionContext;
 import org.apache.brooklyn.management.Task;
 import org.apache.brooklyn.mementos.BrooklynMementoPersister;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 b882cc3..1d3768b 100644
--- a/core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java
+++ b/core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java
@@ -24,11 +24,11 @@ import java.util.Collection;
 import java.util.Map;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.Feed;
 import org.apache.brooklyn.api.entity.rebind.RebindContext;
 import org.apache.brooklyn.api.entity.rebind.RebindExceptionHandler;
-import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.management.ManagementContext;
 import org.apache.brooklyn.mementos.BrooklynMementoPersister.LookupContext;
 import org.apache.brooklyn.policy.Enricher;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 cec9979..e8d27d6 100644
--- a/core/src/main/java/brooklyn/entity/rebind/RebindContextLookupContext.java
+++ b/core/src/main/java/brooklyn/entity/rebind/RebindContextLookupContext.java
@@ -23,12 +23,12 @@ import javax.annotation.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 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.RebindContext;
 import org.apache.brooklyn.api.entity.rebind.RebindExceptionHandler;
-import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.management.ManagementContext;
 import org.apache.brooklyn.mementos.BrooklynMementoPersister.LookupContext;
 import org.apache.brooklyn.policy.Enricher;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 67f1cf3..5fdb335 100644
--- a/core/src/main/java/brooklyn/entity/rebind/RebindExceptionHandlerImpl.java
+++ b/core/src/main/java/brooklyn/entity/rebind/RebindExceptionHandlerImpl.java
@@ -27,6 +27,7 @@ import java.util.Set;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.Feed;
 import org.apache.brooklyn.api.entity.basic.EntityLocal;
@@ -35,7 +36,6 @@ import org.apache.brooklyn.api.entity.rebind.RebindContext;
 import org.apache.brooklyn.api.entity.rebind.RebindExceptionHandler;
 import org.apache.brooklyn.api.entity.rebind.RebindManager;
 import org.apache.brooklyn.api.entity.rebind.RebindManager.RebindFailureMode;
-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/b6ef4533/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 9c7b67d..1f3f0cb 100644
--- a/core/src/main/java/brooklyn/entity/rebind/RebindIteration.java
+++ b/core/src/main/java/brooklyn/entity/rebind/RebindIteration.java
@@ -37,6 +37,8 @@ import brooklyn.basic.AbstractBrooklynObject;
 import brooklyn.basic.BrooklynObjectInternal;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.BrooklynCatalog;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.Application;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.Feed;
@@ -44,8 +46,6 @@ import org.apache.brooklyn.api.entity.rebind.BrooklynObjectType;
 import org.apache.brooklyn.api.entity.rebind.RebindContext;
 import org.apache.brooklyn.api.entity.rebind.RebindExceptionHandler;
 import org.apache.brooklyn.api.entity.rebind.RebindSupport;
-import org.apache.brooklyn.catalog.BrooklynCatalog;
-import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.management.classloading.BrooklynClassLoadingContext;
 import org.apache.brooklyn.management.ha.ManagementNodeState;
 import org.apache.brooklyn.mementos.BrooklynMemento;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/entity/rebind/dto/BasicCatalogItemMemento.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/dto/BasicCatalogItemMemento.java b/core/src/main/java/brooklyn/entity/rebind/dto/BasicCatalogItemMemento.java
index b8d4a07..c976f93 100644
--- a/core/src/main/java/brooklyn/entity/rebind/dto/BasicCatalogItemMemento.java
+++ b/core/src/main/java/brooklyn/entity/rebind/dto/BasicCatalogItemMemento.java
@@ -24,7 +24,7 @@ import java.util.Collections;
 import java.util.Map;
 
 import org.codehaus.jackson.annotate.JsonAutoDetect;
-import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.mementos.CatalogItemMemento;
 
 import brooklyn.catalog.internal.BasicBrooklynCatalog;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 f316fde..5399ed9 100644
--- a/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
+++ b/core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
@@ -28,13 +28,13 @@ import java.util.Set;
 import brooklyn.basic.BrooklynTypes;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.Application;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.Feed;
 import org.apache.brooklyn.api.entity.Group;
 import org.apache.brooklyn.api.event.AttributeSensor;
 import org.apache.brooklyn.api.event.AttributeSensor.SensorPersistenceMode;
-import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.management.ManagementContext;
 import org.apache.brooklyn.management.Task;
 import org.apache.brooklyn.mementos.BrooklynMemento;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 8122145..72039b6 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
@@ -38,10 +38,10 @@ import javax.annotation.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 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.catalog.CatalogItem;
 import org.apache.brooklyn.mementos.BrooklynMemento;
 import org.apache.brooklyn.mementos.BrooklynMementoManifest;
 import org.apache.brooklyn.mementos.BrooklynMementoPersister;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 c433e32..a1eb8e5 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynPersistenceUtils.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynPersistenceUtils.java
@@ -26,11 +26,11 @@ import org.slf4j.LoggerFactory;
 import brooklyn.basic.BrooklynObjectInternal;
 
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 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.catalog.CatalogItem;
 import org.apache.brooklyn.management.ManagementContext;
 import org.apache.brooklyn.management.ha.HighAvailabilityMode;
 import org.apache.brooklyn.management.ha.ManagementNodeState;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/entity/rebind/persister/CatalogItemLibrariesConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/rebind/persister/CatalogItemLibrariesConverter.java b/core/src/main/java/brooklyn/entity/rebind/persister/CatalogItemLibrariesConverter.java
index 9d97037..7a7481c 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/CatalogItemLibrariesConverter.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/CatalogItemLibrariesConverter.java
@@ -21,8 +21,9 @@ package brooklyn.entity.rebind.persister;
 import java.util.ArrayList;
 import java.util.Collection;
 
-import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
-import org.apache.brooklyn.catalog.CatalogItem.CatalogItemLibraries;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogItemLibraries;
+
 import brooklyn.catalog.internal.CatalogBundleDto;
 
 import com.thoughtworks.xstream.converters.Converter;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 b85948b..e3780d40 100644
--- a/core/src/main/java/brooklyn/entity/rebind/persister/XmlMementoSerializer.java
+++ b/core/src/main/java/brooklyn/entity/rebind/persister/XmlMementoSerializer.java
@@ -30,11 +30,11 @@ import java.util.concurrent.atomic.AtomicReference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.brooklyn.api.basic.AbstractBrooklynObjectSpec;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.Effector;
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.entity.Feed;
 import org.apache.brooklyn.api.entity.trait.Identifiable;
-import org.apache.brooklyn.catalog.CatalogItem;
 import org.apache.brooklyn.management.ManagementContext;
 import org.apache.brooklyn.management.Task;
 import org.apache.brooklyn.management.classloading.BrooklynClassLoadingContext;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/location/basic/BasicLocationRegistry.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/location/basic/BasicLocationRegistry.java b/core/src/main/java/brooklyn/location/basic/BasicLocationRegistry.java
index be93fbb..89415b5 100644
--- a/core/src/main/java/brooklyn/location/basic/BasicLocationRegistry.java
+++ b/core/src/main/java/brooklyn/location/basic/BasicLocationRegistry.java
@@ -32,8 +32,8 @@ import java.util.Set;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.brooklyn.catalog.BrooklynCatalog;
-import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.BrooklynCatalog;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.management.ManagementContext;
 
 import brooklyn.catalog.CatalogPredicates;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/location/basic/CatalogLocationResolver.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/location/basic/CatalogLocationResolver.java b/core/src/main/java/brooklyn/location/basic/CatalogLocationResolver.java
index 85d6023..0e939d2 100644
--- a/core/src/main/java/brooklyn/location/basic/CatalogLocationResolver.java
+++ b/core/src/main/java/brooklyn/location/basic/CatalogLocationResolver.java
@@ -24,7 +24,7 @@ import java.util.Map;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.management.ManagementContext;
 
 import brooklyn.catalog.internal.CatalogUtils;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java b/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java
index 28d522a..1ecf9f5 100644
--- a/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java
+++ b/core/src/main/java/brooklyn/management/classloading/OsgiBrooklynClassLoadingContext.java
@@ -22,8 +22,8 @@ import java.net.URL;
 import java.util.Collection;
 import java.util.Collections;
 
-import org.apache.brooklyn.catalog.CatalogItem;
-import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
+import org.apache.brooklyn.api.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
 import org.apache.brooklyn.management.ManagementContext;
 import org.apache.brooklyn.management.entitlement.EntitlementClass;
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/management/ha/OsgiManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/ha/OsgiManager.java b/core/src/main/java/brooklyn/management/ha/OsgiManager.java
index 1f8e243..e136a72 100644
--- a/core/src/main/java/brooklyn/management/ha/OsgiManager.java
+++ b/core/src/main/java/brooklyn/management/ha/OsgiManager.java
@@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
 
 import brooklyn.BrooklynVersion;
 
-import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
 import org.apache.brooklyn.management.ManagementContext;
 
 import brooklyn.config.BrooklynServerConfig;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 ed57b42..85f3d6d 100644
--- a/core/src/main/java/brooklyn/management/internal/AbstractManagementContext.java
+++ b/core/src/main/java/brooklyn/management/internal/AbstractManagementContext.java
@@ -35,13 +35,13 @@ import javax.annotation.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.BrooklynCatalog;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.Effector;
 import org.apache.brooklyn.api.entity.Entity;
 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.catalog.CatalogItem;
 import org.apache.brooklyn.management.ExecutionContext;
 import org.apache.brooklyn.management.ManagementContext;
 import org.apache.brooklyn.management.SubscriptionContext;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/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 6d050ca..6ce7bd9 100644
--- a/core/src/main/java/brooklyn/management/internal/NonDeploymentManagementContext.java
+++ b/core/src/main/java/brooklyn/management/internal/NonDeploymentManagementContext.java
@@ -32,6 +32,7 @@ import java.util.concurrent.TimeoutException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.brooklyn.api.basic.BrooklynObject;
+import org.apache.brooklyn.api.catalog.BrooklynCatalog;
 import org.apache.brooklyn.api.entity.Application;
 import org.apache.brooklyn.api.entity.Effector;
 import org.apache.brooklyn.api.entity.Entity;
@@ -41,7 +42,6 @@ import org.apache.brooklyn.api.entity.rebind.ChangeListener;
 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.BrooklynCatalog;
 import org.apache.brooklyn.management.AccessController;
 import org.apache.brooklyn.management.EntityManager;
 import org.apache.brooklyn.management.ExecutionContext;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/main/java/brooklyn/util/osgi/Osgis.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/util/osgi/Osgis.java b/core/src/main/java/brooklyn/util/osgi/Osgis.java
index 5e8a815..3bf972e 100644
--- a/core/src/main/java/brooklyn/util/osgi/Osgis.java
+++ b/core/src/main/java/brooklyn/util/osgi/Osgis.java
@@ -56,8 +56,8 @@ import org.osgi.framework.namespace.PackageNamespace;
 import org.osgi.framework.wiring.BundleCapability;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
 
-import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
 import brooklyn.util.ResourceUtils;
 import brooklyn.util.collections.MutableList;
 import brooklyn.util.collections.MutableMap;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/test/java/brooklyn/camp/lite/CampYamlLiteTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/camp/lite/CampYamlLiteTest.java b/core/src/test/java/brooklyn/camp/lite/CampYamlLiteTest.java
index 4e1332c..170ad45 100644
--- a/core/src/test/java/brooklyn/camp/lite/CampYamlLiteTest.java
+++ b/core/src/test/java/brooklyn/camp/lite/CampYamlLiteTest.java
@@ -45,10 +45,10 @@ import org.testng.Assert;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
+import org.apache.brooklyn.api.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
 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.CatalogBundle;
 
 import brooklyn.catalog.CatalogPredicates;
 import brooklyn.catalog.internal.BasicBrooklynCatalog;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/test/java/brooklyn/catalog/internal/CatalogDtoTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/catalog/internal/CatalogDtoTest.java b/core/src/test/java/brooklyn/catalog/internal/CatalogDtoTest.java
index e8286a6..731a2d8 100644
--- a/core/src/test/java/brooklyn/catalog/internal/CatalogDtoTest.java
+++ b/core/src/test/java/brooklyn/catalog/internal/CatalogDtoTest.java
@@ -27,8 +27,7 @@ import org.testng.Assert;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
-
-import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
 import org.apache.brooklyn.test.entity.LocalManagementContextForTests;
 import org.apache.brooklyn.test.entity.TestApplication;
 import org.apache.brooklyn.test.entity.TestEntity;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/test/java/brooklyn/catalog/internal/CatalogItemComparatorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/catalog/internal/CatalogItemComparatorTest.java b/core/src/test/java/brooklyn/catalog/internal/CatalogItemComparatorTest.java
index 7ae39ed..3e6fe6b 100644
--- a/core/src/test/java/brooklyn/catalog/internal/CatalogItemComparatorTest.java
+++ b/core/src/test/java/brooklyn/catalog/internal/CatalogItemComparatorTest.java
@@ -22,8 +22,7 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertTrue;
 
 import org.testng.annotations.Test;
-
-import org.apache.brooklyn.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 
 public class CatalogItemComparatorTest {
     private static final String RC2 = "10.5.8-rc2";

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/test/java/brooklyn/catalog/internal/CatalogLoadTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/catalog/internal/CatalogLoadTest.java b/core/src/test/java/brooklyn/catalog/internal/CatalogLoadTest.java
index 9dab77a..2e92897 100644
--- a/core/src/test/java/brooklyn/catalog/internal/CatalogLoadTest.java
+++ b/core/src/test/java/brooklyn/catalog/internal/CatalogLoadTest.java
@@ -24,8 +24,8 @@ import static org.testng.Assert.assertTrue;
 
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
 
-import org.apache.brooklyn.catalog.CatalogItem.CatalogBundle;
 import brooklyn.util.ResourceUtils;
 
 import com.google.common.base.Joiner;

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b6ef4533/core/src/test/java/brooklyn/catalog/internal/CatalogScanTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/catalog/internal/CatalogScanTest.java b/core/src/test/java/brooklyn/catalog/internal/CatalogScanTest.java
index 78cd122..8630430 100644
--- a/core/src/test/java/brooklyn/catalog/internal/CatalogScanTest.java
+++ b/core/src/test/java/brooklyn/catalog/internal/CatalogScanTest.java
@@ -26,10 +26,10 @@ import org.slf4j.LoggerFactory;
 import org.testng.Assert;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.Test;
+import org.apache.brooklyn.api.catalog.BrooklynCatalog;
+import org.apache.brooklyn.api.catalog.CatalogItem;
 import org.apache.brooklyn.api.entity.Application;
 import org.apache.brooklyn.api.entity.proxying.EntitySpec;
-import org.apache.brooklyn.catalog.BrooklynCatalog;
-import org.apache.brooklyn.catalog.CatalogItem;
 
 import brooklyn.catalog.CatalogPredicates;
 import brooklyn.catalog.internal.MyCatalogItems.MySillyAppTemplate;