You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Ramkumar R <ra...@gmail.com> on 2009/02/06 13:19:18 UTC

Update on Databinding Scope & Issues

The DataBinding Scope wiki page
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Databinding+Scope
 is now updated with the databinding scope for Axis2 MTOM support.

Just wanted to update everyone that, the standard type
javax.activation.DataHandler is now fully supported, more details
can be viewed from TUSCANY-2451.

Currently we have 2 outstanding issue that needs to be resolved...

1. Support for javax.xml.transform.Source data type, raised as TUSCANY-2386,
TUSCANY-2387 and TUSCANY-2452.
2. Support for org.apache.axiom.om.OMElement, raised as TUSCANY-2664

Here I like to talk about the options to support
org.apache.axiom.om.OMElement datatype in our databinding scope....

Since OMElement is an interface, the JAXB runtime throws the following
exception....

org.apache.axiom.om.OMElement is an interface, and JAXB can't handle
interfaces.
    this problem is related to the following location:
        at org.apache.axiom.om.OMElement
        at protected org.apache.axiom.om.OMElement
org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile.arg0
        at
org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile

JAXB recommends to use an XMLAdapter to solve this issue, by creating an
XMLAdapter for your interfaces (OMElement) and by using
@XmlJavaTypeAdapter in the service method as shown below.

@XmlJavaTypeAdapter(value=OMElementXmlAdapter.class, type=OMElement.class)
public String uploadOMElementFile(OMElement attachment) throws Exception;

Using @XmlJavaTypeAdapter in the service method, throws the following
exception.....

java.lang.IllegalArgumentException: value class
org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.OMElementXmlAdapter
    at org.objectweb.asm.ClassWriter.a(Unknown Source)
    at org.objectweb.asm.AnnotationWriter.visit(Unknown Source)
    at
org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareField(BaseBeanGenerator.java:250)
    at
org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareProperty(BaseBeanGenerator.java:195)
    at
org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.defineClass(BaseBeanGenerator.java:153)
    at
org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.generate(BaseBeanGenerator.java:437)
    at
org.apache.tuscany.sca.interfacedef.java.jaxws.WrapperBeanGenerator.generateResponseWrapper(WrapperBeanGenerator.java:190)
    at
org.apache.tuscany.sca.interfacedef.java.jaxws.GeneratedDataTypeImpl.getPhysical(GeneratedDataTypeImpl.java:101)
    at
org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.findClasses(JAXBContextHelper.java:230)
    at
org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:210)
    at
org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:89)
    at
org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:52)
    at
org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:40)
    at
org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:200)
    at
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
    at
org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:190)
    at
org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:1)
    at
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
    at
org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.transform(DataTransformationInterceptor.java:208)
    at
org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:97)
    at
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:310)
    at
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:163)
    at $Proxy19.uploadOMElementFile(Unknown Source)

Like to know if we have any sample to demonstrate the use of  various xml
binding annotation like @XmlAttachmentRef, @XmlMimeType, and
@XmlJavaTypeAdapter in service interface methods.

Any other comments and suggestions are appreciated. Thanks.

-- 
Thanks & Regards,
Ramkumar Ramalingam

Re: Update on Databinding Scope & Issues

Posted by Raymond Feng <en...@gmail.com>.
Hi,

In Tuscany, we support a set of XML-friendly databindings such as SDO, XmlBeans, AXIOM, JAXB, and DOM. If we want to ALLOW (I'm questioning it too) them to work with JAX-WS/JAXB (a method that takes a mixture of JAXB objects and other data types), we need to use XmlJavaTypeAdapter to handle the XML/Java conversion for non-JAXB types. Tuscany databinding framework knows how to transform the data based on the types. Instead of providing individual adapters, I'm wondering if we can have a generic one that covers any known databinding.

The "static" issue I pointed out was due to the fact that adapters are instantiated by JAXB runtime using the default constructor. So the adapter is stateless. To make it work with our databinding framework, the databinding related extension points are required. I'm not sure if we can inject these extension points to the generic adapter using a static method. For example,

public class AnyTypeAdapter extends XmlAdapter {

    private static DataBindingExtensionPoint databindings;
    public static void setDataBindingExtensionPoint(DataBindingExtensionPoint dbs) {
        databindings = dbs;
    }

} 

Thanks,
Raymond


From: Ramkumar R 
Sent: Friday, February 13, 2009 4:12 AM
To: dev@tuscany.apache.org 
Subject: Re: Update on Databinding Scope & Issues


Hi Raymond,

I have a difficulty in understanding your comment here, Please help me understand by elaborating a bit more. Thanks.


On Thu, Feb 12, 2009 at 12:08 AM, Raymond Feng <en...@gmail.com> wrote:

  Hi,

  Do we want to generalize the fix a bit to have a XmlJavaTypeAdapter backed by the databinding framework to deal with XML-friendly types that are not JAXB? The only difficulty is that the adapter has to access the databinding framework statically (for example, from a static variable or some context on the thread) as the instance will be instantiated by the JAXB runtime.

  Thanks,
  Raymond


  From: Ramkumar R 
  Sent: Wednesday, February 11, 2009 10:10 AM
  To: dev@tuscany.apache.org 
  Subject: Re: Update on Databinding Scope & Issues


  Hi All,

  I am planning to fix the data binding issue with OMElement as described in https://issues.apache.org/jira/browse/TUSCANY-2664,
  by creating a pre-defined XMLAdapter called OMElementXMLAdapter.java as we have done for CallableReferences earlier.

  Please let me know if any one has issues in this fix.

  By fixing TUSCANY-2664, we can now claim that we have a complete support for Axis2 MTOM.

  I have opened a seperate JIRA TUSCANY-2840 to track the issue around the usage of @XmlJavaTypeAdapter in service methods.



  On Wed, Feb 11, 2009 at 5:11 PM, Ramkumar R <ra...@gmail.com> wrote:

    Hi Simon,

    You are right, by configuring our databinding framework to know about the types that JAXB struggles, its possible that we will get rid of this issue. 

    In fact as I mentioned earlier, By adding XMLAdapter's in DataBindingModuleActivator.java, (as how we do for CallableReferences too) as shown below.....


    XMLAdapterExtensionPoint xmlAdapterExtensionPoint = registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
    xmlAdapterExtensionPoint.addAdapter(Exception.class, ExceptionXMLAdapter.class);


    resolves the issue. I believe this solution holds good for some critical data types like OMElement that we like to support for Axis2 MTOM.

    But looking at the broader picture, there might me quite a lot of java defined interfaces that the user might want to use as a parameter 
    types (for example java.lang.Exception), so in such cases it would be good we allow the users to define their own XMLAdapter's and allow them to use with 
    our databinding framework, rather than we develop pre-defined XMLAdapter for possible interfaces that can be use.

    Please let me know, if you have any comments/sugggestion. Thanks.




    On Mon, Feb 9, 2009 at 6:47 PM, Simon Laws <si...@googlemail.com> wrote:




      On Mon, Feb 9, 2009 at 12:20 PM, Ramkumar R <ra...@gmail.com> wrote:

        As mentioned earlier, since JAXB can't handle interfaces like org.apache.axiom.om.OMElement OR java.lang.Exception
        one way to make this interfaces work with JAXB is to write an XMLAdapter to convert these data types to the known JAXB data types.

        Defining @XmlJavaTypeAdapter annotation with the XMLAdapter as value in the service method does not seem to work in Tuscany 
        as I mentioned earlier.

        So I tried adding XMLAdapter's in DataBindingModuleActivator.java, as shown below.....

        XMLAdapterExtensionPoint xmlAdapterExtensionPoint = registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
        xmlAdapterExtensionPoint.addAdapter(Exception.class, ExceptionXMLAdapter.class);

        This seem to be work fine for me, and now I am able to pass these interfaces as parameter through JAXB.

        Just wanted to make sure, if anyone have tried using @XmlJavaTypeAdapter annotations with the service methods,
        if not I can open JIRA to fix this issue. 




        On Fri, Feb 6, 2009 at 5:49 PM, Ramkumar R <ra...@gmail.com> wrote:

          The DataBinding Scope wiki page http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Databinding+Scope
           is now updated with the databinding scope for Axis2 MTOM support.

          Just wanted to update everyone that, the standard type javax.activation.DataHandler is now fully supported, more details 
          can be viewed from TUSCANY-2451.

          Currently we have 2 outstanding issue that needs to be resolved...

          1. Support for javax.xml.transform.Source data type, raised as TUSCANY-2386, TUSCANY-2387 and TUSCANY-2452.
          2. Support for org.apache.axiom.om.OMElement, raised as TUSCANY-2664

          Here I like to talk about the options to support org.apache.axiom.om.OMElement datatype in our databinding scope....

          Since OMElement is an interface, the JAXB runtime throws the following exception....

          org.apache.axiom.om.OMElement is an interface, and JAXB can't handle interfaces.
              this problem is related to the following location:
                  at org.apache.axiom.om.OMElement
                  at protected org.apache.axiom.om.OMElement org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile.arg0
                  at org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile

          JAXB recommends to use an XMLAdapter to solve this issue, by creating an XMLAdapter for your interfaces (OMElement) and by using
          @XmlJavaTypeAdapter in the service method as shown below.

          @XmlJavaTypeAdapter(value=OMElementXmlAdapter.class, type=OMElement.class)
          public String uploadOMElementFile(OMElement attachment) throws Exception;

          Using @XmlJavaTypeAdapter in the service method, throws the following exception.....

          java.lang.IllegalArgumentException: value class org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.OMElementXmlAdapter
              at org.objectweb.asm.ClassWriter.a(Unknown Source)
              at org.objectweb.asm.AnnotationWriter.visit(Unknown Source)
              at org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareField(BaseBeanGenerator.java:250)
              at org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareProperty(BaseBeanGenerator.java:195)
              at org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.defineClass(BaseBeanGenerator.java:153)
              at org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.generate(BaseBeanGenerator.java:437)
              at org.apache.tuscany.sca.interfacedef.java.jaxws.WrapperBeanGenerator.generateResponseWrapper(WrapperBeanGenerator.java:190)
              at org.apache.tuscany.sca.interfacedef.java.jaxws.GeneratedDataTypeImpl.getPhysical(GeneratedDataTypeImpl.java:101)
              at org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.findClasses(JAXBContextHelper.java:230)
              at org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:210)
              at org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:89)
              at org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:52)
              at org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:40)
              at org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:200)
              at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
              at org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:190)
              at org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:1)
              at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
              at org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.transform(DataTransformationInterceptor.java:208)
              at org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:97)
              at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:310)
              at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:163)
              at $Proxy19.uploadOMElementFile(Unknown Source)

          Like to know if we have any sample to demonstrate the use of  various xml binding annotation like @XmlAttachmentRef, @XmlMimeType, and @XmlJavaTypeAdapter in service interface methods.

          Any other comments and suggestions are appreciated. Thanks.

          -- 
          Thanks & Regards,
          Ramkumar Ramalingam





        -- 
        Thanks & Regards,
        Ramkumar Ramalingam



      Ram 

      Question for you. Are we able to do a similar transformation using our databinding framework? I.e. can we configure our databinding framework to know about the types that JAXB struggles with so that JAXB2OMElement doesn't get used directly. 

      This may not be practivcal if having these types messes up the WSDL generation stage also but worth a look if it means we can do away with mandatory requirement to add more annotations. 

      I'm asking this question as when, a while back, we needed to do some specific data transformation steps to handle callable references (which are exterenalizble) that appear as arguments as service interfaces we wrote a special transformer [1][2] and configured it as part of the databinding framework [3]

      Maybe we can treat these problematic types in the same way? There is maybe a good reason why this won't work but intersted in your thoughts.

      Regards

      Simon

      [1] http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Externalizable2OMElement.java
      [2] http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Externalizable.java
      [3] http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer







    -- 
    Thanks & Regards,
    Ramkumar Ramalingam




  -- 
  Thanks & Regards,
  Ramkumar Ramalingam




-- 
Thanks & Regards,
Ramkumar Ramalingam

Re: Update on Databinding Scope & Issues

Posted by Ramkumar R <ra...@gmail.com>.
Hi Raymond,

I have a difficulty in understanding your comment here, Please help me
understand by elaborating a bit more. Thanks.

On Thu, Feb 12, 2009 at 12:08 AM, Raymond Feng <en...@gmail.com> wrote:

>  Hi,
>
> Do we want to generalize the fix a bit to have a XmlJavaTypeAdapter backed
> by the databinding framework to deal with XML-friendly types that are not
> JAXB? The only difficulty is that the adapter has to access the databinding
> framework statically (for example, from a static variable or some context on
> the thread) as the instance will be instantiated by the JAXB runtime.
>
> Thanks,
> Raymond
>
>  *From:* Ramkumar R <ra...@gmail.com>
> *Sent:* Wednesday, February 11, 2009 10:10 AM
> *To:* dev@tuscany.apache.org
> *Subject:* Re: Update on Databinding Scope & Issues
>
> Hi All,
>
> I am planning to fix the data binding issue with OMElement as described in
> https://issues.apache.org/jira/browse/TUSCANY-2664,
> by creating a pre-defined XMLAdapter called OMElementXMLAdapter.java as we
> have done for CallableReferences earlier.
>
> Please let me know if any one has issues in this fix.
>
> By fixing TUSCANY-2664, we can now claim that we have a complete support
> for Axis2 MTOM.
>
> I have opened a seperate JIRA TUSCANY-2840 to track the issue around the
> usage of @XmlJavaTypeAdapter in service methods.
>
>
> On Wed, Feb 11, 2009 at 5:11 PM, Ramkumar R <ra...@gmail.com> wrote:
>
>> Hi Simon,
>>
>> You are right, by configuring our databinding framework to know about the
>> types that JAXB struggles, its possible that we will get rid of this issue.
>>
>> In fact as I mentioned earlier, By adding XMLAdapter's in
>> DataBindingModuleActivator.java, (as how we do for CallableReferences too)
>> as shown below.....
>>
>> XMLAdapterExtensionPoint xmlAdapterExtensionPoint =
>> registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
>> xmlAdapterExtensionPoint.addAdapter(Exception.class,
>> ExceptionXMLAdapter.class);
>>
>> resolves the issue. I believe this solution holds good for some critical
>> data types like OMElement that we like to support for Axis2 MTOM.
>>
>> But looking at the broader picture, there might me quite a lot of java
>> defined interfaces that the user might want to use as a parameter
>> types (for example java.lang.Exception), so in such cases it would be good
>> we allow the users to define their own XMLAdapter's and allow them to use
>> with
>> our databinding framework, rather than we develop pre-defined XMLAdapter
>> for possible interfaces that can be use.
>>
>> Please let me know, if you have any comments/sugggestion. Thanks.
>>
>>
>> On Mon, Feb 9, 2009 at 6:47 PM, Simon Laws <si...@googlemail.com>wrote:
>>
>>>
>>>
>>> On Mon, Feb 9, 2009 at 12:20 PM, Ramkumar R <ra...@gmail.com>wrote:
>>>
>>>> As mentioned earlier, since JAXB can't handle interfaces like
>>>> org.apache.axiom.om.OMElement OR java.lang.Exception
>>>> one way to make this interfaces work with JAXB is to write an XMLAdapter
>>>> to convert these data types to the known JAXB data types.
>>>>
>>>> Defining @XmlJavaTypeAdapter annotation with the XMLAdapter as value in
>>>> the service method does not seem to work in Tuscany
>>>> as I mentioned earlier.
>>>>
>>>> So I tried adding XMLAdapter's in DataBindingModuleActivator.java, as
>>>> shown below.....
>>>>
>>>> XMLAdapterExtensionPoint xmlAdapterExtensionPoint =
>>>> registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
>>>> xmlAdapterExtensionPoint.addAdapter(Exception.class,
>>>> ExceptionXMLAdapter.class);
>>>>
>>>> This seem to be work fine for me, and now I am able to pass these
>>>> interfaces as parameter through JAXB.
>>>>
>>>> Just wanted to make sure, if anyone have tried using @XmlJavaTypeAdapter
>>>> annotations with the service methods,
>>>> if not I can open JIRA to fix this issue.
>>>>
>>>>
>>>>
>>>> On Fri, Feb 6, 2009 at 5:49 PM, Ramkumar R <ra...@gmail.com>wrote:
>>>>
>>>>> The DataBinding Scope wiki page
>>>>> http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Databinding+Scope
>>>>>  is now updated with the databinding scope for Axis2 MTOM support.
>>>>>
>>>>> Just wanted to update everyone that, the standard type
>>>>> javax.activation.DataHandler is now fully supported, more details
>>>>> can be viewed from TUSCANY-2451.
>>>>>
>>>>> Currently we have 2 outstanding issue that needs to be resolved...
>>>>>
>>>>> 1. Support for javax.xml.transform.Source data type, raised as
>>>>> TUSCANY-2386, TUSCANY-2387 and TUSCANY-2452.
>>>>> 2. Support for org.apache.axiom.om.OMElement, raised as TUSCANY-2664
>>>>>
>>>>> Here I like to talk about the options to support
>>>>> org.apache.axiom.om.OMElement datatype in our databinding scope....
>>>>>
>>>>> Since OMElement is an interface, the JAXB runtime throws the following
>>>>> exception....
>>>>>
>>>>> org.apache.axiom.om.OMElement is an interface, and JAXB can't handle
>>>>> interfaces.
>>>>>     this problem is related to the following location:
>>>>>         at org.apache.axiom.om.OMElement
>>>>>         at protected org.apache.axiom.om.OMElement
>>>>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile.arg0
>>>>>         at
>>>>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile
>>>>>
>>>>> JAXB recommends to use an XMLAdapter to solve this issue, by creating
>>>>> an XMLAdapter for your interfaces (OMElement) and by using
>>>>> @XmlJavaTypeAdapter in the service method as shown below.
>>>>>
>>>>> @XmlJavaTypeAdapter(value=OMElementXmlAdapter.class,
>>>>> type=OMElement.class)
>>>>> public String uploadOMElementFile(OMElement attachment) throws
>>>>> Exception;
>>>>>
>>>>> Using @XmlJavaTypeAdapter in the service method, throws the following
>>>>> exception.....
>>>>>
>>>>> java.lang.IllegalArgumentException: value class
>>>>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.OMElementXmlAdapter
>>>>>     at org.objectweb.asm.ClassWriter.a(Unknown Source)
>>>>>     at org.objectweb.asm.AnnotationWriter.visit(Unknown Source)
>>>>>     at
>>>>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareField(BaseBeanGenerator.java:250)
>>>>>     at
>>>>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareProperty(BaseBeanGenerator.java:195)
>>>>>     at
>>>>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.defineClass(BaseBeanGenerator.java:153)
>>>>>     at
>>>>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.generate(BaseBeanGenerator.java:437)
>>>>>     at
>>>>> org.apache.tuscany.sca.interfacedef.java.jaxws.WrapperBeanGenerator.generateResponseWrapper(WrapperBeanGenerator.java:190)
>>>>>     at
>>>>> org.apache.tuscany.sca.interfacedef.java.jaxws.GeneratedDataTypeImpl.getPhysical(GeneratedDataTypeImpl.java:101)
>>>>>     at
>>>>> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.findClasses(JAXBContextHelper.java:230)
>>>>>     at
>>>>> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:210)
>>>>>     at
>>>>> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:89)
>>>>>     at
>>>>> org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:52)
>>>>>     at
>>>>> org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:40)
>>>>>     at
>>>>> org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:200)
>>>>>     at
>>>>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
>>>>>     at
>>>>> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:190)
>>>>>     at
>>>>> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:1)
>>>>>     at
>>>>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
>>>>>     at
>>>>> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.transform(DataTransformationInterceptor.java:208)
>>>>>     at
>>>>> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:97)
>>>>>     at
>>>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:310)
>>>>>     at
>>>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:163)
>>>>>     at $Proxy19.uploadOMElementFile(Unknown Source)
>>>>>
>>>>> Like to know if we have any sample to demonstrate the use of  various
>>>>> xml binding annotation like @XmlAttachmentRef, @XmlMimeType, and
>>>>> @XmlJavaTypeAdapter in service interface methods.
>>>>>
>>>>> Any other comments and suggestions are appreciated. Thanks.
>>>>>
>>>>> --
>>>>> Thanks & Regards,
>>>>> Ramkumar Ramalingam
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Thanks & Regards,
>>>> Ramkumar Ramalingam
>>>>
>>>
>>> Ram
>>>
>>> Question for you. Are we able to do a similar transformation using our
>>> databinding framework? I.e. can we configure our databinding framework to
>>> know about the types that JAXB struggles with so that JAXB2OMElement doesn't
>>> get used directly.
>>>
>>> This may not be practivcal if having these types messes up the WSDL
>>> generation stage also but worth a look if it means we can do away with
>>> mandatory requirement to add more annotations.
>>>
>>> I'm asking this question as when, a while back, we needed to do some
>>> specific data transformation steps to handle callable references (which are
>>> exterenalizble) that appear as arguments as service interfaces we wrote a
>>> special transformer [1][2] and configured it as part of the databinding
>>> framework [3]
>>>
>>> Maybe we can treat these problematic types in the same way? There is
>>> maybe a good reason why this won't work but intersted in your thoughts.
>>>
>>> Regards
>>>
>>> Simon
>>>
>>> [1]
>>> http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Externalizable2OMElement.java
>>> [2]
>>> http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Externalizable.java
>>> [3]
>>> http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer
>>>
>>>
>>>
>>
>>
>> --
>> Thanks & Regards,
>> Ramkumar Ramalingam
>>
>
>
>
> --
> Thanks & Regards,
> Ramkumar Ramalingam
>



-- 
Thanks & Regards,
Ramkumar Ramalingam

Re: Update on Databinding Scope & Issues

Posted by Raymond Feng <en...@gmail.com>.
Hi,

Do we want to generalize the fix a bit to have a XmlJavaTypeAdapter backed by the databinding framework to deal with XML-friendly types that are not JAXB? The only difficulty is that the adapter has to access the databinding framework statically (for example, from a static variable or some context on the thread) as the instance will be instantiated by the JAXB runtime.

Thanks,
Raymond


From: Ramkumar R 
Sent: Wednesday, February 11, 2009 10:10 AM
To: dev@tuscany.apache.org 
Subject: Re: Update on Databinding Scope & Issues


Hi All,

I am planning to fix the data binding issue with OMElement as described in https://issues.apache.org/jira/browse/TUSCANY-2664,
by creating a pre-defined XMLAdapter called OMElementXMLAdapter.java as we have done for CallableReferences earlier.

Please let me know if any one has issues in this fix.

By fixing TUSCANY-2664, we can now claim that we have a complete support for Axis2 MTOM.

I have opened a seperate JIRA TUSCANY-2840 to track the issue around the usage of @XmlJavaTypeAdapter in service methods.



On Wed, Feb 11, 2009 at 5:11 PM, Ramkumar R <ra...@gmail.com> wrote:

  Hi Simon,

  You are right, by configuring our databinding framework to know about the types that JAXB struggles, its possible that we will get rid of this issue. 

  In fact as I mentioned earlier, By adding XMLAdapter's in DataBindingModuleActivator.java, (as how we do for CallableReferences too) as shown below.....


  XMLAdapterExtensionPoint xmlAdapterExtensionPoint = registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
  xmlAdapterExtensionPoint.addAdapter(Exception.class, ExceptionXMLAdapter.class);


  resolves the issue. I believe this solution holds good for some critical data types like OMElement that we like to support for Axis2 MTOM.

  But looking at the broader picture, there might me quite a lot of java defined interfaces that the user might want to use as a parameter 
  types (for example java.lang.Exception), so in such cases it would be good we allow the users to define their own XMLAdapter's and allow them to use with 
  our databinding framework, rather than we develop pre-defined XMLAdapter for possible interfaces that can be use.

  Please let me know, if you have any comments/sugggestion. Thanks.




  On Mon, Feb 9, 2009 at 6:47 PM, Simon Laws <si...@googlemail.com> wrote:




    On Mon, Feb 9, 2009 at 12:20 PM, Ramkumar R <ra...@gmail.com> wrote:

      As mentioned earlier, since JAXB can't handle interfaces like org.apache.axiom.om.OMElement OR java.lang.Exception
      one way to make this interfaces work with JAXB is to write an XMLAdapter to convert these data types to the known JAXB data types.

      Defining @XmlJavaTypeAdapter annotation with the XMLAdapter as value in the service method does not seem to work in Tuscany 
      as I mentioned earlier.

      So I tried adding XMLAdapter's in DataBindingModuleActivator.java, as shown below.....

      XMLAdapterExtensionPoint xmlAdapterExtensionPoint = registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
      xmlAdapterExtensionPoint.addAdapter(Exception.class, ExceptionXMLAdapter.class);

      This seem to be work fine for me, and now I am able to pass these interfaces as parameter through JAXB.

      Just wanted to make sure, if anyone have tried using @XmlJavaTypeAdapter annotations with the service methods,
      if not I can open JIRA to fix this issue. 




      On Fri, Feb 6, 2009 at 5:49 PM, Ramkumar R <ra...@gmail.com> wrote:

        The DataBinding Scope wiki page http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Databinding+Scope
         is now updated with the databinding scope for Axis2 MTOM support.

        Just wanted to update everyone that, the standard type javax.activation.DataHandler is now fully supported, more details 
        can be viewed from TUSCANY-2451.

        Currently we have 2 outstanding issue that needs to be resolved...

        1. Support for javax.xml.transform.Source data type, raised as TUSCANY-2386, TUSCANY-2387 and TUSCANY-2452.
        2. Support for org.apache.axiom.om.OMElement, raised as TUSCANY-2664

        Here I like to talk about the options to support org.apache.axiom.om.OMElement datatype in our databinding scope....

        Since OMElement is an interface, the JAXB runtime throws the following exception....

        org.apache.axiom.om.OMElement is an interface, and JAXB can't handle interfaces.
            this problem is related to the following location:
                at org.apache.axiom.om.OMElement
                at protected org.apache.axiom.om.OMElement org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile.arg0
                at org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile

        JAXB recommends to use an XMLAdapter to solve this issue, by creating an XMLAdapter for your interfaces (OMElement) and by using
        @XmlJavaTypeAdapter in the service method as shown below.

        @XmlJavaTypeAdapter(value=OMElementXmlAdapter.class, type=OMElement.class)
        public String uploadOMElementFile(OMElement attachment) throws Exception;

        Using @XmlJavaTypeAdapter in the service method, throws the following exception.....

        java.lang.IllegalArgumentException: value class org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.OMElementXmlAdapter
            at org.objectweb.asm.ClassWriter.a(Unknown Source)
            at org.objectweb.asm.AnnotationWriter.visit(Unknown Source)
            at org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareField(BaseBeanGenerator.java:250)
            at org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareProperty(BaseBeanGenerator.java:195)
            at org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.defineClass(BaseBeanGenerator.java:153)
            at org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.generate(BaseBeanGenerator.java:437)
            at org.apache.tuscany.sca.interfacedef.java.jaxws.WrapperBeanGenerator.generateResponseWrapper(WrapperBeanGenerator.java:190)
            at org.apache.tuscany.sca.interfacedef.java.jaxws.GeneratedDataTypeImpl.getPhysical(GeneratedDataTypeImpl.java:101)
            at org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.findClasses(JAXBContextHelper.java:230)
            at org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:210)
            at org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:89)
            at org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:52)
            at org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:40)
            at org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:200)
            at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
            at org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:190)
            at org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:1)
            at org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
            at org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.transform(DataTransformationInterceptor.java:208)
            at org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:97)
            at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:310)
            at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:163)
            at $Proxy19.uploadOMElementFile(Unknown Source)

        Like to know if we have any sample to demonstrate the use of  various xml binding annotation like @XmlAttachmentRef, @XmlMimeType, and @XmlJavaTypeAdapter in service interface methods.

        Any other comments and suggestions are appreciated. Thanks.

        -- 
        Thanks & Regards,
        Ramkumar Ramalingam





      -- 
      Thanks & Regards,
      Ramkumar Ramalingam



    Ram 

    Question for you. Are we able to do a similar transformation using our databinding framework? I.e. can we configure our databinding framework to know about the types that JAXB struggles with so that JAXB2OMElement doesn't get used directly. 

    This may not be practivcal if having these types messes up the WSDL generation stage also but worth a look if it means we can do away with mandatory requirement to add more annotations. 

    I'm asking this question as when, a while back, we needed to do some specific data transformation steps to handle callable references (which are exterenalizble) that appear as arguments as service interfaces we wrote a special transformer [1][2] and configured it as part of the databinding framework [3]

    Maybe we can treat these problematic types in the same way? There is maybe a good reason why this won't work but intersted in your thoughts.

    Regards

    Simon

    [1] http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Externalizable2OMElement.java
    [2] http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Externalizable.java
    [3] http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer







  -- 
  Thanks & Regards,
  Ramkumar Ramalingam




-- 
Thanks & Regards,
Ramkumar Ramalingam

Re: Update on Databinding Scope & Issues

Posted by Ramkumar R <ra...@gmail.com>.
Hi All,

I am planning to fix the data binding issue with OMElement as described in
https://issues.apache.org/jira/browse/TUSCANY-2664,
by creating a pre-defined XMLAdapter called OMElementXMLAdapter.java as we
have done for CallableReferences earlier.

Please let me know if any one has issues in this fix.

By fixing TUSCANY-2664, we can now claim that we have a complete support for
Axis2 MTOM.

I have opened a seperate JIRA TUSCANY-2840 to track the issue around the
usage of @XmlJavaTypeAdapter in service methods.


On Wed, Feb 11, 2009 at 5:11 PM, Ramkumar R <ra...@gmail.com> wrote:

> Hi Simon,
>
> You are right, by configuring our databinding framework to know about the
> types that JAXB struggles, its possible that we will get rid of this issue.
>
> In fact as I mentioned earlier, By adding XMLAdapter's in
> DataBindingModuleActivator.java, (as how we do for CallableReferences too)
> as shown below.....
>
> XMLAdapterExtensionPoint xmlAdapterExtensionPoint =
> registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
> xmlAdapterExtensionPoint.addAdapter(Exception.class,
> ExceptionXMLAdapter.class);
>
> resolves the issue. I believe this solution holds good for some critical
> data types like OMElement that we like to support for Axis2 MTOM.
>
> But looking at the broader picture, there might me quite a lot of java
> defined interfaces that the user might want to use as a parameter
> types (for example java.lang.Exception), so in such cases it would be good
> we allow the users to define their own XMLAdapter's and allow them to use
> with
> our databinding framework, rather than we develop pre-defined XMLAdapter
> for possible interfaces that can be use.
>
> Please let me know, if you have any comments/sugggestion. Thanks.
>
>
> On Mon, Feb 9, 2009 at 6:47 PM, Simon Laws <si...@googlemail.com>wrote:
>
>>
>>
>> On Mon, Feb 9, 2009 at 12:20 PM, Ramkumar R <ra...@gmail.com>wrote:
>>
>>> As mentioned earlier, since JAXB can't handle interfaces like
>>> org.apache.axiom.om.OMElement OR java.lang.Exception
>>> one way to make this interfaces work with JAXB is to write an XMLAdapter
>>> to convert these data types to the known JAXB data types.
>>>
>>> Defining @XmlJavaTypeAdapter annotation with the XMLAdapter as value in
>>> the service method does not seem to work in Tuscany
>>> as I mentioned earlier.
>>>
>>> So I tried adding XMLAdapter's in DataBindingModuleActivator.java, as
>>> shown below.....
>>>
>>> XMLAdapterExtensionPoint xmlAdapterExtensionPoint =
>>> registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
>>> xmlAdapterExtensionPoint.addAdapter(Exception.class,
>>> ExceptionXMLAdapter.class);
>>>
>>> This seem to be work fine for me, and now I am able to pass these
>>> interfaces as parameter through JAXB.
>>>
>>> Just wanted to make sure, if anyone have tried using @XmlJavaTypeAdapter
>>> annotations with the service methods,
>>> if not I can open JIRA to fix this issue.
>>>
>>>
>>>
>>> On Fri, Feb 6, 2009 at 5:49 PM, Ramkumar R <ra...@gmail.com>wrote:
>>>
>>>> The DataBinding Scope wiki page
>>>> http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Databinding+Scope
>>>>  is now updated with the databinding scope for Axis2 MTOM support.
>>>>
>>>> Just wanted to update everyone that, the standard type
>>>> javax.activation.DataHandler is now fully supported, more details
>>>> can be viewed from TUSCANY-2451.
>>>>
>>>> Currently we have 2 outstanding issue that needs to be resolved...
>>>>
>>>> 1. Support for javax.xml.transform.Source data type, raised as
>>>> TUSCANY-2386, TUSCANY-2387 and TUSCANY-2452.
>>>> 2. Support for org.apache.axiom.om.OMElement, raised as TUSCANY-2664
>>>>
>>>> Here I like to talk about the options to support
>>>> org.apache.axiom.om.OMElement datatype in our databinding scope....
>>>>
>>>> Since OMElement is an interface, the JAXB runtime throws the following
>>>> exception....
>>>>
>>>> org.apache.axiom.om.OMElement is an interface, and JAXB can't handle
>>>> interfaces.
>>>>     this problem is related to the following location:
>>>>         at org.apache.axiom.om.OMElement
>>>>         at protected org.apache.axiom.om.OMElement
>>>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile.arg0
>>>>         at
>>>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile
>>>>
>>>> JAXB recommends to use an XMLAdapter to solve this issue, by creating an
>>>> XMLAdapter for your interfaces (OMElement) and by using
>>>> @XmlJavaTypeAdapter in the service method as shown below.
>>>>
>>>> @XmlJavaTypeAdapter(value=OMElementXmlAdapter.class,
>>>> type=OMElement.class)
>>>> public String uploadOMElementFile(OMElement attachment) throws
>>>> Exception;
>>>>
>>>> Using @XmlJavaTypeAdapter in the service method, throws the following
>>>> exception.....
>>>>
>>>> java.lang.IllegalArgumentException: value class
>>>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.OMElementXmlAdapter
>>>>     at org.objectweb.asm.ClassWriter.a(Unknown Source)
>>>>     at org.objectweb.asm.AnnotationWriter.visit(Unknown Source)
>>>>     at
>>>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareField(BaseBeanGenerator.java:250)
>>>>     at
>>>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareProperty(BaseBeanGenerator.java:195)
>>>>     at
>>>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.defineClass(BaseBeanGenerator.java:153)
>>>>     at
>>>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.generate(BaseBeanGenerator.java:437)
>>>>     at
>>>> org.apache.tuscany.sca.interfacedef.java.jaxws.WrapperBeanGenerator.generateResponseWrapper(WrapperBeanGenerator.java:190)
>>>>     at
>>>> org.apache.tuscany.sca.interfacedef.java.jaxws.GeneratedDataTypeImpl.getPhysical(GeneratedDataTypeImpl.java:101)
>>>>     at
>>>> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.findClasses(JAXBContextHelper.java:230)
>>>>     at
>>>> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:210)
>>>>     at
>>>> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:89)
>>>>     at
>>>> org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:52)
>>>>     at
>>>> org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:40)
>>>>     at
>>>> org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:200)
>>>>     at
>>>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
>>>>     at
>>>> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:190)
>>>>     at
>>>> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:1)
>>>>     at
>>>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
>>>>     at
>>>> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.transform(DataTransformationInterceptor.java:208)
>>>>     at
>>>> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:97)
>>>>     at
>>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:310)
>>>>     at
>>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:163)
>>>>     at $Proxy19.uploadOMElementFile(Unknown Source)
>>>>
>>>> Like to know if we have any sample to demonstrate the use of  various
>>>> xml binding annotation like @XmlAttachmentRef, @XmlMimeType, and
>>>> @XmlJavaTypeAdapter in service interface methods.
>>>>
>>>> Any other comments and suggestions are appreciated. Thanks.
>>>>
>>>> --
>>>> Thanks & Regards,
>>>> Ramkumar Ramalingam
>>>>
>>>
>>>
>>>
>>> --
>>> Thanks & Regards,
>>> Ramkumar Ramalingam
>>>
>>
>> Ram
>>
>> Question for you. Are we able to do a similar transformation using our
>> databinding framework? I.e. can we configure our databinding framework to
>> know about the types that JAXB struggles with so that JAXB2OMElement doesn't
>> get used directly.
>>
>> This may not be practivcal if having these types messes up the WSDL
>> generation stage also but worth a look if it means we can do away with
>> mandatory requirement to add more annotations.
>>
>> I'm asking this question as when, a while back, we needed to do some
>> specific data transformation steps to handle callable references (which are
>> exterenalizble) that appear as arguments as service interfaces we wrote a
>> special transformer [1][2] and configured it as part of the databinding
>> framework [3]
>>
>> Maybe we can treat these problematic types in the same way? There is maybe
>> a good reason why this won't work but intersted in your thoughts.
>>
>> Regards
>>
>> Simon
>>
>> [1]
>> http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Externalizable2OMElement.java
>> [2]
>> http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Externalizable.java
>> [3]
>> http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer
>>
>>
>>
>
>
> --
> Thanks & Regards,
> Ramkumar Ramalingam
>



-- 
Thanks & Regards,
Ramkumar Ramalingam

Re: Update on Databinding Scope & Issues

Posted by Ramkumar R <ra...@gmail.com>.
Hi Simon,

You are right, by configuring our databinding framework to know about the
types that JAXB struggles, its possible that we will get rid of this issue.

In fact as I mentioned earlier, By adding XMLAdapter's in
DataBindingModuleActivator.java, (as how we do for CallableReferences too)
as shown below.....

XMLAdapterExtensionPoint xmlAdapterExtensionPoint =
registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
xmlAdapterExtensionPoint.addAdapter(Exception.class,
ExceptionXMLAdapter.class);

resolves the issue. I believe this solution holds good for some critical
data types like OMElement that we like to support for Axis2 MTOM.

But looking at the broader picture, there might me quite a lot of java
defined interfaces that the user might want to use as a parameter
types (for example java.lang.Exception), so in such cases it would be good
we allow the users to define their own XMLAdapter's and allow them to use
with
our databinding framework, rather than we develop pre-defined XMLAdapter for
possible interfaces that can be use.

Please let me know, if you have any comments/sugggestion. Thanks.


On Mon, Feb 9, 2009 at 6:47 PM, Simon Laws <si...@googlemail.com>wrote:

>
>
> On Mon, Feb 9, 2009 at 12:20 PM, Ramkumar R <ra...@gmail.com> wrote:
>
>> As mentioned earlier, since JAXB can't handle interfaces like
>> org.apache.axiom.om.OMElement OR java.lang.Exception
>> one way to make this interfaces work with JAXB is to write an XMLAdapter
>> to convert these data types to the known JAXB data types.
>>
>> Defining @XmlJavaTypeAdapter annotation with the XMLAdapter as value in
>> the service method does not seem to work in Tuscany
>> as I mentioned earlier.
>>
>> So I tried adding XMLAdapter's in DataBindingModuleActivator.java, as
>> shown below.....
>>
>> XMLAdapterExtensionPoint xmlAdapterExtensionPoint =
>> registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
>> xmlAdapterExtensionPoint.addAdapter(Exception.class,
>> ExceptionXMLAdapter.class);
>>
>> This seem to be work fine for me, and now I am able to pass these
>> interfaces as parameter through JAXB.
>>
>> Just wanted to make sure, if anyone have tried using @XmlJavaTypeAdapter
>> annotations with the service methods,
>> if not I can open JIRA to fix this issue.
>>
>>
>>
>> On Fri, Feb 6, 2009 at 5:49 PM, Ramkumar R <ra...@gmail.com> wrote:
>>
>>> The DataBinding Scope wiki page
>>> http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Databinding+Scope
>>>  is now updated with the databinding scope for Axis2 MTOM support.
>>>
>>> Just wanted to update everyone that, the standard type
>>> javax.activation.DataHandler is now fully supported, more details
>>> can be viewed from TUSCANY-2451.
>>>
>>> Currently we have 2 outstanding issue that needs to be resolved...
>>>
>>> 1. Support for javax.xml.transform.Source data type, raised as
>>> TUSCANY-2386, TUSCANY-2387 and TUSCANY-2452.
>>> 2. Support for org.apache.axiom.om.OMElement, raised as TUSCANY-2664
>>>
>>> Here I like to talk about the options to support
>>> org.apache.axiom.om.OMElement datatype in our databinding scope....
>>>
>>> Since OMElement is an interface, the JAXB runtime throws the following
>>> exception....
>>>
>>> org.apache.axiom.om.OMElement is an interface, and JAXB can't handle
>>> interfaces.
>>>     this problem is related to the following location:
>>>         at org.apache.axiom.om.OMElement
>>>         at protected org.apache.axiom.om.OMElement
>>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile.arg0
>>>         at
>>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile
>>>
>>> JAXB recommends to use an XMLAdapter to solve this issue, by creating an
>>> XMLAdapter for your interfaces (OMElement) and by using
>>> @XmlJavaTypeAdapter in the service method as shown below.
>>>
>>> @XmlJavaTypeAdapter(value=OMElementXmlAdapter.class,
>>> type=OMElement.class)
>>> public String uploadOMElementFile(OMElement attachment) throws Exception;
>>>
>>> Using @XmlJavaTypeAdapter in the service method, throws the following
>>> exception.....
>>>
>>> java.lang.IllegalArgumentException: value class
>>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.OMElementXmlAdapter
>>>     at org.objectweb.asm.ClassWriter.a(Unknown Source)
>>>     at org.objectweb.asm.AnnotationWriter.visit(Unknown Source)
>>>     at
>>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareField(BaseBeanGenerator.java:250)
>>>     at
>>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareProperty(BaseBeanGenerator.java:195)
>>>     at
>>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.defineClass(BaseBeanGenerator.java:153)
>>>     at
>>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.generate(BaseBeanGenerator.java:437)
>>>     at
>>> org.apache.tuscany.sca.interfacedef.java.jaxws.WrapperBeanGenerator.generateResponseWrapper(WrapperBeanGenerator.java:190)
>>>     at
>>> org.apache.tuscany.sca.interfacedef.java.jaxws.GeneratedDataTypeImpl.getPhysical(GeneratedDataTypeImpl.java:101)
>>>     at
>>> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.findClasses(JAXBContextHelper.java:230)
>>>     at
>>> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:210)
>>>     at
>>> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:89)
>>>     at
>>> org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:52)
>>>     at
>>> org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:40)
>>>     at
>>> org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:200)
>>>     at
>>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
>>>     at
>>> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:190)
>>>     at
>>> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:1)
>>>     at
>>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
>>>     at
>>> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.transform(DataTransformationInterceptor.java:208)
>>>     at
>>> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:97)
>>>     at
>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:310)
>>>     at
>>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:163)
>>>     at $Proxy19.uploadOMElementFile(Unknown Source)
>>>
>>> Like to know if we have any sample to demonstrate the use of  various xml
>>> binding annotation like @XmlAttachmentRef, @XmlMimeType, and
>>> @XmlJavaTypeAdapter in service interface methods.
>>>
>>> Any other comments and suggestions are appreciated. Thanks.
>>>
>>> --
>>> Thanks & Regards,
>>> Ramkumar Ramalingam
>>>
>>
>>
>>
>> --
>> Thanks & Regards,
>> Ramkumar Ramalingam
>>
>
> Ram
>
> Question for you. Are we able to do a similar transformation using our
> databinding framework? I.e. can we configure our databinding framework to
> know about the types that JAXB struggles with so that JAXB2OMElement doesn't
> get used directly.
>
> This may not be practivcal if having these types messes up the WSDL
> generation stage also but worth a look if it means we can do away with
> mandatory requirement to add more annotations.
>
> I'm asking this question as when, a while back, we needed to do some
> specific data transformation steps to handle callable references (which are
> exterenalizble) that appear as arguments as service interfaces we wrote a
> special transformer [1][2] and configured it as part of the databinding
> framework [3]
>
> Maybe we can treat these problematic types in the same way? There is maybe
> a good reason why this won't work but intersted in your thoughts.
>
> Regards
>
> Simon
>
> [1]
> http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Externalizable2OMElement.java
> [2]
> http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Externalizable.java
> [3]
> http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer
>
>
>


-- 
Thanks & Regards,
Ramkumar Ramalingam

Re: Update on Databinding Scope & Issues

Posted by Simon Laws <si...@googlemail.com>.
On Mon, Feb 9, 2009 at 12:20 PM, Ramkumar R <ra...@gmail.com> wrote:

> As mentioned earlier, since JAXB can't handle interfaces like
> org.apache.axiom.om.OMElement OR java.lang.Exception
> one way to make this interfaces work with JAXB is to write an XMLAdapter to
> convert these data types to the known JAXB data types.
>
> Defining @XmlJavaTypeAdapter annotation with the XMLAdapter as value in the
> service method does not seem to work in Tuscany
> as I mentioned earlier.
>
> So I tried adding XMLAdapter's in DataBindingModuleActivator.java, as shown
> below.....
>
> XMLAdapterExtensionPoint xmlAdapterExtensionPoint =
> registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
> xmlAdapterExtensionPoint.addAdapter(Exception.class,
> ExceptionXMLAdapter.class);
>
> This seem to be work fine for me, and now I am able to pass these
> interfaces as parameter through JAXB.
>
> Just wanted to make sure, if anyone have tried using @XmlJavaTypeAdapter
> annotations with the service methods,
> if not I can open JIRA to fix this issue.
>
>
>
> On Fri, Feb 6, 2009 at 5:49 PM, Ramkumar R <ra...@gmail.com> wrote:
>
>> The DataBinding Scope wiki page
>> http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Databinding+Scope
>>  is now updated with the databinding scope for Axis2 MTOM support.
>>
>> Just wanted to update everyone that, the standard type
>> javax.activation.DataHandler is now fully supported, more details
>> can be viewed from TUSCANY-2451.
>>
>> Currently we have 2 outstanding issue that needs to be resolved...
>>
>> 1. Support for javax.xml.transform.Source data type, raised as
>> TUSCANY-2386, TUSCANY-2387 and TUSCANY-2452.
>> 2. Support for org.apache.axiom.om.OMElement, raised as TUSCANY-2664
>>
>> Here I like to talk about the options to support
>> org.apache.axiom.om.OMElement datatype in our databinding scope....
>>
>> Since OMElement is an interface, the JAXB runtime throws the following
>> exception....
>>
>> org.apache.axiom.om.OMElement is an interface, and JAXB can't handle
>> interfaces.
>>     this problem is related to the following location:
>>         at org.apache.axiom.om.OMElement
>>         at protected org.apache.axiom.om.OMElement
>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile.arg0
>>         at
>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile
>>
>> JAXB recommends to use an XMLAdapter to solve this issue, by creating an
>> XMLAdapter for your interfaces (OMElement) and by using
>> @XmlJavaTypeAdapter in the service method as shown below.
>>
>> @XmlJavaTypeAdapter(value=OMElementXmlAdapter.class, type=OMElement.class)
>> public String uploadOMElementFile(OMElement attachment) throws Exception;
>>
>> Using @XmlJavaTypeAdapter in the service method, throws the following
>> exception.....
>>
>> java.lang.IllegalArgumentException: value class
>> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.OMElementXmlAdapter
>>     at org.objectweb.asm.ClassWriter.a(Unknown Source)
>>     at org.objectweb.asm.AnnotationWriter.visit(Unknown Source)
>>     at
>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareField(BaseBeanGenerator.java:250)
>>     at
>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareProperty(BaseBeanGenerator.java:195)
>>     at
>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.defineClass(BaseBeanGenerator.java:153)
>>     at
>> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.generate(BaseBeanGenerator.java:437)
>>     at
>> org.apache.tuscany.sca.interfacedef.java.jaxws.WrapperBeanGenerator.generateResponseWrapper(WrapperBeanGenerator.java:190)
>>     at
>> org.apache.tuscany.sca.interfacedef.java.jaxws.GeneratedDataTypeImpl.getPhysical(GeneratedDataTypeImpl.java:101)
>>     at
>> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.findClasses(JAXBContextHelper.java:230)
>>     at
>> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:210)
>>     at
>> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:89)
>>     at
>> org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:52)
>>     at
>> org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:40)
>>     at
>> org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:200)
>>     at
>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
>>     at
>> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:190)
>>     at
>> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:1)
>>     at
>> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
>>     at
>> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.transform(DataTransformationInterceptor.java:208)
>>     at
>> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:97)
>>     at
>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:310)
>>     at
>> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:163)
>>     at $Proxy19.uploadOMElementFile(Unknown Source)
>>
>> Like to know if we have any sample to demonstrate the use of  various xml
>> binding annotation like @XmlAttachmentRef, @XmlMimeType, and
>> @XmlJavaTypeAdapter in service interface methods.
>>
>> Any other comments and suggestions are appreciated. Thanks.
>>
>> --
>> Thanks & Regards,
>> Ramkumar Ramalingam
>>
>
>
>
> --
> Thanks & Regards,
> Ramkumar Ramalingam
>

Ram

Question for you. Are we able to do a similar transformation using our
databinding framework? I.e. can we configure our databinding framework to
know about the types that JAXB struggles with so that JAXB2OMElement doesn't
get used directly.

This may not be practivcal if having these types messes up the WSDL
generation stage also but worth a look if it means we can do away with
mandatory requirement to add more annotations.

I'm asking this question as when, a while back, we needed to do some
specific data transformation steps to handle callable references (which are
exterenalizble) that appear as arguments as service interfaces we wrote a
special transformer [1][2] and configured it as part of the databinding
framework [3]

Maybe we can treat these problematic types in the same way? There is maybe a
good reason why this won't work but intersted in your thoughts.

Regards

Simon

[1]
http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Externalizable2OMElement.java
[2]
http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Externalizable.java
[3]
http://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer

Re: Update on Databinding Scope & Issues

Posted by Ramkumar R <ra...@gmail.com>.
As mentioned earlier, since JAXB can't handle interfaces like
org.apache.axiom.om.OMElement OR java.lang.Exception
one way to make this interfaces work with JAXB is to write an XMLAdapter to
convert these data types to the known JAXB data types.

Defining @XmlJavaTypeAdapter annotation with the XMLAdapter as value in the
service method does not seem to work in Tuscany
as I mentioned earlier.

So I tried adding XMLAdapter's in DataBindingModuleActivator.java, as shown
below.....

XMLAdapterExtensionPoint xmlAdapterExtensionPoint =
registry.getExtensionPoint(XMLAdapterExtensionPoint.class);
xmlAdapterExtensionPoint.addAdapter(Exception.class,
ExceptionXMLAdapter.class);

This seem to be work fine for me, and now I am able to pass these interfaces
as parameter through JAXB.

Just wanted to make sure, if anyone have tried using @XmlJavaTypeAdapter
annotations with the service methods,
if not I can open JIRA to fix this issue.


On Fri, Feb 6, 2009 at 5:49 PM, Ramkumar R <ra...@gmail.com> wrote:

> The DataBinding Scope wiki page
> http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Databinding+Scope
>  is now updated with the databinding scope for Axis2 MTOM support.
>
> Just wanted to update everyone that, the standard type
> javax.activation.DataHandler is now fully supported, more details
> can be viewed from TUSCANY-2451.
>
> Currently we have 2 outstanding issue that needs to be resolved...
>
> 1. Support for javax.xml.transform.Source data type, raised as
> TUSCANY-2386, TUSCANY-2387 and TUSCANY-2452.
> 2. Support for org.apache.axiom.om.OMElement, raised as TUSCANY-2664
>
> Here I like to talk about the options to support
> org.apache.axiom.om.OMElement datatype in our databinding scope....
>
> Since OMElement is an interface, the JAXB runtime throws the following
> exception....
>
> org.apache.axiom.om.OMElement is an interface, and JAXB can't handle
> interfaces.
>     this problem is related to the following location:
>         at org.apache.axiom.om.OMElement
>         at protected org.apache.axiom.om.OMElement
> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile.arg0
>         at
> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.jaxws.UploadOMElementFile
>
> JAXB recommends to use an XMLAdapter to solve this issue, by creating an
> XMLAdapter for your interfaces (OMElement) and by using
> @XmlJavaTypeAdapter in the service method as shown below.
>
> @XmlJavaTypeAdapter(value=OMElementXmlAdapter.class, type=OMElement.class)
> public String uploadOMElementFile(OMElement attachment) throws Exception;
>
> Using @XmlJavaTypeAdapter in the service method, throws the following
> exception.....
>
> java.lang.IllegalArgumentException: value class
> org.apache.tuscany.sca.binding.ws.axis2.itests.mtom.OMElementXmlAdapter
>     at org.objectweb.asm.ClassWriter.a(Unknown Source)
>     at org.objectweb.asm.AnnotationWriter.visit(Unknown Source)
>     at
> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareField(BaseBeanGenerator.java:250)
>     at
> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.declareProperty(BaseBeanGenerator.java:195)
>     at
> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.defineClass(BaseBeanGenerator.java:153)
>     at
> org.apache.tuscany.sca.interfacedef.java.jaxws.BaseBeanGenerator.generate(BaseBeanGenerator.java:437)
>     at
> org.apache.tuscany.sca.interfacedef.java.jaxws.WrapperBeanGenerator.generateResponseWrapper(WrapperBeanGenerator.java:190)
>     at
> org.apache.tuscany.sca.interfacedef.java.jaxws.GeneratedDataTypeImpl.getPhysical(GeneratedDataTypeImpl.java:101)
>     at
> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.findClasses(JAXBContextHelper.java:230)
>     at
> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:210)
>     at
> org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper.createJAXBContext(JAXBContextHelper.java:89)
>     at
> org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:52)
>     at
> org.apache.tuscany.sca.databinding.jaxb.axiom.JAXB2OMElement.transform(JAXB2OMElement.java:40)
>     at
> org.apache.tuscany.sca.databinding.DefaultTransformerExtensionPoint$LazyPullTransformer.transform(DefaultTransformerExtensionPoint.java:200)
>     at
> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
>     at
> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:190)
>     at
> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:1)
>     at
> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:81)
>     at
> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.transform(DataTransformationInterceptor.java:208)
>     at
> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:97)
>     at
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:310)
>     at
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:163)
>     at $Proxy19.uploadOMElementFile(Unknown Source)
>
> Like to know if we have any sample to demonstrate the use of  various xml
> binding annotation like @XmlAttachmentRef, @XmlMimeType, and
> @XmlJavaTypeAdapter in service interface methods.
>
> Any other comments and suggestions are appreciated. Thanks.
>
> --
> Thanks & Regards,
> Ramkumar Ramalingam
>



-- 
Thanks & Regards,
Ramkumar Ramalingam