/** * @deprecated since it was introduced in 0.9.0; for backwards compatibility only, may be removed * at any point */ @Deprecated public static RegisteredType of(CatalogItem<?, ?> item) { if (item == null) return null; TypeImplementationPlan impl = null; if (item.getPlanYaml() != null) { impl = new BasicTypeImplementationPlan(null, item.getPlanYaml()); } else if (item.getJavaType() != null) { impl = new JavaClassNameTypeImplementationPlan(item.getJavaType()); } else { throw new IllegalStateException( "Unsupported catalog item " + item + " when trying to create RegisteredType"); } BasicRegisteredType type = (BasicRegisteredType) spec(item.getSymbolicName(), item.getVersion(), impl, item.getCatalogItemJavaType()); type.displayName = item.getDisplayName(); type.description = item.getDescription(); type.iconUrl = item.getIconUrl(); type.disabled = item.isDisabled(); type.deprecated = item.isDeprecated(); if (item.getLibraries() != null) type.bundles.addAll(item.getLibraries()); // aliases aren't on item if (item.tags() != null) type.tags.addAll(item.tags().getTags()); // these things from item we ignore: javaType, specType, registeredTypeName ... return type; }
@Test(invocationCount = 3) public void testDeletedCatalogItemIsNotPersisted() { assertEquals(Iterables.size(origManagementContext.getCatalog().getCatalogItems()), 1); CatalogItem<Object, Object> toRemove = Iterables.getOnlyElement(origManagementContext.getCatalog().getCatalogItems()); // Must make sure that the original catalogue item is not managed and unmanaged in the same // persistence window. Because BrooklynMementoPersisterToObjectStore applies writes/deletes // asynchronously the winner is down to a race and the test might pass or fail. origManagementContext.getRebindManager().forcePersistNow(false, null); origManagementContext .getCatalog() .deleteCatalogItem(toRemove.getSymbolicName(), toRemove.getVersion()); assertEquals(Iterables.size(origManagementContext.getCatalog().getCatalogItems()), 0); rebindAndAssertCatalogsAreEqual(); assertEquals(Iterables.size(newManagementContext.getCatalog().getCatalogItems()), 0); }
/** @deprecated since 0.7.0, see {@link #newBasicMemento(BrooklynObject)} */ @Deprecated public static CatalogItemMemento newCatalogItemMemento(CatalogItem<?, ?> catalogItem) { if (catalogItem instanceof CatalogItemDo<?, ?>) { catalogItem = ((CatalogItemDo<?, ?>) catalogItem).getDto(); } BasicCatalogItemMemento.Builder builder = BasicCatalogItemMemento.builder(); populateBrooklynObjectMementoBuilder(catalogItem, builder); builder .catalogItemJavaType(catalogItem.getCatalogItemJavaType()) .catalogItemType(catalogItem.getCatalogItemType()) .description(catalogItem.getDescription()) .iconUrl(catalogItem.getIconUrl()) .javaType(catalogItem.getJavaType()) .libraries(catalogItem.getLibraries()) .symbolicName(catalogItem.getSymbolicName()) .specType(catalogItem.getSpecType()) .version(catalogItem.getVersion()) .planYaml(catalogItem.getPlanYaml()) .deprecated(catalogItem.isDeprecated()) .disabled(catalogItem.isDisabled()); return builder.build(); }