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 08:56:08 UTC
svn commit: r536103 - in /incubator/tuscany/java/sca/modules:
binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/
core-spi/src/main/java/org/apache/tuscany/core/
core/src/main/java/org/apache/tuscany/core/runtime/
Author: jsdelfino
Date: Mon May 7 23:56:07 2007
New Revision: 536103
URL: http://svn.apache.org/viewvc?view=rev&rev=536103
Log:
Ported RMI binding to the latest SPIs.
Added:
incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java (with props)
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/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.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/RuntimeComponentReferenceImpl.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.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=536103&r1=536102&r2=536103
==============================================================================
--- 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 Mon May 7 23:56:07 2007
@@ -33,7 +33,7 @@
}
public RMIBinding createRMIBinding() {
- return new RMIBindingProvider(rmiHost);
+ return new RMIBindingProviderFactory(rmiHost);
}
}
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=536103&r1=536102&r2=536103
==============================================================================
--- 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 Mon May 7 23:56:07 2007
@@ -43,22 +43,24 @@
import org.apache.tuscany.invocation.Invoker;
import org.apache.tuscany.invocation.Message;
import org.apache.tuscany.invocation.MessageImpl;
-import org.apache.tuscany.provider.ReferenceBindingActivator;
import org.apache.tuscany.provider.ReferenceBindingProvider;
-import org.apache.tuscany.provider.ServiceBindingActivator;
import org.apache.tuscany.provider.ServiceBindingProvider;
import org.apache.tuscany.rmi.RMIHost;
import org.apache.tuscany.rmi.RMIHostException;
import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.component.WorkContextTunnel;
+
/**
- * @author administrator
+ *
+ * RMIBindingProvider
*
+ * @version $Rev: $ $Date: $
*/
-public class RMIBindingProvider extends RMIBindingImpl implements ReferenceBindingActivator,
-ReferenceBindingProvider, ServiceBindingActivator, ServiceBindingProvider, MethodInterceptor {
+public class RMIBindingProvider implements ReferenceBindingProvider,
+ ServiceBindingProvider, MethodInterceptor {
+ private RMIBinding binding;
private RMIHost rmiHost;
private RuntimeWire wire;
@@ -68,7 +70,8 @@
// and the component match in their service contracts.
private Interface serviceInterface;
- public RMIBindingProvider(RMIHost rmiHost) {
+ public RMIBindingProvider(RMIBinding binding, RMIHost rmiHost) {
+ this.binding = binding;
this.rmiHost = rmiHost;
}
@@ -83,8 +86,8 @@
}
public void start(RuntimeComponent component, RuntimeComponentService service) {
- URI uri = URI.create(component.getURI() + "/" + getName());
- setURI(uri.toString());
+ URI uri = URI.create(component.getURI() + "/" + binding.getName());
+ binding.setURI(uri.toString());
RuntimeComponentService componentService = (RuntimeComponentService) service;
//TODO : Need to figure out why we do a get(0)... will this work always...
@@ -94,8 +97,8 @@
Remote rmiProxy = createRmiService();
try {
- rmiHost.registerService(getRmiServiceName(),
- getPort(getRmiPort()),
+ rmiHost.registerService(binding.getRmiServiceName(),
+ getPort(binding.getRmiPort()),
rmiProxy);
} catch (RMIHostException e) {
throw new NoRemoteServiceException(e);
@@ -104,8 +107,8 @@
public void stop(RuntimeComponent component, RuntimeComponentService service) {
try {
- rmiHost.unregisterService(getRmiServiceName(),
- getPort(getRmiPort()));
+ rmiHost.unregisterService(binding.getRmiServiceName(),
+ getPort(binding.getRmiPort()));
} catch (RMIHostException e) {
throw new NoRemoteServiceException(e.getMessage());
}
@@ -118,9 +121,9 @@
JavaInterfaceUtil.findMethod(((JavaInterface)reference.getInterfaceContract().getInterface()).getJavaClass(),
operation);
return new RMIBindingInvoker(rmiHost,
- getRmiHostName(),
- getRmiPort(),
- getRmiServiceName(),
+ binding.getRmiHostName(),
+ binding.getRmiPort(),
+ binding.getRmiServiceName(),
remoteMethod);
} catch (NoSuchMethodException e) {
throw new NoRemoteMethodException(operation.toString(), e);
Added: 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=auto&rev=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java (added)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java Mon May 7 23:56:07 2007
@@ -0,0 +1,47 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.binding.rmi;
+
+import org.apache.tuscany.provider.BindingProviderFactory;
+import org.apache.tuscany.provider.ReferenceBindingProvider;
+import org.apache.tuscany.provider.ServiceBindingProvider;
+import org.apache.tuscany.rmi.RMIHost;
+
+
+/**
+ *
+ * RMIBindingProvider
+ *
+ * @version $Rev$ $Date$
+ */
+public class RMIBindingProviderFactory extends RMIBindingImpl implements BindingProviderFactory {
+
+ private RMIHost rmiHost;
+
+ public RMIBindingProviderFactory(RMIHost rmiHost) {
+ this.rmiHost = rmiHost;
+ }
+
+ public ReferenceBindingProvider createReferenceBindingProvider() {
+ return new RMIBindingProvider(this, rmiHost);
+ }
+
+ public ServiceBindingProvider createServiceBindingProvider() {
+ return new RMIBindingProvider(this, rmiHost);
+ }
+}
Propchange: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java?view=diff&rev=536103&r1=536102&r2=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java Mon May 7 23:56:07 2007
@@ -23,6 +23,7 @@
import org.apache.tuscany.assembly.Binding;
import org.apache.tuscany.assembly.ComponentReference;
+import org.apache.tuscany.provider.ReferenceBindingProvider;
/**
* @version $Rev$ $Date$
@@ -48,4 +49,24 @@
* @return
*/
RuntimeWire getRuntimeWire(Binding binding);
+
+ /**
+ * Returns the reference binding provider associated with this
+ * component reference and the given binding.
+ *
+ * @param binding
+ * @return
+ */
+ ReferenceBindingProvider getBindingProvider(Binding binding);
+
+ /**
+ * Sets the reference binding provider associated with this
+ * component reference and the given binding.
+ *
+ * @param binding
+ * @param bindingProvider
+ * @return
+ */
+ void setBindingProvider(Binding binding, ReferenceBindingProvider bindingProvider);
+
}
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java?view=diff&rev=536103&r1=536102&r2=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java Mon May 7 23:56:07 2007
@@ -23,6 +23,7 @@
import org.apache.tuscany.assembly.Binding;
import org.apache.tuscany.assembly.ComponentService;
+import org.apache.tuscany.provider.ServiceBindingProvider;
/**
* @version $Rev$ $Date$
@@ -62,4 +63,22 @@
*/
List<RuntimeWire> getCallbackWires();
+ /**
+ * Returns the service binding provider associated with this
+ * component service and the given binding.
+ *
+ * @param binding
+ * @return
+ */
+ ServiceBindingProvider getBindingProvider(Binding binding);
+
+ /**
+ * Sets the service binding provider associated with this
+ * component service and the given binding.
+ *
+ * @param binding
+ * @param bindingProvider
+ */
+ void setBindingProvider(Binding binding, ServiceBindingProvider bindingProvider);
+
}
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=536103&r1=536102&r2=536103
==============================================================================
--- 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 Mon May 7 23:56:07 2007
@@ -93,6 +93,50 @@
}
/**
+ * Configure a composite
+ *
+ * @param composite
+ * @throws IncompatibleInterfaceContractException
+ */
+ protected void configureComposite(Composite composite) throws IncompatibleInterfaceContractException {
+ for (Component component : composite.getComponents()) {
+
+ for (ComponentService service : component.getServices()) {
+ for (Binding binding : service.getBindings()) {
+ if (binding instanceof BindingProviderFactory) {
+ ServiceBindingProvider bindingProvider = ((BindingProviderFactory)binding).createServiceBindingProvider();
+ if (bindingProvider != null) {
+ ((RuntimeComponentService)service).setBindingProvider(binding, bindingProvider);
+ }
+ }
+ }
+ }
+ for (ComponentReference reference : component.getReferences()) {
+ for (Binding binding : reference.getBindings()) {
+ if (binding instanceof BindingProviderFactory) {
+ ReferenceBindingProvider bindingProvider = ((BindingProviderFactory)binding).createReferenceBindingProvider();
+ if (bindingProvider != null) {
+ ((RuntimeComponentReference)reference).setBindingProvider(binding, bindingProvider);
+ }
+ }
+ }
+ }
+
+ Implementation implementation = component.getImplementation();
+ if (implementation instanceof Composite) {
+ configureComposite((Composite)implementation);
+ } else if (implementation instanceof ImplementationProviderFactory) {
+ ImplementationProvider implementationProvider = ((ImplementationProviderFactory)implementation).createImplementationProvider();
+ if (implementationProvider != null) {
+ ((RuntimeComponent)component).setImplementationProvider(implementationProvider);
+ implementationProvider.configure((RuntimeComponent)component);
+ }
+ setScopeContainer(component);
+ }
+ }
+ }
+
+ /**
* Start a composite
*/
protected void startComposite(Composite composite) {
@@ -101,7 +145,7 @@
for (ComponentService service : component.getServices()) {
for (Binding binding : service.getBindings()) {
if (binding instanceof BindingProviderFactory) {
- ServiceBindingActivator bindingActivator = ((BindingProviderFactory)binding).createServiceBindingProvider();
+ ServiceBindingActivator bindingActivator = ((RuntimeComponentService)service).getBindingProvider(binding);
if (bindingActivator != null) {
bindingActivator.start((RuntimeComponent)component, (RuntimeComponentService)service);
}
@@ -111,13 +155,14 @@
for (ComponentReference reference : component.getReferences()) {
for (Binding binding : reference.getBindings()) {
if (binding instanceof BindingProviderFactory) {
- ReferenceBindingActivator bindingActivator = ((BindingProviderFactory)binding).createReferenceBindingProvider();
+ ReferenceBindingActivator bindingActivator = ((RuntimeComponentReference)reference).getBindingProvider(binding);
if (bindingActivator != null) {
bindingActivator.start((RuntimeComponent)component, (RuntimeComponentReference)reference);
}
}
}
}
+
Implementation implementation = component.getImplementation();
if (implementation instanceof Composite) {
startComposite((Composite)implementation);
@@ -139,29 +184,6 @@
}
/**
- * Configure a composite
- *
- * @param composite
- * @throws IncompatibleInterfaceContractException
- */
- protected void configureComposite(Composite composite) throws IncompatibleInterfaceContractException {
- for (Component component : composite.getComponents()) {
-
- Implementation implementation = component.getImplementation();
- if (implementation instanceof Composite) {
- configureComposite((Composite)implementation);
- } else if (implementation instanceof ImplementationProviderFactory) {
- ImplementationProvider implementationProvider = ((ImplementationProviderFactory)implementation).createImplementationProvider();
- if (implementationProvider != null) {
- ((RuntimeComponent)component).setImplementationProvider(implementationProvider);
- implementationProvider.configure((RuntimeComponent)component);
- }
- setScopeContainer(component);
- }
- }
- }
-
- /**
* Stop a composite
*/
public void stop(Composite composite) {
@@ -170,7 +192,7 @@
for (ComponentService service : component.getServices()) {
for (Binding binding : service.getBindings()) {
if (binding instanceof BindingProviderFactory) {
- ServiceBindingActivator bindingActivator = ((BindingProviderFactory)binding).createServiceBindingProvider();
+ ServiceBindingActivator bindingActivator = ((RuntimeComponentService)service).getBindingProvider(binding);
if (bindingActivator != null) {
bindingActivator.stop((RuntimeComponent)component, (RuntimeComponentService)service);
}
@@ -180,7 +202,7 @@
for (ComponentReference reference : component.getReferences()) {
for (Binding binding : reference.getBindings()) {
if (binding instanceof BindingProviderFactory) {
- ReferenceBindingActivator bindingActivator = ((BindingProviderFactory)binding).createReferenceBindingProvider();
+ ReferenceBindingActivator bindingActivator = ((RuntimeComponentReference)reference).getBindingProvider(binding);
if (bindingActivator != null) {
bindingActivator.stop((RuntimeComponent)component, (RuntimeComponentReference)reference);
}
@@ -248,7 +270,7 @@
private InterfaceContract getInterfaceContract(ComponentReference reference, Binding binding) {
InterfaceContract interfaceContract = reference.getInterfaceContract();
if (binding instanceof BindingProviderFactory) {
- ReferenceBindingProvider provider = ((BindingProviderFactory)binding).createReferenceBindingProvider();
+ ReferenceBindingProvider provider = ((RuntimeComponentReference)reference).getBindingProvider(binding);
if (provider != null) {
InterfaceContract bindingContract = provider
.getBindingInterfaceContract((RuntimeComponentReference)reference);
@@ -379,7 +401,7 @@
InterfaceContract interfaceContract = service.getInterfaceContract();
if (binding instanceof BindingProviderFactory) {
- ServiceBindingProvider provider = ((BindingProviderFactory)binding).createServiceBindingProvider();
+ ServiceBindingProvider provider = ((RuntimeComponentService)service).getBindingProvider(binding);
if (provider != null) {
InterfaceContract bindingContract = provider.getBindingInterfaceContract((RuntimeComponentService)service);
if (bindingContract != null) {
@@ -512,7 +534,7 @@
Operation operation,
boolean isCallback) {
if (binding instanceof BindingProviderFactory) {
- ReferenceBindingProvider provider = ((BindingProviderFactory)binding).createReferenceBindingProvider();
+ ReferenceBindingProvider provider = ((RuntimeComponentReference)reference).getBindingProvider(binding);
if (provider != null) {
Invoker invoker = provider.createInvoker((RuntimeComponent)component,
(RuntimeComponentReference)reference,
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java?view=diff&rev=536103&r1=536102&r2=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java Mon May 7 23:56:07 2007
@@ -20,15 +20,19 @@
package org.apache.tuscany.core.runtime;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.tuscany.assembly.Binding;
import org.apache.tuscany.assembly.impl.ComponentReferenceImpl;
import org.apache.tuscany.core.RuntimeComponentReference;
import org.apache.tuscany.core.RuntimeWire;
+import org.apache.tuscany.provider.ReferenceBindingProvider;
public class RuntimeComponentReferenceImpl extends ComponentReferenceImpl implements RuntimeComponentReference {
private List<RuntimeWire> wires = new ArrayList<RuntimeWire>();
+ private Map<Binding, ReferenceBindingProvider> bindingProviders = new HashMap<Binding, ReferenceBindingProvider>();
public void addRuntimeWire(RuntimeWire wire) {
wires.add(wire);
@@ -45,6 +49,14 @@
}
}
return null;
+ }
+
+ public ReferenceBindingProvider getBindingProvider(Binding binding) {
+ return bindingProviders.get(binding);
+ }
+
+ public void setBindingProvider(Binding binding, ReferenceBindingProvider bindingProvider) {
+ bindingProviders.put(binding, bindingProvider);
}
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java?view=diff&rev=536103&r1=536102&r2=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java Mon May 7 23:56:07 2007
@@ -20,16 +20,20 @@
package org.apache.tuscany.core.runtime;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.tuscany.assembly.Binding;
import org.apache.tuscany.assembly.impl.ComponentServiceImpl;
import org.apache.tuscany.core.RuntimeComponentService;
import org.apache.tuscany.core.RuntimeWire;
+import org.apache.tuscany.provider.ServiceBindingProvider;
public class RuntimeComponentServiceImpl extends ComponentServiceImpl implements RuntimeComponentService {
private List<RuntimeWire> wires = new ArrayList<RuntimeWire>();
private List<RuntimeWire> callbackWires = new ArrayList<RuntimeWire>();
+ private Map<Binding, ServiceBindingProvider> bindingProviders = new HashMap<Binding, ServiceBindingProvider>();
public void addRuntimeWire(RuntimeWire wire) {
wires.add(wire);
@@ -54,5 +58,13 @@
public void addCallbackWire(RuntimeWire callbackWire) {
this.callbackWires.add(callbackWire);
+ }
+
+ public ServiceBindingProvider getBindingProvider(Binding binding) {
+ return bindingProviders.get(binding);
+ }
+
+ public void setBindingProvider(Binding binding, ServiceBindingProvider bindingProvider) {
+ bindingProviders.put(binding, bindingProvider);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org