changes to the camp builder to support pure-javac 1.7 compilation

the root cause was (from 
http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html):

> Non-static nested classes (inner classes) have access to other members of the 
> enclosing class, even if they are declared private. Static nested classes do 
> not have access to other members of the enclosing class.


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/8f55a6e3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/8f55a6e3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/8f55a6e3

Branch: refs/heads/master
Commit: 8f55a6e3fcbf9395efefb935dae4a6ccedf6c6fb
Parents: efdb672
Author: Alex Heneveld <[email protected]>
Authored: Thu Jan 29 13:16:46 2015 +0000
Committer: Andrea Turli <[email protected]>
Committed: Tue Feb 3 11:25:07 2015 +0100

----------------------------------------------------------------------
 .../io/brooklyn/camp/spi/AbstractResource.java  | 47 +++++++++-----------
 .../brooklyn/camp/spi/ApplicationComponent.java | 31 ++++++-------
 .../camp/spi/ApplicationComponentTemplate.java  |  7 +--
 .../java/io/brooklyn/camp/spi/Assembly.java     | 33 +++++++-------
 .../io/brooklyn/camp/spi/AssemblyTemplate.java  | 38 ++++++++--------
 .../io/brooklyn/camp/spi/PlatformComponent.java | 33 +++++++-------
 .../camp/spi/PlatformComponentTemplate.java     |  7 +--
 .../brooklyn/camp/spi/PlatformRootSummary.java  |  7 +--
 8 files changed, 89 insertions(+), 114 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8f55a6e3/camp/camp-base/src/main/java/io/brooklyn/camp/spi/AbstractResource.java
----------------------------------------------------------------------
diff --git 
a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/AbstractResource.java 
b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/AbstractResource.java
index 036a8d6..5f04e20 100644
--- a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/AbstractResource.java
+++ b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/AbstractResource.java
@@ -129,7 +129,7 @@ public class AbstractResource {
     // builder
     @SuppressWarnings("rawtypes")
     public static Builder<? extends AbstractResource,? extends Builder> 
builder() {
-        return new AbstractResourceBuilder(CAMP_TYPE);
+        return new AbstractResource().new AbstractResourceBuilder(CAMP_TYPE);
     }
     
     /** Builder creates the instance up front to avoid repetition of fields in 
the builder;
@@ -137,59 +137,54 @@ public class AbstractResource {
      * so effectively immutable.
      * <p>
      * Similarly setters in the class are private so those objects are also 
typically effectively immutable. */
-    public abstract static class Builder<T extends AbstractResource,U extends 
Builder<T,U>> {
+    public abstract class Builder<T extends AbstractResource,U extends 
Builder<T,U>> {
         
         private boolean built = false;
         private String type = null;
-        private T instance = null;
+        private boolean initialized = false;
         
         protected Builder(String type) {
             this.type = type;
         }
         
-        @SuppressWarnings("unchecked")
-        protected T createResource() {
-            return (T) new AbstractResource();
-        }
-        
-        protected synchronized T instance() {
+        protected final synchronized void check() {
             if (built) 
                 throw new IllegalStateException("Builder instance from 
"+this+" cannot be access after build");
-            if (instance==null) {
-                instance = createResource();
+            if (!initialized) {
+                initialized = true;
                 initialize();
             }
-            return instance;
         }
 
         protected void initialize() {
             if (type!=null) type(type);
         }
-        
+
+        @SuppressWarnings("unchecked")
         public synchronized T build() {
-            T result = instance();
+            check();
             built = true;
-            return result;
+            return (T) AbstractResource.this;
         }
         
         @SuppressWarnings("unchecked")
         protected U thisBuilder() { return (U)this; }
         
-        public U type(String x) { instance().setType(x); return thisBuilder(); 
}
-        public U id(String x) { instance().setId(x); return thisBuilder(); }
-        public U name(String x) { instance().setName(x); return thisBuilder(); 
}
-        public U description(String x) { instance().setDescription(x); return 
thisBuilder(); }
-        public U created(Date x) { instance().setCreated(x); return 
thisBuilder(); }
-        public U tags(List<String> x) { instance().setTags(x); return 
thisBuilder(); }
-        public U representationSkew(RepresentationSkew x) { 
instance().setRepresentationSkew(x); return thisBuilder(); }
-        public U customAttribute(String key, Object value) { 
instance().setCustomAttribute(key, value); return thisBuilder(); }
-        public U sourceCode(String x) { instance().setSourceCode(x); return 
thisBuilder(); }
+        public U type(String x) { check(); AbstractResource.this.setType(x); 
return thisBuilder(); }
+        public U id(String x) { check(); AbstractResource.this.setId(x); 
return thisBuilder(); }
+        public U name(String x) { check(); AbstractResource.this.setName(x); 
return thisBuilder(); }
+        public U description(String x) { check(); 
AbstractResource.this.setDescription(x); return thisBuilder(); }
+        public U created(Date x) { check(); 
AbstractResource.this.setCreated(x); return thisBuilder(); }
+        public U tags(List<String> x) { check(); 
AbstractResource.this.setTags(x); return thisBuilder(); }
+        public U representationSkew(RepresentationSkew x) { check(); 
AbstractResource.this.setRepresentationSkew(x); return thisBuilder(); }
+        public U customAttribute(String key, Object value) { check(); 
AbstractResource.this.setCustomAttribute(key, value); return thisBuilder(); }
+        public U sourceCode(String x) { check(); 
AbstractResource.this.setSourceCode(x); return thisBuilder(); }
 
 //        public String type() { return instance().type; }
     }
-
+    
     @VisibleForTesting
-    protected static class AbstractResourceBuilder extends 
Builder<AbstractResource,AbstractResourceBuilder> {
+    protected class AbstractResourceBuilder extends 
Builder<AbstractResource,AbstractResourceBuilder> {
         protected AbstractResourceBuilder(String type) {
             super(type);
         }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8f55a6e3/camp/camp-base/src/main/java/io/brooklyn/camp/spi/ApplicationComponent.java
----------------------------------------------------------------------
diff --git 
a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/ApplicationComponent.java 
b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/ApplicationComponent.java
index 2d70f9c..3e956a4 100644
--- 
a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/ApplicationComponent.java
+++ 
b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/ApplicationComponent.java
@@ -57,40 +57,37 @@ public class ApplicationComponent extends AbstractResource {
     // builder
     
     public static Builder<? extends ApplicationComponent> builder() {
-        return new Builder<ApplicationComponent>(CAMP_TYPE);
+        return new ApplicationComponent().new 
Builder<ApplicationComponent>(CAMP_TYPE);
     }
     
-    public static class Builder<T extends ApplicationComponent> extends 
AbstractResource.Builder<T,Builder<T>> {
+    public class Builder<T extends ApplicationComponent> extends 
AbstractResource.Builder<T,Builder<T>> {
         
         protected Builder(String type) { super(type); }
 
-        public Builder<T> 
applicationComponentTemplates(ResourceLookup<ApplicationComponent> x) { 
instance().setApplicationComponents(x); return thisBuilder(); }
-        public Builder<T> 
platformComponentTemplates(ResourceLookup<PlatformComponent> x) { 
instance().setPlatformComponents(x); return thisBuilder(); }
+        public Builder<T> 
applicationComponentTemplates(ResourceLookup<ApplicationComponent> x) { 
ApplicationComponent.this.setApplicationComponents(x); return thisBuilder(); }
+        public Builder<T> 
platformComponentTemplates(ResourceLookup<PlatformComponent> x) { 
ApplicationComponent.this.setPlatformComponents(x); return thisBuilder(); }
         
         public synchronized Builder<T> add(ApplicationComponent x) {
-            if (instance().applicationComponents==null) {
-                instance().applicationComponents = new 
BasicResourceLookup<ApplicationComponent>();
+            if (ApplicationComponent.this.applicationComponents==null) {
+                ApplicationComponent.this.applicationComponents = new 
BasicResourceLookup<ApplicationComponent>();
             }
-            if (!(instance().applicationComponents instanceof 
BasicResourceLookup)) {
-                throw new IllegalStateException("Cannot add to resource lookup 
"+instance().applicationComponents);
+            if (!(ApplicationComponent.this.applicationComponents instanceof 
BasicResourceLookup)) {
+                throw new IllegalStateException("Cannot add to resource lookup 
"+ApplicationComponent.this.applicationComponents);
             }
-            
((BasicResourceLookup<ApplicationComponent>)instance().applicationComponents).add(x);
+            
((BasicResourceLookup<ApplicationComponent>)ApplicationComponent.this.applicationComponents).add(x);
             return thisBuilder();
         }
         
         public synchronized Builder<T> add(PlatformComponent x) {
-            if (instance().platformComponents==null) {
-                instance().platformComponents = new 
BasicResourceLookup<PlatformComponent>();
+            if (ApplicationComponent.this.platformComponents==null) {
+                ApplicationComponent.this.platformComponents = new 
BasicResourceLookup<PlatformComponent>();
             }
-            if (!(instance().platformComponents instanceof 
BasicResourceLookup)) {
-                throw new IllegalStateException("Cannot add to resource lookup 
"+instance().platformComponents);
+            if (!(ApplicationComponent.this.platformComponents instanceof 
BasicResourceLookup)) {
+                throw new IllegalStateException("Cannot add to resource lookup 
"+ApplicationComponent.this.platformComponents);
             }
-            
((BasicResourceLookup<PlatformComponent>)instance().platformComponents).add(x);
+            
((BasicResourceLookup<PlatformComponent>)ApplicationComponent.this.platformComponents).add(x);
             return thisBuilder();
         }
-
-        @SuppressWarnings("unchecked")
-        protected T createResource() { return (T) new ApplicationComponent(); }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8f55a6e3/camp/camp-base/src/main/java/io/brooklyn/camp/spi/ApplicationComponentTemplate.java
----------------------------------------------------------------------
diff --git 
a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/ApplicationComponentTemplate.java
 
b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/ApplicationComponentTemplate.java
index 34d03f4..f3212c7 100644
--- 
a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/ApplicationComponentTemplate.java
+++ 
b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/ApplicationComponentTemplate.java
@@ -41,16 +41,13 @@ public class ApplicationComponentTemplate extends 
AbstractResource {
     // builder
     
     public static Builder<? extends ApplicationComponentTemplate> builder() {
-        return new Builder<ApplicationComponentTemplate>(CAMP_TYPE);
+        return new ApplicationComponentTemplate().new 
Builder<ApplicationComponentTemplate>(CAMP_TYPE);
     }
     
-    public static class Builder<T extends ApplicationComponentTemplate> 
extends AbstractResource.Builder<T,Builder<T>> {
+    public class Builder<T extends ApplicationComponentTemplate> extends 
AbstractResource.Builder<T,Builder<T>> {
         
         protected Builder(String type) { super(type); }
         
-        @SuppressWarnings("unchecked")
-        protected T createResource() { return (T) new 
ApplicationComponentTemplate(); }
-        
 //        public Builder<T> foo(String x) { instance().setFoo(x); return 
thisBuilder(); }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8f55a6e3/camp/camp-base/src/main/java/io/brooklyn/camp/spi/Assembly.java
----------------------------------------------------------------------
diff --git a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/Assembly.java 
b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/Assembly.java
index 991f704..15cfd51 100644
--- a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/Assembly.java
+++ b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/Assembly.java
@@ -67,39 +67,36 @@ public class Assembly extends AbstractResource {
     // builder
     
     public static Builder<? extends Assembly> builder() {
-        return new Builder<Assembly>(CAMP_TYPE);
+        return new Assembly().new Builder<Assembly>(CAMP_TYPE);
     }
     
-    public static class Builder<T extends Assembly> extends 
AbstractResource.Builder<T,Builder<T>> {
+    public class Builder<T extends Assembly> extends 
AbstractResource.Builder<T,Builder<T>> {
         
         protected Builder(String type) { super(type); }
         
-        @SuppressWarnings("unchecked")
-        protected T createResource() { return (T) new Assembly(); }
-        
-        public Builder<T> assemblyTemplate(AssemblyTemplate x) { 
instance().setAssemblyTemplate(x); return thisBuilder(); }
-        public Builder<T> 
applicationComponentTemplates(ResourceLookup<ApplicationComponent> x) { 
instance().setApplicationComponents(x); return thisBuilder(); }
-        public Builder<T> 
platformComponentTemplates(ResourceLookup<PlatformComponent> x) { 
instance().setPlatformComponents(x); return thisBuilder(); }
+        public Builder<T> assemblyTemplate(AssemblyTemplate x) { 
Assembly.this.setAssemblyTemplate(x); return thisBuilder(); }
+        public Builder<T> 
applicationComponentTemplates(ResourceLookup<ApplicationComponent> x) { 
Assembly.this.setApplicationComponents(x); return thisBuilder(); }
+        public Builder<T> 
platformComponentTemplates(ResourceLookup<PlatformComponent> x) { 
Assembly.this.setPlatformComponents(x); return thisBuilder(); }
         
         public synchronized Builder<T> add(ApplicationComponent x) {
-            if (instance().applicationComponents==null) {
-                instance().applicationComponents = new 
BasicResourceLookup<ApplicationComponent>();
+            if (Assembly.this.applicationComponents==null) {
+                Assembly.this.applicationComponents = new 
BasicResourceLookup<ApplicationComponent>();
             }
-            if (!(instance().applicationComponents instanceof 
BasicResourceLookup)) {
-                throw new IllegalStateException("Cannot add to resource lookup 
"+instance().applicationComponents);
+            if (!(Assembly.this.applicationComponents instanceof 
BasicResourceLookup)) {
+                throw new IllegalStateException("Cannot add to resource lookup 
"+Assembly.this.applicationComponents);
             }
-            
((BasicResourceLookup<ApplicationComponent>)instance().applicationComponents).add(x);
+            
((BasicResourceLookup<ApplicationComponent>)Assembly.this.applicationComponents).add(x);
             return thisBuilder();
         }
         
         public synchronized Builder<T> add(PlatformComponent x) {
-            if (instance().platformComponents==null) {
-                instance().platformComponents = new 
BasicResourceLookup<PlatformComponent>();
+            if (Assembly.this.platformComponents==null) {
+                Assembly.this.platformComponents = new 
BasicResourceLookup<PlatformComponent>();
             }
-            if (!(instance().platformComponents instanceof 
BasicResourceLookup)) {
-                throw new IllegalStateException("Cannot add to resource lookup 
"+instance().platformComponents);
+            if (!(Assembly.this.platformComponents instanceof 
BasicResourceLookup)) {
+                throw new IllegalStateException("Cannot add to resource lookup 
"+Assembly.this.platformComponents);
             }
-            
((BasicResourceLookup<PlatformComponent>)instance().platformComponents).add(x);
+            
((BasicResourceLookup<PlatformComponent>)Assembly.this.platformComponents).add(x);
             return thisBuilder();
         }
         

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8f55a6e3/camp/camp-base/src/main/java/io/brooklyn/camp/spi/AssemblyTemplate.java
----------------------------------------------------------------------
diff --git 
a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/AssemblyTemplate.java 
b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/AssemblyTemplate.java
index c308b87..4779a1c 100644
--- a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/AssemblyTemplate.java
+++ b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/AssemblyTemplate.java
@@ -70,49 +70,47 @@ public class AssemblyTemplate extends AbstractResource {
     // builder
     
     public static Builder<? extends AssemblyTemplate> builder() {
-        return new Builder<AssemblyTemplate>(CAMP_TYPE);
+        return new AssemblyTemplate().new Builder<AssemblyTemplate>(CAMP_TYPE);
     }
     
-    public static class Builder<T extends AssemblyTemplate> extends 
AbstractResource.Builder<T,Builder<T>> {
+    public class Builder<T extends AssemblyTemplate> extends 
AbstractResource.Builder<T,Builder<T>> {
         
         protected Builder(String type) { super(type); }
         
-        @SuppressWarnings("unchecked")
-        protected T createResource() { return (T) new AssemblyTemplate(); }
-        
-        public Builder<T> instantiator(Class<? extends 
AssemblyTemplateInstantiator> x) { instance().setInstantiator(x); return 
thisBuilder(); }
-        public Builder<T> 
applicationComponentTemplates(ResourceLookup<ApplicationComponentTemplate> x) { 
instance().setApplicationComponentTemplates(x); return thisBuilder(); }
-        public Builder<T> 
platformComponentTemplates(ResourceLookup<PlatformComponentTemplate> x) { 
instance().setPlatformComponentTemplates(x); return thisBuilder(); }
+        public Builder<T> instantiator(Class<? extends 
AssemblyTemplateInstantiator> x) { AssemblyTemplate.this.setInstantiator(x); 
return thisBuilder(); }
+        public Builder<T> 
applicationComponentTemplates(ResourceLookup<ApplicationComponentTemplate> x) { 
AssemblyTemplate.this.setApplicationComponentTemplates(x); return 
thisBuilder(); }
+        public Builder<T> 
platformComponentTemplates(ResourceLookup<PlatformComponentTemplate> x) { 
AssemblyTemplate.this.setPlatformComponentTemplates(x); return thisBuilder(); }
 
         /** allows callers to see the partially formed instance when needed, 
for example to query instantiators;
          *  could be replaced by specific methods as and when that is 
preferred */
-        public T peek() { return instance(); }
+        @SuppressWarnings("unchecked")
+        public T peek() { return (T) AssemblyTemplate.this; }
         
         public synchronized Builder<T> add(ApplicationComponentTemplate x) {
-            if (instance().applicationComponentTemplates==null) {
-                instance().applicationComponentTemplates = new 
BasicResourceLookup<ApplicationComponentTemplate>();
+            if (AssemblyTemplate.this.applicationComponentTemplates==null) {
+                AssemblyTemplate.this.applicationComponentTemplates = new 
BasicResourceLookup<ApplicationComponentTemplate>();
             }
-            if (!(instance().applicationComponentTemplates instanceof 
BasicResourceLookup)) {
-                throw new IllegalStateException("Cannot add to resource lookup 
"+instance().applicationComponentTemplates);
+            if (!(AssemblyTemplate.this.applicationComponentTemplates 
instanceof BasicResourceLookup)) {
+                throw new IllegalStateException("Cannot add to resource lookup 
"+AssemblyTemplate.this.applicationComponentTemplates);
             }
-            
((BasicResourceLookup<ApplicationComponentTemplate>)instance().applicationComponentTemplates).add(x);
+            
((BasicResourceLookup<ApplicationComponentTemplate>)AssemblyTemplate.this.applicationComponentTemplates).add(x);
             return thisBuilder();
         }
         
         public synchronized Builder<T> add(PlatformComponentTemplate x) {
-            if (instance().platformComponentTemplates==null) {
-                instance().platformComponentTemplates = new 
BasicResourceLookup<PlatformComponentTemplate>();
+            if (AssemblyTemplate.this.platformComponentTemplates==null) {
+                AssemblyTemplate.this.platformComponentTemplates = new 
BasicResourceLookup<PlatformComponentTemplate>();
             }
-            if (!(instance().platformComponentTemplates instanceof 
BasicResourceLookup)) {
-                throw new IllegalStateException("Cannot add to resource lookup 
"+instance().platformComponentTemplates);
+            if (!(AssemblyTemplate.this.platformComponentTemplates instanceof 
BasicResourceLookup)) {
+                throw new IllegalStateException("Cannot add to resource lookup 
"+AssemblyTemplate.this.platformComponentTemplates);
             }
-            
((BasicResourceLookup<PlatformComponentTemplate>)instance().platformComponentTemplates).add(x);
+            
((BasicResourceLookup<PlatformComponentTemplate>)AssemblyTemplate.this.platformComponentTemplates).add(x);
             return thisBuilder();
         }
         
         @Override
         public synchronized T build() {
-            Preconditions.checkNotNull(instance().instantiator);
+            Preconditions.checkNotNull(AssemblyTemplate.this.instantiator);
             return super.build();
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8f55a6e3/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformComponent.java
----------------------------------------------------------------------
diff --git 
a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformComponent.java 
b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformComponent.java
index 3e3363b..d531174 100644
--- a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformComponent.java
+++ b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformComponent.java
@@ -64,41 +64,38 @@ public class PlatformComponent extends AbstractResource {
     // builder
     
     public static Builder<? extends PlatformComponent> builder() {
-        return new Builder<PlatformComponent>(CAMP_TYPE);
+        return new PlatformComponent().new 
Builder<PlatformComponent>(CAMP_TYPE);
     }
     
-    public static class Builder<T extends PlatformComponent> extends 
AbstractResource.Builder<T,Builder<T>> {
+    public class Builder<T extends PlatformComponent> extends 
AbstractResource.Builder<T,Builder<T>> {
         
         protected Builder(String type) { super(type); }
         
-        public Builder<T> externalManagementUri(String x) { 
instance().setExternalManagementUri(x); return thisBuilder(); }
-        public Builder<T> 
applicationComponentTemplates(ResourceLookup<ApplicationComponent> x) { 
instance().setApplicationComponents(x); return thisBuilder(); }
-        public Builder<T> 
platformComponentTemplates(ResourceLookup<PlatformComponent> x) { 
instance().setPlatformComponents(x); return thisBuilder(); }
+        public Builder<T> externalManagementUri(String x) { 
PlatformComponent.this.setExternalManagementUri(x); return thisBuilder(); }
+        public Builder<T> 
applicationComponentTemplates(ResourceLookup<ApplicationComponent> x) { 
PlatformComponent.this.setApplicationComponents(x); return thisBuilder(); }
+        public Builder<T> 
platformComponentTemplates(ResourceLookup<PlatformComponent> x) { 
PlatformComponent.this.setPlatformComponents(x); return thisBuilder(); }
         
         public synchronized Builder<T> add(ApplicationComponent x) {
-            if (instance().applicationComponents==null) {
-                instance().applicationComponents = new 
BasicResourceLookup<ApplicationComponent>();
+            if (PlatformComponent.this.applicationComponents==null) {
+                PlatformComponent.this.applicationComponents = new 
BasicResourceLookup<ApplicationComponent>();
             }
-            if (!(instance().applicationComponents instanceof 
BasicResourceLookup)) {
-                throw new IllegalStateException("Cannot add to resource lookup 
"+instance().applicationComponents);
+            if (!(PlatformComponent.this.applicationComponents instanceof 
BasicResourceLookup)) {
+                throw new IllegalStateException("Cannot add to resource lookup 
"+PlatformComponent.this.applicationComponents);
             }
-            
((BasicResourceLookup<ApplicationComponent>)instance().applicationComponents).add(x);
+            
((BasicResourceLookup<ApplicationComponent>)PlatformComponent.this.applicationComponents).add(x);
             return thisBuilder();
         }
         
         public synchronized Builder<T> add(PlatformComponent x) {
-            if (instance().platformComponents==null) {
-                instance().platformComponents = new 
BasicResourceLookup<PlatformComponent>();
+            if (PlatformComponent.this.platformComponents==null) {
+                PlatformComponent.this.platformComponents = new 
BasicResourceLookup<PlatformComponent>();
             }
-            if (!(instance().platformComponents instanceof 
BasicResourceLookup)) {
-                throw new IllegalStateException("Cannot add to resource lookup 
"+instance().platformComponents);
+            if (!(PlatformComponent.this.platformComponents instanceof 
BasicResourceLookup)) {
+                throw new IllegalStateException("Cannot add to resource lookup 
"+PlatformComponent.this.platformComponents);
             }
-            
((BasicResourceLookup<PlatformComponent>)instance().platformComponents).add(x);
+            
((BasicResourceLookup<PlatformComponent>)PlatformComponent.this.platformComponents).add(x);
             return thisBuilder();
         }
-
-        @SuppressWarnings("unchecked")
-        protected T createResource() { return (T) new PlatformComponent(); }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8f55a6e3/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformComponentTemplate.java
----------------------------------------------------------------------
diff --git 
a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformComponentTemplate.java
 
b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformComponentTemplate.java
index 8cedcb4..7f93f34 100644
--- 
a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformComponentTemplate.java
+++ 
b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformComponentTemplate.java
@@ -39,16 +39,13 @@ public class PlatformComponentTemplate extends 
AbstractResource {
     // builder
     
     public static Builder<? extends PlatformComponentTemplate> builder() {
-        return new Builder<PlatformComponentTemplate>(CAMP_TYPE);
+        return new PlatformComponentTemplate().new 
Builder<PlatformComponentTemplate>(CAMP_TYPE);
     }
     
-    public static class Builder<T extends PlatformComponentTemplate> extends 
AbstractResource.Builder<T,Builder<T>> {
+    public class Builder<T extends PlatformComponentTemplate> extends 
AbstractResource.Builder<T,Builder<T>> {
         
         protected Builder(String type) { super(type); }
         
-        @SuppressWarnings("unchecked")
-        protected T createResource() { return (T) new 
PlatformComponentTemplate(); }
-        
 //        public Builder<T> foo(String x) { instance().setFoo(x); return 
thisBuilder(); }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/8f55a6e3/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformRootSummary.java
----------------------------------------------------------------------
diff --git 
a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformRootSummary.java 
b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformRootSummary.java
index ca6b433..eb34ff9 100644
--- a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformRootSummary.java
+++ b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/PlatformRootSummary.java
@@ -53,16 +53,13 @@ public class PlatformRootSummary extends AbstractResource {
     // builder
     
     public static Builder<? extends PlatformRootSummary> builder() {
-        return new Builder<PlatformRootSummary>(CAMP_TYPE);
+        return new PlatformRootSummary().new 
Builder<PlatformRootSummary>(CAMP_TYPE);
     }
     
-    public static class Builder<T extends PlatformRootSummary> extends 
AbstractResource.Builder<T,Builder<T>> {
+    public class Builder<T extends PlatformRootSummary> extends 
AbstractResource.Builder<T,Builder<T>> {
         
         protected Builder(String type) { super(type); }
         
-        @SuppressWarnings("unchecked")
-        protected T createResource() { return (T) new PlatformRootSummary(); }
-        
         protected void initialize() {
             super.initialize();
             // TODO a better way not to have an ID here (new subclass 
BasicIdentifiableResource for other BasicResource instances)

Reply via email to