You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jb...@apache.org on 2006/02/28 01:09:06 UTC

svn commit: r381504 - in /incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system: builder/SystemExternalServiceBuilder.java injection/AutowireFactory.java

Author: jboynes
Date: Mon Feb 27 16:09:04 2006
New Revision: 381504

URL: http://svn.apache.org/viewcvs?rev=381504&view=rev
Log:
AutowireFactory can only wire to AutowireContexts so pass in the reference as one

Modified:
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemExternalServiceBuilder.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireFactory.java

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemExternalServiceBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemExternalServiceBuilder.java?rev=381504&r1=381503&r2=381504&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemExternalServiceBuilder.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/builder/SystemExternalServiceBuilder.java Mon Feb 27 16:09:04 2006
@@ -17,6 +17,7 @@
 import org.apache.tuscany.core.builder.BuilderException;
 import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
 import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.AutowireContext;
 import org.apache.tuscany.core.injection.ReferenceTargetFactory;
 import org.apache.tuscany.core.system.assembly.SystemBinding;
 import org.apache.tuscany.core.system.config.SystemExternalServiceRuntimeConfiguration;
@@ -69,7 +70,7 @@
                 throw e;
             }
             SystemExternalServiceRuntimeConfiguration config = new SystemExternalServiceRuntimeConfiguration(externalService
-                    .getName(), new AutowireFactory(claz, context));
+                    .getName(), new AutowireFactory(claz, (AutowireContext) context));
             externalService.getConfiguredService().setRuntimeConfiguration(config);
         }
     }

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireFactory.java?rev=381504&r1=381503&r2=381504&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireFactory.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/system/injection/AutowireFactory.java Mon Feb 27 16:09:04 2006
@@ -20,38 +20,31 @@
 import org.apache.tuscany.core.injection.ObjectCreationException;
 
 /**
- * Resolves an autowire for a wire target
- * 
+ * Implementation of ObjectFactory that returns an instance by resolving against an AutowireContext.
+ *
  * @version $Rev$ $Date$
  */
 public class AutowireFactory<T> implements ObjectFactory<T> {
 
     private AutowireContext autoWireContext;
 
-    private Class implementationType;
+    private Class<T> implementationType;
 
-    // ----------------------------------
-    // Constructors
-    // ----------------------------------
-
-    public AutowireFactory(Class implementationType, AggregateContext autoWireContext) throws FactoryInitException {
+    /**
+     * Constructor specifying the context to wire against and the type of service required.
+     *
+     * @param implementationType the type of service required
+     * @param autoWireContext    the context to wire against
+     */
+    public AutowireFactory(Class<T> implementationType, AutowireContext autoWireContext) {
         assert (implementationType != null) : "Implementation type was null";
         assert (autoWireContext != null) : "Autowire context was null";
         this.implementationType = implementationType;
-        if (!(autoWireContext instanceof AutowireContext)) {
-            FactoryInitException e = new FactoryInitException("Parent context is not an instance of "
-                    + AutowireContext.class.getName());
-            e.setIdentifier(autoWireContext.getName());
-            throw e;
-        }
-        this.autoWireContext = (AutowireContext) autoWireContext;
+        this.autoWireContext = autoWireContext;
     }
 
-    // ----------------------------------
-    // Methods
-    // ----------------------------------
-
     public T getInstance() throws ObjectCreationException {
-        return (T) autoWireContext.resolveInstance(implementationType);
+        // todo what about required? should this just return null?
+        return autoWireContext.resolveInstance(implementationType);
     }
 }