added setter injection to the class adapter.
[utils] / system / general / src / main / java / org / wamblee / system / adapters / ClassAdapter.java
index d7d273b5f4e4ffd6fda9d2a9ea41a08a21ced624..ace1525dfd9b7c01ba03325b00943cc039b9c607 100644 (file)
@@ -17,6 +17,7 @@ package org.wamblee.system.adapters;
 
 import org.wamblee.system.core.AbstractComponent;
 import org.wamblee.system.core.ProvidedInterface;
+import org.wamblee.system.core.RequiredInterface;
 import org.wamblee.system.core.Scope;
 
 /**
@@ -30,8 +31,8 @@ public class ClassAdapter extends AbstractComponent<Object> {
 
        public ClassAdapter(String aName, ClassConfiguration aClassConfig) {
                super(aName, 
-                               aClassConfig.getProvidedInterfaces(),
-                               aClassConfig.getRequiredInterface());
+                               aClassConfig.getProvidedInterfaces().toArray(new ProvidedInterface[0]),
+                               aClassConfig.getRequiredInterfaces().toArray(new RequiredInterface[0]));
                _classConfig = aClassConfig; 
        }
        
@@ -39,6 +40,7 @@ public class ClassAdapter extends AbstractComponent<Object> {
        protected Object doStart(Scope aScope) {
                
            Object obj =  _classConfig.create(aScope);
+           _classConfig.inject(aScope, obj);
            
            for (ProvidedInterface provided: getProvidedInterfaces()) { 
                addInterface(provided, obj, aScope);