Ok, yes, let me take that back. Can I claim lack of caffeine? ...
A CompositeReferenceTargetInvoker, and certainly a bound reference target
invoker (e.g., Axis2TargetInvoker) needs to be able to handle interface.xxx
(java, wsdl, etc).
The idea with CompositeReference was to reuse the existing outbound
invocation handler, but that is too restrictive. So yes, this will need to
work with wsdl interfaces as well.
Apologies for the confusion.
----- Original Message -----
From: "Jeremy Boynes" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Saturday, September 30, 2006 12:33 PM
Subject: Re: [jira] Commented: (TUSCANY-767) NPE in CompositeReference.java
when service is defined using interface wsdl
On Sep 30, 2006, at 6:10 AM, Ignacio Silva-Lepe wrote:
Ok, I took a look. Fixing CompositeReference to not be interface/ method
centric is not a big deal. However CompositeReferenceTargetInvoker and
CompositeReferenceCallbackTargetInvoker are defined in terms of
PojoTargetInvoker which itself is interface/method centric. Given the
current architecture, and the fact that CompositeReference and
CompositeService are intended for local use, it seems fair to assume a
dependency on PojoTargetInvoker.
If this is the case, then the fix will not work because
WSDLServiceContract for instance, even though it extends
ServiceContract, does not set its interfaceClass or callbackClass, hence
the NPE. So, under this assumption, either WSDLServiceContract would
need to set its interfaceClass and callbackClass (which seems hard to
do), or CompositeReference and CompositeService, which represent
bindless reference and service respectively, should not use
WSDLServiceContract, i.e., bindless references and services should not
use <interface.wsdl>.
If this is not the case, for which would it be interesting to see the
justification, then a different way of invoking CompositeReferences and
CompositeServices would need to be used, one that does not rely on java
reflection.
Thoughts?
One of the fundamental concepts in SCA is the ability to specify service
contracts in a variety of IDLs. It absolutely must be possible to express
services and references in WSDL (or Java or CORBA IDL or ...) - basically
the user should be free to use the IDL that is easiest for them and not
be constrained by the infrastructure.
I can see why PojoTargetInvoker would use reflection as it is responsible
for dispatching an invocation into a POJO and the only way to do that is
through some form of reflective invoke.
I don't see why that would apply to a CompositeReferenceTargetInvoker -
it's job AIUI is not to invoke a Java component but to flow the
invocation onward to what it is wired to. That is not something that it
needs an (expensive) reflective call to do - it can just forward the
invocation.
--
Jeremy
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]