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 2007/03/19 05:32:33 UTC

svn commit: r519835 - in /incubator/tuscany/java/sca/kernel: core/src/main/java/org/apache/tuscany/core/component/ core/src/main/java/org/apache/tuscany/core/component/instancefactory/impl/ core/src/main/java/org/apache/tuscany/core/component/scope/ co...

Author: jboynes
Date: Sun Mar 18 21:32:31 2007
New Revision: 519835

URL: http://svn.apache.org/viewvc?view=rev&rev=519835
Log:
implement WireAttacher for system components
clean up optimized wiring

Added:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentObjectFactory.java   (with props)
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireSourceDefinition.java   (with props)
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireTargetDefinition.java   (with props)
Removed:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/RequestScopeObjectFactory.java
Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/SystemSingletonAtomicComponent.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/instancefactory/impl/ReflectiveIFProviderBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java

Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentObjectFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentObjectFactory.java?view=auto&rev=519835
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentObjectFactory.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentObjectFactory.java Sun Mar 18 21:32:31 2007
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.core.component;
+
+import org.apache.tuscany.spi.ObjectFactory;
+import org.apache.tuscany.spi.ObjectCreationException;
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.TargetResolutionException;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ComponentObjectFactory<T, CONTEXT> implements ObjectFactory<T> {
+    private final AtomicComponent<T> component;
+    private final ScopeContainer<CONTEXT> scopeContainer;
+
+    public ComponentObjectFactory(AtomicComponent<T> component, ScopeContainer<CONTEXT> scopeContainer) {
+        this.component = component;
+        this.scopeContainer = scopeContainer;
+    }
+
+    public T getInstance() throws ObjectCreationException {
+        try {
+            return scopeContainer.getWrapper(component, null).getInstance();
+        } catch (TargetResolutionException e) {
+            throw new ObjectCreationException(e);
+        }
+    }
+}

Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentObjectFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentObjectFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/SystemSingletonAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/SystemSingletonAtomicComponent.java?view=diff&rev=519835&r1=519834&r2=519835
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/SystemSingletonAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/SystemSingletonAtomicComponent.java Sun Mar 18 21:32:31 2007
@@ -22,19 +22,19 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.tuscany.core.injection.SingletonObjectFactory;
 import org.apache.tuscany.spi.ObjectCreationException;
-import org.apache.tuscany.spi.idl.java.JavaServiceContract;
+import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.TargetResolutionException;
-import org.apache.tuscany.spi.component.TargetInvokerCreationException;
 import org.apache.tuscany.spi.component.InstanceWrapper;
+import org.apache.tuscany.spi.component.TargetInvokerCreationException;
+import org.apache.tuscany.spi.component.TargetResolutionException;
 import org.apache.tuscany.spi.extension.AbstractComponentExtension;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
-import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
-import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
 import org.apache.tuscany.spi.wire.TargetInvoker;
 import org.apache.tuscany.spi.wire.Wire;
 
@@ -44,7 +44,7 @@
  * @version $$Rev$$ $$Date$$
  */
 public class SystemSingletonAtomicComponent<S, T extends S> extends AbstractComponentExtension
-    implements AtomicComponent {
+    implements AtomicComponent<T> {
     private T instance;
     private List<ServiceContract> serviceContracts = new ArrayList<ServiceContract>();
 
@@ -98,8 +98,12 @@
         throw new UnsupportedOperationException();
     }
 
-    public InstanceWrapper<?> createInstanceWrapper() throws ObjectCreationException {
+    public InstanceWrapper<T> createInstanceWrapper() throws ObjectCreationException {
         throw new UnsupportedOperationException();
+    }
+
+    public ObjectFactory<T> createObjectFactory() {
+        return new SingletonObjectFactory<T>(instance);
     }
 
     public boolean isOptimizable() {

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/instancefactory/impl/ReflectiveIFProviderBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/instancefactory/impl/ReflectiveIFProviderBuilder.java?view=diff&rev=519835&r1=519834&r2=519835
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/instancefactory/impl/ReflectiveIFProviderBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/instancefactory/impl/ReflectiveIFProviderBuilder.java Sun Mar 18 21:32:31 2007
@@ -127,7 +127,7 @@
         List<String> argNames = ifpd.getConstructorArguments();
         Class[] ctrArgs = new Class[argNames.size()];
         for (int i = 0; i < ctrArgs.length; i++) {
-            ctrArgs[i++] = cl.loadClass(argNames.get(i));
+            ctrArgs[i] = cl.loadClass(argNames.get(i));
         }
         return implClass.getDeclaredConstructor(ctrArgs);
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java?view=diff&rev=519835&r1=519834&r2=519835
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java Sun Mar 18 21:32:31 2007
@@ -45,6 +45,7 @@
 
 import org.apache.tuscany.core.component.InstanceFactory;
 import org.apache.tuscany.core.component.InstanceFactoryProvider;
+import org.apache.tuscany.core.component.ComponentObjectFactory;
 import org.apache.tuscany.core.model.physical.instancefactory.InjectionSource;
 
 /**
@@ -117,6 +118,10 @@
 
     public InstanceWrapper<T> createInstanceWrapper() {
         return instanceFactory.newInstance();
+    }
+
+    public ObjectFactory<T> createObjectFactory() {
+        return new ComponentObjectFactory(this, scopeContainer);
     }
 
     public TargetInvoker createTargetInvoker(String targetName, PhysicalOperationDefinition operation)

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java?view=diff&rev=519835&r1=519834&r2=519835
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java Sun Mar 18 21:32:31 2007
@@ -64,8 +64,8 @@
  * @version $Rev$ $Date$
  * @param <T> the implementation class for the defined component
  */
-@Service(interfaces={PhysicalComponentBuilder.class, WireAttacher.class})
 @EagerInit
+@Service(interfaces={PhysicalComponentBuilder.class, WireAttacher.class})
 public class JavaPhysicalComponentBuilder<T>
     extends POJOPhysicalComponentBuilder<JavaPhysicalComponentDefinition<T>, JavaComponent<T>>
     implements WireAttacher<JavaComponent, JavaPhysicalWireSourceDefinition, JavaPhysicalWireTargetDefinition> {
@@ -119,10 +119,8 @@
         InjectionSource referenceSource = new InjectionSource(REFERENCE, sourceUri.getFragment());
         Class<?> type = source.getMemberType(referenceSource);
         if (definition.isOptimizable()) {
-            // FIXME if possible, this is not clean
             assert target instanceof AtomicComponent;
-            ScopeContainer container = target.getScopeContainer();
-            ObjectFactory<?> factory = new InstanceObjectFactory((AtomicComponent) target, container);
+            ObjectFactory<?> factory = ((AtomicComponent<?>)target).createObjectFactory();
             source.setObjectFactory(referenceSource, factory);
         } else {
             ObjectFactory<?> factory = new WireObjectFactory2(type, definition.isConversational(), wire, proxyService);

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java?view=diff&rev=519835&r1=519834&r2=519835
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java Sun Mar 18 21:32:31 2007
@@ -22,26 +22,43 @@
 
 import org.osoa.sca.annotations.EagerInit;
 import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
 
 import org.apache.tuscany.core.component.InstanceFactoryProvider;
 import org.apache.tuscany.core.component.instancefactory.IFProviderBuilderRegistry;
 import org.apache.tuscany.core.implementation.POJOPhysicalComponentBuilder;
+import org.apache.tuscany.core.implementation.java.JavaComponent;
 import org.apache.tuscany.core.implementation.system.component.SystemComponent;
 import org.apache.tuscany.core.implementation.system.model.SystemPhysicalComponentDefinition;
+import org.apache.tuscany.core.implementation.system.model.SystemPhysicalWireTargetDefinition;
+import org.apache.tuscany.core.implementation.system.model.SystemPhysicalWireSourceDefinition;
+import org.apache.tuscany.core.model.physical.java.JavaPhysicalWireSourceDefinition;
+import org.apache.tuscany.core.model.physical.java.JavaPhysicalWireTargetDefinition;
+import org.apache.tuscany.core.model.physical.instancefactory.InjectionSource;
+import static org.apache.tuscany.core.model.physical.instancefactory.InjectionSource.ValueSourceType.REFERENCE;
 import org.apache.tuscany.spi.builder.BuilderException;
+import org.apache.tuscany.spi.builder.WiringException;
+import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilder;
 import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilderRegistry;
+import org.apache.tuscany.spi.builder.physical.WireAttacher;
 import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.component.ScopeRegistry;
-import org.apache.tuscany.spi.model.physical.InstanceFactoryProviderDefinition;
+import org.apache.tuscany.spi.component.Component;
+import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.model.physical.InstanceFactoryProviderDefinition;
 import org.apache.tuscany.spi.services.classloading.ClassLoaderRegistry;
+import org.apache.tuscany.spi.wire.Wire;
+import org.apache.tuscany.spi.ObjectFactory;
 
 /**
  * @version $Rev$ $Date$
  */
 @EagerInit
+@Service(interfaces = {PhysicalComponentBuilder.class, WireAttacher.class})
 public class SystemPhysicalComponentBuilder<T>
-    extends POJOPhysicalComponentBuilder<SystemPhysicalComponentDefinition<T>, SystemComponent<T>> {
+    extends POJOPhysicalComponentBuilder<SystemPhysicalComponentDefinition<T>, SystemComponent<T>>
+    implements WireAttacher<SystemComponent, SystemPhysicalWireSourceDefinition, SystemPhysicalWireTargetDefinition> {
 
     public SystemPhysicalComponentBuilder(
         @Reference(name = "builderRegistry")PhysicalComponentBuilderRegistry builderRegistry,
@@ -66,5 +83,23 @@
         InstanceFactoryProvider<T> provider = providerBuilders.build(providerDefinition, classLoader);
 
         return new SystemComponent<T>(componentId, provider, scopeContainer, groupId, initLevel, -1, -1);
+    }
+
+    public void attach(SystemComponent source,
+                       Component target,
+                       Wire wire,
+                       SystemPhysicalWireSourceDefinition definition) throws WiringException {
+        assert target instanceof AtomicComponent;
+        AtomicComponent<?> targetComponent = (AtomicComponent<?>) target;
+        URI sourceUri = definition.getUri();
+        InjectionSource referenceSource = new InjectionSource(REFERENCE, sourceUri.getFragment());
+        ObjectFactory<?> factory = targetComponent.createObjectFactory();
+        source.setObjectFactory(referenceSource, factory);
+    }
+
+    public void attach(SystemComponent component,
+                       Wire wire,
+                       SystemPhysicalWireTargetDefinition definition) throws WiringException {
+        // nothing to do here as the wire will always be optimized
     }
 }

Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireSourceDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireSourceDefinition.java?view=auto&rev=519835
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireSourceDefinition.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireSourceDefinition.java Sun Mar 18 21:32:31 2007
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.core.implementation.system.model;
+
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
+
+/**
+ * Models a System physical wire source definition.
+ *
+ * @version $Revision$ $Date: 2007-02-28 06:29:37 +0000 (Wed, 28 Feb
+ *          2007) $
+ */
+public class SystemPhysicalWireSourceDefinition extends PhysicalWireSourceDefinition {
+}

Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireSourceDefinition.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireSourceDefinition.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireTargetDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireTargetDefinition.java?view=auto&rev=519835
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireTargetDefinition.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireTargetDefinition.java Sun Mar 18 21:32:31 2007
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.core.implementation.system.model;
+
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
+
+/**
+ * Models a Java physical wire target definition.
+ *
+ * @version $Revision$ $Date: 2007-02-28 06:29:37 +0000 (Wed, 28 Feb
+ *          2007) $
+ */
+public class SystemPhysicalWireTargetDefinition extends PhysicalWireTargetDefinition {
+
+}

Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireTargetDefinition.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalWireTargetDefinition.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java?view=diff&rev=519835&r1=519834&r2=519835
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AtomicComponent.java Sun Mar 18 21:32:31 2007
@@ -19,6 +19,7 @@
 package org.apache.tuscany.spi.component;
 
 import org.apache.tuscany.spi.ObjectCreationException;
+import org.apache.tuscany.spi.ObjectFactory;
 
 /**
  * The runtime instantiation of an SCA atomic, or leaf-type, component
@@ -65,6 +66,13 @@
      * @throws ObjectCreationException if there was a problem instantiating the implementation
      */
     InstanceWrapper<T> createInstanceWrapper() throws ObjectCreationException;
+
+    /**
+     * Create an ObjectFactory that returns an instance of this AtomicComponent.
+     *
+     * @return an ObjectFactory that returns an instance of this AtomicComponent
+     */
+    ObjectFactory<T> createObjectFactory();
 
     /**
      * Creates a new implementation instance, generally used as a callback by a {@link

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java?view=diff&rev=519835&r1=519834&r2=519835
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java Sun Mar 18 21:32:31 2007
@@ -21,6 +21,7 @@
 import java.net.URI;
 
 import org.apache.tuscany.spi.CoreRuntimeException;
+import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.ComponentException;
 import org.apache.tuscany.spi.component.ScopeContainer;
@@ -108,4 +109,7 @@
         scopeContainer.remove(this);
     }
 
+    public ObjectFactory createObjectFactory() {
+        throw new UnsupportedOperationException();
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org