Author: jmarino
Date: Fri May 5 00:29:03 2006
New Revision: 399998
URL: http://svn.apache.org/viewcvs?rev=399998&view=rev
Log:
more spi refactors
Removed:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireConfiguration.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireFactory.java
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWireFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWireFactory.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetWireFactory.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireFactoryFactory.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireSourceConfiguration.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java?rev=399998&r1=399997&r2=399998&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWireFactory.java
Fri May 5 00:29:03 2006
@@ -30,7 +30,7 @@
*
* @version $Rev: 394431 $ $Date: 2006-04-15 21:27:44 -0700 (Sat, 15 Apr 2006)
$
*/
-public class JDKSourceWireFactory implements SourceWireFactory {
+public class JDKSourceWireFactory<T> implements SourceWireFactory<T> {
private static final int UNINITIALIZED = 0;
@@ -57,12 +57,13 @@
state = INITIALIZED;
}
- public Object createProxy() {
+ @SuppressWarnings("unchecked")
+ public T createProxy() {
if (state != INITIALIZED) {
throw new IllegalStateException("Proxy factory not INITIALIZED ["
+ state + "]");
}
InvocationHandler handler = new
JDKInvocationHandler(methodToInvocationConfig);
- return Proxy.newProxyInstance(configuration.getProxyClassLoader(),
businessInterfaceArray, handler);
+ return (T)
Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
businessInterfaceArray, handler);
}
public WireSourceConfiguration getConfiguration() {
@@ -77,8 +78,8 @@
businessInterfaceArray = new Class[]{interfaze};
}
- public Class getBusinessInterface() {
- return businessInterfaceArray[0];
+ public T getBusinessInterface() {
+ return (T)businessInterfaceArray[0];
}
public void addInterface(Class claz) {
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWireFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWireFactory.java?rev=399998&r1=399997&r2=399998&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWireFactory.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKTargetWireFactory.java
Fri May 5 00:29:03 2006
@@ -1,23 +1,24 @@
package org.apache.tuscany.core.wire.jdk;
-import org.apache.tuscany.spi.wire.WireFactoryInitException;
-import org.apache.tuscany.spi.wire.TargetWireFactory;
-import org.apache.tuscany.spi.wire.TargetInvocationConfiguration;
-import org.apache.tuscany.spi.wire.WireTargetConfiguration;
-import org.apache.tuscany.core.util.MethodHashMap;
-
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Map;
+import org.apache.tuscany.core.util.MethodHashMap;
+import org.apache.tuscany.spi.wire.TargetInvocationConfiguration;
+import org.apache.tuscany.spi.wire.TargetWireFactory;
+import org.apache.tuscany.spi.wire.WireFactoryInitException;
+import org.apache.tuscany.spi.wire.WireTargetConfiguration;
+
/**
- * Creates proxies that are returned to non-SCA clients using JDK dynamic
proxy facilities and front a wire. The proxies implement
- * the business interface associated with the target service of the wire and
are typically returned by a locate operation.
+ * Creates proxies that are returned to non-SCA clients using JDK dynamic
proxy facilities and front a wire.
+ * The proxies implement the business interface associated with the target
service of the wire and are
+ * typically returned by a locate operation.
*
* @version $Rev: 394431 $ $Date: 2006-04-15 21:27:44 -0700 (Sat, 15 Apr 2006)
$
*/
-public class JDKTargetWireFactory implements TargetWireFactory {
+public class JDKTargetWireFactory<T> implements TargetWireFactory<T> {
private static final int UNINITIALIZED = 0;
@@ -44,12 +45,13 @@
state = INITIALIZED;
}
- public Object createProxy() {
+ @SuppressWarnings("unchecked")
+ public T createProxy() {
if (state != INITIALIZED) {
throw new IllegalStateException("Proxy factory not INITIALIZED ["
+ state + "]");
}
InvocationHandler handler = new
JDKInvocationHandler(methodToInvocationConfig);
- return Proxy.newProxyInstance(configuration.getProxyClassLoader(),
businessInterfaceArray, handler);
+ return (T)
Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
businessInterfaceArray, handler);
}
public WireTargetConfiguration getConfiguration() {
@@ -64,8 +66,8 @@
businessInterfaceArray = new Class[]{interfaze};
}
- public Class getBusinessInterface() {
- return businessInterfaceArray[0];
+ public T getBusinessInterface() {
+ return (T)businessInterfaceArray[0];
}
public void addInterface(Class claz) {
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java?rev=399998&r1=399997&r2=399998&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireFactoryFactoryTestCase.java
Fri May 5 00:29:03 2006
@@ -50,13 +50,12 @@
source.build();
Map<Method, SourceInvocationConfiguration> configs = new
MethodHashMap<SourceInvocationConfiguration>();
configs.put(hello, source);
- WireSourceConfiguration config = new WireSourceConfiguration("foo",
new QualifiedName("foo"), configs, Thread.currentThread()
- .getContextClassLoader());
- JDKSourceWireFactory factory = new JDKSourceWireFactory();
+ WireSourceConfiguration config = new WireSourceConfiguration("foo",
new QualifiedName("foo"), configs);
+ JDKSourceWireFactory<SimpleTarget> factory = new
JDKSourceWireFactory<SimpleTarget>();
factory.setConfiguration(config);
factory.setBusinessInterface(SimpleTarget.class);
factory.initialize();
- SimpleTarget instance = (SimpleTarget) factory.createProxy();
+ SimpleTarget instance = factory.createProxy();
assertEquals("foo", instance.hello("foo"));
}
@@ -69,13 +68,12 @@
source.build();
Map<Method, TargetInvocationConfiguration> configs = new
MethodHashMap<TargetInvocationConfiguration>();
configs.put(hello, source);
- WireTargetConfiguration config = new WireTargetConfiguration(new
QualifiedName("foo"), configs, Thread.currentThread()
- .getContextClassLoader());
- JDKTargetWireFactory factory = new JDKTargetWireFactory();
+ WireTargetConfiguration config = new WireTargetConfiguration(new
QualifiedName("foo"), configs);
+ JDKTargetWireFactory<SimpleTarget> factory = new
JDKTargetWireFactory<SimpleTarget>();
factory.setConfiguration(config);
factory.setBusinessInterface(SimpleTarget.class);
factory.initialize();
- SimpleTarget instance = (SimpleTarget) factory.createProxy();
+ SimpleTarget instance = factory.createProxy();
assertEquals("foo", instance.hello("foo"));
}
}
Modified:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java?rev=399998&r1=399997&r2=399998&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/InvocationConfiguration.java
Fri May 5 00:29:03 2006
@@ -28,7 +28,7 @@
* references to the target.
* <p/>
* <code>InvocationChain</code>s are managed by [EMAIL PROTECTED]
WireSourceConfiguration}s and [EMAIL PROTECTED]
- * WireTargetConfiguration}s, which are used by [EMAIL PROTECTED]
org.apache.tuscany.spi.wire.WireFactory}s to
+ * WireTargetConfiguration}s, which are used by wire factories to
* buildSource wires and proxies.
* <p/>
* Invocation configurations must contain at least one interceptor and may
have 0 to N handlers. Handlers
@@ -78,7 +78,6 @@
*
* @version $Rev: 396284 $ $Date: 2006-04-23 08:27:42 -0700 (Sun, 23 Apr 2006)
$
* @see org.apache.tuscany.spi.builder.WireBuilder
- * @see WireFactory
* @see TargetInvoker
* @see MessageDispatcher
*/
Modified:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWireFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWireFactory.java?rev=399998&r1=399997&r2=399998&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWireFactory.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWireFactory.java
Fri May 5 00:29:03 2006
@@ -18,7 +18,39 @@
*
* @version $$Rev$$ $$Date$$
*/
-public interface SourceWireFactory<T> extends WireFactory<T> {
+public interface SourceWireFactory<T> {
+
+ /**
+ * Prepares the factory. This will typically be called at buildSource
time, after bridging source- and target-side invocation chains.
+ *
+ * @throws WireFactoryInitException if an error is encountered during
initialization
+ */
+ public void initialize() throws WireFactoryInitException;
+
+ /**
+ * Returns a proxy for a service specified by a reference or target
+ */
+ public T createProxy() throws ProxyCreationException;
+
+ /**
+ * Sets the primary interface type generated proxies implement
+ */
+ public void setBusinessInterface(Class interfaze);
+
+ /**
+ * Returns the primary interface type implemented by generated proxies
+ */
+ public T getBusinessInterface();
+
+ /**
+ * Adds an interface type generated proxies implement
+ */
+ public void addInterface(Class claz);
+
+ /**
+ * Returns an array of all interfaces implemented by generated proxies
+ */
+ public Class[] getImplementatedInterfaces();
/**
* Returns the configuration information used to create the source-side of
a wire, including invocation chains
Modified:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetWireFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetWireFactory.java?rev=399998&r1=399997&r2=399998&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetWireFactory.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/TargetWireFactory.java
Fri May 5 00:29:03 2006
@@ -18,7 +18,39 @@
*
* @version $$Rev$$ $$Date$$
*/
-public interface TargetWireFactory<T> extends WireFactory<T> {
+public interface TargetWireFactory<T> {
+
+ /**
+ * Prepares the factory. This will typically be called at buildSource
time, after bridging source- and target-side invocation chains.
+ *
+ * @throws WireFactoryInitException if an error is encountered during
initialization
+ */
+ public void initialize() throws WireFactoryInitException;
+
+ /**
+ * Returns a proxy for a service specified by a reference or target
+ */
+ public T createProxy() throws ProxyCreationException;
+
+ /**
+ * Sets the primary interface type generated proxies implement
+ */
+ public void setBusinessInterface(Class interfaze);
+
+ /**
+ * Returns the primary interface type implemented by generated proxies
+ */
+ public T getBusinessInterface();
+
+ /**
+ * Adds an interface type generated proxies implement
+ */
+ public void addInterface(Class claz);
+
+ /**
+ * Returns an array of all interfaces implemented by generated proxies
+ */
+ public Class[] getImplementatedInterfaces();
/**
* Returns the configuration information used to create the target-side of
a wire, including invocation chains
Modified:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireFactoryFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireFactoryFactory.java?rev=399998&r1=399997&r2=399998&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireFactoryFactory.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireFactoryFactory.java
Fri May 5 00:29:03 2006
@@ -16,7 +16,7 @@
import java.lang.reflect.InvocationHandler;
/**
- * Implementations provide a runtime system service that creates [EMAIL
PROTECTED] org.apache.tuscany.spi.wire.WireFactory}s
+ * Implementations provide a runtime system service that creates wire factories
*
* @version $Rev$ $Date$
*/
Modified:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireSourceConfiguration.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireSourceConfiguration.java?rev=399998&r1=399997&r2=399998&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireSourceConfiguration.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireSourceConfiguration.java
Fri May 5 00:29:03 2006
@@ -27,7 +27,6 @@
private String referenceName;
protected Map<Method, SourceInvocationConfiguration> configurations;
- protected ClassLoader proxyClassLoader;
protected QualifiedName targetName;
@@ -37,16 +36,10 @@
* @param referenceName the name of the reference the wire is
associated with
* @param targetName the qualified name of the target service
specified by the wire
* @param invocationConfigs a collection of service
operation-to-invocation chain mappings
- * @param proxyClassLoader the classloader to use when creating a proxy
*/
public WireSourceConfiguration(String referenceName, QualifiedName
targetName,
- Map<Method, SourceInvocationConfiguration>
invocationConfigs, ClassLoader proxyClassLoader) {
+ Map<Method, SourceInvocationConfiguration>
invocationConfigs) {
this.targetName = targetName;
- if (proxyClassLoader == null) {
- this.proxyClassLoader =
Thread.currentThread().getContextClassLoader();
- } else {
- this.proxyClassLoader = proxyClassLoader;
- }
this.referenceName = referenceName;
this.configurations = invocationConfigs;
}
@@ -56,11 +49,9 @@
*
* @param targetName the qualified name of the target service
specified by the wire
* @param invocationConfigs a collection of service
operation-to-invocation chain mappings
- * @param proxyClassLoader the classloader to use when creating a proxy
*/
- public WireSourceConfiguration(QualifiedName targetName,
- Map<Method, SourceInvocationConfiguration>
invocationConfigs, ClassLoader proxyClassLoader) {
- this(null, targetName, invocationConfigs, proxyClassLoader);
+ public WireSourceConfiguration(QualifiedName targetName, Map<Method,
SourceInvocationConfiguration> invocationConfigs) {
+ this(null, targetName, invocationConfigs);
}
/**
@@ -68,13 +59,6 @@
*/
public QualifiedName getTargetName() {
return targetName;
- }
-
- /**
- * Returns the classloader used for creating proxies
- */
- public ClassLoader getProxyClassLoader() {
- return proxyClassLoader;
}
/**
Modified:
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java?rev=399998&r1=399997&r2=399998&view=diff
==============================================================================
---
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java
(original)
+++
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireTargetConfiguration.java
Fri May 5 00:29:03 2006
@@ -14,8 +14,6 @@
protected Map<Method, TargetInvocationConfiguration> configurations;
- protected ClassLoader proxyClassLoader;
-
protected QualifiedName targetName;
@@ -24,17 +22,10 @@
*
* @param targetName the qualified name of the target service
specified by the wire
* @param invocationConfigs a collection of target service
operation-to-invocation chain mappings
- * @param proxyClassLoader the classloader to use when creating a proxy
*/
- public WireTargetConfiguration(QualifiedName targetName, Map<Method,
TargetInvocationConfiguration> invocationConfigs,
- ClassLoader proxyClassLoader) {
- this.targetName = targetName;
- if (proxyClassLoader == null) {
- this.proxyClassLoader =
Thread.currentThread().getContextClassLoader();
- } else {
- this.proxyClassLoader = proxyClassLoader;
- }
+ public WireTargetConfiguration(QualifiedName targetName, Map<Method,
TargetInvocationConfiguration> invocationConfigs) {
assert (invocationConfigs != null) : "No wire configuration map
specified";
+ this.targetName = targetName;
configurations = invocationConfigs;
}
@@ -47,21 +38,12 @@
}
/**
- * Returns the classloader used for creating proxies
- */
- public ClassLoader getProxyClassLoader() {
- return proxyClassLoader;
- }
-
- /**
* Returns the invocation configuration for each operation on a service
specified by a reference or a
* target service.
*/
public Map<Method, TargetInvocationConfiguration>
getInvocationConfigurations() {
return configurations;
}
-
-
}