You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2014/07/18 12:00:40 UTC
[04/10] git commit: Split spec creation in separate steps to allow
re-use.
Split spec creation in separate steps to allow re-use.
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/b982e6fe
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/b982e6fe
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/b982e6fe
Branch: refs/heads/master
Commit: b982e6fea941b499b21736f12bddaa55437f3e38
Parents: 918a268
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Wed Jul 16 11:22:16 2014 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Wed Jul 16 13:20:22 2014 +0300
----------------------------------------------------------------------
.../creation/BrooklynComponentTemplateResolver.java | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b982e6fe/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
index 7bd71f6..9d3f43c 100644
--- a/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
+++ b/usage/camp/src/main/java/io/brooklyn/camp/brooklyn/spi/creation/BrooklynComponentTemplateResolver.java
@@ -218,11 +218,18 @@ public class BrooklynComponentTemplateResolver {
}
/** resolves the spec, updating the loader if a catalog item is loaded */
- @SuppressWarnings("unchecked")
public <T extends Entity> EntitySpec<T> resolveSpec() {
if (alreadyBuilt.getAndSet(true))
throw new IllegalStateException("Spec can only be used once: "+this);
+
+ EntitySpec<T> spec = createSpec();
+ populateSpec(spec);
+
+ return spec;
+ }
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ private <T extends Entity> EntitySpec<T> createSpec() {
// ensure loader is updated
getCatalogItem();
@@ -238,7 +245,11 @@ public class BrooklynComponentTemplateResolver {
List<Class<?>> additionalInterfaceClazzes = Reflections.getAllInterfaces(type);
spec = EntitySpec.create(interfaceclazz).impl(type).additionalInterfaces(additionalInterfaceClazzes);
}
+ return spec;
+ }
+ //called from BrooklynAssemblyTemplateInstantiator as well
+ protected <T extends Entity> void populateSpec(EntitySpec<T> spec) {
String name, templateId=null, planId=null;
if (template.isPresent()) {
name = template.get().getName();
@@ -262,8 +273,6 @@ public class BrooklynComponentTemplateResolver {
spec.locations(childLocations);
decorateSpec(spec);
-
- return spec;
}
protected <T extends Entity> void decorateSpec(EntitySpec<T> spec) {