Author: rfeng
Date: Fri Aug 24 01:15:59 2007
New Revision: 569290
URL: http://svn.apache.org/viewvc?rev=569290&view=rev
Log:
Make sure the code doesn't expose the ServiceReference when the
CallableReference is defined on the API
Modified:
incubator/tuscany/java/sca/itest/callback-set-callback/src/main/java/org/apache/tuscany/sca/test/CallBackSetCallbackClientImpl.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeComponentContext.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CallableReferenceImpl.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/RequestContextImpl.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java
Modified:
incubator/tuscany/java/sca/itest/callback-set-callback/src/main/java/org/apache/tuscany/sca/test/CallBackSetCallbackClientImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/callback-set-callback/src/main/java/org/apache/tuscany/sca/test/CallBackSetCallbackClientImpl.java?rev=569290&r1=569289&r2=569290&view=diff
==============================================================================
---
incubator/tuscany/java/sca/itest/callback-set-callback/src/main/java/org/apache/tuscany/sca/test/CallBackSetCallbackClientImpl.java
(original)
+++
incubator/tuscany/java/sca/itest/callback-set-callback/src/main/java/org/apache/tuscany/sca/test/CallBackSetCallbackClientImpl.java
Fri Aug 24 01:15:59 2007
@@ -191,7 +191,7 @@
aCallBackService.getService().setCallbackIllegally("Try to set
callback on your own service reference");
// FIXME: [rfeng] Not sure why this is illegal, comment out the
following test
- // Assert.assertEquals("CallBackSetCallback - Test10", true,
aFile.exists());
+ Assert.assertEquals("CallBackSetCallback - Test10", true,
aFile.exists());
return;
}
Modified:
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeComponentContext.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeComponentContext.java?rev=569290&r1=569289&r2=569290&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeComponentContext.java
(original)
+++
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeComponentContext.java
Fri Aug 24 01:15:59 2007
@@ -23,6 +23,7 @@
import java.io.Reader;
import java.io.Writer;
+import org.osoa.sca.CallableReference;
import org.osoa.sca.ComponentContext;
import org.osoa.sca.ServiceReference;
@@ -73,4 +74,16 @@
RuntimeComponentReference
reference,
RuntimeComponent component,
RuntimeComponentService
service);
+
+ /**
+ * Create a callable reference for the given component service
+ * @param <B>
+ * @param businessInterface
+ * @param component
+ * @param service
+ * @return
+ */
+ <B> CallableReference<B> getCallableReference(Class<B> businessInterface,
+ RuntimeComponent
component,
+
RuntimeComponentService service);
}
Modified:
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CallableReferenceImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CallableReferenceImpl.java?rev=569290&r1=569289&r2=569290&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CallableReferenceImpl.java
(original)
+++
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/CallableReferenceImpl.java
Fri Aug 24 01:15:59 2007
@@ -317,5 +317,9 @@
private String createCallbackID() {
return UUID.randomUUID().toString();
}
+
+ public void attachCallbackID(Object callbackID) {
+ this.callbackID = callbackID;
+ }
}
Modified:
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java?rev=569290&r1=569289&r2=569290&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java
(original)
+++
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java
Fri Aug 24 01:15:59 2007
@@ -229,6 +229,24 @@
}
}
+ public <B> CallableReference<B> getCallableReference(Class<B>
businessInterface,
+ RuntimeComponent
component,
+
RuntimeComponentService service) {
+ try {
+ if (businessInterface == null) {
+ InterfaceContract contract = service.getInterfaceContract();
+ businessInterface =
(Class<B>)((JavaInterface)contract.getInterface()).getJavaClass();
+ }
+ RuntimeComponentReference ref =
+ (RuntimeComponentReference)createSelfReference(component,
service, businessInterface);
+ ref.setComponent(component);
+ return new CallableReferenceImpl<B>(businessInterface, component,
ref, null, proxyFactory,
+ compositeActivator);
+ } catch (Exception e) {
+ throw new ServiceRuntimeException(e);
+ }
+ }
+
/**
* Create a self-reference for a component service
* @param component
Modified:
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/RequestContextImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/RequestContextImpl.java?rev=569290&r1=569289&r2=569290&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/RequestContextImpl.java
(original)
+++
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/RequestContextImpl.java
Fri Aug 24 01:15:59 2007
@@ -33,7 +33,6 @@
import org.apache.tuscany.sca.runtime.RuntimeWire;
import org.osoa.sca.CallableReference;
import org.osoa.sca.RequestContext;
-import org.osoa.sca.ServiceReference;
/**
* @version $Rev$ $Date$
@@ -60,14 +59,10 @@
EndpointReference to =
ThreadMessageContext.getMessageContext().getTo();
RuntimeComponentService service = (RuntimeComponentService)
to.getContract();
RuntimeComponent component = (RuntimeComponent) to.getComponent();
- // FIXME: [rfeng] What if the interface is not a java interface?
- JavaInterface javaInterface = (JavaInterface)
service.getInterfaceContract().getInterface();
- Class<B> javaClass = (Class<B>)javaInterface.getJavaClass();
- ServiceReference<B> ref = (ServiceReference<B>)
component.getComponentContext()
- .createSelfReference(javaClass,
service.getName());
-
-
ref.setCallbackID(ThreadMessageContext.getMessageContext().getCorrelationID());
- return ref;
+
+ CallableReference<B> callableReference =
component.getComponentContext().getCallableReference(null, component, service);
+ ((CallableReferenceImpl<B>)
callableReference).attachCallbackID(ThreadMessageContext.getMessageContext().getCorrelationID());
+ return callableReference;
}
@SuppressWarnings("unchecked")
@@ -88,7 +83,7 @@
List<RuntimeWire> wires = callbackReference.getRuntimeWires();
CallbackWireObjectFactory factory = new
CallbackWireObjectFactory(javaClass, proxyFactory, wires);
factory.resolveTarget();
-
factory.setCallbackID(ThreadMessageContext.getMessageContext().getCorrelationID());
+
factory.attachCallbackID(ThreadMessageContext.getMessageContext().getCorrelationID());
return factory;
}
}
Modified:
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java?rev=569290&r1=569289&r2=569290&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java
(original)
+++
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/CallbackWireObjectFactory.java
Fri Aug 24 01:15:59 2007
@@ -22,6 +22,7 @@
import org.apache.tuscany.sca.assembly.Binding;
import org.apache.tuscany.sca.assembly.WireableBinding;
+import org.apache.tuscany.sca.core.context.CallableReferenceImpl;
import org.apache.tuscany.sca.core.factory.ObjectCreationException;
import org.apache.tuscany.sca.invocation.Message;
import org.apache.tuscany.sca.runtime.EndpointReference;
@@ -35,7 +36,7 @@
*
* @version $Rev$ $Date$
*/
-public class CallbackWireObjectFactory<B> extends WireObjectFactory<B> {
+public class CallbackWireObjectFactory<B> extends CallableReferenceImpl<B> {
private RuntimeWire wire;
private List<RuntimeWire> wires;
private EndpointReference resolvedEndpoint;
@@ -155,5 +156,5 @@
}
return ref;
}
-
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]