You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/04/19 18:53:27 UTC

svn commit: r530486 - in /incubator/tuscany/java/sca/modules: core-spi/src/main/java/org/apache/tuscany/spi/wire/ core/src/main/java/org/apache/tuscany/core/component/ core/src/main/java/org/apache/tuscany/core/runtime/ core/src/main/java/org/apache/tu...

Author: rfeng
Date: Thu Apr 19 09:53:24 2007
New Revision: 530486

URL: http://svn.apache.org/viewvc?view=rev&rev=530486
Log:
More code clean up
Pass InterfaceContractMapper to JDKProxyService

Added:
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/proxy/JDKProxyTestCase.java
      - copied, changed from r530461, incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/proxy/JDKProxyTestCaseFIXME.java
Removed:
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/component/SingletonAtomicComponent.java
    incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/component/SingletonAtomicComponentTestCase.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/proxy/JDKProxyTestCaseFIXME.java
Modified:
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/ProxyService.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/Bootstrapper.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultBootstrapper.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NoMethodForOperationException.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.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-java-runtime/src/main/java/org/apache/tuscany/implementation/java/proxy/JDKProxyService.java

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/ProxyService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/ProxyService.java?view=diff&rev=530486&r1=530485&r2=530486
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/ProxyService.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/wire/ProxyService.java Thu Apr 19 09:53:24 2007
@@ -22,8 +22,6 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.tuscany.assembly.Contract;
-import org.apache.tuscany.interfacedef.IncompatibleInterfaceContractException;
 import org.osoa.sca.CallableReference;
 
 /**

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java?view=diff&rev=530486&r1=530485&r2=530486
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java Thu Apr 19 09:53:24 2007
@@ -24,7 +24,6 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.tuscany.assembly.ComponentService;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.ComponentManager;

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java?view=diff&rev=530486&r1=530485&r2=530486
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java Thu Apr 19 09:53:24 2007
@@ -34,9 +34,6 @@
 
 import javax.xml.stream.XMLInputFactory;
 
-import org.apache.tuscany.assembly.AssemblyFactory;
-import org.apache.tuscany.assembly.ComponentService;
-import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
 import org.apache.tuscany.contribution.service.ContributionService;
 import org.apache.tuscany.core.ExtensionPointRegistry;
 import org.apache.tuscany.core.ModuleActivator;
@@ -51,9 +48,6 @@
 import org.apache.tuscany.host.management.ManagementService;
 import org.apache.tuscany.host.runtime.InitializationException;
 import org.apache.tuscany.host.runtime.TuscanyRuntime;
-import org.apache.tuscany.interfacedef.java.JavaInterface;
-import org.apache.tuscany.interfacedef.java.JavaInterfaceContract;
-import org.apache.tuscany.interfacedef.java.impl.DefaultJavaFactory;
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.ComponentManager;
 import org.apache.tuscany.spi.component.ScopeRegistry;
@@ -256,17 +250,6 @@
 
         // register the ScopeRegistry
         extensionRegistry.addExtensionPoint(ScopeRegistry.class, scopeRegistry);
-    }
-
-    private <S> ComponentService createContract(Class<S> type) {
-        AssemblyFactory factory = new DefaultAssemblyFactory();
-        ComponentService contract = factory.createComponentService();
-        JavaInterface javaInterface = new DefaultJavaFactory().createJavaInterface();
-        javaInterface.setJavaClass(type);
-        JavaInterfaceContract javaInterfaceContract = new DefaultJavaFactory().createJavaInterfaceContract();
-        contract.setInterfaceContract(javaInterfaceContract);
-        javaInterfaceContract.setInterface(javaInterface);
-        return contract;
     }
 
     protected ComponentManager getComponentManager() {

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/Bootstrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/Bootstrapper.java?view=diff&rev=530486&r1=530485&r2=530486
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/Bootstrapper.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/Bootstrapper.java Thu Apr 19 09:53:24 2007
@@ -18,7 +18,6 @@
  */
 package org.apache.tuscany.core.runtime;
 
-import org.apache.tuscany.contribution.service.ContributionService;
 import org.apache.tuscany.core.ExtensionPointRegistry;
 import org.apache.tuscany.host.MonitorFactory;
 import org.apache.tuscany.spi.component.ComponentManager;

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultBootstrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultBootstrapper.java?view=diff&rev=530486&r1=530485&r2=530486
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultBootstrapper.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultBootstrapper.java Thu Apr 19 09:53:24 2007
@@ -24,7 +24,6 @@
 import org.apache.tuscany.core.builder.BuilderRegistryImpl;
 import org.apache.tuscany.core.builder.WirePostProcessorRegistryImpl;
 import org.apache.tuscany.core.component.ComponentManagerImpl;
-import org.apache.tuscany.core.component.WorkContextImpl;
 import org.apache.tuscany.core.component.scope.AbstractScopeContainer;
 import org.apache.tuscany.core.component.scope.CompositeScopeContainer;
 import org.apache.tuscany.core.component.scope.RequestScopeContainer;

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NoMethodForOperationException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NoMethodForOperationException.java?view=diff&rev=530486&r1=530485&r2=530486
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NoMethodForOperationException.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/NoMethodForOperationException.java Thu Apr 19 09:53:24 2007
@@ -25,6 +25,8 @@
  * @version $Rev$ $Date$
  */
 public class NoMethodForOperationException extends ProxyCreationException {
+    private static final long serialVersionUID = 5116536602309483679L;
+
     public NoMethodForOperationException() {
     }
 

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java?view=diff&rev=530486&r1=530485&r2=530486
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/wire/ProxyServiceExtension.java Thu Apr 19 09:53:24 2007
@@ -18,12 +18,9 @@
  */
 package org.apache.tuscany.core.wire;
 
-import java.util.List;
-
 import org.apache.tuscany.interfacedef.IncompatibleInterfaceContractException;
 import org.apache.tuscany.interfacedef.InterfaceContract;
 import org.apache.tuscany.interfacedef.InterfaceContractMapper;
-import org.apache.tuscany.interfacedef.Operation;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.wire.ProxyService;
 
@@ -36,23 +33,24 @@
     protected WorkContext context;
     protected InterfaceContractMapper contractMapper;
 
-    protected ProxyServiceExtension(WorkContext context) {
+    protected ProxyServiceExtension(WorkContext context, InterfaceContractMapper mapper) {
         this.context = context;
+        this.contractMapper = mapper;
     }
 
-    // FIXME: How to improve the performance for the lookup
-    private Operation getOperation(List<Operation> operations, String name) {
-        for (Operation op : operations) {
-            if (op.getName().equals(name)) {
-                return op;
-            }
-        }
-        return null;
+    public boolean checkCompatibility(InterfaceContract source,
+                                      InterfaceContract target,
+                                      boolean ignoreCallback,
+                                      boolean silent) throws IncompatibleInterfaceContractException {
+        return contractMapper.checkCompatibility(source, target, ignoreCallback, silent);
     }
 
-    public boolean checkCompatibility(InterfaceContract source, InterfaceContract target, boolean ignoreCallback, boolean silent)
-        throws IncompatibleInterfaceContractException {
-        return contractMapper.checkCompatibility(source, target, ignoreCallback, silent);
+    public void setInterfaceContractMapper(InterfaceContractMapper contractMapper) {
+        this.contractMapper = contractMapper;
+    }
+
+    public void setWorkContext(WorkContext context) {
+        this.context = context;
     }
 
 }

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=530486&r1=530485&r2=530486
==============================================================================
--- 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 Thu Apr 19 09:53:24 2007
@@ -50,12 +50,12 @@
 import org.apache.tuscany.implementation.java.introspect.impl.ServiceProcessor;
 import org.apache.tuscany.implementation.java.proxy.JDKProxyService;
 import org.apache.tuscany.implementation.java.xml.JavaImplementationProcessor;
+import org.apache.tuscany.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.interfacedef.java.introspect.DefaultJavaInterfaceIntrospector;
 import org.apache.tuscany.interfacedef.java.introspect.JavaInterfaceIntrospectorExtensionPoint;
 import org.apache.tuscany.spi.builder.BuilderRegistry;
 import org.apache.tuscany.spi.component.ScopeRegistry;
 import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.component.WorkContextTunnel;
 import org.apache.tuscany.spi.wire.ProxyService;
 
 /**
@@ -65,7 +65,7 @@
 
     public Map<Class, Object> getExtensionPoints() {
         Map<Class, Object> map = new HashMap<Class, Object>();
-        map.put(ProxyService.class, new JDKProxyService(WorkContextTunnel.getThreadWorkContext()));
+        map.put(ProxyService.class, new JDKProxyService());
         map.put(JavaClassIntrospectorExtensionPoint.class, new DefaultJavaClassIntrospector());
         map.put(JavaInterfaceIntrospectorExtensionPoint.class, new DefaultJavaInterfaceIntrospector());
         return map;
@@ -75,6 +75,14 @@
      * @see org.apache.tuscany.core.ModuleActivator#start(org.apache.tuscany.core.ExtensionPointRegistry)
      */
     public void start(ExtensionPointRegistry extensionPointRegistry) {
+        
+        // Inject InterfaceContractMapper and WorkContext into JDKProxyService
+        JDKProxyService proxyService = (JDKProxyService) extensionPointRegistry.getExtensionPoint(ProxyService.class);
+        InterfaceContractMapper mapper = extensionPointRegistry.getExtensionPoint(InterfaceContractMapper.class);
+        proxyService.setInterfaceContractMapper(mapper);
+        WorkContext workContext = extensionPointRegistry.getExtensionPoint(WorkContext.class);
+        proxyService.setWorkContext(workContext);
+        
         JavaInterfaceIntrospectorExtensionPoint interfaceIntrospector = extensionPointRegistry
             .getExtensionPoint(JavaInterfaceIntrospectorExtensionPoint.class);
 

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/proxy/JDKProxyService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/proxy/JDKProxyService.java?view=diff&rev=530486&r1=530485&r2=530486
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/proxy/JDKProxyService.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/proxy/JDKProxyService.java Thu Apr 19 09:53:24 2007
@@ -25,30 +25,27 @@
 import java.util.Map;
 
 import org.apache.tuscany.core.wire.ProxyServiceExtension;
+import org.apache.tuscany.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.wire.ChainHolder;
 import org.apache.tuscany.spi.wire.ProxyCreationException;
 import org.apache.tuscany.spi.wire.Wire;
 import org.osoa.sca.CallableReference;
-import org.osoa.sca.annotations.Constructor;
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Reference;
 
 /**
  * the default implementation of a wire service that uses JDK dynamic proxies
- *
- * @version $$Rev$$ $$Date$$
+ * 
+ * @version $$Rev$$ $$Date: 2007-04-11 18:59:43 -0700 (Wed, 11 Apr
+ *          2007) $$
  */
-@EagerInit
 public class JDKProxyService extends ProxyServiceExtension {
 
     public JDKProxyService() {
-        super(null);
+        this(null, null);
     }
-
-    @Constructor
-    public JDKProxyService(@Reference WorkContext context) {
-        super(context);
+    
+    public JDKProxyService(WorkContext context, InterfaceContractMapper mapper) {
+        super(context, mapper);
     }
 
     public <T> T createProxy(Class<T> interfaze, Wire wire) throws ProxyCreationException {
@@ -56,7 +53,7 @@
         assert wire != null;
         JDKInvocationHandler handler = new JDKInvocationHandler(interfaze, wire, context);
         ClassLoader cl = interfaze.getClassLoader();
-        return interfaze.cast(Proxy.newProxyInstance(cl, new Class[]{interfaze}, handler));
+        return interfaze.cast(Proxy.newProxyInstance(cl, new Class[] {interfaze}, handler));
     }
 
     public <T> T createProxy(Class<T> interfaze, Wire wire, Map<Method, ChainHolder> mapping)
@@ -66,13 +63,13 @@
         assert mapping != null;
         JDKInvocationHandler handler = new JDKInvocationHandler(interfaze, wire, context);
         ClassLoader cl = interfaze.getClassLoader();
-        return interfaze.cast(Proxy.newProxyInstance(cl, new Class[]{interfaze}, handler));
+        return interfaze.cast(Proxy.newProxyInstance(cl, new Class[] {interfaze}, handler));
     }
 
     public Object createCallbackProxy(Class<?> interfaze, List<Wire> wires) throws ProxyCreationException {
         ClassLoader cl = interfaze.getClassLoader();
         JDKCallbackInvocationHandler handler = new JDKCallbackInvocationHandler(wires, context);
-        return interfaze.cast(Proxy.newProxyInstance(cl, new Class[]{interfaze}, handler));
+        return interfaze.cast(Proxy.newProxyInstance(cl, new Class[] {interfaze}, handler));
     }
 
     public <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException {

Copied: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/proxy/JDKProxyTestCase.java (from r530461, incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/proxy/JDKProxyTestCaseFIXME.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/proxy/JDKProxyTestCase.java?view=diff&rev=530486&p1=incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/proxy/JDKProxyTestCaseFIXME.java&r1=530461&p2=incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/proxy/JDKProxyTestCase.java&r2=530486
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/proxy/JDKProxyTestCaseFIXME.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/proxy/JDKProxyTestCase.java Thu Apr 19 09:53:24 2007
@@ -27,12 +27,15 @@
 import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
 import org.apache.tuscany.core.wire.WireImpl;
 import org.apache.tuscany.implementation.java.proxy.JDKProxyService;
+import org.apache.tuscany.interfacedef.InterfaceContract;
+import org.apache.tuscany.interfacedef.java.impl.JavaInterfaceContractImpl;
+import org.apache.tuscany.interfacedef.java.impl.JavaInterfaceImpl;
 import org.apache.tuscany.spi.wire.Wire;
 
 /**
  * @version $Rev$ $Date$
  */
-public class JDKProxyTestCaseFIXME extends TestCase {
+public class JDKProxyTestCase extends TestCase {
     private JDKProxyService proxyService;
 
     public void testCreateProxy() {
@@ -40,6 +43,9 @@
         Wire wire = new WireImpl();
         wire.setSourceUri(uri);
         Contract contract = new DefaultAssemblyFactory().createComponentReference();
+        InterfaceContract interfaceContract = new JavaInterfaceContractImpl();
+        interfaceContract.setInterface(new JavaInterfaceImpl());
+        contract.setInterfaceContract(interfaceContract);
         wire.setSourceContract(contract.getInterfaceContract());
         TestInterface proxy = proxyService.createProxy(TestInterface.class, wire);
         assertTrue(Proxy.isProxyClass(proxy.getClass()));
@@ -47,7 +53,7 @@
 
     protected void setUp() throws Exception {
         super.setUp();
-        proxyService = new JDKProxyService();
+        proxyService = new JDKProxyService(null, null);
     }
 
     public static interface TestInterface {



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