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 2007/05/08 23:48:27 UTC
svn commit: r536341 - in /incubator/tuscany/java/sca/modules:
binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/
core-spi/src/main/java/org/apache/tuscany/provider/
core/src/main/java/org/apache/tuscany/core/runtime/
host-embedded/src/main/java/...
Author: jsdelfino
Date: Tue May 8 14:48:25 2007
New Revision: 536341
URL: http://svn.apache.org/viewvc?view=rev&rev=536341
Log:
Separated provider factories from model implementations.
Added:
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/DefaultProviderFactoryExtensionPoint.java (with props)
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/Provider.java (with props)
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactory.java (with props)
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactoryExtensionPoint.java (with props)
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingProviderFactory.java (with props)
incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProviderFactory.java (with props)
Removed:
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderActivator.java
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/RuntimeJavaImplementationFactory.java
Modified:
incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/DefaultRMIBindingFactory.java
incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java
incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java
incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/BindingProviderFactory.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ImplementationProvider.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ImplementationProviderFactory.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ReferenceBindingProvider.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ScopedImplementationProvider.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ServiceBindingProvider.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingImpl.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingProvider.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java
incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/DefaultCRUDImplementationFactory.java
incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/module/CRUDModuleActivator.java
incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/provider/CRUDImplementationProvider.java
incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/provider/CRUDImplementationProviderFactory.java
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProvider.java
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProviderFactory.java
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/module/JavaRuntimeModuleActivator.java
incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementation.java
incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProvider.java
incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptModuleActivator.java
Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/DefaultRMIBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/DefaultRMIBindingFactory.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/DefaultRMIBindingFactory.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/DefaultRMIBindingFactory.java Tue May 8 14:48:25 2007
@@ -18,7 +18,6 @@
*/
package org.apache.tuscany.binding.rmi;
-import org.apache.tuscany.rmi.RMIHost;
/**
* A factory for the WSDL model.
@@ -26,14 +25,12 @@
* @version $Rev: 526508 $ $Date: 2007-04-08 07:42:42 +0530 (Sun, 08 Apr 2007) $
*/
public class DefaultRMIBindingFactory implements RMIBindingFactory {
- private RMIHost rmiHost = null;
- public DefaultRMIBindingFactory(RMIHost rmiHost) {
- this.rmiHost = rmiHost;
+ public DefaultRMIBindingFactory() {
}
public RMIBinding createRMIBinding() {
- return new RMIBindingProviderFactory(rmiHost);
+ return new RMIBindingImpl();
}
}
Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java Tue May 8 14:48:25 2007
@@ -57,8 +57,8 @@
*
* @version $Rev: $ $Date: $
*/
-public class RMIBindingProvider implements ReferenceBindingProvider,
- ServiceBindingProvider, MethodInterceptor {
+public class RMIBindingProvider implements ReferenceBindingProvider<RMIBinding>,
+ ServiceBindingProvider<RMIBinding>, MethodInterceptor {
private RuntimeComponent component;
private RuntimeComponentService service;
Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java Tue May 8 14:48:25 2007
@@ -32,7 +32,7 @@
*
* @version $Rev$ $Date$
*/
-public class RMIBindingProviderFactory extends RMIBindingImpl implements BindingProviderFactory {
+public class RMIBindingProviderFactory implements BindingProviderFactory<RMIBinding> {
private RMIHost rmiHost;
@@ -40,11 +40,15 @@
this.rmiHost = rmiHost;
}
- public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference) {
- return new RMIBindingProvider(component, reference, this, rmiHost);
+ public ReferenceBindingProvider<RMIBinding> createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference, RMIBinding binding) {
+ return new RMIBindingProvider(component, reference, binding, rmiHost);
}
- public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service) {
- return new RMIBindingProvider(component, service, this, rmiHost);
+ public ServiceBindingProvider<RMIBinding> createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, RMIBinding binding) {
+ return new RMIBindingProvider(component, service, binding, rmiHost);
+ }
+
+ public Class<RMIBinding> getModelType() {
+ return RMIBinding.class;
}
}
Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java Tue May 8 14:48:25 2007
@@ -29,6 +29,7 @@
import org.apache.tuscany.core.ModuleActivator;
import org.apache.tuscany.policy.DefaultPolicyFactory;
import org.apache.tuscany.policy.PolicyFactory;
+import org.apache.tuscany.provider.ProviderFactoryExtensionPoint;
import org.apache.tuscany.rmi.RMIHost;
public class RMIModuleActivator implements ModuleActivator {
@@ -41,8 +42,11 @@
PolicyFactory policyFactory = new DefaultPolicyFactory();
RMIHost rmiHost = registry.getExtensionPoint(RMIHost.class);
- RMIBindingFactory rmiFactory = new DefaultRMIBindingFactory(rmiHost);
+ RMIBindingFactory rmiFactory = new DefaultRMIBindingFactory();
processors.addArtifactProcessor(new RMIBindingProcessor(assemblyFactory, policyFactory, rmiFactory));
+
+ ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
+ providerFactories.addProviderFactory(new RMIBindingProviderFactory(rmiHost));
}
public void stop(ExtensionPointRegistry registry) {
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/BindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/BindingProviderFactory.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/BindingProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/BindingProviderFactory.java Tue May 8 14:48:25 2007
@@ -27,7 +27,7 @@
/**
* @version $Rev$ $Date$
*/
-public interface BindingProviderFactory extends Binding {
+public interface BindingProviderFactory<M extends Binding> extends ProviderFactory<M> {
/**
* Creates a new reference binding provider for the given
@@ -35,9 +35,13 @@
*
* @param component
* @param reference
+ * @param binding
* @return
*/
- ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference);
+ ReferenceBindingProvider<M> createReferenceBindingProvider(
+ RuntimeComponent component,
+ RuntimeComponentReference reference,
+ M binding);
/**
* Creates a new service binding provider for the given
@@ -45,8 +49,12 @@
*
* @param component
* @param service
+ * @param binding
* @return
*/
- ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service);
+ ServiceBindingProvider<M> createServiceBindingProvider(
+ RuntimeComponent component,
+ RuntimeComponentService service,
+ M binding);
}
Added: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/DefaultProviderFactoryExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/DefaultProviderFactoryExtensionPoint.java?view=auto&rev=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/DefaultProviderFactoryExtensionPoint.java (added)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/DefaultProviderFactoryExtensionPoint.java Tue May 8 14:48:25 2007
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.provider;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Default implementation of a provider factory extension point.
+ *
+ * @version $Rev$ $Date$
+ */
+public class DefaultProviderFactoryExtensionPoint implements ProviderFactoryExtensionPoint {
+
+ protected final Map<Class<?>, ProviderFactory> providerFactories =
+ new HashMap<Class<?>, ProviderFactory>();
+
+ public DefaultProviderFactoryExtensionPoint() {
+ }
+
+ public void addProviderFactory(ProviderFactory providerFactory) {
+ providerFactories.put(providerFactory.getClass(), providerFactory);
+ }
+
+ public void removeProviderFactory(ProviderFactory providerFactory) {
+ providerFactories.remove(providerFactory.getClass());
+ }
+
+ public ProviderFactory getProviderFactory(Class<?> modelType) {
+ Class<?>[] classes = modelType.getInterfaces();
+ for (Class<?> c : classes) {
+ ProviderFactory factory = providerFactories.get(c);
+ if (factory != null) {
+ return factory;
+ }
+ }
+ return providerFactories.get(modelType);
+ }
+
+}
Propchange: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/DefaultProviderFactoryExtensionPoint.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/DefaultProviderFactoryExtensionPoint.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ImplementationProvider.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ImplementationProvider.java Tue May 8 14:48:25 2007
@@ -29,7 +29,7 @@
*
* @version $Rev$ $Date$
*/
-public interface ImplementationProvider extends ProviderActivator {
+public interface ImplementationProvider<M> extends Provider {
/**
* Create an invoker for the component implementation in the invocation
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ImplementationProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ImplementationProviderFactory.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ImplementationProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ImplementationProviderFactory.java Tue May 8 14:48:25 2007
@@ -25,15 +25,16 @@
/**
* @version $Rev$ $Date$
*/
-public interface ImplementationProviderFactory extends Implementation {
+public interface ImplementationProviderFactory<M extends Implementation> extends ProviderFactory<M> {
/**
* Creates a new implementation provider for the given
* component.
*
* @param component
+ * @param implementation
* @return
*/
- ImplementationProvider createImplementationProvider(RuntimeComponent component);
+ ImplementationProvider<M> createImplementationProvider(RuntimeComponent component, M Implementation);
}
Added: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/Provider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/Provider.java?view=auto&rev=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/Provider.java (added)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/Provider.java Tue May 8 14:48:25 2007
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.provider;
+
+
+
+/**
+ * A component implementation can optionally implement this interface to control
+ * how a component is started ot stopped.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface Provider {
+ /**
+ * This method will be invoked when a component implemented by this
+ * implementation is activated.
+ */
+ void start();
+
+ /**
+ * This method will be invoked when a component implemented by this
+ * implementation is deactivated.
+ */
+ void stop();
+
+}
Propchange: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/Provider.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/Provider.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactory.java?view=auto&rev=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactory.java (added)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactory.java Tue May 8 14:48:25 2007
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.provider;
+
+/**
+ * A factory for runtime providers.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface ProviderFactory<M> {
+
+ /**
+ * The model type that this factory creates providers for.
+ *
+ * @return the model type
+ */
+ Class<M> getModelType();
+
+}
Propchange: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactoryExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactoryExtensionPoint.java?view=auto&rev=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactoryExtensionPoint.java (added)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactoryExtensionPoint.java Tue May 8 14:48:25 2007
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.provider;
+
+
+/**
+ * An extension point for provider factories.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface ProviderFactoryExtensionPoint {
+
+
+ /**
+ * Add a provider factory.
+ *
+ * @param providerFactory the provider factory
+ */
+ void addProviderFactory(ProviderFactory providerFactory);
+
+ /**
+ * Remove a provider factory.
+ *
+ * @param providerFactory the provider factory
+ */
+ void removeProviderFactory(ProviderFactory providerFactory);
+
+ /**
+ * Returns the provider factory associated with the given model type.
+ * @param modelType a model type
+ * @return the provider factory associated with the given model type
+ */
+ <M> ProviderFactory<M> getProviderFactory(Class<?> modelType);
+
+}
Propchange: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactoryExtensionPoint.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ProviderFactoryExtensionPoint.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ReferenceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ReferenceBindingProvider.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ReferenceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ReferenceBindingProvider.java Tue May 8 14:48:25 2007
@@ -26,7 +26,7 @@
/**
* @version $Rev$ $Date$
*/
-public interface ReferenceBindingProvider extends ProviderActivator {
+public interface ReferenceBindingProvider<M> extends Provider {
/**
* Create an invoker for the reference binding in the invocation chain.
* The invoker is responsible for making the outbound invocation over
@@ -49,5 +49,4 @@
*/
InterfaceContract getBindingInterfaceContract();
-
}
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ScopedImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ScopedImplementationProvider.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ScopedImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ScopedImplementationProvider.java Tue May 8 14:48:25 2007
@@ -28,7 +28,7 @@
*
* @version $Rev$ $Date$
*/
-public interface ScopedImplementationProvider extends ImplementationProvider {
+public interface ScopedImplementationProvider<M> extends ImplementationProvider<M> {
/**
* Get the scope for the component implementation
*
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ServiceBindingProvider.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ServiceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/provider/ServiceBindingProvider.java Tue May 8 14:48:25 2007
@@ -26,7 +26,7 @@
*
* @version $Rev$ $Date$
*/
-public interface ServiceBindingProvider extends ProviderActivator {
+public interface ServiceBindingProvider<M> extends Provider {
/**
* Get the effective interface contract imposed by the binding. For example,
* it will be interface contract introspected from the WSDL portType used by
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java Tue May 8 14:48:25 2007
@@ -47,6 +47,7 @@
import org.apache.tuscany.provider.BindingProviderFactory;
import org.apache.tuscany.provider.ImplementationProvider;
import org.apache.tuscany.provider.ImplementationProviderFactory;
+import org.apache.tuscany.provider.ProviderFactoryExtensionPoint;
import org.apache.tuscany.provider.ReferenceBindingProvider;
import org.apache.tuscany.provider.ScopedImplementationProvider;
import org.apache.tuscany.provider.ServiceBindingProvider;
@@ -66,6 +67,7 @@
private final WorkContext workContext;
private final WorkScheduler workScheduler;
private final RuntimeWireProcessor wireProcessor;
+ private final ProviderFactoryExtensionPoint providerFactories;
/**
* @param assemblyFactory
@@ -79,7 +81,8 @@
ScopeRegistry scopeRegistry,
WorkContext workContext,
WorkScheduler workScheduler,
- RuntimeWireProcessor wireProcessor) {
+ RuntimeWireProcessor wireProcessor,
+ ProviderFactoryExtensionPoint providerFactories) {
super();
this.assemblyFactory = assemblyFactory;
this.interfaceContractMapper = interfaceContractMapper;
@@ -87,6 +90,7 @@
this.workContext = workContext;
this.workScheduler = workScheduler;
this.wireProcessor = wireProcessor;
+ this.providerFactories = providerFactories;
}
/**
@@ -100,10 +104,10 @@
for (ComponentService service : component.getServices()) {
for (Binding binding : service.getBindings()) {
- if (binding instanceof BindingProviderFactory) {
+ BindingProviderFactory providerFactory = (BindingProviderFactory)providerFactories.getProviderFactory(binding.getClass());
+ if (providerFactory != null) {
ServiceBindingProvider bindingProvider =
- ((BindingProviderFactory)binding).createServiceBindingProvider(
- (RuntimeComponent)component, (RuntimeComponentService)service);
+ providerFactory.createServiceBindingProvider((RuntimeComponent)component, (RuntimeComponentService)service, binding);
if (bindingProvider != null) {
((RuntimeComponentService)service).setBindingProvider(binding, bindingProvider);
}
@@ -112,10 +116,10 @@
}
for (ComponentReference reference : component.getReferences()) {
for (Binding binding : reference.getBindings()) {
- if (binding instanceof BindingProviderFactory) {
+ BindingProviderFactory providerFactory = (BindingProviderFactory)providerFactories.getProviderFactory(binding.getClass());
+ if (providerFactory != null) {
ReferenceBindingProvider bindingProvider =
- ((BindingProviderFactory)binding).createReferenceBindingProvider(
- (RuntimeComponent)component, (RuntimeComponentReference)reference);
+ providerFactory.createReferenceBindingProvider((RuntimeComponent)component, (RuntimeComponentReference)reference, binding);
if (bindingProvider != null) {
((RuntimeComponentReference)reference).setBindingProvider(binding, bindingProvider);
}
@@ -126,12 +130,14 @@
Implementation implementation = component.getImplementation();
if (implementation instanceof Composite) {
configureComposite((Composite)implementation);
- } else if (implementation instanceof ImplementationProviderFactory) {
- ImplementationProvider implementationProvider =
- ((ImplementationProviderFactory)implementation).createImplementationProvider(
- (RuntimeComponent)component);
- if (implementationProvider != null) {
- ((RuntimeComponent)component).setImplementationProvider(implementationProvider);
+ } else if (implementation != null) {
+ ImplementationProviderFactory providerFactory = (ImplementationProviderFactory)providerFactories.getProviderFactory(implementation.getClass());
+ if (providerFactory != null) {
+ ImplementationProvider implementationProvider =
+ providerFactory.createImplementationProvider((RuntimeComponent)component, implementation);
+ if (implementationProvider != null) {
+ ((RuntimeComponent)component).setImplementationProvider(implementationProvider);
+ }
}
setScopeContainer(component);
}
@@ -146,21 +152,17 @@
for (ComponentService service : component.getServices()) {
for (Binding binding : service.getBindings()) {
- if (binding instanceof BindingProviderFactory) {
- ServiceBindingProvider bindingProvider = ((RuntimeComponentService)service).getBindingProvider(binding);
- if (bindingProvider != null) {
- bindingProvider.start();
- }
+ ServiceBindingProvider bindingProvider = ((RuntimeComponentService)service).getBindingProvider(binding);
+ if (bindingProvider != null) {
+ bindingProvider.start();
}
}
}
for (ComponentReference reference : component.getReferences()) {
for (Binding binding : reference.getBindings()) {
- if (binding instanceof BindingProviderFactory) {
- ReferenceBindingProvider bindingProvider = ((RuntimeComponentReference)reference).getBindingProvider(binding);
- if (bindingProvider != null) {
- bindingProvider.start();
- }
+ ReferenceBindingProvider bindingProvider = ((RuntimeComponentReference)reference).getBindingProvider(binding);
+ if (bindingProvider != null) {
+ bindingProvider.start();
}
}
}
@@ -168,7 +170,7 @@
Implementation implementation = component.getImplementation();
if (implementation instanceof Composite) {
startComposite((Composite)implementation);
- } else if (implementation instanceof ImplementationProviderFactory) {
+ } else {
ImplementationProvider implementationProvider = ((RuntimeComponent)component).getImplementationProvider();
if (implementationProvider != null) {
implementationProvider.start();
@@ -193,28 +195,24 @@
for (ComponentService service : component.getServices()) {
for (Binding binding : service.getBindings()) {
- if (binding instanceof BindingProviderFactory) {
- ServiceBindingProvider bindingProvider = ((RuntimeComponentService)service).getBindingProvider(binding);
- if (bindingProvider != null) {
- bindingProvider.stop();
- }
+ ServiceBindingProvider bindingProvider = ((RuntimeComponentService)service).getBindingProvider(binding);
+ if (bindingProvider != null) {
+ bindingProvider.stop();
}
}
}
for (ComponentReference reference : component.getReferences()) {
for (Binding binding : reference.getBindings()) {
- if (binding instanceof BindingProviderFactory) {
- ReferenceBindingProvider bindingProvider = ((RuntimeComponentReference)reference).getBindingProvider(binding);
- if (bindingProvider != null) {
- bindingProvider.stop();
- }
+ ReferenceBindingProvider bindingProvider = ((RuntimeComponentReference)reference).getBindingProvider(binding);
+ if (bindingProvider != null) {
+ bindingProvider.stop();
}
}
}
Implementation implementation = component.getImplementation();
if (implementation instanceof Composite) {
stop((Composite)implementation);
- } else if (implementation instanceof ImplementationProviderFactory) {
+ } else {
ImplementationProvider implementationProvider = ((RuntimeComponent)component).getImplementationProvider();
if (implementationProvider != null) {
implementationProvider.stop();
@@ -271,13 +269,11 @@
*/
private InterfaceContract getInterfaceContract(ComponentReference reference, Binding binding) {
InterfaceContract interfaceContract = reference.getInterfaceContract();
- if (binding instanceof BindingProviderFactory) {
- ReferenceBindingProvider provider = ((RuntimeComponentReference)reference).getBindingProvider(binding);
- if (provider != null) {
- InterfaceContract bindingContract = provider.getBindingInterfaceContract();
- if (bindingContract != null) {
- interfaceContract = bindingContract;
- }
+ ReferenceBindingProvider provider = ((RuntimeComponentReference)reference).getBindingProvider(binding);
+ if (provider != null) {
+ InterfaceContract bindingContract = provider.getBindingInterfaceContract();
+ if (bindingContract != null) {
+ interfaceContract = bindingContract;
}
}
return interfaceContract;
@@ -401,13 +397,11 @@
private InterfaceContract getInterfaceContract(ComponentService service, Binding binding) {
InterfaceContract interfaceContract = service.getInterfaceContract();
- if (binding instanceof BindingProviderFactory) {
- ServiceBindingProvider provider = ((RuntimeComponentService)service).getBindingProvider(binding);
- if (provider != null) {
- InterfaceContract bindingContract = provider.getBindingInterfaceContract();
- if (bindingContract != null) {
- interfaceContract = bindingContract;
- }
+ ServiceBindingProvider provider = ((RuntimeComponentService)service).getBindingProvider(binding);
+ if (provider != null) {
+ InterfaceContract bindingContract = provider.getBindingInterfaceContract();
+ if (bindingContract != null) {
+ interfaceContract = bindingContract;
}
}
return interfaceContract;
@@ -484,18 +478,15 @@
InvocationChain chain,
Operation operation,
boolean isCallback) {
- Implementation implementation = component.getImplementation();
- if (implementation instanceof ImplementationProviderFactory) {
- ImplementationProvider provider = ((RuntimeComponent)component).getImplementationProvider();
- if (provider != null) {
- Invoker invoker = null;
- if (!isCallback) {
- invoker = provider.createInvoker((RuntimeComponentService)service,operation);
- } else {
- invoker = provider.createCallbackInvoker(operation);
- }
- chain.addInvoker(invoker);
+ ImplementationProvider provider = ((RuntimeComponent)component).getImplementationProvider();
+ if (provider != null) {
+ Invoker invoker = null;
+ if (!isCallback) {
+ invoker = provider.createInvoker((RuntimeComponentService)service,operation);
+ } else {
+ invoker = provider.createCallbackInvoker(operation);
}
+ chain.addInvoker(invoker);
}
}
@@ -515,13 +506,11 @@
InvocationChain chain,
Operation operation,
boolean isCallback) {
- if (binding instanceof BindingProviderFactory) {
- ReferenceBindingProvider provider = ((RuntimeComponentReference)reference).getBindingProvider(binding);
- if (provider != null) {
- Invoker invoker = provider.createInvoker(operation, isCallback);
- if (invoker != null) {
- chain.addInvoker(invoker);
- }
+ ReferenceBindingProvider provider = ((RuntimeComponentReference)reference).getBindingProvider(binding);
+ if (provider != null) {
+ Invoker invoker = provider.createInvoker(operation, isCallback);
+ if (invoker != null) {
+ chain.addInvoker(invoker);
}
}
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingImpl.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingImpl.java Tue May 8 14:48:25 2007
@@ -22,20 +22,13 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.tuscany.assembly.SCABinding;
import org.apache.tuscany.assembly.impl.SCABindingImpl;
-import org.apache.tuscany.core.RuntimeComponent;
-import org.apache.tuscany.core.RuntimeComponentReference;
-import org.apache.tuscany.core.RuntimeComponentService;
import org.apache.tuscany.core.RuntimeWire;
-import org.apache.tuscany.provider.BindingProviderFactory;
-import org.apache.tuscany.provider.ReferenceBindingProvider;
-import org.apache.tuscany.provider.ServiceBindingProvider;
/**
* @version $Rev$ $Date$
*/
-public class RuntimeSCABindingImpl extends SCABindingImpl implements SCABinding, BindingProviderFactory {
+public class RuntimeSCABindingImpl extends SCABindingImpl {
private List<RuntimeWire> wires = new ArrayList<RuntimeWire>();
public void addWire(RuntimeWire wire) {
@@ -46,12 +39,4 @@
return wires;
}
- public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference) {
- return new RuntimeSCABindingProvider(component, reference);
- }
-
- public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service) {
- return null;
- }
-
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingProvider.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingProvider.java Tue May 8 14:48:25 2007
@@ -20,7 +20,6 @@
package org.apache.tuscany.core.runtime;
import org.apache.tuscany.assembly.SCABinding;
-import org.apache.tuscany.assembly.impl.SCABindingImpl;
import org.apache.tuscany.core.RuntimeComponent;
import org.apache.tuscany.core.RuntimeComponentReference;
import org.apache.tuscany.interfacedef.InterfaceContract;
@@ -31,13 +30,11 @@
/**
* @version $Rev$ $Date$
*/
-public class RuntimeSCABindingProvider extends SCABindingImpl implements SCABinding, ReferenceBindingProvider {
+public class RuntimeSCABindingProvider implements ReferenceBindingProvider<SCABinding> {
- private RuntimeComponent component;
private RuntimeComponentReference reference;
- public RuntimeSCABindingProvider(RuntimeComponent component, RuntimeComponentReference reference) {
- this.component = component;
+ public RuntimeSCABindingProvider(RuntimeComponent component, RuntimeComponentReference reference, SCABinding binding) {
this.reference = reference;
}
Added: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingProviderFactory.java?view=auto&rev=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingProviderFactory.java (added)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingProviderFactory.java Tue May 8 14:48:25 2007
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.core.runtime;
+
+import org.apache.tuscany.assembly.SCABinding;
+import org.apache.tuscany.core.RuntimeComponent;
+import org.apache.tuscany.core.RuntimeComponentReference;
+import org.apache.tuscany.core.RuntimeComponentService;
+import org.apache.tuscany.provider.BindingProviderFactory;
+import org.apache.tuscany.provider.ReferenceBindingProvider;
+import org.apache.tuscany.provider.ServiceBindingProvider;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class RuntimeSCABindingProviderFactory implements BindingProviderFactory<SCABinding> {
+
+ public ReferenceBindingProvider<SCABinding> createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference, SCABinding binding) {
+ return new RuntimeSCABindingProvider(component, reference, binding);
+ }
+
+ public ServiceBindingProvider<SCABinding> createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, SCABinding binding) {
+ return null;
+ }
+
+ public Class<SCABinding> getModelType() {
+ return SCABinding.class;
+ }
+
+}
Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingProviderFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeSCABindingProviderFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java Tue May 8 14:48:25 2007
@@ -68,6 +68,7 @@
import org.apache.tuscany.core.runtime.ActivationException;
import org.apache.tuscany.core.runtime.CompositeActivator;
import org.apache.tuscany.core.runtime.DefaultCompositeActivator;
+import org.apache.tuscany.core.runtime.RuntimeSCABindingProviderFactory;
import org.apache.tuscany.core.scope.CompositeScopeContainerFactory;
import org.apache.tuscany.core.scope.RequestScopeContainerFactory;
import org.apache.tuscany.core.scope.ScopeRegistryImpl;
@@ -77,6 +78,8 @@
import org.apache.tuscany.interfacedef.InterfaceContractMapper;
import org.apache.tuscany.invocation.ProxyFactory;
import org.apache.tuscany.policy.PolicyFactory;
+import org.apache.tuscany.provider.DefaultProviderFactoryExtensionPoint;
+import org.apache.tuscany.provider.ProviderFactoryExtensionPoint;
import org.apache.tuscany.scope.ScopeContainerFactory;
import org.apache.tuscany.scope.ScopeRegistry;
import org.apache.tuscany.spi.component.WorkContext;
@@ -124,10 +127,15 @@
RuntimeWireProcessorExtensionPoint wireProcessors = new DefaultWireProcessorExtensionPoint();
registry.addExtensionPoint(RuntimeWireProcessorExtensionPoint.class, wireProcessors);
RuntimeWireProcessor wireProcessor = new ExtensibleWireProcessor(wireProcessors);
+
+ // Create a provider factory extension point
+ ProviderFactoryExtensionPoint providerFactories = new DefaultProviderFactoryExtensionPoint();
+ registry.addExtensionPoint(ProviderFactoryExtensionPoint.class, providerFactories);
+ providerFactories.addProviderFactory(new RuntimeSCABindingProviderFactory());
// Create the composite activator
CompositeActivator compositeActivator = new DefaultCompositeActivator(assemblyFactory, mapper, scopeRegistry,
- workContext, workScheduler, wireProcessor);
+ workContext, workScheduler, wireProcessor, providerFactories);
return compositeActivator;
}
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/DefaultCRUDImplementationFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/DefaultCRUDImplementationFactory.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/DefaultCRUDImplementationFactory.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/DefaultCRUDImplementationFactory.java Tue May 8 14:48:25 2007
@@ -23,7 +23,7 @@
import org.apache.tuscany.interfacedef.java.JavaInterfaceFactory;
import org.apache.tuscany.interfacedef.java.introspect.JavaInterfaceIntrospector;
-import crud.provider.CRUDImplementationProviderFactory;
+import crud.impl.CRUDImplementationImpl;
/**
* A default factory for the CRUD implementation model.
@@ -45,7 +45,7 @@
}
public CRUDImplementation createCRUDImplementation() {
- return new CRUDImplementationProviderFactory(assemblyFactory, javaFactory, introspector);
+ return new CRUDImplementationImpl(assemblyFactory, javaFactory, introspector);
}
}
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/module/CRUDModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/module/CRUDModuleActivator.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/module/CRUDModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/module/CRUDModuleActivator.java Tue May 8 14:48:25 2007
@@ -32,10 +32,12 @@
import org.apache.tuscany.interfacedef.java.introspect.JavaInterfaceIntrospector;
import org.apache.tuscany.interfacedef.java.introspect.JavaInterfaceIntrospectorExtensionPoint;
import org.apache.tuscany.invocation.ProxyFactory;
+import org.apache.tuscany.provider.ProviderFactoryExtensionPoint;
import crud.CRUDImplementationFactory;
import crud.DefaultCRUDImplementationFactory;
import crud.impl.CRUDImplementationProcessor;
+import crud.provider.CRUDImplementationProviderFactory;
/**
* Implements a module activator for the CRUD implementation extension module.
@@ -47,8 +49,6 @@
*/
public class CRUDModuleActivator implements ModuleActivator {
- private CRUDImplementationProcessor implementationArtifactProcessor;
-
public Map<Class, Object> getExtensionPoints() {
// This module extension does not contribute any new
// extension point
@@ -68,14 +68,14 @@
// Add the CRUD implementation extension to the StAXArtifactProcessor
// extension point
StAXArtifactProcessorExtensionPoint processors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
- implementationArtifactProcessor = new CRUDImplementationProcessor(crudFactory);
+ CRUDImplementationProcessor implementationArtifactProcessor = new CRUDImplementationProcessor(crudFactory);
processors.addArtifactProcessor(implementationArtifactProcessor);
+
+ // Add the CRUD provider factory to the ProviderFactory extension point
+ ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
+ providerFactories.addProviderFactory(new CRUDImplementationProviderFactory());
}
public void stop(ExtensionPointRegistry registry) {
-
- // Remove the contributed extensions
- StAXArtifactProcessorExtensionPoint processors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
- processors.removeArtifactProcessor(implementationArtifactProcessor);
}
}
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/provider/CRUDImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/provider/CRUDImplementationProvider.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/provider/CRUDImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/provider/CRUDImplementationProvider.java Tue May 8 14:48:25 2007
@@ -39,7 +39,7 @@
* @version $$Rev$$ $$Date: 2007-04-23 19:18:54 -0700 (Mon, 23 Apr
* 2007) $$
*/
-public class CRUDImplementationProvider implements ImplementationProvider {
+public class CRUDImplementationProvider implements ImplementationProvider<CRUDImplementation> {
private RuntimeComponent component;
private CRUDImplementation implementation;
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/provider/CRUDImplementationProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/provider/CRUDImplementationProviderFactory.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/provider/CRUDImplementationProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/java/crud/provider/CRUDImplementationProviderFactory.java Tue May 8 14:48:25 2007
@@ -18,14 +18,11 @@
*/
package crud.provider;
-import org.apache.tuscany.assembly.AssemblyFactory;
import org.apache.tuscany.core.RuntimeComponent;
-import org.apache.tuscany.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.interfacedef.java.introspect.JavaInterfaceIntrospector;
import org.apache.tuscany.provider.ImplementationProvider;
import org.apache.tuscany.provider.ImplementationProviderFactory;
-import crud.impl.CRUDImplementationImpl;
+import crud.CRUDImplementation;
/**
* The model representing a sample CRUD implementation in an SCA assembly model.
@@ -33,19 +30,19 @@
* @version $$Rev$$ $$Date: 2007-04-23 19:18:54 -0700 (Mon, 23 Apr
* 2007) $$
*/
-public class CRUDImplementationProviderFactory extends CRUDImplementationImpl implements ImplementationProviderFactory {
+public class CRUDImplementationProviderFactory implements ImplementationProviderFactory<CRUDImplementation> {
/**
* Constructs a new CRUD implementation.
*/
- public CRUDImplementationProviderFactory(
- AssemblyFactory assemblyFactory,
- JavaInterfaceFactory javaFactory,
- JavaInterfaceIntrospector introspector) {
- super(assemblyFactory, javaFactory, introspector);
+ public CRUDImplementationProviderFactory() {
}
- public ImplementationProvider createImplementationProvider(RuntimeComponent component) {
- return new CRUDImplementationProvider(component, this);
+ public ImplementationProvider<CRUDImplementation> createImplementationProvider(RuntimeComponent component, CRUDImplementation implementation) {
+ return new CRUDImplementationProvider(component, implementation);
+ }
+
+ public Class<CRUDImplementation> getModelType() {
+ return CRUDImplementation.class;
}
}
Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProvider.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProvider.java Tue May 8 14:48:25 2007
@@ -45,7 +45,7 @@
/**
* @version $Rev$ $Date$
*/
-public class JavaImplementationProvider implements ScopedImplementationProvider {
+public class JavaImplementationProvider implements ScopedImplementationProvider<JavaImplementation> {
private JavaImplementation implementation;
private JavaComponentInfo atomicComponent;
Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProviderFactory.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaImplementationProviderFactory.java Tue May 8 14:48:25 2007
@@ -23,7 +23,6 @@
import org.apache.tuscany.databinding.DataBindingExtensionPoint;
import org.apache.tuscany.implementation.java.JavaImplementation;
import org.apache.tuscany.implementation.java.context.JavaPropertyValueObjectFactory;
-import org.apache.tuscany.implementation.java.impl.JavaImplementationImpl;
import org.apache.tuscany.invocation.ProxyFactory;
import org.apache.tuscany.provider.ImplementationProvider;
import org.apache.tuscany.provider.ImplementationProviderFactory;
@@ -32,7 +31,7 @@
/**
* @version $Rev$ $Date$
*/
-public class JavaImplementationProviderFactory extends JavaImplementationImpl implements JavaImplementation, ImplementationProviderFactory {
+public class JavaImplementationProviderFactory implements ImplementationProviderFactory<JavaImplementation> {
private JavaPropertyValueObjectFactory propertyValueObjectFactory;
private DataBindingExtensionPoint dataBindingRegistry;
private ProxyFactory proxyService;
@@ -50,7 +49,11 @@
this.propertyValueObjectFactory = propertyValueObjectFactory;
}
- public ImplementationProvider createImplementationProvider(RuntimeComponent component) {
- return new JavaImplementationProvider(component, this, proxyService, workContext, dataBindingRegistry, propertyValueObjectFactory);
+ public ImplementationProvider<JavaImplementation> createImplementationProvider(RuntimeComponent component, JavaImplementation implementation) {
+ return new JavaImplementationProvider(component, implementation, proxyService, workContext, dataBindingRegistry, propertyValueObjectFactory);
+ }
+
+ public Class<JavaImplementation> getModelType() {
+ return JavaImplementation.class;
}
}
Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/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/implementation/java/module/JavaRuntimeModuleActivator.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/module/JavaRuntimeModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/module/JavaRuntimeModuleActivator.java Tue May 8 14:48:25 2007
@@ -31,6 +31,7 @@
import org.apache.tuscany.databinding.DataBindingExtensionPoint;
import org.apache.tuscany.databinding.TransformerExtensionPoint;
import org.apache.tuscany.databinding.impl.DefaultMediator;
+import org.apache.tuscany.implementation.java.DefaultJavaImplementationFactory;
import org.apache.tuscany.implementation.java.JavaImplementationFactory;
import org.apache.tuscany.implementation.java.context.JavaPropertyValueObjectFactory;
import org.apache.tuscany.implementation.java.introspect.DefaultJavaClassIntrospectorExtensionPoint;
@@ -53,7 +54,7 @@
import org.apache.tuscany.implementation.java.introspect.impl.ResourceProcessor;
import org.apache.tuscany.implementation.java.introspect.impl.ScopeProcessor;
import org.apache.tuscany.implementation.java.introspect.impl.ServiceProcessor;
-import org.apache.tuscany.implementation.java.invocation.RuntimeJavaImplementationFactory;
+import org.apache.tuscany.implementation.java.invocation.JavaImplementationProviderFactory;
import org.apache.tuscany.implementation.java.xml.JavaImplementationProcessor;
import org.apache.tuscany.interfacedef.java.DefaultJavaInterfaceFactory;
import org.apache.tuscany.interfacedef.java.JavaInterfaceFactory;
@@ -63,6 +64,7 @@
import org.apache.tuscany.invocation.ProxyFactory;
import org.apache.tuscany.policy.DefaultPolicyFactory;
import org.apache.tuscany.policy.PolicyFactory;
+import org.apache.tuscany.provider.ProviderFactoryExtensionPoint;
import org.apache.tuscany.spi.component.WorkContext;
/**
@@ -123,13 +125,17 @@
StAXArtifactProcessorExtensionPoint processors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
WorkContext workContext = registry.getExtensionPoint(WorkContext.class);
- JavaImplementationFactory javaImplementationFactory =
- new RuntimeJavaImplementationFactory(proxyFactory,
- workContext, dataBindings, factory);
+ JavaImplementationFactory javaImplementationFactory = new DefaultJavaImplementationFactory();
JavaImplementationProcessor javaImplementationProcessor =
new JavaImplementationProcessor(assemblyFactory, policyFactory, javaImplementationFactory, classIntrospector);
processors.addArtifactProcessor(javaImplementationProcessor);
+ JavaImplementationProviderFactory javaImplementationProviderFactory =
+ new JavaImplementationProviderFactory(proxyFactory,
+ workContext, dataBindings, factory);
+
+ ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
+ providerFactories.addProviderFactory(javaImplementationProviderFactory);
}
public void stop(ExtensionPointRegistry registry) {
Modified: incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementation.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementation.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementation.java Tue May 8 14:48:25 2007
@@ -18,16 +18,16 @@
*/
package org.apache.tuscany.sca.implementation.script;
+import org.apache.tuscany.assembly.Implementation;
import org.apache.tuscany.core.RuntimeComponent;
import org.apache.tuscany.implementation.spi.AbstractImplementation;
import org.apache.tuscany.implementation.spi.PropertyValueObjectFactory;
import org.apache.tuscany.provider.ImplementationProvider;
-import org.apache.tuscany.provider.ImplementationProviderFactory;
/**
* Represents a Script implementation.
*/
-public class ScriptImplementation extends AbstractImplementation implements ImplementationProviderFactory {
+public class ScriptImplementation extends AbstractImplementation implements Implementation {
protected String scriptName;
protected String scriptSrc;
Modified: incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProvider.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProvider.java Tue May 8 14:48:25 2007
@@ -47,7 +47,7 @@
/**
* Represents a Script implementation.
*/
-public class ScriptImplementationProvider implements ImplementationProvider {
+public class ScriptImplementationProvider implements ImplementationProvider<ScriptImplementation> {
protected RuntimeComponent component;
protected ScriptImplementation implementation;
Added: incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProviderFactory.java?view=auto&rev=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProviderFactory.java (added)
+++ incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProviderFactory.java Tue May 8 14:48:25 2007
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.sca.implementation.script;
+
+import org.apache.tuscany.core.RuntimeComponent;
+import org.apache.tuscany.provider.ImplementationProvider;
+import org.apache.tuscany.provider.ImplementationProviderFactory;
+
+/**
+ * Represents a Script implementation.
+ */
+public class ScriptImplementationProviderFactory implements ImplementationProviderFactory<ScriptImplementation> {
+
+ public ScriptImplementationProviderFactory() {
+ }
+
+ public ImplementationProvider<ScriptImplementation> createImplementationProvider(RuntimeComponent component, ScriptImplementation implementation) {
+ return new ScriptImplementationProvider(component, implementation);
+ }
+
+ public Class<ScriptImplementation> getModelType() {
+ return ScriptImplementation.class;
+ }
+}
Propchange: incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProviderFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptImplementationProviderFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptModuleActivator.java?view=diff&rev=536341&r1=536340&r2=536341
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-script/src/main/java/org/apache/tuscany/sca/implementation/script/ScriptModuleActivator.java Tue May 8 14:48:25 2007
@@ -22,6 +22,7 @@
import java.util.Map;
import org.apache.tuscany.assembly.DefaultAssemblyFactory;
+import org.apache.tuscany.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.contribution.processor.StAXArtifactProcessorExtensionPoint;
import org.apache.tuscany.core.ExtensionPointRegistry;
import org.apache.tuscany.core.ModuleActivator;
@@ -29,11 +30,10 @@
import org.apache.tuscany.databinding.TransformerExtensionPoint;
import org.apache.tuscany.databinding.impl.DefaultMediator;
import org.apache.tuscany.implementation.spi.PropertyValueObjectFactory;
+import org.apache.tuscany.provider.ProviderFactoryExtensionPoint;
public class ScriptModuleActivator implements ModuleActivator {
- protected ScriptArtifactProcessor scriptArtifactProcessor;
-
public void start(ExtensionPointRegistry registry) {
// TODO: could the runtime have a default PropertyValueObjectFactory in the registry
@@ -42,15 +42,16 @@
DefaultMediator mediator = new DefaultMediator(dataBindings, transformers);
PropertyValueObjectFactory propertyFactory = new PropertyValueObjectFactory(mediator);
- scriptArtifactProcessor = new ScriptArtifactProcessor(new DefaultAssemblyFactory(), propertyFactory);
+ StAXArtifactProcessor scriptArtifactProcessor = new ScriptArtifactProcessor(new DefaultAssemblyFactory(), propertyFactory);
StAXArtifactProcessorExtensionPoint staxProcessors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
staxProcessors.addArtifactProcessor(scriptArtifactProcessor);
+
+ ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
+ providerFactories.addProviderFactory(new ScriptImplementationProviderFactory());
}
public void stop(ExtensionPointRegistry registry) {
- StAXArtifactProcessorExtensionPoint staxProcessors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
- staxProcessors.removeArtifactProcessor(scriptArtifactProcessor);
}
public Map<Class, Object> getExtensionPoints() {
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org