On Aug 19, 2006, at 9:20 AM, Raymond Feng wrote:
Hi,
Sorry for not responding promtly as I'm busy with the DataBinding
Inteceptor story. Please see my comments inline below.
Thanks,
Raymond
----- Original Message ----- From: "Jim Marino"
<[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Thursday, August 17, 2006 9:45 AM
Subject: Re: svn commit: r432156
On Aug 17, 2006, at 9:29 AM, Raymond Feng wrote:
Hi, Jim.
Sorry for the confusion.
First of all, I want to reassure you that we're still on the
same page
for the overrall direction:
Based on your comments below, I'm not sure we are :-)
1. I fully agree with you that it's a real hack and it's only a
temporary fix for one or two weeks while I'm working out the
databinding
integration. The hack will be definitely removed before we
release the
Axis2 binding.
2. Axis2 binding is an extension instead of part of the core. We
need to
deploy it as an extension instead of poluting the webapp runtime.
Here's some background that I decided to add such a hack. Rick had
pinged me to see if we can bring up the Axis2 binding to the same
functionality as it had for M1 so that we can perform the Axis2
intergration tests without having to rewrite all the interop
tests using
AXIOM. I thought it's reasonable and a working end-to-end case
might
also help me to better understand the core/extension/ databinding
integration picture so that I can get it right quickly. I
apologized
that I didn't communicate it clearly before the check-in.
Could you explain why all of the interop tests require SDO? That
seems a
bit strange.
We need to exchange some data conforming to the WSDL/XSD. One
convenient way to do that is using a XML databinding framework such
as SDO and JAXB. I happened to pick SDO just because I'm familar
with SDO and I wanted to stay with SDO as the starting point as the
M1 does.
Are we testing interop of SDO/Axis or just Axis? If it is the former,
then we should have integration tests that do this away from the Axis
package so we don't pollute it with this hack. If we are testing
Axis, shouldn't we be just using its native databinding?
I don't think this should be checked into the main line but
rather done
in the sandbox as it violates one of the architecture principles
we set
forth. In terms of working out databinding integration, this should
really be done through unit testing as much as possible first.
Note that
none of the steps you mentioned below need to be done outside the
context
of core, much less require breaking modularity.
I promise I'll be more cautious next time.
What I'd like to do is fix this, as it is leading (again) to hack
upon hack which gave us tremendous problems in M1. For example,
Celtix needs to modify the POMs to run in the webapp. I think we have
a few options:
1. Add the necessary things to make databinding pluggable over the
next few days
2. Isolate the intergation dependencies into another project to
decouple SDO and Axis
3. Fix any classloader problems in webapp
4. If we need to do a hack like this in the future, do it in the
sandbox and not on the main dev line :-)
Comments?
Jim
Anyway, here's the path I'm full-time on now to work toward the
solution
that we have been discussing on this list.
1. Integrate the DataBinding framework with the ServiceContract/
Operation/DataType model
2. Integrate the DataBinding framework with the wiring fabric
using an
Interceptor
* Associate some databinding-related context to the composite
hierachary
* Adjust the builder delegation strategy
* Attach an interceptor the wiring fabric to perform the data
transformation based on the databinding context
* Question: Do we model databinding as a policy or part
of the
core?
Data binding should be done as part of the wiring infrastructure
in core.
"Policy" is a euphemism for the the part of core that introduces
interceptors and handlers, and is itself extensible. We may need to
modify it somewhat so that the databinding policy builder has
information
about the target and source of a wire.
Thank you for the information. I'm actively looking into the policy
builder now to get the databinding into the wiring infrastructure
as interceptors. I'll post the progress and questions as I go.
Thanks,
Raymond
----- Original Message ----- From: "Jim Marino"
<[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Thursday, August 17, 2006 12:14 AM
Subject: Fwd: svn commit: r432156
Raymond,
I've noticed an SDO and databinding implementation dependencies
have
been introduced into the Axis2 binding. Based on your comments
in the
code, it appears this is temporary and related to implementing an
interceptor into the policy framework. I'd prefer that we work on
getting the correct solution in place ASAP and am uncomfortable
with
introducing hacks such as this one. There was an email thread the
other day about introducing an interceptor and am happy to provide
assistance if required.
Could you please outline what is required so we can work towards a
proper solution?
Thanks,
Jim
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/pom.xml
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/
java/
org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/
java/
org/apache/tuscany/binding/axis2/Axis2Reference.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/
java/
org/apache/tuscany/binding/axis2/Axis2Service.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/
java/
org/apache/tuscany/binding/axis2/
Axis2ServiceInOutSyncMessageReceiver.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/
java/
org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/
java/
org/apache/tuscany/binding/axis2/util/SDODataBinding.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/
java/
org/apache/tuscany/binding/axis2/util/
TuscanyAxisConfigurator.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/
resources/META-INF/sca/default.scdl
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/
java/
org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/
java/
org/apache/tuscany/binding/axis2/Axis2ServiceTestCase.java
-------------------------------------------------------------------
--
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]
---------------------------------------------------------------------
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]