You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2009/10/28 20:29:53 UTC

svn commit: r830738 [1/2] - in /tuscany/java/sca/modules: assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/ assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/...

Author: rfeng
Date: Wed Oct 28 19:29:50 2009
New Revision: 830738

URL: http://svn.apache.org/viewvc?rev=830738&view=rev
Log:
Pass ServiceRegistry via extensionPointRegistry to remove static references

Modified:
    tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
    tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java
    tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java
    tuscany/java/sca/modules/contribution-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.scanner.ContributionScanner
    tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java
    tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXAttributeProcessorExtensionPoint.java
    tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java
    tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
    tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverExtensionPoint.java
    tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/DefaultContributionScannerExtensionPoint.java
    tuscany/java/sca/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolverTestCase.java
    tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPoint.java
    tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
    tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultWireProcessorExtensionPoint.java
    tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java
    tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImpl.java
    tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/PhaseManager.java
    tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/DefaultDomainRegistryFactory.java
    tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java
    tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
    tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java
    tuscany/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoveryActivator.java
    tuscany/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/OSGiExtensionPointRegistry.java
    tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java
    tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java
    tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultModuleActivatorExtensionPoint.java
    tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java
    tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/ExtensionPointRegistry.java
    tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java
    tuscany/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java
    tuscany/java/sca/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultServletHostExtensionPoint.java
    tuscany/java/sca/modules/implementation-bpel-runtime/META-INF/MANIFEST.MF
    tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaImplementationFactoryImpl.java
    tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java
    tuscany/java/sca/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
    tuscany/java/sca/modules/node-impl-osgi/META-INF/MANIFEST.MF
    tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/OSGiNodeFactoryImpl.java
    tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiServiceExporter.java
    tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiServiceImporter.java
    tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/RemoteServiceAdminImpl.java
    tuscany/java/sca/modules/node-impl-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.node.NodeFactory
    tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java

Modified: tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java (original)
+++ tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefaultDefinitionsExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -80,7 +80,7 @@
         // Get the definitions declarations
         Collection<ServiceDeclaration> definitionsDeclarations;
         try {
-            definitionsDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(DEFINITIONS_FILE);
+            definitionsDeclarations = registry.getServiceDiscovery().getServiceDeclarations(DEFINITIONS_FILE);
         } catch (IOException e) {
             throw new IllegalStateException(e);
         }

Modified: tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java (original)
+++ tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadDocumentTestCase.java Wed Oct 28 19:29:50 2009
@@ -127,11 +127,11 @@
 
     @Test
     public void testReadImplementation() throws Exception {
-
-        ValidationSchemaExtensionPoint schemas = new DefaultValidationSchemaExtensionPoint();
+        ExtensionPointRegistry registry = new DefaultExtensionPointRegistry();
+        ValidationSchemaExtensionPoint schemas = new DefaultValidationSchemaExtensionPoint(registry);
         schemas.addSchema(getClass().getClassLoader().getResource(TUSCANY_11_XSD).toString());
         XMLInputFactory validatingInputFactory = new DefaultValidatingXMLInputFactory(inputFactory, schemas);
-        DefaultFactoryExtensionPoint factories = new DefaultFactoryExtensionPoint(new DefaultExtensionPointRegistry());
+        DefaultFactoryExtensionPoint factories = new DefaultFactoryExtensionPoint(registry);
         factories.addFactory(validatingInputFactory);
 
         CompositeDocumentProcessor compositeDocumentProcessor =
@@ -157,7 +157,7 @@
     public void testReadBinding() throws Exception {
 
         ExtensionPointRegistry registry = new DefaultExtensionPointRegistry();
-        ValidationSchemaExtensionPoint schemas = new DefaultValidationSchemaExtensionPoint();
+        ValidationSchemaExtensionPoint schemas = new DefaultValidationSchemaExtensionPoint(registry);
         schemas.addSchema(getClass().getClassLoader().getResource(TUSCANY_11_XSD).toString());
         XMLInputFactory validatingInputFactory = new DefaultValidatingXMLInputFactory(inputFactory, schemas);
         DefaultFactoryExtensionPoint factories = new DefaultFactoryExtensionPoint(registry);

Modified: tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java (original)
+++ tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultBuilderExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -98,7 +98,7 @@
 
         // Get the provider factory service declarations
         Collection<ServiceDeclaration> builderDeclarations;
-        ServiceDiscovery serviceDiscovery = ServiceDiscovery.getInstance();
+        ServiceDiscovery serviceDiscovery = registry.getServiceDiscovery();
         try {
             builderDeclarations = serviceDiscovery.getServiceDeclarations(CompositeBuilder.class.getName());
         } catch (Exception e) {

Modified: tuscany/java/sca/modules/contribution-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.scanner.ContributionScanner
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.scanner.ContributionScanner?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.scanner.ContributionScanner (original)
+++ tuscany/java/sca/modules/contribution-osgi/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.scanner.ContributionScanner Wed Oct 28 19:29:50 2009
@@ -13,6 +13,10 @@
 # "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. 
+# under the License.
+#
+# Eclipse Equinox 
 org.apache.tuscany.sca.contribution.osgi.impl.OSGiBundleContributionScanner;type=bundleentry
-org.apache.tuscany.sca.contribution.osgi.impl.OSGiBundleContributionScanner;type=bundleresource
\ No newline at end of file
+org.apache.tuscany.sca.contribution.osgi.impl.OSGiBundleContributionScanner;type=bundleresource
+# Apache Felix
+org.apache.tuscany.sca.contribution.osgi.impl.OSGiBundleContributionScanner;type=bundle
\ No newline at end of file

Modified: tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java (original)
+++ tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -33,10 +33,8 @@
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
 import org.apache.tuscany.sca.extensibility.ServiceDeclarationParser;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
@@ -49,7 +47,7 @@
 public class DefaultStAXArtifactProcessorExtensionPoint extends
     DefaultArtifactProcessorExtensionPoint<StAXArtifactProcessor<?>> implements StAXArtifactProcessorExtensionPoint {
 
-    private ExtensionPointRegistry extensionPoints;
+    private ExtensionPointRegistry registry;
     private FactoryExtensionPoint modelFactories;
     private boolean loaded;
     private StAXArtifactProcessor<Object> extensibleStAXProcessor;
@@ -59,11 +57,10 @@
      * Constructs a new extension point.
      */
     public DefaultStAXArtifactProcessorExtensionPoint(ExtensionPointRegistry extensionPoints) {
-        this.extensionPoints = extensionPoints;
+        this.registry = extensionPoints;
         this.modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
         XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class);
         XMLOutputFactory outputFactory = modelFactories.getFactory(XMLOutputFactory.class);
-        UtilityExtensionPoint utilities = this.extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
         this.extensibleStAXProcessor = new ExtensibleStAXArtifactProcessor(this, inputFactory, outputFactory);
 
         StAXAttributeProcessorExtensionPoint attributeExtensionPoint =
@@ -113,7 +110,7 @@
         Collection<ServiceDeclaration> processorDeclarations;
         try {
             processorDeclarations =
-                ServiceDiscovery.getInstance().getServiceDeclarations(StAXArtifactProcessor.class.getName());
+                registry.getServiceDiscovery().getServiceDeclarations(StAXArtifactProcessor.class.getName());
         } catch (IOException e) {
             IllegalStateException ie = new IllegalStateException(e);
             throw ie;
@@ -136,7 +133,7 @@
             // Create a processor wrapper and register it
             StAXArtifactProcessor<?> processor =
                 new LazyStAXArtifactProcessor(artifactType, modelTypeName, factoryName, processorDeclaration,
-                                              extensionPoints, modelFactories, extensibleStAXProcessor,
+                                              registry, modelFactories, extensibleStAXProcessor,
                                               extensibleStAXAttributeProcessor);
             addArtifactProcessor(processor);
         }

Modified: tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXAttributeProcessorExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXAttributeProcessorExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXAttributeProcessorExtensionPoint.java (original)
+++ tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXAttributeProcessorExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -36,7 +36,6 @@
 import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
 import org.apache.tuscany.sca.extensibility.ServiceDeclarationParser;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.MonitorFactory;
 import org.apache.tuscany.sca.monitor.Problem;
@@ -50,7 +49,7 @@
 public class DefaultStAXAttributeProcessorExtensionPoint extends
     DefaultArtifactProcessorExtensionPoint<StAXAttributeProcessor<?>> implements StAXAttributeProcessorExtensionPoint {
 
-    private ExtensionPointRegistry extensionPoints;
+    private ExtensionPointRegistry registry;
     private FactoryExtensionPoint modelFactories;
     private StAXAttributeProcessor<Object> extensibleStAXAttributeProcessor;
     private boolean loaded;
@@ -60,11 +59,11 @@
      * Constructs a new extension point.
      */
     public DefaultStAXAttributeProcessorExtensionPoint(ExtensionPointRegistry extensionPoints) {
-        this.extensionPoints = extensionPoints;
+        this.registry = extensionPoints;
         this.modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
         XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class);
         XMLOutputFactory outputFactory = modelFactories.getFactory(XMLOutputFactory.class);
-        UtilityExtensionPoint utilities = this.extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
+        UtilityExtensionPoint utilities = this.registry.getExtensionPoint(UtilityExtensionPoint.class);
         MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class);
         if (monitorFactory != null) {
             this.monitor = monitorFactory.createMonitor();
@@ -133,7 +132,7 @@
         Collection<ServiceDeclaration> processorDeclarations;
         try {
             processorDeclarations =
-                ServiceDiscovery.getInstance().getServiceDeclarations(StAXAttributeProcessor.class.getName());
+                registry.getServiceDiscovery().getServiceDeclarations(StAXAttributeProcessor.class.getName());
         } catch (IOException e) {
             IllegalStateException ie = new IllegalStateException(e);
             error("IllegalStateException", extensibleStAXAttributeProcessor, ie);
@@ -157,7 +156,7 @@
             // Create a processor wrapper and register it
             StAXAttributeProcessor<?> processor =
                 new LazyStAXAttributeProcessor(artifactType, modelTypeName, factoryName, processorDeclaration,
-                                               extensionPoints, modelFactories, extensibleStAXAttributeProcessor);
+                                               registry, modelFactories, extensibleStAXAttributeProcessor);
             addArtifactProcessor(processor);
         }
 

Modified: tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java (original)
+++ tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultURLArtifactProcessorExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -35,9 +35,7 @@
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 
 /**
  * The default implementation of a URL artifact processor extension point.
@@ -47,7 +45,7 @@
 public class DefaultURLArtifactProcessorExtensionPoint extends
     DefaultArtifactProcessorExtensionPoint<URLArtifactProcessor<?>> implements URLArtifactProcessorExtensionPoint {
 
-    private ExtensionPointRegistry extensionPoints;
+    private ExtensionPointRegistry registry;
     private StAXArtifactProcessor<?> staxProcessor;
     private boolean loaded;
 
@@ -55,11 +53,10 @@
      * Constructs a new extension point.
      */
     public DefaultURLArtifactProcessorExtensionPoint(ExtensionPointRegistry extensionPoints) {
-        this.extensionPoints = extensionPoints;
-        FactoryExtensionPoint modelFactories = this.extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
+        this.registry = extensionPoints;
+        FactoryExtensionPoint modelFactories = this.registry.getExtensionPoint(FactoryExtensionPoint.class);
         XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class);
         XMLOutputFactory outputFactory = modelFactories.getFactory(XMLOutputFactory.class);
-        UtilityExtensionPoint utilities = this.extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
         StAXArtifactProcessorExtensionPoint staxProcessors =
             extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
         staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory);
@@ -201,7 +198,7 @@
         Collection<ServiceDeclaration> processorDeclarations;
         try {
             processorDeclarations =
-                ServiceDiscovery.getInstance().getServiceDeclarations(URLArtifactProcessor.class.getName());
+                registry.getServiceDiscovery().getServiceDeclarations(URLArtifactProcessor.class.getName());
         } catch (IOException e) {
             IllegalStateException ie = new IllegalStateException(e);
             throw ie;
@@ -215,7 +212,7 @@
 
             // Create a processor wrapper and register it
             URLArtifactProcessor<?> processor =
-                new LazyURLArtifactProcessor(artifactType, modelTypeName, processorDeclaration, extensionPoints,
+                new LazyURLArtifactProcessor(artifactType, modelTypeName, processorDeclaration, registry,
                                              staxProcessor);
             addArtifactProcessor(processor);
         }

Modified: tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java (original)
+++ tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -27,8 +27,8 @@
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 
 /**
  * Default implementation of an extension point for XML schemas.
@@ -39,7 +39,13 @@
     private boolean enabled = true;
     private List<String> schemas = new ArrayList<String>();
     private boolean loaded;
-
+    private ExtensionPointRegistry registry;
+    
+    public DefaultValidationSchemaExtensionPoint(ExtensionPointRegistry registry) {
+        super();
+        this.registry = registry;
+    }
+    
     public void addSchema(String uri) {
         schemas.add(uri);
     }
@@ -60,7 +66,7 @@
         Collection<ServiceDeclaration> schemaDeclarations;
         try {
             schemaDeclarations =
-                ServiceDiscovery.getInstance()
+                registry.getServiceDiscovery()
                     .getServiceDeclarations("org.apache.tuscany.sca.contribution.processor.ValidationSchema");
         } catch (IOException e) {
             throw new IllegalStateException(e);

Modified: tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverExtensionPoint.java (original)
+++ tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolverExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -24,8 +24,8 @@
 import java.util.Map;
 import java.util.StringTokenizer;
 
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 
 
 /**
@@ -37,11 +37,13 @@
     
     private final Map<Class<?>, Class<? extends ModelResolver>> resolvers = new HashMap<Class<?>, Class<? extends ModelResolver>>();
     private Map<String, ServiceDeclaration> loadedResolvers;
+    private ExtensionPointRegistry registry;
 
     /**
      * Constructs a new DefaultModelResolverExtensionPoint.
      */
-    public DefaultModelResolverExtensionPoint() {
+    public DefaultModelResolverExtensionPoint(ExtensionPointRegistry registry) {
+        this.registry = registry;
     }
 
     public void addResolver(Class<?> modelType, Class<? extends ModelResolver> resolver) {
@@ -98,7 +100,7 @@
         // Get the model resolver service declarations
         Collection<ServiceDeclaration> modelResolverDeclarations; 
         try {
-            modelResolverDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(ModelResolver.class.getName());
+            modelResolverDeclarations = registry.getServiceDiscovery().getServiceDeclarations(ModelResolver.class.getName());
         } catch (IOException e) {
             throw new IllegalStateException(e);
         }

Modified: tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/DefaultContributionScannerExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/DefaultContributionScannerExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/DefaultContributionScannerExtensionPoint.java (original)
+++ tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/scanner/DefaultContributionScannerExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -29,8 +29,8 @@
 
 import org.apache.tuscany.sca.contribution.Contribution;
 import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 
 /**
  * Default implementation of a contribution scanner extension point.
@@ -41,8 +41,10 @@
 
     private Map<String, ContributionScanner> scanners = new HashMap<String, ContributionScanner>();
     private boolean loaded;
+    private ExtensionPointRegistry registry;
 
-    public DefaultContributionScannerExtensionPoint() {
+    public DefaultContributionScannerExtensionPoint(ExtensionPointRegistry registry) {
+        this.registry = registry;
     }
 
     public void addContributionScanner(ContributionScanner scanner) {
@@ -65,7 +67,7 @@
         // Get the scanner service declarations
         Collection<ServiceDeclaration> scannerDeclarations;
         try {
-            scannerDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(ContributionScanner.class.getName());
+            scannerDeclarations = registry.getServiceDiscovery().getServiceDeclarations(ContributionScanner.class.getName());
         } catch (IOException e) {
             throw new IllegalStateException(e);
         }

Modified: tuscany/java/sca/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolverTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolverTestCase.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolverTestCase.java (original)
+++ tuscany/java/sca/modules/contribution/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolverTestCase.java Wed Oct 28 19:29:50 2009
@@ -27,6 +27,7 @@
 import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
 import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
 import org.apache.tuscany.sca.core.DefaultFactoryExtensionPoint;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.FactoryExtensionPoint;
 import org.junit.Before;
 import org.junit.Test;
@@ -44,11 +45,11 @@
 
     @Before
     public void setUp() throws Exception {
-
-        ModelResolverExtensionPoint resolvers = new DefaultModelResolverExtensionPoint();
+        ExtensionPointRegistry registry = new DefaultExtensionPointRegistry();
+        ModelResolverExtensionPoint resolvers = new DefaultModelResolverExtensionPoint(registry);
         resolvers.addResolver(Model.class, TestModelResolver.class);
         context = new ProcessorContext();
-        FactoryExtensionPoint factories = new DefaultFactoryExtensionPoint(new DefaultExtensionPointRegistry());
+        FactoryExtensionPoint factories = new DefaultFactoryExtensionPoint(registry);
 
         resolver = new ExtensibleModelResolver(null, resolvers, factories);
 

Modified: tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPoint.java (original)
+++ tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/DefaultContextFactoryExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -94,7 +94,7 @@
 
             // Dynamically load a factory class declared under META-INF/services
             try {
-                ServiceDeclaration factoryDeclaration = ServiceDiscovery.getInstance().getServiceDeclaration(factoryInterface.getName());
+                ServiceDeclaration factoryDeclaration = registry.getServiceDiscovery().getServiceDeclaration(factoryInterface.getName());
                 if (factoryDeclaration != null) {
                     Class<?> factoryClass = factoryDeclaration.loadClass();
             

Modified: tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java (original)
+++ tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -131,7 +131,7 @@
 
         // Get the provider factory service declarations
         Collection<ServiceDeclaration> factoryDeclarations;
-        ServiceDiscovery serviceDiscovery = ServiceDiscovery.getInstance();
+        ServiceDiscovery serviceDiscovery = registry.getServiceDiscovery();
         try {
             factoryDeclarations = serviceDiscovery.getServiceDeclarations(factoryClass.getName(), true);
         } catch (Exception e) {

Modified: tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultWireProcessorExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultWireProcessorExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultWireProcessorExtensionPoint.java (original)
+++ tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultWireProcessorExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -90,7 +90,7 @@
         }
         try {
             Collection<ServiceDeclaration> sds =
-                ServiceDiscovery.getInstance().getServiceDeclarations(RuntimeWireProcessor.class, true);
+                registry.getServiceDiscovery().getServiceDeclarations(RuntimeWireProcessor.class, true);
             for (ServiceDeclaration sd : sds) {
                 Class type = sd.loadClass();
                 Constructor constructor = null;

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java Wed Oct 28 19:29:50 2009
@@ -43,6 +43,7 @@
 import org.apache.tuscany.sca.core.invocation.NonBlockingInterceptor;
 import org.apache.tuscany.sca.core.invocation.RuntimeWireInvoker;
 import org.apache.tuscany.sca.core.invocation.impl.InvocationChainImpl;
+import org.apache.tuscany.sca.core.invocation.impl.PhaseManager;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.interfacedef.Operation;
@@ -88,6 +89,7 @@
     private transient RuntimeWireProcessor wireProcessor;
     private transient InterfaceContractMapper interfaceContractMapper;
     private transient WorkScheduler workScheduler;
+    private transient PhaseManager phaseManager;
     private transient MessageFactory messageFactory;
     private transient RuntimeWireInvoker invoker;
 
@@ -135,6 +137,7 @@
 
         UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
         this.eprBinder = utilities.getUtility(EndpointReferenceBinder.class);
+        this.phaseManager = utilities.getUtility(PhaseManager.class);
         this.providerFactories = extensionPoints.getExtensionPoint(ProviderFactoryExtensionPoint.class);
     }
 
@@ -158,6 +161,7 @@
        this.invoker = new RuntimeWireInvoker(this.messageFactory, this);
 
        this.eprBinder = utilities.getUtility(EndpointReferenceBinder.class);
+       this.phaseManager = utilities.getUtility(PhaseManager.class);
        this.providerFactories = extensionPoints.getExtensionPoint(ProviderFactoryExtensionPoint.class);
    }
     
@@ -170,7 +174,7 @@
 
     public synchronized InvocationChain getBindingInvocationChain() {
         if (bindingInvocationChain == null) {
-            bindingInvocationChain = new InvocationChainImpl(null, null, isReferenceWire);
+            bindingInvocationChain = new InvocationChainImpl(null, null, isReferenceWire, phaseManager);
             if (isReferenceWire) {
                 initReferenceBindingInvocationChains();
             } else {
@@ -289,7 +293,7 @@
                         + "#"
                         + reference.getName());
                 }
-                InvocationChain chain = new InvocationChainImpl(operation, targetOperation, true);
+                InvocationChain chain = new InvocationChainImpl(operation, targetOperation, true, phaseManager);
                 if (operation.isNonBlocking()) {
                     addNonBlockingInterceptor(reference, refBinding, chain);
                 }
@@ -315,7 +319,7 @@
                         + "#"
                         + service.getName());
                 }
-                InvocationChain chain = new InvocationChainImpl(operation, targetOperation, false);
+                InvocationChain chain = new InvocationChainImpl(operation, targetOperation, false, phaseManager);
                 if (operation.isNonBlocking()) {
                     addNonBlockingInterceptor(service, serviceBinding, chain);
                 }

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImpl.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImpl.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImpl.java Wed Oct 28 19:29:50 2009
@@ -40,15 +40,15 @@
     private Operation targetOperation;
     private List<Node> nodes = new ArrayList<Node>();
 
-    // FIXME: Not a good practice to use static reference
-    private static final PhaseManager phaseManager = new PhaseManager();
+    private final PhaseManager phaseManager;
     private boolean forReference;
     private boolean allowsPassByReference;
 
-    public InvocationChainImpl(Operation sourceOperation, Operation targetOperation, boolean forReference) {
+    public InvocationChainImpl(Operation sourceOperation, Operation targetOperation, boolean forReference, PhaseManager phaseManager) {
         this.targetOperation = targetOperation;
         this.sourceOperation = sourceOperation;
         this.forReference = forReference;
+        this.phaseManager = phaseManager;
     }
 
     public Operation getTargetOperation() {

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/PhaseManager.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/PhaseManager.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/PhaseManager.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/PhaseManager.java Wed Oct 28 19:29:50 2009
@@ -49,8 +49,10 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 import org.apache.tuscany.sca.invocation.Phase;
 import org.oasisopen.sca.ServiceRuntimeException;
 
@@ -59,7 +61,7 @@
  */
 public class PhaseManager {
     private static final Logger log = Logger.getLogger(PhaseManager.class.getName());
-
+    
     public static final String STAGE_REFERENCE = "reference";
     public static final String STAGE_REFERENCE_BINDING = "reference.binding";
     public static final String STAGE_SERVICE_BINDING = "service.binding";
@@ -80,6 +82,7 @@
 
     private static final String[] SYSTEM_IMPLEMENTATION_PHASES = {IMPLEMENTATION_POLICY, IMPLEMENTATION};
 
+    private ExtensionPointRegistry registry;
     private String pattern = Phase.class.getName();
     private Map<String, Stage> stages;
     private List<String> phases;
@@ -121,14 +124,25 @@
             return name + phases;
         }
     }
-
+    
+    /**
+     * @param registry
+     */
+    public PhaseManager(ExtensionPointRegistry registry) {
+        super();
+        this.registry = registry;
+    }
+    
+    public static PhaseManager getInstance(ExtensionPointRegistry registry) {
+        UtilityExtensionPoint utilityExtensionPoint = registry.getExtensionPoint(UtilityExtensionPoint.class);
+        return utilityExtensionPoint.getUtility(PhaseManager.class);
+    }
+    
     // For unit test purpose
     PhaseManager(String pattern) {
         super();
         this.pattern = pattern;
-    }
-
-    public PhaseManager() {
+        this.registry = new DefaultExtensionPointRegistry();
     }
 
     private List<String> getPhases(String stage) {
@@ -176,7 +190,7 @@
 
         Collection<ServiceDeclaration> services;
         try {
-            services = ServiceDiscovery.getInstance().getServiceDeclarations(pattern);
+            services = registry.getServiceDiscovery().getServiceDeclarations(pattern);
         } catch (IOException e) {
             throw new ServiceRuntimeException(e);
         }

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/DefaultDomainRegistryFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/DefaultDomainRegistryFactory.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/DefaultDomainRegistryFactory.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/DefaultDomainRegistryFactory.java Wed Oct 28 19:29:50 2009
@@ -32,7 +32,6 @@
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.LifeCycleListener;
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 import org.apache.tuscany.sca.runtime.DomainRegistryFactory;
 import org.apache.tuscany.sca.runtime.EndpointListener;
 import org.apache.tuscany.sca.runtime.EndpointRegistry;
@@ -58,7 +57,7 @@
     public void start() {
         Collection<ServiceDeclaration> sds = null;
         try {
-            sds = ServiceDiscovery.getInstance().getServiceDeclarations(EndpointRegistry.class);
+            sds = extensionRegistry.getServiceDiscovery().getServiceDeclarations(EndpointRegistry.class);
         } catch (IOException e) {
             throw new IllegalStateException(e);
         }

Modified: tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java (original)
+++ tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java Wed Oct 28 19:29:50 2009
@@ -20,6 +20,7 @@
 
 import static org.junit.Assert.assertEquals;
 
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.interfacedef.impl.OperationImpl;
 import org.apache.tuscany.sca.invocation.Interceptor;
@@ -37,7 +38,7 @@
     @Test
     public void testInsertAtEnd() throws Exception {
         Operation op = newOperation("foo");
-        InvocationChain chain = new InvocationChainImpl(op, op, true);
+        InvocationChain chain = new InvocationChainImpl(op, op, true, new PhaseManager(new DefaultExtensionPointRegistry()));
         Interceptor inter2 = new MockInterceptor();
         Interceptor inter1 = new MockInterceptor();
         chain.addInterceptor(inter1);
@@ -50,7 +51,7 @@
     @Test
     public void testAddByPhase() throws Exception {
         Operation op = newOperation("foo");
-        InvocationChain chain = new InvocationChainImpl(op, op, false);
+        InvocationChain chain = new InvocationChainImpl(op, op, false, new PhaseManager(new DefaultExtensionPointRegistry()));
         Interceptor inter1 = new MockInterceptor();
         Interceptor inter2 = new MockInterceptor();
         Interceptor inter3 = new MockInterceptor();

Modified: tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java (original)
+++ tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultDataBindingExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -107,7 +107,7 @@
         // Get the databinding service declarations
         Collection<ServiceDeclaration> dataBindingDeclarations;
         try {
-            dataBindingDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(DataBinding.class.getName());
+            dataBindingDeclarations = registry.getServiceDiscovery().getServiceDeclarations(DataBinding.class.getName());
         } catch (IOException e) {
             throw new IllegalStateException(e);
         }

Modified: tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java (original)
+++ tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/DefaultTransformerExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -118,7 +118,7 @@
         Collection<ServiceDeclaration> transformerDeclarations;
 
         try {
-            transformerDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(transformerClass.getName());
+            transformerDeclarations = registry.getServiceDiscovery().getServiceDeclarations(transformerClass.getName());
 
         } catch (IOException e) {
             throw new IllegalStateException(e);

Modified: tuscany/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoveryActivator.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoveryActivator.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoveryActivator.java (original)
+++ tuscany/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoveryActivator.java Wed Oct 28 19:29:50 2009
@@ -38,6 +38,7 @@
     }
 
     public void stop(BundleContext context) throws Exception {
+        ServiceDiscovery.getInstance().setServiceDiscoverer(null);
     }
 
 }

Modified: tuscany/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/OSGiExtensionPointRegistry.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/OSGiExtensionPointRegistry.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/OSGiExtensionPointRegistry.java (original)
+++ tuscany/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/OSGiExtensionPointRegistry.java Wed Oct 28 19:29:50 2009
@@ -28,6 +28,7 @@
 import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
 import org.apache.tuscany.sca.core.LifeCycleListener;
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
+import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleException;
@@ -42,7 +43,7 @@
     private BundleContext bundleContext;
 
     public OSGiExtensionPointRegistry(BundleContext bundleContext) {
-        super();
+        super(ServiceDiscovery.getInstance(new EquinoxServiceDiscoverer(bundleContext)));
         this.bundleContext = bundleContext;
     }
 
@@ -102,7 +103,7 @@
     }
 
     @Override
-    public void stop() {
+    public synchronized void stop() {
         // Get a unique map as an extension point may exist in the map by different keys
         Map<LifeCycleListener, LifeCycleListener> map = new IdentityHashMap<LifeCycleListener, LifeCycleListener>();
         for (ServiceRegistration reg : services.values()) {

Modified: tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java (original)
+++ tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java Wed Oct 28 19:29:50 2009
@@ -42,11 +42,16 @@
  */
 public class DefaultExtensionPointRegistry implements ExtensionPointRegistry {
     private Map<Class<?>, Object> extensionPoints = new HashMap<Class<?>, Object>();
-
+    private ServiceDiscovery discovery;
     /**
      * Constructs a new registry.
      */
     public DefaultExtensionPointRegistry() {
+        this.discovery = ServiceDiscovery.getInstance();
+    }
+    
+    protected DefaultExtensionPointRegistry(ServiceDiscovery discovery) {
+        this.discovery = discovery;
     }
 
     /**
@@ -162,11 +167,11 @@
         }
     }
 
-    public void start() {
+    public synchronized void start() {
         // Do nothing
     }
 
-    public void stop() {
+    public synchronized void stop() {
         // Get a unique map as an extension point may exist in the map by different keys
         Map<LifeCycleListener, LifeCycleListener> map = new IdentityHashMap<LifeCycleListener, LifeCycleListener>();
         for (Object extp : extensionPoints.values()) {
@@ -179,4 +184,8 @@
         extensionPoints.clear();
     }
 
+    public ServiceDiscovery getServiceDiscovery() {
+        return discovery;
+    }
+
 }

Modified: tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java (original)
+++ tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -26,9 +26,9 @@
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.HashMap;
+import java.util.Map;
 
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 
 
 
@@ -38,14 +38,14 @@
  * @version $Rev$ $Date$
  */
 public class DefaultFactoryExtensionPoint implements FactoryExtensionPoint {
-    private ExtensionPointRegistry extensionPointRegistry;
-    private HashMap<Class<?>, Object> factories = new HashMap<Class<?>, Object>();
+    private ExtensionPointRegistry registry;
+    private Map<Class<?>, Object> factories = new HashMap<Class<?>, Object>();
     
     /**
      * Constructs a new DefaultModelFactoryExtensionPoint.
      */
     public DefaultFactoryExtensionPoint(ExtensionPointRegistry extensionPointRegistry) {
-        this.extensionPointRegistry = extensionPointRegistry;
+        this.registry = extensionPointRegistry;
     }
 
     /**
@@ -53,7 +53,7 @@
      * 
      * @param factory The factory to add
      */
-    public void addFactory(Object factory) {
+    public synchronized void addFactory(Object factory) {
         Class<?>[] interfaces = factory.getClass().getInterfaces();
         if (interfaces.length == 0) {
             Class<?> sc = factory.getClass().getSuperclass();
@@ -72,7 +72,7 @@
      *  
      * @param factory The factory to remove
      */
-    public void removeFactory(Object factory) {
+    public synchronized void removeFactory(Object factory) {
         Class<?>[] interfaces = factory.getClass().getInterfaces();
         if (interfaces.length == 0) {
             Class<?> sc = factory.getClass().getSuperclass();
@@ -103,18 +103,18 @@
      * @param factoryInterface The lookup key (factory interface)
      * @return The factory
      */    
-    public <T> T getFactory(Class<T> factoryInterface) {
+    public synchronized <T> T getFactory(Class<T> factoryInterface) {
         Object factory = factories.get(factoryInterface);
         if (factory == null) {
 
             // Dynamically load a factory class declared under META-INF/services 
             try {
                 ServiceDeclaration factoryDeclaration =
-                    ServiceDiscovery.getInstance().getServiceDeclaration(factoryInterface);
+                    registry.getServiceDiscovery().getServiceDeclaration(factoryInterface);
                 if (factoryDeclaration != null) {
                     try {
                         // Constructor taking the extension point registry
-                        factory = newInstance(extensionPointRegistry, factoryDeclaration);
+                        factory = newInstance(registry, factoryDeclaration);
                     } catch (NoSuchMethodException e) {
                         factory = newInstance(factoryDeclaration.loadClass(), FactoryExtensionPoint.class, this);
                     }

Modified: tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultModuleActivatorExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultModuleActivatorExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultModuleActivatorExtensionPoint.java (original)
+++ tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultModuleActivatorExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -77,7 +77,7 @@
         Collection<ServiceDeclaration> activatorDeclarations;
         try {
             // Load the module activators by ranking
-            activatorDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(ModuleActivator.class.getName(), true);
+            activatorDeclarations = registry.getServiceDiscovery().getServiceDeclarations(ModuleActivator.class.getName(), true);
         } catch (IOException e) {
             throw new IllegalStateException(e);
         }

Modified: tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java (original)
+++ tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -30,7 +30,6 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 
 /**
  * Default implementation of an extension point to hold Tuscany utility utilities.
@@ -40,12 +39,12 @@
 public class DefaultUtilityExtensionPoint implements UtilityExtensionPoint {
     private Map<Object, Object> utilities = new ConcurrentHashMap<Object, Object>();
 
-    private ExtensionPointRegistry extensionPoints;
+    private ExtensionPointRegistry registry;
     /**
      * Constructs a new extension point.
      */
     public DefaultUtilityExtensionPoint(ExtensionPointRegistry extensionPoints) {
-        this.extensionPoints = extensionPoints;
+        this.registry = extensionPoints;
     }
 
     /**
@@ -56,11 +55,11 @@
      *
      * @throws IllegalArgumentException if utility is null
      */
-    public void addUtility(Object utility) {
+    public synchronized void addUtility(Object utility) {
         addUtility(null, utility);
     }
     
-    public void addUtility(Object key, Object utility) {
+    public synchronized void addUtility(Object key, Object utility) {
         if (utility == null) {
             throw new IllegalArgumentException("Cannot register null as a Service");
         }
@@ -91,7 +90,7 @@
      *
      * @throws IllegalArgumentException if utilityType is null
      */
-    public <T> T getUtility(Class<T> utilityType) {
+    public synchronized <T> T getUtility(Class<T> utilityType) {
         return getUtility(utilityType, null);
     }
 
@@ -102,7 +101,7 @@
      *
      * @throws IllegalArgumentException if utility is null
      */
-    public void removeUtility(Object utility) {
+    public synchronized void removeUtility(Object utility) {
         if (utility == null) {
             throw new IllegalArgumentException("Cannot remove null as a Service");
         }
@@ -144,7 +143,7 @@
         }
     }
 
-    public <T> T getUtility(Class<T> utilityType, Object key) {
+    public synchronized <T> T getUtility(Class<T> utilityType, Object key) {
         if (utilityType == null) {
             throw new IllegalArgumentException("Cannot lookup Service of type null");
         }
@@ -160,7 +159,7 @@
             // Dynamically load a utility class declared under META-INF/services/"utilityType"
             try {
                 ServiceDeclaration utilityDeclaration =
-                    ServiceDiscovery.getInstance().getServiceDeclaration(utilityType.getName());
+                    registry.getServiceDiscovery().getServiceDeclaration(utilityType.getName());
                 Class<?> utilityClass = null;
                 if (utilityDeclaration != null) {
                     utilityClass = utilityDeclaration.loadClass();
@@ -171,10 +170,10 @@
                 if (utilityClass != null) {
                     // Construct the utility
                     if (utilityDeclaration != null) {
-                        utility = newInstance(extensionPoints, utilityDeclaration);
+                        utility = newInstance(registry, utilityDeclaration);
                     } else {
                         try {
-                            utility = newInstance(utilityClass, ExtensionPointRegistry.class, extensionPoints);
+                            utility = newInstance(utilityClass, ExtensionPointRegistry.class, registry);
                         } catch (NoSuchMethodException e) {
                             utility = newInstance(utilityClass);
                         }
@@ -198,11 +197,11 @@
         return !utilityType.isInterface() && Modifier.isPublic(modifiers) && !Modifier.isAbstract(modifiers);
     }
 
-    public void start() {
+    public synchronized void start() {
         // NOOP
     }
 
-    public void stop() {
+    public synchronized void stop() {
         // Get a unique map as an extension point may exist in the map by different keys
         Map<LifeCycleListener, LifeCycleListener> map = new IdentityHashMap<LifeCycleListener, LifeCycleListener>();
         for (Object util : utilities.values()) {

Modified: tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/ExtensionPointRegistry.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/ExtensionPointRegistry.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/ExtensionPointRegistry.java (original)
+++ tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/ExtensionPointRegistry.java Wed Oct 28 19:29:50 2009
@@ -19,6 +19,8 @@
 
 package org.apache.tuscany.sca.core;
 
+import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
+
 
 /**
  * The registry for the Tuscany core extension points. As the point of contact
@@ -53,4 +55,10 @@
      * @throws IllegalArgumentException if extensionPoint is null
      */
     void removeExtensionPoint(Object extensionPoint);
+    
+    /**
+     * Get an instance of the ServiceDiscovery
+     * @return an instance of the ServiceDiscovery associated with the environment
+     */
+    ServiceDiscovery getServiceDiscovery();
 }

Modified: tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java (original)
+++ tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java Wed Oct 28 19:29:50 2009
@@ -53,6 +53,11 @@
         super();
     }
 
+    private ServiceDiscovery(ServiceDiscoverer discoverer) {
+        super();
+        this.discoverer = discoverer;
+    }
+
     /**
      * Get an instance of Service discovery, one instance is created per
      * ClassLoader that this class is loaded from
@@ -62,6 +67,10 @@
     public static ServiceDiscovery getInstance() {
         return INSTANCE;
     }
+    
+    public static ServiceDiscovery getInstance(ServiceDiscoverer discoverer) {
+        return new ServiceDiscovery(discoverer);
+    }
 
     public ServiceDiscoverer getServiceDiscoverer() {
         if (discoverer != null) {
@@ -80,8 +89,8 @@
     }
 
     public void setServiceDiscoverer(ServiceDiscoverer sd) {
-        if (discoverer != null) {
-            throw new IllegalStateException("The ServiceDiscoverer cannot be reset");
+        if (discoverer != null && sd != null) {
+            logger.warning("ServiceDiscoverer is reset to " + sd);
         }
         discoverer = sd;
     }
@@ -255,9 +264,9 @@
 
         @Override
         protected Class<?> findClass(String className) throws ClassNotFoundException {
-            for (ClassLoader parent : classLoaders) {
+            for (ClassLoader delegate : classLoaders) {
                 try {
-                    return parent.loadClass(className);
+                    return delegate.loadClass(className);
                 } catch (ClassNotFoundException e) {
                     continue;
                 }
@@ -267,8 +276,8 @@
 
         @Override
         protected URL findResource(String resName) {
-            for (ClassLoader parent : classLoaders) {
-                URL url = parent.getResource(resName);
+            for (ClassLoader delegate : classLoaders) {
+                URL url = delegate.getResource(resName);
                 if (url != null) {
                     return url;
                 }
@@ -279,8 +288,8 @@
         @Override
         protected Enumeration<URL> findResources(String resName) throws IOException {
             Set<URL> urlSet = new HashSet<URL>();
-            for (ClassLoader parent : classLoaders) {
-                Enumeration<URL> urls = parent.getResources(resName);
+            for (ClassLoader delegate : classLoaders) {
+                Enumeration<URL> urls = delegate.getResources(resName);
                 if (urls != null) {
                     while (urls.hasMoreElements()) {
                         urlSet.add(urls.nextElement());
@@ -327,6 +336,13 @@
         return loaders;
     }
 
+    /**
+     * Set the thread context classloader (TCCL) to a classloader that delegates to a collection
+     * of classloaders 
+     * @param parent The parent classloader
+     * @param delegates A list of classloaders to try
+     * @return The existing TCCL 
+     */
     public ClassLoader setContextClassLoader(ClassLoader parent, ClassLoader... delegates) {
         ClassLoader tccl = Thread.currentThread().getContextClassLoader();
         List<ClassLoader> loaders = new ArrayList<ClassLoader>();

Modified: tuscany/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java (original)
+++ tuscany/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java Wed Oct 28 19:29:50 2009
@@ -22,6 +22,7 @@
 
 import java.io.Serializable;
 
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
 import org.apache.tuscany.sca.core.DefaultUtilityExtensionPoint;
 import org.apache.tuscany.sca.core.LifeCycleListener;
 import org.apache.tuscany.sca.core.UtilityExtensionPoint;
@@ -41,7 +42,7 @@
      */
     @BeforeClass
     public static void setUpBeforeClass() throws Exception {
-        ep = new DefaultUtilityExtensionPoint(null);
+        ep = new DefaultUtilityExtensionPoint(new DefaultExtensionPointRegistry());
         ep.start();
     }
     

Modified: tuscany/java/sca/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultServletHostExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultServletHostExtensionPoint.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultServletHostExtensionPoint.java (original)
+++ tuscany/java/sca/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/DefaultServletHostExtensionPoint.java Wed Oct 28 19:29:50 2009
@@ -76,7 +76,7 @@
         // Get the databinding service declarations
         Collection<ServiceDeclaration> sds;
         try {
-            sds = ServiceDiscovery.getInstance().getServiceDeclarations(ServletHost.class, true);
+            sds = registry.getServiceDiscovery().getServiceDeclarations(ServletHost.class, true);
         } catch (IOException e) {
             throw new IllegalStateException(e);
         }

Modified: tuscany/java/sca/modules/implementation-bpel-runtime/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-bpel-runtime/META-INF/MANIFEST.MF?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-bpel-runtime/META-INF/MANIFEST.MF (original)
+++ tuscany/java/sca/modules/implementation-bpel-runtime/META-INF/MANIFEST.MF Wed Oct 28 19:29:50 2009
@@ -53,7 +53,7 @@
  org.apache.tuscany.sca.policy;version="2.0.0",
  org.apache.tuscany.sca.provider;version="2.0",
  org.apache.tuscany.sca.runtime;version="2.0",
- org.eclipse.core.runtime;common=split,
+ org.eclipse.core.runtime;resolution:=optional;common=split,
  org.oasisopen.sca.annotation;version="2.0",
  org.w3c.dom;resolution:=optional
 Bundle-SymbolicName: org.apache.tuscany.sca.implementation.bpel.ode

Modified: tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaImplementationFactoryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaImplementationFactoryImpl.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaImplementationFactoryImpl.java (original)
+++ tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaImplementationFactoryImpl.java Wed Oct 28 19:29:50 2009
@@ -95,7 +95,7 @@
         // Get the databinding service declarations
         Collection<ServiceDeclaration> visitorDeclarations; 
         try {
-            visitorDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(JavaClassVisitor.class, true);
+            visitorDeclarations = registry.getServiceDiscovery().getServiceDeclarations(JavaClassVisitor.class, true);
         } catch (IOException e) {
             throw new IllegalStateException(e);
         }

Modified: tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java (original)
+++ tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java Wed Oct 28 19:29:50 2009
@@ -26,7 +26,6 @@
 
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
 import org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceFactoryImpl;
 import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor;
 
@@ -38,13 +37,13 @@
 public class DefaultJavaInterfaceFactory extends JavaInterfaceFactoryImpl implements JavaInterfaceFactory {
     private static final Logger logger = Logger.getLogger(DefaultJavaInterfaceFactory.class.getName());
     
-    private ExtensionPointRegistry extensionPointRegistry;
+    private ExtensionPointRegistry registry;
     // private Monitor monitor = null;
     private boolean loadedVisitors; 
     
     public DefaultJavaInterfaceFactory(ExtensionPointRegistry registry) {
         super();
-        this.extensionPointRegistry = registry;
+        this.registry = registry;
     }
     
     @Override
@@ -64,7 +63,7 @@
         // Get the databinding service declarations
         Collection<ServiceDeclaration> visitorDeclarations; 
         try {
-            visitorDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(JavaInterfaceVisitor.class, true);
+            visitorDeclarations = registry.getServiceDiscovery().getServiceDeclarations(JavaInterfaceVisitor.class, true);
         } catch (IOException e) {
             throw new IllegalStateException(e);
         }
@@ -77,7 +76,7 @@
                 
                 try {
                     Constructor<JavaInterfaceVisitor> constructor = visitorClass.getConstructor(ExtensionPointRegistry.class);
-                    visitor = constructor.newInstance(extensionPointRegistry);
+                    visitor = constructor.newInstance(registry);
                 } catch (NoSuchMethodException e) {
                     visitor = visitorClass.newInstance();
                 }

Modified: tuscany/java/sca/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java (original)
+++ tuscany/java/sca/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java Wed Oct 28 19:29:50 2009
@@ -166,8 +166,8 @@
                     Class<?> discoveryClass = Class.forName("org.apache.tuscany.sca.extensibility.ServiceDiscovery");
                     Object instance = discoveryClass.getMethod("getInstance").invoke(null);
                     Object factoryDeclaration =
-                        discoveryClass.getMethod("getServiceDeclaration", String.class).invoke(instance,
-                                                                                               NodeFactory.class.getName());
+                        discoveryClass.getMethod("getServiceDeclaration", Class.class).invoke(instance,
+                                                                                              NodeFactory.class);
                     if (factoryDeclaration != null) {
                         Class<?> factoryImplClass =
                             (Class<?>)factoryDeclaration.getClass().getMethod("loadClass").invoke(factoryDeclaration);
@@ -177,11 +177,13 @@
                     // Ignore
                 }
 
-                // Fail back to default impl
-                String className = "org.apache.tuscany.sca.node.impl.NodeFactoryImpl";
+                if (nodeFactory == null) {
+                    // Fail back to default impl
+                    String className = "org.apache.tuscany.sca.node.impl.NodeFactoryImpl";
 
-                Class<?> cls = Class.forName(className);
-                nodeFactory = (NodeFactory)cls.newInstance();
+                    Class<?> cls = Class.forName(className);
+                    nodeFactory = (NodeFactory)cls.newInstance();
+                }
 
             } catch (Exception e) {
                 throw new ServiceRuntimeException(e);

Modified: tuscany/java/sca/modules/node-impl-osgi/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-impl-osgi/META-INF/MANIFEST.MF?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/node-impl-osgi/META-INF/MANIFEST.MF (original)
+++ tuscany/java/sca/modules/node-impl-osgi/META-INF/MANIFEST.MF Wed Oct 28 19:29:50 2009
@@ -42,6 +42,7 @@
  org.oasisopen.sca.annotation;version="2.0.0";resolution:=optional,
  org.osgi.framework;version="1.4.0",
  org.osgi.framework.hooks.service;version="1.0.0";resolution:=optional,
+ org.osgi.service.cm;version="1.2.1",
  org.osgi.service.component;version="1.1.0";resolution:=optional,
  org.osgi.service.event;version="1.2.0",
  org.osgi.service.packageadmin;version="1.2.0";resolution:=optional,

Modified: tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/OSGiNodeFactoryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/OSGiNodeFactoryImpl.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/OSGiNodeFactoryImpl.java (original)
+++ tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/OSGiNodeFactoryImpl.java Wed Oct 28 19:29:50 2009
@@ -33,6 +33,7 @@
 import org.apache.tuscany.sca.node.impl.NodeFactoryImpl;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.ServiceRegistration;
 
 /**
@@ -44,10 +45,22 @@
     private ServiceRegistration registration;
     private BundleContext bundleContext;
 
+    public OSGiNodeFactoryImpl() {
+        super();
+        Bundle bundle = FrameworkUtil.getBundle(OSGiNodeFactoryImpl.class);
+        if (bundle != null) {
+            this.bundleContext = bundle.getBundleContext();
+            autoDestroy = false;
+            setNodeFactory(this);
+        } else {
+            throw new IllegalStateException(OSGiNodeFactoryImpl.class + " is not loaded by OSGi");
+        }
+    }
     /**
      * Constructs a new Node controller
      */
     public OSGiNodeFactoryImpl(BundleContext bundleContext) {
+        super();
         this.bundleContext = bundleContext;
         autoDestroy = false;
         setNodeFactory(this);

Modified: tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiServiceExporter.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiServiceExporter.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiServiceExporter.java (original)
+++ tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiServiceExporter.java Wed Oct 28 19:29:50 2009
@@ -30,29 +30,18 @@
 import org.apache.tuscany.sca.assembly.ComponentService;
 import org.apache.tuscany.sca.assembly.Endpoint;
 import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.LifeCycleListener;
-import org.apache.tuscany.sca.node.NodeFactory;
 import org.apache.tuscany.sca.node.configuration.NodeConfiguration;
-import org.apache.tuscany.sca.node.impl.NodeFactoryImpl;
 import org.apache.tuscany.sca.node.impl.NodeImpl;
 import org.apache.tuscany.sca.osgi.remoteserviceadmin.EndpointDescription;
 import org.apache.tuscany.sca.osgi.remoteserviceadmin.ExportRegistration;
-import org.apache.tuscany.sca.osgi.service.discovery.impl.LocalDiscoveryService;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
-import org.osgi.util.tracker.ServiceTracker;
 import org.osgi.util.tracker.ServiceTrackerCustomizer;
 
 /**
  * Watching and exporting OSGi services 
  */
-public class OSGiServiceExporter implements ServiceTrackerCustomizer, LifeCycleListener {
-    private ExtensionPointRegistry registry;
-    private BundleContext context;
-    private NodeFactoryImpl nodeFactory;
-    private EndpointIntrospector introspector;
-    private ServiceTracker discoveryTracker;
+public class OSGiServiceExporter extends AbstractOSGiServiceHandler implements ServiceTrackerCustomizer {
 
     /**
      * @param context
@@ -60,32 +49,13 @@
      * @param customizer
      */
     public OSGiServiceExporter(BundleContext context) {
-        this.context = context;
-    }
-
-    private synchronized void init() {
-        if (nodeFactory == null) {
-            this.nodeFactory = (NodeFactoryImpl)NodeFactory.newInstance();
-            this.nodeFactory.init();
-            this.discoveryTracker = LocalDiscoveryService.getTracker(context);
-            discoveryTracker.open();
-            this.introspector = new EndpointIntrospector(context, getExtensionPointRegistry(), discoveryTracker);
-        }
+        super(context);
     }
 
     public void start() {
         init();
     }
 
-    public void stop() {
-        discoveryTracker.close();
-        discoveryTracker = null;
-        introspector = null;
-        nodeFactory = null;
-        registry = null;
-        context = null;
-    }
-
     public Object addingService(ServiceReference reference) {
         return exportService(reference, null);
     }
@@ -97,6 +67,9 @@
             if (contribution != null) {
 
                 NodeConfiguration configuration = nodeFactory.createNodeConfiguration();
+                if (domainRegistry != null) {
+                    configuration.setDomainRegistryURI(domainRegistry);
+                }
                 configuration.setURI(contribution.getURI());
                 configuration.getExtensions().add(reference.getBundle());
                 // FIXME: Configure the domain and node URI
@@ -132,16 +105,4 @@
             exportRegistration.close();
         }
     }
-
-    protected ExtensionPointRegistry getExtensionPointRegistry() {
-        if (registry == null) {
-            ServiceTracker tracker = new ServiceTracker(context, ExtensionPointRegistry.class.getName(), null);
-            tracker.open();
-            // tracker.waitForService(1000);
-            registry = (ExtensionPointRegistry)tracker.getService();
-            tracker.close();
-        }
-        return registry;
-    }
-
 }

Modified: tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiServiceImporter.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiServiceImporter.java?rev=830738&r1=830737&r2=830738&view=diff
==============================================================================
--- tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiServiceImporter.java (original)
+++ tuscany/java/sca/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/osgi/remoteserviceadmin/impl/OSGiServiceImporter.java Wed Oct 28 19:29:50 2009
@@ -24,30 +24,19 @@
 import org.apache.tuscany.sca.assembly.Component;
 import org.apache.tuscany.sca.assembly.ComponentReference;
 import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.LifeCycleListener;
 import org.apache.tuscany.sca.node.Node;
-import org.apache.tuscany.sca.node.NodeFactory;
 import org.apache.tuscany.sca.node.configuration.NodeConfiguration;
-import org.apache.tuscany.sca.node.impl.NodeFactoryImpl;
 import org.apache.tuscany.sca.node.impl.NodeImpl;
 import org.apache.tuscany.sca.osgi.remoteserviceadmin.EndpointDescription;
 import org.apache.tuscany.sca.osgi.remoteserviceadmin.ImportRegistration;
-import org.apache.tuscany.sca.osgi.service.discovery.impl.LocalDiscoveryService;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
-import org.osgi.util.tracker.ServiceTracker;
 
 /**
  * Watching and exporting OSGi services 
  */
-public class OSGiServiceImporter implements LifeCycleListener {
-    private ExtensionPointRegistry registry;
-    private BundleContext context;
-    private NodeFactoryImpl nodeFactory;
-    private EndpointIntrospector introspector;
-    private ServiceTracker discoveryTracker;
+public class OSGiServiceImporter extends AbstractOSGiServiceHandler {
 
     /**
      * @param context
@@ -55,31 +44,12 @@
      * @param customizer
      */
     public OSGiServiceImporter(BundleContext context) {
-        this.context = context;
-    }
-
-    private synchronized void init() {
-        if (nodeFactory == null) {
-            this.nodeFactory = (NodeFactoryImpl)NodeFactory.newInstance();
-            this.nodeFactory.init();
-            this.discoveryTracker = LocalDiscoveryService.getTracker(context);
-            discoveryTracker.open();
-            this.introspector = new EndpointIntrospector(context, getExtensionPointRegistry(), discoveryTracker);
-        }
+        super(context);
     }
 
     public void start() {
     }
 
-    public void stop() {
-        discoveryTracker.close();
-        discoveryTracker = null;
-        introspector = null;
-        nodeFactory = null;
-        registry = null;
-        context = null;
-    }
-
     public ImportRegistration importService(Bundle bundle, EndpointDescription endpointDescription) {
         init();
         try {
@@ -87,6 +57,9 @@
             if (contribution != null) {
 
                 NodeConfiguration configuration = nodeFactory.createNodeConfiguration();
+                if (domainRegistry != null) {
+                    configuration.setDomainRegistryURI(domainRegistry);
+                }
                 configuration.setURI(contribution.getURI());
                 configuration.getExtensions().add(bundle);
                 // FIXME: Configure the domain and node URI
@@ -115,15 +88,4 @@
         node.stop();
     }
 
-    protected ExtensionPointRegistry getExtensionPointRegistry() {
-        if (registry == null) {
-            ServiceTracker tracker = new ServiceTracker(context, ExtensionPointRegistry.class.getName(), null);
-            tracker.open();
-            // tracker.waitForService(1000);
-            registry = (ExtensionPointRegistry)tracker.getService();
-            tracker.close();
-        }
-        return registry;
-    }
-
 }