On Jun 22, 2006, at 2:00 AM, ant elder wrote:
I've come across difficulties related to this in the work I've done
with
extensions:
- I tried adding another interface type a while back in M1 to have an
interface.smd to support the Dojo Simple Method Description for the
AJAX
binding (http://dojo.jot.com/SMD). I couldn't get it to work as the
current
code really didn't seem to be designed to support additional interface
types.
- Another problem already touched on here and earlier in this
thread by Jim
is that right now the logical representation is a Java interfaces and
java.lang.Method is used to represent invocations. Because of this
I've not
yet been able to get a component to be able to call a reference using
non-Java parameters, eg the JavaScript component invoking a
reference using
E4X objects. (there's a testcase trying to do this in the rhino
container in
my sandbox if you're interested in more details)
O.K. I'll take a look but it may take a few days as I'm supposed to
be on vacation but still have a backlog of work to take care of too.
Quick questions:
- You are talking about E4XServiceRefsTestCase?
- HelloWorldProxyImpl flows an invoke to HelloWorldComponent2b which
is another JavaScript component but the intent/point is the target
can be anything?
-An interceptor is interposed in the invocation to handle data
transformation (in this case it could be optimized away since it is a
js-->js invoke)?
- Is SDO needed in the interceptor or is that something you just used
for expediency to do a conversion?
This is going to bring up some interesting questions regarding
policy. I'm wondering if the target invoker should be doing the
transformation as opposed to an interceptor and the target invoker
could just use the data transformation service Raymond was working
on? An interesting issue is if that is the case (or even if we have
an interceptor do the transformation), how do we deal with a policy
interceptor or handler that operates on the body of the messages?
Raymond, would this be a two step process?
Is it possible in Rhino to take an E4X object and pass it by
reference to a JS target? In SCA, we assume pass-by-ref semantics
within a shared memory space and it would be cool if we could
optimize this. Also, it would be interesting if we could do pass-by-
reference from Javascript to Java somehow (e.g. does E4X maintain
some type of backing XML representation that could be passed)?
- Also related to this is the message format, transformation and
multiple
databinding support thats being discussed in other threads and
JIRAs. Should
a component or binding be able to put whatever type of object it
likes into
the message payload and have the Tuscany runtime sort out
transforming it as
required by other component types?
I think we should look at taking Raymond's transformer and making it
a system service rather than having the core directly have this
knowledge. This way, it compartmentalizes the complexity and allows
people to swap it out in favor of a different approach if they
require it.
Right now thats not possible and each
binding and component must always use the Java types from the
logical Java
interface representation for the payload.
None of these 3 things are possible with either the current code or
the
sandbox code and extension APIs and AFAICT it would be non-trivial
to fix.
While not trivial, I don't think this would be too drastic of a
change to the sandbox code. The hardest part I think will be coming
up with a representation that is usable and not overly complicated
(like what we had before switching to Method).
Do we want to support any of these in M2? I'd really like to
support at
least the middle one.
Regardless of whether we have an M2 or not n the short-term, I
definitely think this is something we need to figure out ASAP.
...ant
On 6/22/06, Jeremy Boynes <[EMAIL PROTECTED]> wrote:
Jean-Sebastien Delfino wrote:
> - The whole interface definition space, like you said we need a
nice way
> to deal with Java and WSDL interfaces, we also need to
understand how
> somebody can extend Tuscany to provide support for additional
interface
> definition languages (e.g. a ruby base class or a ruby module).
We originally had a logical representation for this and changed
part way
through M1 to using Java interfaces (bytecode generating them from
the
WSDL definition when necessary).
Do you think we should stick with the pure-Java approach (with
addition
annotations if necessary) or are you thinking of going back to a
logical
representation?
--
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]