You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2008/06/13 05:54:43 UTC

svn commit: r667326 - in /incubator/tuscany/java/sca: itest/validation/src/test/java/domain/ modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/ modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/m...

Author: jsdelfino
Date: Thu Jun 12 20:54:41 2008
New Revision: 667326

URL: http://svn.apache.org/viewvc?rev=667326&view=rev
Log:
Cleaned up initialization of shared utility objects. Allow JavaRuntimeModuleActivator to be started without prior initialization.

Added:
    incubator/tuscany/java/sca/modules/core-spi/src/main/resources/META-INF/services/org.apache.tuscany.sca.context.ContextFactoryExtensionPoint
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ExtensibleProxyFactory.java
      - copied, changed from r667214, incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java
    incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.conversation.ConversationManager
    incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint
    incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.invocation.MessageFactory
Modified:
    incubator/tuscany/java/sca/itest/validation/src/test/java/domain/CustomCompositeBuilder.java
    incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingProviderFactory.java
    incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/DataBindingModuleActivator.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ProxyFactoryExtensionPoint.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
    incubator/tuscany/java/sca/modules/host-jetty/src/main/java/org/apache/tuscany/sca/http/jetty/module/JettyRuntimeModuleActivator.java
    incubator/tuscany/java/sca/modules/host-tomcat/src/main/java/org/apache/tuscany/sca/http/tomcat/module/TomcatRuntimeModuleActivator.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/module/JavaRuntimeModuleActivator.java
    incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProviderFactory.java
    incubator/tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java
    incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionModuleActivator.java
    incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProviderFactory.java

Modified: incubator/tuscany/java/sca/itest/validation/src/test/java/domain/CustomCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/validation/src/test/java/domain/CustomCompositeBuilder.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/validation/src/test/java/domain/CustomCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/itest/validation/src/test/java/domain/CustomCompositeBuilder.java Thu Jun 12 20:54:41 2008
@@ -16,17 +16,13 @@
 import org.apache.tuscany.sca.assembly.SCABindingFactory;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
 import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;
-import org.apache.tuscany.sca.context.ContextFactoryExtensionPoint;
-import org.apache.tuscany.sca.context.DefaultContextFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.Contribution;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.DefaultValidatingXMLInputFactory;
 import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint;
 import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
 import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
@@ -34,14 +30,10 @@
 import org.apache.tuscany.sca.core.ModuleActivator;
 import org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint;
 import org.apache.tuscany.sca.core.UtilityExtensionPoint;
-import org.apache.tuscany.sca.core.invocation.DefaultProxyFactoryExtensionPoint;
-import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
-import org.apache.tuscany.sca.core.invocation.ProxyFactory;
+import org.apache.tuscany.sca.definitions.SCADefinitions;
 import org.apache.tuscany.sca.implementation.node.NodeImplementationFactory;
 import org.apache.tuscany.sca.implementation.node.builder.impl.NodeCompositeBuilderImpl;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
-import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
-import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.MonitorFactory;
 import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
@@ -49,7 +41,6 @@
 import org.apache.tuscany.sca.workspace.WorkspaceFactory;
 import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder;
 import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl;
-import org.apache.tuscany.sca.definitions.SCADefinitions;
 
 public class CustomCompositeBuilder {
     private URLArtifactProcessor<Contribution> contributionProcessor;
@@ -91,21 +82,6 @@
         MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class);
         monitor = monitorFactory.createMonitor();
         
-        // Create an interface contract mapper
-        InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class);
-        extensionPoints.addExtensionPoint(mapper);
-        
-        // Create Message factory
-        MessageFactory messageFactory = new MessageFactoryImpl();
-        
-        // Create Proxy factory
-        ProxyFactory proxyFactory = new DefaultProxyFactoryExtensionPoint(messageFactory, mapper);
-        extensionPoints.addExtensionPoint(proxyFactory);
-        
-        // Create context factory extension point
-        ContextFactoryExtensionPoint contextFactories = new DefaultContextFactoryExtensionPoint(extensionPoints);
-        extensionPoints.addExtensionPoint(contextFactories);
-        
         // Initialize the Tuscany module activators
         ModuleActivatorExtensionPoint moduleActivators = extensionPoints.getExtensionPoint(ModuleActivatorExtensionPoint.class);
         for (ModuleActivator activator: moduleActivators.getModuleActivators()) {
@@ -117,8 +93,6 @@
         XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class);
         outputFactory = modelFactories.getFactory(XMLOutputFactory.class);       
         
-        modelFactories.addFactory(messageFactory);        
-        
         // Get contribution workspace and assembly model factories
         workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class); 
         assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);

Modified: incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingProviderFactory.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSBindingProviderFactory.java Thu Jun 12 20:54:41 2008
@@ -21,6 +21,7 @@
 
 import org.apache.tuscany.sca.binding.jms.impl.JMSBinding;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.provider.BindingProviderFactory;
 import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
 import org.apache.tuscany.sca.provider.ServiceBindingProvider;
@@ -39,7 +40,8 @@
     private WorkScheduler workScheduler;
 
     public JMSBindingProviderFactory(ExtensionPointRegistry extensionPoints) {
-        workScheduler = extensionPoints.getExtensionPoint(WorkScheduler.class);
+        UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
+        workScheduler = utilities.getUtility(WorkScheduler.class);
     }
 
     public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component,

Modified: incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/DataBindingModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/DataBindingModuleActivator.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/DataBindingModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/DataBindingModuleActivator.java Thu Jun 12 20:54:41 2008
@@ -56,7 +56,6 @@
         XMLAdapterExtensionPoint xmlAdapterExtensionPoint = registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
         xmlAdapterExtensionPoint.addAdapter(CallableReference.class, CallableReferenceXMLAdapter.class);
         FaultExceptionMapper faultExceptionMapper = new JAXWSFaultExceptionMapper(dataBindings, xmlAdapterExtensionPoint);
-        registry.addExtensionPoint(faultExceptionMapper);
         
         MediatorImpl mediator = new MediatorImpl(dataBindings, transformers);
         Input2InputTransformer input2InputTransformer = new Input2InputTransformer();

Added: incubator/tuscany/java/sca/modules/core-spi/src/main/resources/META-INF/services/org.apache.tuscany.sca.context.ContextFactoryExtensionPoint
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/resources/META-INF/services/org.apache.tuscany.sca.context.ContextFactoryExtensionPoint?rev=667326&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/resources/META-INF/services/org.apache.tuscany.sca.context.ContextFactoryExtensionPoint (added)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/resources/META-INF/services/org.apache.tuscany.sca.context.ContextFactoryExtensionPoint Thu Jun 12 20:54:41 2008
@@ -0,0 +1,18 @@
+# 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.
+
+org.apache.tuscany.sca.context.DefaultContextFactoryExtensionPoint

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java Thu Jun 12 20:54:41 2008
@@ -19,12 +19,11 @@
 
 package org.apache.tuscany.sca.core.invocation;
 
-import java.util.List;
-
+import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.invocation.MessageFactory;
-import org.apache.tuscany.sca.runtime.RuntimeWire;
-import org.osoa.sca.CallableReference;
 
 /**
  * Default implementation of a ProxyFactoryExtensionPoint.
@@ -38,115 +37,38 @@
     private ProxyFactory interfaceFactory;
     private ProxyFactory classFactory;
 
+    public DefaultProxyFactoryExtensionPoint(ExtensionPointRegistry extensionPoints) {
+        UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
+        this.interfaceContractMapper = utilities.getUtility(InterfaceContractMapper.class);
+        
+        ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
+        this.messageFactory = modelFactories.getFactory(MessageFactory.class);
+        
+        interfaceFactory = new JDKProxyFactory(messageFactory, interfaceContractMapper);
+    }
+
     public DefaultProxyFactoryExtensionPoint(MessageFactory messageFactory, InterfaceContractMapper mapper) {
         this.interfaceContractMapper = mapper;
         this.messageFactory = messageFactory;
         interfaceFactory = new JDKProxyFactory(messageFactory, mapper);
     }
 
-    /**
-     * @see org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint#getClassProxyFactory()
-     */
     public ProxyFactory getClassProxyFactory() {
         return classFactory;
     }
 
-    /**
-     * @see org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint#getInterfaceProxyFactory()
-     */
     public ProxyFactory getInterfaceProxyFactory() {
         return interfaceFactory;
     }
 
-    /**
-     * @see org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint#setClassProxyFactory(org.apache.tuscany.sca.core.invocation.ProxyFactory)
-     */
     public void setClassProxyFactory(ProxyFactory factory) {
         this.classFactory = factory;
 
     }
 
-    /**
-     * @see org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint#setInterfaceProxyFactory(org.apache.tuscany.sca.core.invocation.ProxyFactory)
-     */
     public void setInterfaceProxyFactory(ProxyFactory factory) {
         this.interfaceFactory = factory;
 
     }
 
-    /**
-     * @see org.apache.tuscany.sca.core.invocation.ProxyFactory#cast(java.lang.Object)
-     */
-    @SuppressWarnings("unchecked")
-    public <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException {
-        if (interfaceFactory.isProxyClass(target.getClass())) {
-            return (R)interfaceFactory.cast(target);
-        } else if (classFactory != null && classFactory.isProxyClass(target.getClass())) {
-            return (R)classFactory.cast(target);
-        } else {
-            throw new IllegalArgumentException("The target is not a callable proxy");
-        }
-    }
-
-    /**
-     * @see org.apache.tuscany.sca.core.invocation.ProxyFactory#createCallbackProxy(java.lang.Class,
-     *      java.util.List)
-     */
-    public <T> T createCallbackProxy(Class<T> interfaze, List<RuntimeWire> wires) throws ProxyCreationException {
-        if (interfaze.isInterface()) {
-            return interfaceFactory.createCallbackProxy(interfaze, wires);
-        } else {
-            return classFactory.createCallbackProxy(interfaze, wires);
-        }
-    }
-
-    public <T> T createProxy(CallableReference<T> callableReference) throws ProxyCreationException {
-        if (callableReference.getBusinessInterface().isInterface()) {
-            return interfaceFactory.createProxy(callableReference);
-        } else {
-            return classFactory.createProxy(callableReference);
-        }
-    }
-
-    public <T> T createCallbackProxy(CallbackReferenceImpl<T> callbackReference) throws ProxyCreationException {
-        if (callbackReference.getBusinessInterface().isInterface()) {
-            return interfaceFactory.createCallbackProxy(callbackReference);
-        } else {
-            return classFactory.createCallbackProxy(callbackReference);
-        }
-    }
-
-    /**
-     * @see org.apache.tuscany.sca.core.invocation.ProxyFactory#createProxy(java.lang.Class,
-     *      org.apache.tuscany.sca.runtime.RuntimeWire)
-     */
-    public <T> T createProxy(Class<T> interfaze, RuntimeWire wire) throws ProxyCreationException {
-        if (interfaze.isInterface()) {
-            return interfaceFactory.createProxy(interfaze, wire);
-        } else {
-            return classFactory.createProxy(interfaze, wire);
-        }
-    }
-
-    /**
-     * @see org.apache.tuscany.sca.core.invocation.ProxyFactory#isProxyClass(java.lang.Class)
-     */
-    public boolean isProxyClass(Class<?> clazz) {
-        return interfaceFactory.isProxyClass(clazz) || (classFactory != null && classFactory.isProxyClass(clazz));
-    }
-
-    /**
-     * @return the interfaceContractMapper
-     */
-    public InterfaceContractMapper getInterfaceContractMapper() {
-        return interfaceContractMapper;
-    }
-
-    /**
-     * @return the messageFactory
-     */
-    public MessageFactory getMessageFactory() {
-        return messageFactory;
-    }
-
 }

Copied: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ExtensibleProxyFactory.java (from r667214, incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ExtensibleProxyFactory.java?p2=incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ExtensibleProxyFactory.java&p1=incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java&r1=667214&r2=667326&rev=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/DefaultProxyFactoryExtensionPoint.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ExtensibleProxyFactory.java Thu Jun 12 20:54:41 2008
@@ -21,64 +21,29 @@
 
 import java.util.List;
 
-import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
-import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.runtime.RuntimeWire;
 import org.osoa.sca.CallableReference;
 
 /**
- * Default implementation of a ProxyFactoryExtensionPoint.
+ * An extensible proxy factory.
  *
- * @version $Rev$ $Date$
+ * @version $Rev: $ $Date: $
  */
-public class DefaultProxyFactoryExtensionPoint implements ProxyFactoryExtensionPoint {
-    private InterfaceContractMapper interfaceContractMapper;
-    private MessageFactory messageFactory;
-
-    private ProxyFactory interfaceFactory;
-    private ProxyFactory classFactory;
-
-    public DefaultProxyFactoryExtensionPoint(MessageFactory messageFactory, InterfaceContractMapper mapper) {
-        this.interfaceContractMapper = mapper;
-        this.messageFactory = messageFactory;
-        interfaceFactory = new JDKProxyFactory(messageFactory, mapper);
-    }
-
-    /**
-     * @see org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint#getClassProxyFactory()
-     */
-    public ProxyFactory getClassProxyFactory() {
-        return classFactory;
-    }
-
-    /**
-     * @see org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint#getInterfaceProxyFactory()
-     */
-    public ProxyFactory getInterfaceProxyFactory() {
-        return interfaceFactory;
-    }
-
-    /**
-     * @see org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint#setClassProxyFactory(org.apache.tuscany.sca.core.invocation.ProxyFactory)
-     */
-    public void setClassProxyFactory(ProxyFactory factory) {
-        this.classFactory = factory;
-
-    }
-
-    /**
-     * @see org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint#setInterfaceProxyFactory(org.apache.tuscany.sca.core.invocation.ProxyFactory)
-     */
-    public void setInterfaceProxyFactory(ProxyFactory factory) {
-        this.interfaceFactory = factory;
+public class ExtensibleProxyFactory implements ProxyFactory {
+    
+    private ProxyFactoryExtensionPoint proxyFactories;
 
+    public ExtensibleProxyFactory(ProxyFactoryExtensionPoint proxyFactories) {
+        this.proxyFactories = proxyFactories;
     }
-
+    
     /**
      * @see org.apache.tuscany.sca.core.invocation.ProxyFactory#cast(java.lang.Object)
      */
     @SuppressWarnings("unchecked")
     public <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException {
+        ProxyFactory interfaceFactory = proxyFactories.getInterfaceProxyFactory();
+        ProxyFactory classFactory = proxyFactories.getClassProxyFactory();
         if (interfaceFactory.isProxyClass(target.getClass())) {
             return (R)interfaceFactory.cast(target);
         } else if (classFactory != null && classFactory.isProxyClass(target.getClass())) {
@@ -93,6 +58,8 @@
      *      java.util.List)
      */
     public <T> T createCallbackProxy(Class<T> interfaze, List<RuntimeWire> wires) throws ProxyCreationException {
+        ProxyFactory interfaceFactory = proxyFactories.getInterfaceProxyFactory();
+        ProxyFactory classFactory = proxyFactories.getClassProxyFactory();
         if (interfaze.isInterface()) {
             return interfaceFactory.createCallbackProxy(interfaze, wires);
         } else {
@@ -101,6 +68,8 @@
     }
 
     public <T> T createProxy(CallableReference<T> callableReference) throws ProxyCreationException {
+        ProxyFactory interfaceFactory = proxyFactories.getInterfaceProxyFactory();
+        ProxyFactory classFactory = proxyFactories.getClassProxyFactory();
         if (callableReference.getBusinessInterface().isInterface()) {
             return interfaceFactory.createProxy(callableReference);
         } else {
@@ -109,6 +78,8 @@
     }
 
     public <T> T createCallbackProxy(CallbackReferenceImpl<T> callbackReference) throws ProxyCreationException {
+        ProxyFactory interfaceFactory = proxyFactories.getInterfaceProxyFactory();
+        ProxyFactory classFactory = proxyFactories.getClassProxyFactory();
         if (callbackReference.getBusinessInterface().isInterface()) {
             return interfaceFactory.createCallbackProxy(callbackReference);
         } else {
@@ -121,6 +92,8 @@
      *      org.apache.tuscany.sca.runtime.RuntimeWire)
      */
     public <T> T createProxy(Class<T> interfaze, RuntimeWire wire) throws ProxyCreationException {
+        ProxyFactory interfaceFactory = proxyFactories.getInterfaceProxyFactory();
+        ProxyFactory classFactory = proxyFactories.getClassProxyFactory();
         if (interfaze.isInterface()) {
             return interfaceFactory.createProxy(interfaze, wire);
         } else {
@@ -132,21 +105,9 @@
      * @see org.apache.tuscany.sca.core.invocation.ProxyFactory#isProxyClass(java.lang.Class)
      */
     public boolean isProxyClass(Class<?> clazz) {
+        ProxyFactory interfaceFactory = proxyFactories.getInterfaceProxyFactory();
+        ProxyFactory classFactory = proxyFactories.getClassProxyFactory();
         return interfaceFactory.isProxyClass(clazz) || (classFactory != null && classFactory.isProxyClass(clazz));
     }
 
-    /**
-     * @return the interfaceContractMapper
-     */
-    public InterfaceContractMapper getInterfaceContractMapper() {
-        return interfaceContractMapper;
-    }
-
-    /**
-     * @return the messageFactory
-     */
-    public MessageFactory getMessageFactory() {
-        return messageFactory;
-    }
-
 }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ProxyFactoryExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ProxyFactoryExtensionPoint.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ProxyFactoryExtensionPoint.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/ProxyFactoryExtensionPoint.java Thu Jun 12 20:54:41 2008
@@ -19,13 +19,13 @@
 
 package org.apache.tuscany.sca.core.invocation;
 
-import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 
 /**
  * The extension point to plug in proxy factories
  * @version $Rev$ $Date$
  */
-public interface ProxyFactoryExtensionPoint extends ProxyFactory {
+public interface ProxyFactoryExtensionPoint {
+    
     /**
      * Get the proxy factory for java interfaces
      * @return
@@ -50,9 +50,4 @@
      */
     void setClassProxyFactory(ProxyFactory factory);
     
-    /**
-     * @return the interfaceContractMapper
-     */
-    InterfaceContractMapper getInterfaceContractMapper();
-
 }

Added: incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.conversation.ConversationManager
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.conversation.ConversationManager?rev=667326&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.conversation.ConversationManager (added)
+++ incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.conversation.ConversationManager Thu Jun 12 20:54:41 2008
@@ -0,0 +1,18 @@
+# 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.
+
+org.apache.tuscany.sca.core.conversation.ConversationManagerImpl

Added: incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint?rev=667326&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint (added)
+++ incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint Thu Jun 12 20:54:41 2008
@@ -0,0 +1,18 @@
+# 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.
+
+org.apache.tuscany.sca.core.invocation.DefaultProxyFactoryExtensionPoint

Added: incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.invocation.MessageFactory
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.invocation.MessageFactory?rev=667326&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.invocation.MessageFactory (added)
+++ incubator/tuscany/java/sca/modules/core/src/main/resources/META-INF/services/org.apache.tuscany.sca.invocation.MessageFactory Thu Jun 12 20:54:41 2008
@@ -0,0 +1,18 @@
+# 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.
+
+org.apache.tuscany.sca.core.invocation.MessageFactoryImpl

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java Thu Jun 12 20:54:41 2008
@@ -34,8 +34,6 @@
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
 import org.apache.tuscany.sca.assembly.builder.DomainBuilder;
-import org.apache.tuscany.sca.context.ContextFactoryExtensionPoint;
-import org.apache.tuscany.sca.context.DefaultContextFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.ContributionFactory;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
@@ -50,8 +48,9 @@
 import org.apache.tuscany.sca.core.assembly.ActivationException;
 import org.apache.tuscany.sca.core.assembly.CompositeActivator;
 import org.apache.tuscany.sca.core.assembly.RuntimeAssemblyFactory;
-import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
+import org.apache.tuscany.sca.core.invocation.ExtensibleProxyFactory;
 import org.apache.tuscany.sca.core.invocation.ProxyFactory;
+import org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint;
 import org.apache.tuscany.sca.core.scope.ScopeRegistry;
 import org.apache.tuscany.sca.definitions.SCADefinitions;
 import org.apache.tuscany.sca.definitions.impl.SCADefinitionsImpl;
@@ -105,27 +104,23 @@
     	
         // Create our extension point registry
         registry = new DefaultExtensionPointRegistry();
+        UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
 
-        //Get work scheduler
-        workScheduler = registry.getExtensionPoint(WorkScheduler.class);
+        // Get work scheduler
+        workScheduler = utilities.getUtility(WorkScheduler.class);
 
         // Create an interface contract mapper
-        UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
         InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class);
 
         // Get factory extension point
         ModelFactoryExtensionPoint factories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class);
         
-        // Create context factory extension point
-        ContextFactoryExtensionPoint contextFactories = new DefaultContextFactoryExtensionPoint(registry);
-        registry.addExtensionPoint(contextFactories);
-        
-        // Create Message factory
-        MessageFactory messageFactory = new MessageFactoryImpl();
-        factories.addFactory(messageFactory);
+        // Get Message factory
+        MessageFactory messageFactory = factories.getFactory(MessageFactory.class);
 
-        // Create a proxy factory
-        proxyFactory = ReallySmallRuntimeBuilder.createProxyFactory(registry, mapper, messageFactory);
+        // Get proxy factory
+        ProxyFactoryExtensionPoint proxyFactories = registry.getExtensionPoint(ProxyFactoryExtensionPoint.class);  
+        proxyFactory = new ExtensibleProxyFactory(proxyFactories); 
 
         // Create model factories
         assemblyFactory = new RuntimeAssemblyFactory();

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java Thu Jun 12 20:54:41 2008
@@ -28,7 +28,6 @@
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLOutputFactory;
 
-
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.EndpointFactory;
@@ -63,12 +62,12 @@
 import org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl;
 import org.apache.tuscany.sca.contribution.service.impl.PackageTypeDescriberImpl;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.core.assembly.ActivationException;
 import org.apache.tuscany.sca.core.assembly.CompositeActivator;
 import org.apache.tuscany.sca.core.assembly.CompositeActivatorImpl;
 import org.apache.tuscany.sca.core.conversation.ConversationManager;
 import org.apache.tuscany.sca.core.conversation.ConversationManagerImpl;
-import org.apache.tuscany.sca.core.invocation.DefaultProxyFactoryExtensionPoint;
 import org.apache.tuscany.sca.core.invocation.ExtensibleWireProcessor;
 import org.apache.tuscany.sca.core.invocation.ProxyFactory;
 import org.apache.tuscany.sca.core.scope.CompositeScopeContainerFactory;
@@ -99,19 +98,6 @@
     
     private static final Logger logger = Logger.getLogger(ReallySmallRuntimeBuilder.class.getName());
 	
-    public static ProxyFactory createProxyFactory(ExtensionPointRegistry registry,
-                                                  InterfaceContractMapper mapper,
-                                                  MessageFactory messageFactory) {
-
-        ProxyFactory proxyFactory = new DefaultProxyFactoryExtensionPoint(messageFactory, mapper);
-
-        // FIXME Pass these around differently as they are not extension points
-        registry.addExtensionPoint(proxyFactory);
-        registry.addExtensionPoint(mapper);
-
-        return proxyFactory;
-    }
-
     public static CompositeActivator createCompositeActivator(ExtensionPointRegistry registry,
                                                               AssemblyFactory assemblyFactory,
                                                               MessageFactory messageFactory,
@@ -143,8 +129,8 @@
         RequestContextFactory requestContextFactory =
             registry.getExtensionPoint(ContextFactoryExtensionPoint.class).getFactory(RequestContextFactory.class);
 
-        ConversationManager conversationManager = new ConversationManagerImpl();
-        registry.addExtensionPoint(conversationManager);
+        UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
+        ConversationManager conversationManager = utilities.getUtility(ConversationManager.class);
         
         // Create the composite activator
         CompositeActivator compositeActivator =

Modified: incubator/tuscany/java/sca/modules/host-jetty/src/main/java/org/apache/tuscany/sca/http/jetty/module/JettyRuntimeModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-jetty/src/main/java/org/apache/tuscany/sca/http/jetty/module/JettyRuntimeModuleActivator.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-jetty/src/main/java/org/apache/tuscany/sca/http/jetty/module/JettyRuntimeModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/host-jetty/src/main/java/org/apache/tuscany/sca/http/jetty/module/JettyRuntimeModuleActivator.java Thu Jun 12 20:54:41 2008
@@ -26,6 +26,7 @@
 
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.host.http.ServletHostExtensionPoint;
 import org.apache.tuscany.sca.http.jetty.JettyServer;
 import org.apache.tuscany.sca.work.WorkScheduler;
@@ -45,7 +46,8 @@
             extensionPointRegistry.getExtensionPoint(ServletHostExtensionPoint.class);
         
         if (servletHosts.getServletHosts().size() < 1) {
-            final WorkScheduler workScheduler = extensionPointRegistry.getExtensionPoint(WorkScheduler.class);
+            UtilityExtensionPoint utilities = extensionPointRegistry.getExtensionPoint(UtilityExtensionPoint.class);
+            final WorkScheduler workScheduler = utilities.getUtility(WorkScheduler.class);
             // Allow privileged access to start MBeans. Requires MBeanPermission in security policy.
             try {
                 server = AccessController.doPrivileged(new PrivilegedAction<JettyServer>() {

Modified: incubator/tuscany/java/sca/modules/host-tomcat/src/main/java/org/apache/tuscany/sca/http/tomcat/module/TomcatRuntimeModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-tomcat/src/main/java/org/apache/tuscany/sca/http/tomcat/module/TomcatRuntimeModuleActivator.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-tomcat/src/main/java/org/apache/tuscany/sca/http/tomcat/module/TomcatRuntimeModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/host-tomcat/src/main/java/org/apache/tuscany/sca/http/tomcat/module/TomcatRuntimeModuleActivator.java Thu Jun 12 20:54:41 2008
@@ -24,6 +24,7 @@
 
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.host.http.ServletHostExtensionPoint;
 import org.apache.tuscany.sca.http.tomcat.TomcatServer;
 import org.apache.tuscany.sca.work.WorkScheduler;
@@ -42,7 +43,8 @@
             extensionPointRegistry.getExtensionPoint(ServletHostExtensionPoint.class);
         
         if (servletHosts.getServletHosts().size() < 1) {
-            final WorkScheduler workScheduler = extensionPointRegistry.getExtensionPoint(WorkScheduler.class);
+            UtilityExtensionPoint utilities = extensionPointRegistry.getExtensionPoint(UtilityExtensionPoint.class);
+            final WorkScheduler workScheduler = utilities.getUtility(WorkScheduler.class);
             // Allow privileged access to start MBeans. Requires MBeanPermission in security policy.
             server = AccessController.doPrivileged(new PrivilegedAction<TomcatServer>() {
                 public TomcatServer run() {

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/module/JavaRuntimeModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/module/JavaRuntimeModuleActivator.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/module/JavaRuntimeModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/module/JavaRuntimeModuleActivator.java Thu Jun 12 20:54:41 2008
@@ -28,7 +28,10 @@
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.core.invocation.CglibProxyFactory;
+import org.apache.tuscany.sca.core.invocation.ExtensibleProxyFactory;
+import org.apache.tuscany.sca.core.invocation.ProxyFactory;
 import org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint;
 import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
 import org.apache.tuscany.sca.databinding.TransformerExtensionPoint;
@@ -55,11 +58,13 @@
     public void start(ExtensionPointRegistry registry) {
 
         ModelFactoryExtensionPoint factories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class);
-
         MessageFactory messageFactory = factories.getFactory(MessageFactory.class);
-        ProxyFactoryExtensionPoint proxyFactory = registry.getExtensionPoint(ProxyFactoryExtensionPoint.class);
-        proxyFactory.setClassProxyFactory(new CglibProxyFactory(messageFactory, proxyFactory
-            .getInterfaceContractMapper()));
+        
+        UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
+        InterfaceContractMapper interfaceContractMapper = utilities.getUtility(InterfaceContractMapper.class);
+
+        ProxyFactoryExtensionPoint proxyFactories = registry.getExtensionPoint(ProxyFactoryExtensionPoint.class);
+        proxyFactories.setClassProxyFactory(new CglibProxyFactory(messageFactory, interfaceContractMapper));
 
         JavaInterfaceFactory javaFactory = factories.getFactory(JavaInterfaceFactory.class);
 
@@ -75,6 +80,8 @@
         Map<ClassLoader, List<PolicyHandlerTuple>> policyHandlerClassNames = null;
         policyHandlerClassNames = PolicyHandlerDefinitionsLoader.loadPolicyHandlerClassnames();
         
+        ProxyFactory proxyFactory = new ExtensibleProxyFactory(proxyFactories);
+        
         JavaImplementationProviderFactory javaImplementationProviderFactory =
             new JavaImplementationProviderFactory(proxyFactory, dataBindings, factory, componentContextFactory,
                                                   requestContextFactory, policyHandlerClassNames);
@@ -83,7 +90,6 @@
             registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
         providerFactories.addProviderFactory(javaImplementationProviderFactory);
 
-        InterfaceContractMapper interfaceContractMapper = registry.getExtensionPoint(InterfaceContractMapper.class);
         RuntimeWireProcessorExtensionPoint wireProcessorExtensionPoint =
             registry.getExtensionPoint(RuntimeWireProcessorExtensionPoint.class);
         if (wireProcessorExtensionPoint != null) {

Modified: incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProviderFactory.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProviderFactory.java Thu Jun 12 20:54:41 2008
@@ -24,6 +24,7 @@
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.core.invocation.ExtensibleProxyFactory;
 import org.apache.tuscany.sca.core.invocation.ProxyFactory;
 import org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint;
 import org.apache.tuscany.sca.core.scope.ScopeRegistry;
@@ -59,7 +60,8 @@
     public OSGiImplementationProviderFactory(ExtensionPointRegistry extensionPoints ) {
         
         dataBindings = extensionPoints.getExtensionPoint(DataBindingExtensionPoint.class);
-        proxyFactory = extensionPoints.getExtensionPoint(ProxyFactoryExtensionPoint.class);
+        ProxyFactoryExtensionPoint proxyFactories = extensionPoints.getExtensionPoint(ProxyFactoryExtensionPoint.class);
+        proxyFactory = new ExtensibleProxyFactory(proxyFactories);
         ContextFactoryExtensionPoint contextFactories = extensionPoints.getExtensionPoint(ContextFactoryExtensionPoint.class);
         requestContextFactory = contextFactories.getFactory(RequestContextFactory.class);
         

Modified: incubator/tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java Thu Jun 12 20:54:41 2008
@@ -19,6 +19,7 @@
 package org.apache.tuscany.sca.implementation.spring;
 
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.invocation.ExtensibleProxyFactory;
 import org.apache.tuscany.sca.core.invocation.ProxyFactory;
 import org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint;
 import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
@@ -36,7 +37,7 @@
  */
 public class SpringImplementationProviderFactory implements ImplementationProviderFactory<SpringImplementation> {
 
-    private ProxyFactory proxyService;
+    private ProxyFactory proxyFactory;
     private JavaPropertyValueObjectFactory propertyFactory;
 
     /**
@@ -46,7 +47,8 @@
     public SpringImplementationProviderFactory(ExtensionPointRegistry extensionPoints) {
         super();
         
-        proxyService = extensionPoints.getExtensionPoint(ProxyFactoryExtensionPoint.class);
+        ProxyFactoryExtensionPoint proxyFactories = extensionPoints.getExtensionPoint(ProxyFactoryExtensionPoint.class); 
+        proxyFactory = new ExtensibleProxyFactory(proxyFactories); 
 
         // TODO: could the runtime have a default PropertyValueObjectFactory?
         DataBindingExtensionPoint dataBindings = extensionPoints.getExtensionPoint(DataBindingExtensionPoint.class);
@@ -64,7 +66,7 @@
      */
     public ImplementationProvider createImplementationProvider(RuntimeComponent component,
                                                                SpringImplementation implementation) {
-        return new SpringImplementationProvider(component, implementation, proxyService, propertyFactory);
+        return new SpringImplementationProvider(component, implementation, proxyFactory, propertyFactory);
     }
 
     /**

Modified: incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionModuleActivator.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionModuleActivator.java Thu Jun 12 20:54:41 2008
@@ -23,6 +23,7 @@
 
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 
 /**
  * @version $Rev$ $Date$
@@ -35,7 +36,8 @@
      */
     public void start(ExtensionPointRegistry registry) {
         if (registry != null) {
-            TransactionManager transactionManager = registry.getExtensionPoint(TransactionManager.class);
+            UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
+            TransactionManager transactionManager = utilities.getUtility(TransactionManager.class);
             if (transactionManager != null) {
                 // The transaction manage is provided by the hosting environment
 //                RuntimeWireProcessorExtensionPoint wireProcessorExtensionPoint =
@@ -52,7 +54,8 @@
             throw new IllegalStateException(e);
         }
         if (registry != null) {
-            registry.addExtensionPoint(wrapper.getTransactionManager());
+            UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
+            utilities.addUtility(wrapper.getTransactionManager());
 //            RuntimeWireProcessorExtensionPoint wireProcessorExtensionPoint =
 //                registry.getExtensionPoint(RuntimeWireProcessorExtensionPoint.class);
 //            TransactionManagerHelper helper = new TransactionManagerHelper(wrapper.getTransactionManager());
@@ -70,7 +73,8 @@
                 wrapper = null;
             }
             if (registry != null && wrapper != null) {
-                registry.removeExtensionPoint(wrapper.getTransactionManager());
+                UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
+                utilities.removeUtility(wrapper.getTransactionManager());
             }
         } catch (Exception e) {
             throw new IllegalStateException(e);

Modified: incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProviderFactory.java?rev=667326&r1=667325&r2=667326&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProviderFactory.java Thu Jun 12 20:54:41 2008
@@ -24,6 +24,7 @@
 import org.apache.tuscany.sca.assembly.Binding;
 import org.apache.tuscany.sca.assembly.Implementation;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
 import org.apache.tuscany.sca.provider.PolicyProvider;
 import org.apache.tuscany.sca.provider.PolicyProviderFactory;
@@ -39,7 +40,8 @@
 
     public TransactionPolicyProviderFactory(ExtensionPointRegistry registry) {
         super();
-        TransactionManager tm = registry.getExtensionPoint(TransactionManager.class);
+        UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
+        TransactionManager tm = utilities.getUtility(TransactionManager.class);
         this.helper = new TransactionManagerHelper(tm);
     }