You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by Andreas Veithen <an...@gmail.com> on 2010/06/09 17:12:16 UTC

Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Rich,

I think this change causes the Hudson build to fail, because passing
null as DataSource argument to DataHandler is not allowed. Probably
this depends on the particular JAF implementation that is used. Can
you make sure that the DataHandler wrapper works with both the Sun and
the Geronimo implementation?

Andreas

On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
> Author: scheu
> Date: Wed Jun  9 12:02:06 2010
> New Revision: 952971
>
> URL: http://svn.apache.org/viewvc?rev=952971&view=rev
> Log:
> AXIS2-4733
> Contributor: Phil Adams
> Contributed WrappedDataHandler to allow Axis2 to set the appropriate content-type on a DataHandler.
> Also added a validation test.
>
> Added:
>    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/message/impl/WrappedDataHandlerTest.java
>    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java
> Modified:
>    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java
>
> Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java
> URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
> ==============================================================================
> --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java (original)
> +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
> @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
>  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
>  import org.apache.axis2.jaxws.message.factory.MessageFactory;
>  import org.apache.axis2.transport.http.HTTPConstants;
> +import org.apache.axis2.util.WrappedDataHandler;
>
>  import javax.xml.soap.AttachmentPart;
>  import javax.xml.soap.MimeHeader;
> @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
>                 m.setDoingSWA(true);
>                 while (it.hasNext()) {
>                     AttachmentPart ap = (AttachmentPart)it.next();
> -                    m.addDataHandler(ap.getDataHandler(), ap.getContentId());
> +                    m.addDataHandler(new WrappedDataHandler(ap.getDataHandler(), ap.getContentType()), ap.getContentId());
>                 }
>             }
>             return m;
> @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
>         }
>         return createFrom(block.getXMLStreamReader(true), protocol);
>     }
> -
>  }
>
> Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/message/impl/WrappedDataHandlerTest.java
> URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/message/impl/WrappedDataHandlerTest.java?rev=952971&view=auto
> ==============================================================================
> --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
> +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06 2010
> @@ -0,0 +1,48 @@
> +package org.apache.axis2.jaxws.message.impl;
> +
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements. See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership. The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License. You may obtain a copy of the License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied. See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +import java.net.URL;
> +import javax.activation.DataHandler;
> +
> +import org.apache.axis2.util.WrappedDataHandler;
> +
> +import junit.framework.TestCase;
> +
> +/**
> + * Test the WrappedDataHandler class.
> + */
> +public class WrappedDataHandlerTest extends TestCase {
> +
> +   /**
> +    * Verify that the Wrapped DataHandler maintains the correct content-type value
> +    * for an XML document attachment.
> +    */
> +   public void testWrappedDataHandler() throws Exception {
> +      URL xmlAttachment = new URL("file:./test-resources/xml/soapmessage.xml");
> +
> +      DataHandler dh = new DataHandler(xmlAttachment);
> +      assertTrue(dh.getContentType().equals("application/xml"));
> +
> +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh, "text/xml");
> +      assertTrue(wrappedDH.getContentType() != null);
> +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
> +   }
> +}
>
> Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java
> URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?rev=952971&view=auto
> ==============================================================================
> --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java (added)
> +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
> @@ -0,0 +1,185 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements. See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership. The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License"); you may not use this file except in compliance
> + * with the License. You may obtain a copy of the License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied. See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +
> +package org.apache.axis2.util;
> +
> +import java.awt.datatransfer.DataFlavor;
> +import java.awt.datatransfer.UnsupportedFlavorException;
> +import java.io.IOException;
> +import java.io.InputStream;
> +import java.io.OutputStream;
> +
> +import javax.activation.CommandInfo;
> +import javax.activation.CommandMap;
> +import javax.activation.DataHandler;
> +import javax.activation.DataSource;
> +
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +
> +/**
> + * This class acts as a wrapper for the javax.activation.DataHandler class.
> + * It is used to store away a (potentially) user-defined content-type value along with
> + * the DataHandler instance.   We'll delegate all method calls except for getContentType()
> + * to the delegate DataHandler instance passed into the ctor.
> + */
> +public class WrappedDataHandler extends DataHandler {
> +
> +    private static final Log log = LogFactory.getLog(WrappedDataHandler.class);
> +
> +    DataHandler delegate;
> +    String contentType;
> +
> +    /**
> +     * Constructs a new instance of the WrappedDataHandler.
> +     * @param _delegate the real DataHandler instance being wrapped
> +     * @param _contentType the user-defined contentType associated with the DataHandler instance
> +     */
> +    public WrappedDataHandler(DataHandler _delegate, String _contentType) {
> +        super((DataSource)null);
> +
> +        delegate = _delegate;
> +        contentType = _contentType;
> +
> +        if (log.isDebugEnabled()) {
> +            log.debug("Created instance of WrappedDatahandler: " + this.toString() + ", contentType=" + contentType
> +                + "\nDelegate DataHandler: " + delegate.toString());
> +        }
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#getAllCommands()
> +     */
> +    @Override
> +    public CommandInfo[] getAllCommands() {
> +        return delegate.getAllCommands();
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#getBean(javax.activation.CommandInfo)
> +     */
> +    @Override
> +    public Object getBean(CommandInfo paramCommandInfo) {
> +        return delegate.getBean(paramCommandInfo);
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
> +     */
> +    @Override
> +    public CommandInfo getCommand(String paramString) {
> +        return delegate.getCommand(paramString);
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#getContent()
> +     */
> +    @Override
> +    public Object getContent() throws IOException {
> +        return delegate.getContent();
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#getContentType()
> +     */
> +    @Override
> +    public String getContentType() {
> +        return (contentType != null ? contentType : delegate.getContentType());
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#getDataSource()
> +     */
> +    @Override
> +    public DataSource getDataSource() {
> +        return delegate.getDataSource();
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#getInputStream()
> +     */
> +    @Override
> +    public InputStream getInputStream() throws IOException {
> +        return delegate.getInputStream();
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#getName()
> +     */
> +    @Override
> +    public String getName() {
> +        return delegate.getName();
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#getOutputStream()
> +     */
> +    @Override
> +    public OutputStream getOutputStream() throws IOException {
> +        return delegate.getOutputStream();
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#getPreferredCommands()
> +     */
> +    @Override
> +    public CommandInfo[] getPreferredCommands() {
> +        return delegate.getPreferredCommands();
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#getTransferData(java.awt.datatransfer.DataFlavor)
> +     */
> +    @Override
> +    public Object getTransferData(DataFlavor paramDataFlavor) throws UnsupportedFlavorException, IOException {
> +        return delegate.getTransferData(paramDataFlavor);
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#getTransferDataFlavors()
> +     */
> +    @Override
> +    public synchronized DataFlavor[] getTransferDataFlavors() {
> +        return delegate.getTransferDataFlavors();
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#isDataFlavorSupported(java.awt.datatransfer.DataFlavor)
> +     */
> +    @Override
> +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
> +        return delegate.isDataFlavorSupported(paramDataFlavor);
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#setCommandMap(javax.activation.CommandMap)
> +     */
> +    @Override
> +    public synchronized void setCommandMap(CommandMap paramCommandMap) {
> +        delegate.setCommandMap(paramCommandMap);
> +    }
> +
> +    /* (non-Javadoc)
> +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
> +     */
> +    @Override
> +    public void writeTo(OutputStream paramOutputStream) throws IOException {
> +        delegate.writeTo(paramOutputStream);
> +    }
> +}
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by Andreas Veithen <an...@gmail.com>.
On Wed, Jun 9, 2010 at 19:28, Andreas Veithen <an...@gmail.com> wrote:
> Rich,
>
> I was going to do an attempt to fix the issue we have with Hudson when
> several Axis2 related jobs run in parallel. For this I need a stable
> build. Therefore, I'm going to temporarily revert the change. Remember
> that you can easily reapply it using "svn -c 952971 . ." later.

That should be "svn merge -c 952971 . ." of course.

> Andreas
>
> On Wed, Jun 9, 2010 at 18:07, R J Scheuerle Jr <sc...@us.ibm.com> wrote:
>> Thanks Andreas,
>>
>> Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
>> the null DataSource issue.
>>
>> Rich Scheuerle
>> Senior Programmer, AIM SWG
>> IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
>> Development, Customer Solutions, and Open Source
>> Apache Axis2 (scheu@apache.org)
>> 512-286-8420 (IBM TL 363-8420)
>>
>> Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16 AM:
>>
>>> Andreas Veithen <an...@gmail.com>
>>> 06/09/2010 10:12 AM
>>>
>>> Please respond to
>>> java-dev@axis.apache.org
>>>
>>> To
>>>
>>> java-dev@axis.apache.org
>>>
>>> cc
>>>
>>> Subject
>>>
>>> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
>>> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
>>> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>>
>>>
>>> Rich,
>>>
>>> I think this change causes the Hudson build to fail, because passing
>>> null as DataSource argument to DataHandler is not allowed. Probably
>>> this depends on the particular JAF implementation that is used. Can
>>> you make sure that the DataHandler wrapper works with both the Sun and
>>> the Geronimo implementation?
>>>
>>> Andreas
>>>
>>> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
>>> > Author: scheu
>>> > Date: Wed Jun  9 12:02:06 2010
>>> > New Revision: 952971
>>> >
>>> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
>>> > Log:
>>> > AXIS2-4733
>>> > Contributor: Phil Adams
>>> > Contributed WrappedDataHandler to allow Axis2 to set the
>>> appropriate content-type on a DataHandler.
>>> > Also added a validation test.
>>> >
>>> > Added:
>>> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
>>> jaxws/message/impl/WrappedDataHandlerTest.java
>>> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
>>> util/WrappedDataHandler.java
>>> > Modified:
>>> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java
>>> >
>>> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
>>> axis2/jaxws/message/impl/MessageFactoryImpl.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
>>> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java (original)
>>> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
>>> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
>>> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
>>> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
>>> >  import org.apache.axis2.transport.http.HTTPConstants;
>>> > +import org.apache.axis2.util.WrappedDataHandler;
>>> >
>>> >  import javax.xml.soap.AttachmentPart;
>>> >  import javax.xml.soap.MimeHeader;
>>> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
>>> >                 m.setDoingSWA(true);
>>> >                 while (it.hasNext()) {
>>> >                     AttachmentPart ap = (AttachmentPart)it.next();
>>> > -                    m.addDataHandler(ap.getDataHandler(),
>>> ap.getContentId());
>>> > +                    m.addDataHandler(new WrappedDataHandler
>>> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
>>> >                 }
>>> >             }
>>> >             return m;
>>> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
>>> >         }
>>> >         return createFrom(block.getXMLStreamReader(true), protocol);
>>> >     }
>>> > -
>>> >  }
>>> >
>>> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
>>> WrappedDataHandlerTest.java?rev=952971&view=auto
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
>>> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
>>> 2010
>>> > @@ -0,0 +1,48 @@
>>> > +package org.apache.axis2.jaxws.message.impl;
>>> > +
>>> > +/*
>>> > + * Licensed to the Apache Software Foundation (ASF) under one
>>> > + * or more contributor license agreements. See the NOTICE file
>>> > + * distributed with this work for additional information
>>> > + * regarding copyright ownership. The ASF licenses this file
>>> > + * to you under the Apache License, Version 2.0 (the
>>> > + * "License"); you may not use this file except in compliance
>>> > + * with the License. You may obtain a copy of the License at
>>> > + *
>>> > + * http://www.apache.org/licenses/LICENSE-2.0
>>> > + *
>>> > + * Unless required by applicable law or agreed to in writing,
>>> > + * software distributed under the License is distributed on an
>>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> > + * KIND, either express or implied. See the License for the
>>> > + * specific language governing permissions and limitations
>>> > + * under the License.
>>> > + */
>>> > +
>>> > +import java.net.URL;
>>> > +import javax.activation.DataHandler;
>>> > +
>>> > +import org.apache.axis2.util.WrappedDataHandler;
>>> > +
>>> > +import junit.framework.TestCase;
>>> > +
>>> > +/**
>>> > + * Test the WrappedDataHandler class.
>>> > + */
>>> > +public class WrappedDataHandlerTest extends TestCase {
>>> > +
>>> > +   /**
>>> > +    * Verify that the Wrapped DataHandler maintains the correct
>>> content-type value
>>> > +    * for an XML document attachment.
>>> > +    */
>>> > +   public void testWrappedDataHandler() throws Exception {
>>> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
>>> soapmessage.xml");
>>> > +
>>> > +      DataHandler dh = new DataHandler(xmlAttachment);
>>> > +      assertTrue(dh.getContentType().equals("application/xml"));
>>> > +
>>> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
>>> "text/xml");
>>> > +      assertTrue(wrappedDH.getContentType() != null);
>>> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
>>> > +   }
>>> > +}
>>> >
>>> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
>>> rev=952971&view=auto
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java (added)
>>> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
>>> > @@ -0,0 +1,185 @@
>>> > +/*
>>> > + * Licensed to the Apache Software Foundation (ASF) under one
>>> > + * or more contributor license agreements. See the NOTICE file
>>> > + * distributed with this work for additional information
>>> > + * regarding copyright ownership. The ASF licenses this file
>>> > + * to you under the Apache License, Version 2.0 (the
>>> > + * "License"); you may not use this file except in compliance
>>> > + * with the License. You may obtain a copy of the License at
>>> > + *
>>> > + * http://www.apache.org/licenses/LICENSE-2.0
>>> > + *
>>> > + * Unless required by applicable law or agreed to in writing,
>>> > + * software distributed under the License is distributed on an
>>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> > + * KIND, either express or implied. See the License for the
>>> > + * specific language governing permissions and limitations
>>> > + * under the License.
>>> > + */
>>> > +
>>> > +package org.apache.axis2.util;
>>> > +
>>> > +import java.awt.datatransfer.DataFlavor;
>>> > +import java.awt.datatransfer.UnsupportedFlavorException;
>>> > +import java.io.IOException;
>>> > +import java.io.InputStream;
>>> > +import java.io.OutputStream;
>>> > +
>>> > +import javax.activation.CommandInfo;
>>> > +import javax.activation.CommandMap;
>>> > +import javax.activation.DataHandler;
>>> > +import javax.activation.DataSource;
>>> > +
>>> > +import org.apache.commons.logging.Log;
>>> > +import org.apache.commons.logging.LogFactory;
>>> > +
>>> > +/**
>>> > + * This class acts as a wrapper for the javax.activation.DataHandler
>>> > class.
>>> > + * It is used to store away a (potentially) user-defined content-
>>> type value along with
>>> > + * the DataHandler instance.   We'll delegate all method calls
>>> except for getContentType()
>>> > + * to the delegate DataHandler instance passed into the ctor.
>>> > + */
>>> > +public class WrappedDataHandler extends DataHandler {
>>> > +
>>> > +    private static final Log log = LogFactory.getLog
>>> (WrappedDataHandler.class);
>>> > +
>>> > +    DataHandler delegate;
>>> > +    String contentType;
>>> > +
>>> > +    /**
>>> > +     * Constructs a new instance of the WrappedDataHandler.
>>> > +     * @param _delegate the real DataHandler instance being wrapped
>>> > +     * @param _contentType the user-defined contentType
>>> associated with the DataHandler instance
>>> > +     */
>>> > +    public WrappedDataHandler(DataHandler _delegate, String
>>> > _contentType) {
>>> > +        super((DataSource)null);
>>> > +
>>> > +        delegate = _delegate;
>>> > +        contentType = _contentType;
>>> > +
>>> > +        if (log.isDebugEnabled()) {
>>> > +            log.debug("Created instance of WrappedDatahandler: "
>>> + this.toString() + ", contentType=" + contentType
>>> > +                + "\nDelegate DataHandler: " + delegate.toString());
>>> > +        }
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getAllCommands()
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo[] getAllCommands() {
>>> > +        return delegate.getAllCommands();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getBean
>>> (javax.activation.CommandInfo)
>>> > +     */
>>> > +    @Override
>>> > +    public Object getBean(CommandInfo paramCommandInfo) {
>>> > +        return delegate.getBean(paramCommandInfo);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo getCommand(String paramString) {
>>> > +        return delegate.getCommand(paramString);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getContent()
>>> > +     */
>>> > +    @Override
>>> > +    public Object getContent() throws IOException {
>>> > +        return delegate.getContent();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getContentType()
>>> > +     */
>>> > +    @Override
>>> > +    public String getContentType() {
>>> > +        return (contentType != null ? contentType :
>>> delegate.getContentType());
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getDataSource()
>>> > +     */
>>> > +    @Override
>>> > +    public DataSource getDataSource() {
>>> > +        return delegate.getDataSource();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getInputStream()
>>> > +     */
>>> > +    @Override
>>> > +    public InputStream getInputStream() throws IOException {
>>> > +        return delegate.getInputStream();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getName()
>>> > +     */
>>> > +    @Override
>>> > +    public String getName() {
>>> > +        return delegate.getName();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getOutputStream()
>>> > +     */
>>> > +    @Override
>>> > +    public OutputStream getOutputStream() throws IOException {
>>> > +        return delegate.getOutputStream();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getPreferredCommands()
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo[] getPreferredCommands() {
>>> > +        return delegate.getPreferredCommands();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getTransferData
>>> (java.awt.datatransfer.DataFlavor)
>>> > +     */
>>> > +    @Override
>>> > +    public Object getTransferData(DataFlavor paramDataFlavor)
>>> throws UnsupportedFlavorException, IOException {
>>> > +        return delegate.getTransferData(paramDataFlavor);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
>>> > +     */
>>> > +    @Override
>>> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
>>> > +        return delegate.getTransferDataFlavors();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
>>> (java.awt.datatransfer.DataFlavor)
>>> > +     */
>>> > +    @Override
>>> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
>>> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#setCommandMap
>>> (javax.activation.CommandMap)
>>> > +     */
>>> > +    @Override
>>> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
>>> > {
>>> > +        delegate.setCommandMap(paramCommandMap);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
>>> > +     */
>>> > +    @Override
>>> > +    public void writeTo(OutputStream paramOutputStream) throws
>>> IOException {
>>> > +        delegate.writeTo(paramOutputStream);
>>> > +    }
>>> > +}
>>> >
>>> >
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>>> For additional commands, e-mail: java-dev-help@axis.apache.org
>>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by Andreas Veithen <an...@gmail.com>.
On Wed, Jun 9, 2010 at 19:28, Andreas Veithen <an...@gmail.com> wrote:
> Rich,
>
> I was going to do an attempt to fix the issue we have with Hudson when
> several Axis2 related jobs run in parallel. For this I need a stable
> build. Therefore, I'm going to temporarily revert the change. Remember
> that you can easily reapply it using "svn -c 952971 . ." later.

That should be "svn merge -c 952971 . ." of course.

> Andreas
>
> On Wed, Jun 9, 2010 at 18:07, R J Scheuerle Jr <sc...@us.ibm.com> wrote:
>> Thanks Andreas,
>>
>> Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
>> the null DataSource issue.
>>
>> Rich Scheuerle
>> Senior Programmer, AIM SWG
>> IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
>> Development, Customer Solutions, and Open Source
>> Apache Axis2 (scheu@apache.org)
>> 512-286-8420 (IBM TL 363-8420)
>>
>> Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16 AM:
>>
>>> Andreas Veithen <an...@gmail.com>
>>> 06/09/2010 10:12 AM
>>>
>>> Please respond to
>>> java-dev@axis.apache.org
>>>
>>> To
>>>
>>> java-dev@axis.apache.org
>>>
>>> cc
>>>
>>> Subject
>>>
>>> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
>>> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
>>> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>>
>>>
>>> Rich,
>>>
>>> I think this change causes the Hudson build to fail, because passing
>>> null as DataSource argument to DataHandler is not allowed. Probably
>>> this depends on the particular JAF implementation that is used. Can
>>> you make sure that the DataHandler wrapper works with both the Sun and
>>> the Geronimo implementation?
>>>
>>> Andreas
>>>
>>> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
>>> > Author: scheu
>>> > Date: Wed Jun  9 12:02:06 2010
>>> > New Revision: 952971
>>> >
>>> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
>>> > Log:
>>> > AXIS2-4733
>>> > Contributor: Phil Adams
>>> > Contributed WrappedDataHandler to allow Axis2 to set the
>>> appropriate content-type on a DataHandler.
>>> > Also added a validation test.
>>> >
>>> > Added:
>>> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
>>> jaxws/message/impl/WrappedDataHandlerTest.java
>>> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
>>> util/WrappedDataHandler.java
>>> > Modified:
>>> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java
>>> >
>>> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
>>> axis2/jaxws/message/impl/MessageFactoryImpl.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
>>> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java (original)
>>> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
>>> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
>>> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
>>> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
>>> >  import org.apache.axis2.transport.http.HTTPConstants;
>>> > +import org.apache.axis2.util.WrappedDataHandler;
>>> >
>>> >  import javax.xml.soap.AttachmentPart;
>>> >  import javax.xml.soap.MimeHeader;
>>> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
>>> >                 m.setDoingSWA(true);
>>> >                 while (it.hasNext()) {
>>> >                     AttachmentPart ap = (AttachmentPart)it.next();
>>> > -                    m.addDataHandler(ap.getDataHandler(),
>>> ap.getContentId());
>>> > +                    m.addDataHandler(new WrappedDataHandler
>>> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
>>> >                 }
>>> >             }
>>> >             return m;
>>> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
>>> >         }
>>> >         return createFrom(block.getXMLStreamReader(true), protocol);
>>> >     }
>>> > -
>>> >  }
>>> >
>>> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
>>> WrappedDataHandlerTest.java?rev=952971&view=auto
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
>>> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
>>> 2010
>>> > @@ -0,0 +1,48 @@
>>> > +package org.apache.axis2.jaxws.message.impl;
>>> > +
>>> > +/*
>>> > + * Licensed to the Apache Software Foundation (ASF) under one
>>> > + * or more contributor license agreements. See the NOTICE file
>>> > + * distributed with this work for additional information
>>> > + * regarding copyright ownership. The ASF licenses this file
>>> > + * to you under the Apache License, Version 2.0 (the
>>> > + * "License"); you may not use this file except in compliance
>>> > + * with the License. You may obtain a copy of the License at
>>> > + *
>>> > + * http://www.apache.org/licenses/LICENSE-2.0
>>> > + *
>>> > + * Unless required by applicable law or agreed to in writing,
>>> > + * software distributed under the License is distributed on an
>>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> > + * KIND, either express or implied. See the License for the
>>> > + * specific language governing permissions and limitations
>>> > + * under the License.
>>> > + */
>>> > +
>>> > +import java.net.URL;
>>> > +import javax.activation.DataHandler;
>>> > +
>>> > +import org.apache.axis2.util.WrappedDataHandler;
>>> > +
>>> > +import junit.framework.TestCase;
>>> > +
>>> > +/**
>>> > + * Test the WrappedDataHandler class.
>>> > + */
>>> > +public class WrappedDataHandlerTest extends TestCase {
>>> > +
>>> > +   /**
>>> > +    * Verify that the Wrapped DataHandler maintains the correct
>>> content-type value
>>> > +    * for an XML document attachment.
>>> > +    */
>>> > +   public void testWrappedDataHandler() throws Exception {
>>> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
>>> soapmessage.xml");
>>> > +
>>> > +      DataHandler dh = new DataHandler(xmlAttachment);
>>> > +      assertTrue(dh.getContentType().equals("application/xml"));
>>> > +
>>> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
>>> "text/xml");
>>> > +      assertTrue(wrappedDH.getContentType() != null);
>>> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
>>> > +   }
>>> > +}
>>> >
>>> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
>>> rev=952971&view=auto
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java (added)
>>> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
>>> > @@ -0,0 +1,185 @@
>>> > +/*
>>> > + * Licensed to the Apache Software Foundation (ASF) under one
>>> > + * or more contributor license agreements. See the NOTICE file
>>> > + * distributed with this work for additional information
>>> > + * regarding copyright ownership. The ASF licenses this file
>>> > + * to you under the Apache License, Version 2.0 (the
>>> > + * "License"); you may not use this file except in compliance
>>> > + * with the License. You may obtain a copy of the License at
>>> > + *
>>> > + * http://www.apache.org/licenses/LICENSE-2.0
>>> > + *
>>> > + * Unless required by applicable law or agreed to in writing,
>>> > + * software distributed under the License is distributed on an
>>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> > + * KIND, either express or implied. See the License for the
>>> > + * specific language governing permissions and limitations
>>> > + * under the License.
>>> > + */
>>> > +
>>> > +package org.apache.axis2.util;
>>> > +
>>> > +import java.awt.datatransfer.DataFlavor;
>>> > +import java.awt.datatransfer.UnsupportedFlavorException;
>>> > +import java.io.IOException;
>>> > +import java.io.InputStream;
>>> > +import java.io.OutputStream;
>>> > +
>>> > +import javax.activation.CommandInfo;
>>> > +import javax.activation.CommandMap;
>>> > +import javax.activation.DataHandler;
>>> > +import javax.activation.DataSource;
>>> > +
>>> > +import org.apache.commons.logging.Log;
>>> > +import org.apache.commons.logging.LogFactory;
>>> > +
>>> > +/**
>>> > + * This class acts as a wrapper for the javax.activation.DataHandler
>>> > class.
>>> > + * It is used to store away a (potentially) user-defined content-
>>> type value along with
>>> > + * the DataHandler instance.   We'll delegate all method calls
>>> except for getContentType()
>>> > + * to the delegate DataHandler instance passed into the ctor.
>>> > + */
>>> > +public class WrappedDataHandler extends DataHandler {
>>> > +
>>> > +    private static final Log log = LogFactory.getLog
>>> (WrappedDataHandler.class);
>>> > +
>>> > +    DataHandler delegate;
>>> > +    String contentType;
>>> > +
>>> > +    /**
>>> > +     * Constructs a new instance of the WrappedDataHandler.
>>> > +     * @param _delegate the real DataHandler instance being wrapped
>>> > +     * @param _contentType the user-defined contentType
>>> associated with the DataHandler instance
>>> > +     */
>>> > +    public WrappedDataHandler(DataHandler _delegate, String
>>> > _contentType) {
>>> > +        super((DataSource)null);
>>> > +
>>> > +        delegate = _delegate;
>>> > +        contentType = _contentType;
>>> > +
>>> > +        if (log.isDebugEnabled()) {
>>> > +            log.debug("Created instance of WrappedDatahandler: "
>>> + this.toString() + ", contentType=" + contentType
>>> > +                + "\nDelegate DataHandler: " + delegate.toString());
>>> > +        }
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getAllCommands()
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo[] getAllCommands() {
>>> > +        return delegate.getAllCommands();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getBean
>>> (javax.activation.CommandInfo)
>>> > +     */
>>> > +    @Override
>>> > +    public Object getBean(CommandInfo paramCommandInfo) {
>>> > +        return delegate.getBean(paramCommandInfo);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo getCommand(String paramString) {
>>> > +        return delegate.getCommand(paramString);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getContent()
>>> > +     */
>>> > +    @Override
>>> > +    public Object getContent() throws IOException {
>>> > +        return delegate.getContent();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getContentType()
>>> > +     */
>>> > +    @Override
>>> > +    public String getContentType() {
>>> > +        return (contentType != null ? contentType :
>>> delegate.getContentType());
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getDataSource()
>>> > +     */
>>> > +    @Override
>>> > +    public DataSource getDataSource() {
>>> > +        return delegate.getDataSource();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getInputStream()
>>> > +     */
>>> > +    @Override
>>> > +    public InputStream getInputStream() throws IOException {
>>> > +        return delegate.getInputStream();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getName()
>>> > +     */
>>> > +    @Override
>>> > +    public String getName() {
>>> > +        return delegate.getName();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getOutputStream()
>>> > +     */
>>> > +    @Override
>>> > +    public OutputStream getOutputStream() throws IOException {
>>> > +        return delegate.getOutputStream();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getPreferredCommands()
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo[] getPreferredCommands() {
>>> > +        return delegate.getPreferredCommands();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getTransferData
>>> (java.awt.datatransfer.DataFlavor)
>>> > +     */
>>> > +    @Override
>>> > +    public Object getTransferData(DataFlavor paramDataFlavor)
>>> throws UnsupportedFlavorException, IOException {
>>> > +        return delegate.getTransferData(paramDataFlavor);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
>>> > +     */
>>> > +    @Override
>>> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
>>> > +        return delegate.getTransferDataFlavors();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
>>> (java.awt.datatransfer.DataFlavor)
>>> > +     */
>>> > +    @Override
>>> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
>>> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#setCommandMap
>>> (javax.activation.CommandMap)
>>> > +     */
>>> > +    @Override
>>> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
>>> > {
>>> > +        delegate.setCommandMap(paramCommandMap);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
>>> > +     */
>>> > +    @Override
>>> > +    public void writeTo(OutputStream paramOutputStream) throws
>>> IOException {
>>> > +        delegate.writeTo(paramOutputStream);
>>> > +    }
>>> > +}
>>> >
>>> >
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>>> For additional commands, e-mail: java-dev-help@axis.apache.org
>>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by Andreas Veithen <an...@gmail.com>.
On Wed, Jun 9, 2010 at 19:28, Andreas Veithen <an...@gmail.com> wrote:
> Rich,
>
> I was going to do an attempt to fix the issue we have with Hudson when
> several Axis2 related jobs run in parallel. For this I need a stable
> build. Therefore, I'm going to temporarily revert the change. Remember
> that you can easily reapply it using "svn -c 952971 . ." later.

That should be "svn merge -c 952971 . ." of course.

> Andreas
>
> On Wed, Jun 9, 2010 at 18:07, R J Scheuerle Jr <sc...@us.ibm.com> wrote:
>> Thanks Andreas,
>>
>> Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
>> the null DataSource issue.
>>
>> Rich Scheuerle
>> Senior Programmer, AIM SWG
>> IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
>> Development, Customer Solutions, and Open Source
>> Apache Axis2 (scheu@apache.org)
>> 512-286-8420 (IBM TL 363-8420)
>>
>> Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16 AM:
>>
>>> Andreas Veithen <an...@gmail.com>
>>> 06/09/2010 10:12 AM
>>>
>>> Please respond to
>>> java-dev@axis.apache.org
>>>
>>> To
>>>
>>> java-dev@axis.apache.org
>>>
>>> cc
>>>
>>> Subject
>>>
>>> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
>>> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
>>> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>>
>>>
>>> Rich,
>>>
>>> I think this change causes the Hudson build to fail, because passing
>>> null as DataSource argument to DataHandler is not allowed. Probably
>>> this depends on the particular JAF implementation that is used. Can
>>> you make sure that the DataHandler wrapper works with both the Sun and
>>> the Geronimo implementation?
>>>
>>> Andreas
>>>
>>> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
>>> > Author: scheu
>>> > Date: Wed Jun  9 12:02:06 2010
>>> > New Revision: 952971
>>> >
>>> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
>>> > Log:
>>> > AXIS2-4733
>>> > Contributor: Phil Adams
>>> > Contributed WrappedDataHandler to allow Axis2 to set the
>>> appropriate content-type on a DataHandler.
>>> > Also added a validation test.
>>> >
>>> > Added:
>>> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
>>> jaxws/message/impl/WrappedDataHandlerTest.java
>>> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
>>> util/WrappedDataHandler.java
>>> > Modified:
>>> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java
>>> >
>>> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
>>> axis2/jaxws/message/impl/MessageFactoryImpl.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
>>> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java (original)
>>> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
>>> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
>>> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
>>> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
>>> >  import org.apache.axis2.transport.http.HTTPConstants;
>>> > +import org.apache.axis2.util.WrappedDataHandler;
>>> >
>>> >  import javax.xml.soap.AttachmentPart;
>>> >  import javax.xml.soap.MimeHeader;
>>> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
>>> >                 m.setDoingSWA(true);
>>> >                 while (it.hasNext()) {
>>> >                     AttachmentPart ap = (AttachmentPart)it.next();
>>> > -                    m.addDataHandler(ap.getDataHandler(),
>>> ap.getContentId());
>>> > +                    m.addDataHandler(new WrappedDataHandler
>>> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
>>> >                 }
>>> >             }
>>> >             return m;
>>> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
>>> >         }
>>> >         return createFrom(block.getXMLStreamReader(true), protocol);
>>> >     }
>>> > -
>>> >  }
>>> >
>>> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
>>> WrappedDataHandlerTest.java?rev=952971&view=auto
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
>>> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
>>> 2010
>>> > @@ -0,0 +1,48 @@
>>> > +package org.apache.axis2.jaxws.message.impl;
>>> > +
>>> > +/*
>>> > + * Licensed to the Apache Software Foundation (ASF) under one
>>> > + * or more contributor license agreements. See the NOTICE file
>>> > + * distributed with this work for additional information
>>> > + * regarding copyright ownership. The ASF licenses this file
>>> > + * to you under the Apache License, Version 2.0 (the
>>> > + * "License"); you may not use this file except in compliance
>>> > + * with the License. You may obtain a copy of the License at
>>> > + *
>>> > + * http://www.apache.org/licenses/LICENSE-2.0
>>> > + *
>>> > + * Unless required by applicable law or agreed to in writing,
>>> > + * software distributed under the License is distributed on an
>>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> > + * KIND, either express or implied. See the License for the
>>> > + * specific language governing permissions and limitations
>>> > + * under the License.
>>> > + */
>>> > +
>>> > +import java.net.URL;
>>> > +import javax.activation.DataHandler;
>>> > +
>>> > +import org.apache.axis2.util.WrappedDataHandler;
>>> > +
>>> > +import junit.framework.TestCase;
>>> > +
>>> > +/**
>>> > + * Test the WrappedDataHandler class.
>>> > + */
>>> > +public class WrappedDataHandlerTest extends TestCase {
>>> > +
>>> > +   /**
>>> > +    * Verify that the Wrapped DataHandler maintains the correct
>>> content-type value
>>> > +    * for an XML document attachment.
>>> > +    */
>>> > +   public void testWrappedDataHandler() throws Exception {
>>> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
>>> soapmessage.xml");
>>> > +
>>> > +      DataHandler dh = new DataHandler(xmlAttachment);
>>> > +      assertTrue(dh.getContentType().equals("application/xml"));
>>> > +
>>> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
>>> "text/xml");
>>> > +      assertTrue(wrappedDH.getContentType() != null);
>>> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
>>> > +   }
>>> > +}
>>> >
>>> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
>>> rev=952971&view=auto
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java (added)
>>> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
>>> > @@ -0,0 +1,185 @@
>>> > +/*
>>> > + * Licensed to the Apache Software Foundation (ASF) under one
>>> > + * or more contributor license agreements. See the NOTICE file
>>> > + * distributed with this work for additional information
>>> > + * regarding copyright ownership. The ASF licenses this file
>>> > + * to you under the Apache License, Version 2.0 (the
>>> > + * "License"); you may not use this file except in compliance
>>> > + * with the License. You may obtain a copy of the License at
>>> > + *
>>> > + * http://www.apache.org/licenses/LICENSE-2.0
>>> > + *
>>> > + * Unless required by applicable law or agreed to in writing,
>>> > + * software distributed under the License is distributed on an
>>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> > + * KIND, either express or implied. See the License for the
>>> > + * specific language governing permissions and limitations
>>> > + * under the License.
>>> > + */
>>> > +
>>> > +package org.apache.axis2.util;
>>> > +
>>> > +import java.awt.datatransfer.DataFlavor;
>>> > +import java.awt.datatransfer.UnsupportedFlavorException;
>>> > +import java.io.IOException;
>>> > +import java.io.InputStream;
>>> > +import java.io.OutputStream;
>>> > +
>>> > +import javax.activation.CommandInfo;
>>> > +import javax.activation.CommandMap;
>>> > +import javax.activation.DataHandler;
>>> > +import javax.activation.DataSource;
>>> > +
>>> > +import org.apache.commons.logging.Log;
>>> > +import org.apache.commons.logging.LogFactory;
>>> > +
>>> > +/**
>>> > + * This class acts as a wrapper for the javax.activation.DataHandler
>>> > class.
>>> > + * It is used to store away a (potentially) user-defined content-
>>> type value along with
>>> > + * the DataHandler instance.   We'll delegate all method calls
>>> except for getContentType()
>>> > + * to the delegate DataHandler instance passed into the ctor.
>>> > + */
>>> > +public class WrappedDataHandler extends DataHandler {
>>> > +
>>> > +    private static final Log log = LogFactory.getLog
>>> (WrappedDataHandler.class);
>>> > +
>>> > +    DataHandler delegate;
>>> > +    String contentType;
>>> > +
>>> > +    /**
>>> > +     * Constructs a new instance of the WrappedDataHandler.
>>> > +     * @param _delegate the real DataHandler instance being wrapped
>>> > +     * @param _contentType the user-defined contentType
>>> associated with the DataHandler instance
>>> > +     */
>>> > +    public WrappedDataHandler(DataHandler _delegate, String
>>> > _contentType) {
>>> > +        super((DataSource)null);
>>> > +
>>> > +        delegate = _delegate;
>>> > +        contentType = _contentType;
>>> > +
>>> > +        if (log.isDebugEnabled()) {
>>> > +            log.debug("Created instance of WrappedDatahandler: "
>>> + this.toString() + ", contentType=" + contentType
>>> > +                + "\nDelegate DataHandler: " + delegate.toString());
>>> > +        }
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getAllCommands()
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo[] getAllCommands() {
>>> > +        return delegate.getAllCommands();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getBean
>>> (javax.activation.CommandInfo)
>>> > +     */
>>> > +    @Override
>>> > +    public Object getBean(CommandInfo paramCommandInfo) {
>>> > +        return delegate.getBean(paramCommandInfo);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo getCommand(String paramString) {
>>> > +        return delegate.getCommand(paramString);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getContent()
>>> > +     */
>>> > +    @Override
>>> > +    public Object getContent() throws IOException {
>>> > +        return delegate.getContent();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getContentType()
>>> > +     */
>>> > +    @Override
>>> > +    public String getContentType() {
>>> > +        return (contentType != null ? contentType :
>>> delegate.getContentType());
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getDataSource()
>>> > +     */
>>> > +    @Override
>>> > +    public DataSource getDataSource() {
>>> > +        return delegate.getDataSource();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getInputStream()
>>> > +     */
>>> > +    @Override
>>> > +    public InputStream getInputStream() throws IOException {
>>> > +        return delegate.getInputStream();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getName()
>>> > +     */
>>> > +    @Override
>>> > +    public String getName() {
>>> > +        return delegate.getName();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getOutputStream()
>>> > +     */
>>> > +    @Override
>>> > +    public OutputStream getOutputStream() throws IOException {
>>> > +        return delegate.getOutputStream();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getPreferredCommands()
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo[] getPreferredCommands() {
>>> > +        return delegate.getPreferredCommands();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getTransferData
>>> (java.awt.datatransfer.DataFlavor)
>>> > +     */
>>> > +    @Override
>>> > +    public Object getTransferData(DataFlavor paramDataFlavor)
>>> throws UnsupportedFlavorException, IOException {
>>> > +        return delegate.getTransferData(paramDataFlavor);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
>>> > +     */
>>> > +    @Override
>>> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
>>> > +        return delegate.getTransferDataFlavors();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
>>> (java.awt.datatransfer.DataFlavor)
>>> > +     */
>>> > +    @Override
>>> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
>>> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#setCommandMap
>>> (javax.activation.CommandMap)
>>> > +     */
>>> > +    @Override
>>> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
>>> > {
>>> > +        delegate.setCommandMap(paramCommandMap);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
>>> > +     */
>>> > +    @Override
>>> > +    public void writeTo(OutputStream paramOutputStream) throws
>>> IOException {
>>> > +        delegate.writeTo(paramOutputStream);
>>> > +    }
>>> > +}
>>> >
>>> >
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>>> For additional commands, e-mail: java-dev-help@axis.apache.org
>>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by Andreas Veithen <an...@gmail.com>.
On Wed, Jun 9, 2010 at 19:28, Andreas Veithen <an...@gmail.com> wrote:
> Rich,
>
> I was going to do an attempt to fix the issue we have with Hudson when
> several Axis2 related jobs run in parallel. For this I need a stable
> build. Therefore, I'm going to temporarily revert the change. Remember
> that you can easily reapply it using "svn -c 952971 . ." later.

That should be "svn merge -c 952971 . ." of course.

> Andreas
>
> On Wed, Jun 9, 2010 at 18:07, R J Scheuerle Jr <sc...@us.ibm.com> wrote:
>> Thanks Andreas,
>>
>> Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
>> the null DataSource issue.
>>
>> Rich Scheuerle
>> Senior Programmer, AIM SWG
>> IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
>> Development, Customer Solutions, and Open Source
>> Apache Axis2 (scheu@apache.org)
>> 512-286-8420 (IBM TL 363-8420)
>>
>> Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16 AM:
>>
>>> Andreas Veithen <an...@gmail.com>
>>> 06/09/2010 10:12 AM
>>>
>>> Please respond to
>>> java-dev@axis.apache.org
>>>
>>> To
>>>
>>> java-dev@axis.apache.org
>>>
>>> cc
>>>
>>> Subject
>>>
>>> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
>>> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
>>> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>>
>>>
>>> Rich,
>>>
>>> I think this change causes the Hudson build to fail, because passing
>>> null as DataSource argument to DataHandler is not allowed. Probably
>>> this depends on the particular JAF implementation that is used. Can
>>> you make sure that the DataHandler wrapper works with both the Sun and
>>> the Geronimo implementation?
>>>
>>> Andreas
>>>
>>> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
>>> > Author: scheu
>>> > Date: Wed Jun  9 12:02:06 2010
>>> > New Revision: 952971
>>> >
>>> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
>>> > Log:
>>> > AXIS2-4733
>>> > Contributor: Phil Adams
>>> > Contributed WrappedDataHandler to allow Axis2 to set the
>>> appropriate content-type on a DataHandler.
>>> > Also added a validation test.
>>> >
>>> > Added:
>>> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
>>> jaxws/message/impl/WrappedDataHandlerTest.java
>>> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
>>> util/WrappedDataHandler.java
>>> > Modified:
>>> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java
>>> >
>>> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
>>> axis2/jaxws/message/impl/MessageFactoryImpl.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
>>> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java (original)
>>> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
>>> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
>>> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
>>> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
>>> >  import org.apache.axis2.transport.http.HTTPConstants;
>>> > +import org.apache.axis2.util.WrappedDataHandler;
>>> >
>>> >  import javax.xml.soap.AttachmentPart;
>>> >  import javax.xml.soap.MimeHeader;
>>> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
>>> >                 m.setDoingSWA(true);
>>> >                 while (it.hasNext()) {
>>> >                     AttachmentPart ap = (AttachmentPart)it.next();
>>> > -                    m.addDataHandler(ap.getDataHandler(),
>>> ap.getContentId());
>>> > +                    m.addDataHandler(new WrappedDataHandler
>>> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
>>> >                 }
>>> >             }
>>> >             return m;
>>> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
>>> >         }
>>> >         return createFrom(block.getXMLStreamReader(true), protocol);
>>> >     }
>>> > -
>>> >  }
>>> >
>>> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
>>> WrappedDataHandlerTest.java?rev=952971&view=auto
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
>>> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
>>> 2010
>>> > @@ -0,0 +1,48 @@
>>> > +package org.apache.axis2.jaxws.message.impl;
>>> > +
>>> > +/*
>>> > + * Licensed to the Apache Software Foundation (ASF) under one
>>> > + * or more contributor license agreements. See the NOTICE file
>>> > + * distributed with this work for additional information
>>> > + * regarding copyright ownership. The ASF licenses this file
>>> > + * to you under the Apache License, Version 2.0 (the
>>> > + * "License"); you may not use this file except in compliance
>>> > + * with the License. You may obtain a copy of the License at
>>> > + *
>>> > + * http://www.apache.org/licenses/LICENSE-2.0
>>> > + *
>>> > + * Unless required by applicable law or agreed to in writing,
>>> > + * software distributed under the License is distributed on an
>>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> > + * KIND, either express or implied. See the License for the
>>> > + * specific language governing permissions and limitations
>>> > + * under the License.
>>> > + */
>>> > +
>>> > +import java.net.URL;
>>> > +import javax.activation.DataHandler;
>>> > +
>>> > +import org.apache.axis2.util.WrappedDataHandler;
>>> > +
>>> > +import junit.framework.TestCase;
>>> > +
>>> > +/**
>>> > + * Test the WrappedDataHandler class.
>>> > + */
>>> > +public class WrappedDataHandlerTest extends TestCase {
>>> > +
>>> > +   /**
>>> > +    * Verify that the Wrapped DataHandler maintains the correct
>>> content-type value
>>> > +    * for an XML document attachment.
>>> > +    */
>>> > +   public void testWrappedDataHandler() throws Exception {
>>> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
>>> soapmessage.xml");
>>> > +
>>> > +      DataHandler dh = new DataHandler(xmlAttachment);
>>> > +      assertTrue(dh.getContentType().equals("application/xml"));
>>> > +
>>> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
>>> "text/xml");
>>> > +      assertTrue(wrappedDH.getContentType() != null);
>>> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
>>> > +   }
>>> > +}
>>> >
>>> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
>>> rev=952971&view=auto
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java (added)
>>> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
>>> > @@ -0,0 +1,185 @@
>>> > +/*
>>> > + * Licensed to the Apache Software Foundation (ASF) under one
>>> > + * or more contributor license agreements. See the NOTICE file
>>> > + * distributed with this work for additional information
>>> > + * regarding copyright ownership. The ASF licenses this file
>>> > + * to you under the Apache License, Version 2.0 (the
>>> > + * "License"); you may not use this file except in compliance
>>> > + * with the License. You may obtain a copy of the License at
>>> > + *
>>> > + * http://www.apache.org/licenses/LICENSE-2.0
>>> > + *
>>> > + * Unless required by applicable law or agreed to in writing,
>>> > + * software distributed under the License is distributed on an
>>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> > + * KIND, either express or implied. See the License for the
>>> > + * specific language governing permissions and limitations
>>> > + * under the License.
>>> > + */
>>> > +
>>> > +package org.apache.axis2.util;
>>> > +
>>> > +import java.awt.datatransfer.DataFlavor;
>>> > +import java.awt.datatransfer.UnsupportedFlavorException;
>>> > +import java.io.IOException;
>>> > +import java.io.InputStream;
>>> > +import java.io.OutputStream;
>>> > +
>>> > +import javax.activation.CommandInfo;
>>> > +import javax.activation.CommandMap;
>>> > +import javax.activation.DataHandler;
>>> > +import javax.activation.DataSource;
>>> > +
>>> > +import org.apache.commons.logging.Log;
>>> > +import org.apache.commons.logging.LogFactory;
>>> > +
>>> > +/**
>>> > + * This class acts as a wrapper for the javax.activation.DataHandler
>>> > class.
>>> > + * It is used to store away a (potentially) user-defined content-
>>> type value along with
>>> > + * the DataHandler instance.   We'll delegate all method calls
>>> except for getContentType()
>>> > + * to the delegate DataHandler instance passed into the ctor.
>>> > + */
>>> > +public class WrappedDataHandler extends DataHandler {
>>> > +
>>> > +    private static final Log log = LogFactory.getLog
>>> (WrappedDataHandler.class);
>>> > +
>>> > +    DataHandler delegate;
>>> > +    String contentType;
>>> > +
>>> > +    /**
>>> > +     * Constructs a new instance of the WrappedDataHandler.
>>> > +     * @param _delegate the real DataHandler instance being wrapped
>>> > +     * @param _contentType the user-defined contentType
>>> associated with the DataHandler instance
>>> > +     */
>>> > +    public WrappedDataHandler(DataHandler _delegate, String
>>> > _contentType) {
>>> > +        super((DataSource)null);
>>> > +
>>> > +        delegate = _delegate;
>>> > +        contentType = _contentType;
>>> > +
>>> > +        if (log.isDebugEnabled()) {
>>> > +            log.debug("Created instance of WrappedDatahandler: "
>>> + this.toString() + ", contentType=" + contentType
>>> > +                + "\nDelegate DataHandler: " + delegate.toString());
>>> > +        }
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getAllCommands()
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo[] getAllCommands() {
>>> > +        return delegate.getAllCommands();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getBean
>>> (javax.activation.CommandInfo)
>>> > +     */
>>> > +    @Override
>>> > +    public Object getBean(CommandInfo paramCommandInfo) {
>>> > +        return delegate.getBean(paramCommandInfo);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo getCommand(String paramString) {
>>> > +        return delegate.getCommand(paramString);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getContent()
>>> > +     */
>>> > +    @Override
>>> > +    public Object getContent() throws IOException {
>>> > +        return delegate.getContent();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getContentType()
>>> > +     */
>>> > +    @Override
>>> > +    public String getContentType() {
>>> > +        return (contentType != null ? contentType :
>>> delegate.getContentType());
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getDataSource()
>>> > +     */
>>> > +    @Override
>>> > +    public DataSource getDataSource() {
>>> > +        return delegate.getDataSource();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getInputStream()
>>> > +     */
>>> > +    @Override
>>> > +    public InputStream getInputStream() throws IOException {
>>> > +        return delegate.getInputStream();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getName()
>>> > +     */
>>> > +    @Override
>>> > +    public String getName() {
>>> > +        return delegate.getName();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getOutputStream()
>>> > +     */
>>> > +    @Override
>>> > +    public OutputStream getOutputStream() throws IOException {
>>> > +        return delegate.getOutputStream();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getPreferredCommands()
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo[] getPreferredCommands() {
>>> > +        return delegate.getPreferredCommands();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getTransferData
>>> (java.awt.datatransfer.DataFlavor)
>>> > +     */
>>> > +    @Override
>>> > +    public Object getTransferData(DataFlavor paramDataFlavor)
>>> throws UnsupportedFlavorException, IOException {
>>> > +        return delegate.getTransferData(paramDataFlavor);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
>>> > +     */
>>> > +    @Override
>>> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
>>> > +        return delegate.getTransferDataFlavors();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
>>> (java.awt.datatransfer.DataFlavor)
>>> > +     */
>>> > +    @Override
>>> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
>>> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#setCommandMap
>>> (javax.activation.CommandMap)
>>> > +     */
>>> > +    @Override
>>> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
>>> > {
>>> > +        delegate.setCommandMap(paramCommandMap);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
>>> > +     */
>>> > +    @Override
>>> > +    public void writeTo(OutputStream paramOutputStream) throws
>>> IOException {
>>> > +        delegate.writeTo(paramOutputStream);
>>> > +    }
>>> > +}
>>> >
>>> >
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>>> For additional commands, e-mail: java-dev-help@axis.apache.org
>>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by Andreas Veithen <an...@gmail.com>.
On Wed, Jun 9, 2010 at 19:28, Andreas Veithen <an...@gmail.com> wrote:
> Rich,
>
> I was going to do an attempt to fix the issue we have with Hudson when
> several Axis2 related jobs run in parallel. For this I need a stable
> build. Therefore, I'm going to temporarily revert the change. Remember
> that you can easily reapply it using "svn -c 952971 . ." later.

That should be "svn merge -c 952971 . ." of course.

> Andreas
>
> On Wed, Jun 9, 2010 at 18:07, R J Scheuerle Jr <sc...@us.ibm.com> wrote:
>> Thanks Andreas,
>>
>> Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
>> the null DataSource issue.
>>
>> Rich Scheuerle
>> Senior Programmer, AIM SWG
>> IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
>> Development, Customer Solutions, and Open Source
>> Apache Axis2 (scheu@apache.org)
>> 512-286-8420 (IBM TL 363-8420)
>>
>> Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16 AM:
>>
>>> Andreas Veithen <an...@gmail.com>
>>> 06/09/2010 10:12 AM
>>>
>>> Please respond to
>>> java-dev@axis.apache.org
>>>
>>> To
>>>
>>> java-dev@axis.apache.org
>>>
>>> cc
>>>
>>> Subject
>>>
>>> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
>>> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
>>> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>>
>>>
>>> Rich,
>>>
>>> I think this change causes the Hudson build to fail, because passing
>>> null as DataSource argument to DataHandler is not allowed. Probably
>>> this depends on the particular JAF implementation that is used. Can
>>> you make sure that the DataHandler wrapper works with both the Sun and
>>> the Geronimo implementation?
>>>
>>> Andreas
>>>
>>> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
>>> > Author: scheu
>>> > Date: Wed Jun  9 12:02:06 2010
>>> > New Revision: 952971
>>> >
>>> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
>>> > Log:
>>> > AXIS2-4733
>>> > Contributor: Phil Adams
>>> > Contributed WrappedDataHandler to allow Axis2 to set the
>>> appropriate content-type on a DataHandler.
>>> > Also added a validation test.
>>> >
>>> > Added:
>>> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
>>> jaxws/message/impl/WrappedDataHandlerTest.java
>>> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
>>> util/WrappedDataHandler.java
>>> > Modified:
>>> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java
>>> >
>>> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
>>> axis2/jaxws/message/impl/MessageFactoryImpl.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
>>> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java (original)
>>> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>>> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
>>> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
>>> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
>>> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
>>> >  import org.apache.axis2.transport.http.HTTPConstants;
>>> > +import org.apache.axis2.util.WrappedDataHandler;
>>> >
>>> >  import javax.xml.soap.AttachmentPart;
>>> >  import javax.xml.soap.MimeHeader;
>>> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
>>> >                 m.setDoingSWA(true);
>>> >                 while (it.hasNext()) {
>>> >                     AttachmentPart ap = (AttachmentPart)it.next();
>>> > -                    m.addDataHandler(ap.getDataHandler(),
>>> ap.getContentId());
>>> > +                    m.addDataHandler(new WrappedDataHandler
>>> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
>>> >                 }
>>> >             }
>>> >             return m;
>>> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
>>> >         }
>>> >         return createFrom(block.getXMLStreamReader(true), protocol);
>>> >     }
>>> > -
>>> >  }
>>> >
>>> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
>>> WrappedDataHandlerTest.java?rev=952971&view=auto
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
>>> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
>>> 2010
>>> > @@ -0,0 +1,48 @@
>>> > +package org.apache.axis2.jaxws.message.impl;
>>> > +
>>> > +/*
>>> > + * Licensed to the Apache Software Foundation (ASF) under one
>>> > + * or more contributor license agreements. See the NOTICE file
>>> > + * distributed with this work for additional information
>>> > + * regarding copyright ownership. The ASF licenses this file
>>> > + * to you under the Apache License, Version 2.0 (the
>>> > + * "License"); you may not use this file except in compliance
>>> > + * with the License. You may obtain a copy of the License at
>>> > + *
>>> > + * http://www.apache.org/licenses/LICENSE-2.0
>>> > + *
>>> > + * Unless required by applicable law or agreed to in writing,
>>> > + * software distributed under the License is distributed on an
>>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> > + * KIND, either express or implied. See the License for the
>>> > + * specific language governing permissions and limitations
>>> > + * under the License.
>>> > + */
>>> > +
>>> > +import java.net.URL;
>>> > +import javax.activation.DataHandler;
>>> > +
>>> > +import org.apache.axis2.util.WrappedDataHandler;
>>> > +
>>> > +import junit.framework.TestCase;
>>> > +
>>> > +/**
>>> > + * Test the WrappedDataHandler class.
>>> > + */
>>> > +public class WrappedDataHandlerTest extends TestCase {
>>> > +
>>> > +   /**
>>> > +    * Verify that the Wrapped DataHandler maintains the correct
>>> content-type value
>>> > +    * for an XML document attachment.
>>> > +    */
>>> > +   public void testWrappedDataHandler() throws Exception {
>>> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
>>> soapmessage.xml");
>>> > +
>>> > +      DataHandler dh = new DataHandler(xmlAttachment);
>>> > +      assertTrue(dh.getContentType().equals("application/xml"));
>>> > +
>>> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
>>> "text/xml");
>>> > +      assertTrue(wrappedDH.getContentType() != null);
>>> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
>>> > +   }
>>> > +}
>>> >
>>> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java
>>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>>> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
>>> rev=952971&view=auto
>>> >
>>>
>>> ==============================================================================
>>> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java (added)
>>> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>>> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
>>> > @@ -0,0 +1,185 @@
>>> > +/*
>>> > + * Licensed to the Apache Software Foundation (ASF) under one
>>> > + * or more contributor license agreements. See the NOTICE file
>>> > + * distributed with this work for additional information
>>> > + * regarding copyright ownership. The ASF licenses this file
>>> > + * to you under the Apache License, Version 2.0 (the
>>> > + * "License"); you may not use this file except in compliance
>>> > + * with the License. You may obtain a copy of the License at
>>> > + *
>>> > + * http://www.apache.org/licenses/LICENSE-2.0
>>> > + *
>>> > + * Unless required by applicable law or agreed to in writing,
>>> > + * software distributed under the License is distributed on an
>>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> > + * KIND, either express or implied. See the License for the
>>> > + * specific language governing permissions and limitations
>>> > + * under the License.
>>> > + */
>>> > +
>>> > +package org.apache.axis2.util;
>>> > +
>>> > +import java.awt.datatransfer.DataFlavor;
>>> > +import java.awt.datatransfer.UnsupportedFlavorException;
>>> > +import java.io.IOException;
>>> > +import java.io.InputStream;
>>> > +import java.io.OutputStream;
>>> > +
>>> > +import javax.activation.CommandInfo;
>>> > +import javax.activation.CommandMap;
>>> > +import javax.activation.DataHandler;
>>> > +import javax.activation.DataSource;
>>> > +
>>> > +import org.apache.commons.logging.Log;
>>> > +import org.apache.commons.logging.LogFactory;
>>> > +
>>> > +/**
>>> > + * This class acts as a wrapper for the javax.activation.DataHandler
>>> > class.
>>> > + * It is used to store away a (potentially) user-defined content-
>>> type value along with
>>> > + * the DataHandler instance.   We'll delegate all method calls
>>> except for getContentType()
>>> > + * to the delegate DataHandler instance passed into the ctor.
>>> > + */
>>> > +public class WrappedDataHandler extends DataHandler {
>>> > +
>>> > +    private static final Log log = LogFactory.getLog
>>> (WrappedDataHandler.class);
>>> > +
>>> > +    DataHandler delegate;
>>> > +    String contentType;
>>> > +
>>> > +    /**
>>> > +     * Constructs a new instance of the WrappedDataHandler.
>>> > +     * @param _delegate the real DataHandler instance being wrapped
>>> > +     * @param _contentType the user-defined contentType
>>> associated with the DataHandler instance
>>> > +     */
>>> > +    public WrappedDataHandler(DataHandler _delegate, String
>>> > _contentType) {
>>> > +        super((DataSource)null);
>>> > +
>>> > +        delegate = _delegate;
>>> > +        contentType = _contentType;
>>> > +
>>> > +        if (log.isDebugEnabled()) {
>>> > +            log.debug("Created instance of WrappedDatahandler: "
>>> + this.toString() + ", contentType=" + contentType
>>> > +                + "\nDelegate DataHandler: " + delegate.toString());
>>> > +        }
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getAllCommands()
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo[] getAllCommands() {
>>> > +        return delegate.getAllCommands();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getBean
>>> (javax.activation.CommandInfo)
>>> > +     */
>>> > +    @Override
>>> > +    public Object getBean(CommandInfo paramCommandInfo) {
>>> > +        return delegate.getBean(paramCommandInfo);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo getCommand(String paramString) {
>>> > +        return delegate.getCommand(paramString);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getContent()
>>> > +     */
>>> > +    @Override
>>> > +    public Object getContent() throws IOException {
>>> > +        return delegate.getContent();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getContentType()
>>> > +     */
>>> > +    @Override
>>> > +    public String getContentType() {
>>> > +        return (contentType != null ? contentType :
>>> delegate.getContentType());
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getDataSource()
>>> > +     */
>>> > +    @Override
>>> > +    public DataSource getDataSource() {
>>> > +        return delegate.getDataSource();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getInputStream()
>>> > +     */
>>> > +    @Override
>>> > +    public InputStream getInputStream() throws IOException {
>>> > +        return delegate.getInputStream();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getName()
>>> > +     */
>>> > +    @Override
>>> > +    public String getName() {
>>> > +        return delegate.getName();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getOutputStream()
>>> > +     */
>>> > +    @Override
>>> > +    public OutputStream getOutputStream() throws IOException {
>>> > +        return delegate.getOutputStream();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getPreferredCommands()
>>> > +     */
>>> > +    @Override
>>> > +    public CommandInfo[] getPreferredCommands() {
>>> > +        return delegate.getPreferredCommands();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getTransferData
>>> (java.awt.datatransfer.DataFlavor)
>>> > +     */
>>> > +    @Override
>>> > +    public Object getTransferData(DataFlavor paramDataFlavor)
>>> throws UnsupportedFlavorException, IOException {
>>> > +        return delegate.getTransferData(paramDataFlavor);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
>>> > +     */
>>> > +    @Override
>>> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
>>> > +        return delegate.getTransferDataFlavors();
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
>>> (java.awt.datatransfer.DataFlavor)
>>> > +     */
>>> > +    @Override
>>> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
>>> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#setCommandMap
>>> (javax.activation.CommandMap)
>>> > +     */
>>> > +    @Override
>>> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
>>> > {
>>> > +        delegate.setCommandMap(paramCommandMap);
>>> > +    }
>>> > +
>>> > +    /* (non-Javadoc)
>>> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
>>> > +     */
>>> > +    @Override
>>> > +    public void writeTo(OutputStream paramOutputStream) throws
>>> IOException {
>>> > +        delegate.writeTo(paramOutputStream);
>>> > +    }
>>> > +}
>>> >
>>> >
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>>> For additional commands, e-mail: java-dev-help@axis.apache.org
>>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by Andreas Veithen <an...@gmail.com>.
Rich,

I was going to do an attempt to fix the issue we have with Hudson when
several Axis2 related jobs run in parallel. For this I need a stable
build. Therefore, I'm going to temporarily revert the change. Remember
that you can easily reapply it using "svn -c 952971 . ." later.

Andreas

On Wed, Jun 9, 2010 at 18:07, R J Scheuerle Jr <sc...@us.ibm.com> wrote:
> Thanks Andreas,
>
> Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
> the null DataSource issue.
>
> Rich Scheuerle
> Senior Programmer, AIM SWG
> IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
> Development, Customer Solutions, and Open Source
> Apache Axis2 (scheu@apache.org)
> 512-286-8420 (IBM TL 363-8420)
>
> Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16 AM:
>
>> Andreas Veithen <an...@gmail.com>
>> 06/09/2010 10:12 AM
>>
>> Please respond to
>> java-dev@axis.apache.org
>>
>> To
>>
>> java-dev@axis.apache.org
>>
>> cc
>>
>> Subject
>>
>> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
>> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
>> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>
>>
>> Rich,
>>
>> I think this change causes the Hudson build to fail, because passing
>> null as DataSource argument to DataHandler is not allowed. Probably
>> this depends on the particular JAF implementation that is used. Can
>> you make sure that the DataHandler wrapper works with both the Sun and
>> the Geronimo implementation?
>>
>> Andreas
>>
>> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
>> > Author: scheu
>> > Date: Wed Jun  9 12:02:06 2010
>> > New Revision: 952971
>> >
>> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
>> > Log:
>> > AXIS2-4733
>> > Contributor: Phil Adams
>> > Contributed WrappedDataHandler to allow Axis2 to set the
>> appropriate content-type on a DataHandler.
>> > Also added a validation test.
>> >
>> > Added:
>> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
>> jaxws/message/impl/WrappedDataHandlerTest.java
>> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
>> util/WrappedDataHandler.java
>> > Modified:
>> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java
>> >
>> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
>> axis2/jaxws/message/impl/MessageFactoryImpl.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
>> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java (original)
>> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
>> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
>> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
>> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
>> >  import org.apache.axis2.transport.http.HTTPConstants;
>> > +import org.apache.axis2.util.WrappedDataHandler;
>> >
>> >  import javax.xml.soap.AttachmentPart;
>> >  import javax.xml.soap.MimeHeader;
>> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
>> >                 m.setDoingSWA(true);
>> >                 while (it.hasNext()) {
>> >                     AttachmentPart ap = (AttachmentPart)it.next();
>> > -                    m.addDataHandler(ap.getDataHandler(),
>> ap.getContentId());
>> > +                    m.addDataHandler(new WrappedDataHandler
>> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
>> >                 }
>> >             }
>> >             return m;
>> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
>> >         }
>> >         return createFrom(block.getXMLStreamReader(true), protocol);
>> >     }
>> > -
>> >  }
>> >
>> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
>> WrappedDataHandlerTest.java?rev=952971&view=auto
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
>> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
>> 2010
>> > @@ -0,0 +1,48 @@
>> > +package org.apache.axis2.jaxws.message.impl;
>> > +
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you under the Apache License, Version 2.0 (the
>> > + * "License"); you may not use this file except in compliance
>> > + * with the License. You may obtain a copy of the License at
>> > + *
>> > + * http://www.apache.org/licenses/LICENSE-2.0
>> > + *
>> > + * Unless required by applicable law or agreed to in writing,
>> > + * software distributed under the License is distributed on an
>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> > + * KIND, either express or implied. See the License for the
>> > + * specific language governing permissions and limitations
>> > + * under the License.
>> > + */
>> > +
>> > +import java.net.URL;
>> > +import javax.activation.DataHandler;
>> > +
>> > +import org.apache.axis2.util.WrappedDataHandler;
>> > +
>> > +import junit.framework.TestCase;
>> > +
>> > +/**
>> > + * Test the WrappedDataHandler class.
>> > + */
>> > +public class WrappedDataHandlerTest extends TestCase {
>> > +
>> > +   /**
>> > +    * Verify that the Wrapped DataHandler maintains the correct
>> content-type value
>> > +    * for an XML document attachment.
>> > +    */
>> > +   public void testWrappedDataHandler() throws Exception {
>> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
>> soapmessage.xml");
>> > +
>> > +      DataHandler dh = new DataHandler(xmlAttachment);
>> > +      assertTrue(dh.getContentType().equals("application/xml"));
>> > +
>> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
>> "text/xml");
>> > +      assertTrue(wrappedDH.getContentType() != null);
>> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
>> > +   }
>> > +}
>> >
>> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
>> rev=952971&view=auto
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java (added)
>> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
>> > @@ -0,0 +1,185 @@
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you under the Apache License, Version 2.0 (the
>> > + * "License"); you may not use this file except in compliance
>> > + * with the License. You may obtain a copy of the License at
>> > + *
>> > + * http://www.apache.org/licenses/LICENSE-2.0
>> > + *
>> > + * Unless required by applicable law or agreed to in writing,
>> > + * software distributed under the License is distributed on an
>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> > + * KIND, either express or implied. See the License for the
>> > + * specific language governing permissions and limitations
>> > + * under the License.
>> > + */
>> > +
>> > +package org.apache.axis2.util;
>> > +
>> > +import java.awt.datatransfer.DataFlavor;
>> > +import java.awt.datatransfer.UnsupportedFlavorException;
>> > +import java.io.IOException;
>> > +import java.io.InputStream;
>> > +import java.io.OutputStream;
>> > +
>> > +import javax.activation.CommandInfo;
>> > +import javax.activation.CommandMap;
>> > +import javax.activation.DataHandler;
>> > +import javax.activation.DataSource;
>> > +
>> > +import org.apache.commons.logging.Log;
>> > +import org.apache.commons.logging.LogFactory;
>> > +
>> > +/**
>> > + * This class acts as a wrapper for the javax.activation.DataHandler
>> > class.
>> > + * It is used to store away a (potentially) user-defined content-
>> type value along with
>> > + * the DataHandler instance.   We'll delegate all method calls
>> except for getContentType()
>> > + * to the delegate DataHandler instance passed into the ctor.
>> > + */
>> > +public class WrappedDataHandler extends DataHandler {
>> > +
>> > +    private static final Log log = LogFactory.getLog
>> (WrappedDataHandler.class);
>> > +
>> > +    DataHandler delegate;
>> > +    String contentType;
>> > +
>> > +    /**
>> > +     * Constructs a new instance of the WrappedDataHandler.
>> > +     * @param _delegate the real DataHandler instance being wrapped
>> > +     * @param _contentType the user-defined contentType
>> associated with the DataHandler instance
>> > +     */
>> > +    public WrappedDataHandler(DataHandler _delegate, String
>> > _contentType) {
>> > +        super((DataSource)null);
>> > +
>> > +        delegate = _delegate;
>> > +        contentType = _contentType;
>> > +
>> > +        if (log.isDebugEnabled()) {
>> > +            log.debug("Created instance of WrappedDatahandler: "
>> + this.toString() + ", contentType=" + contentType
>> > +                + "\nDelegate DataHandler: " + delegate.toString());
>> > +        }
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getAllCommands()
>> > +     */
>> > +    @Override
>> > +    public CommandInfo[] getAllCommands() {
>> > +        return delegate.getAllCommands();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getBean
>> (javax.activation.CommandInfo)
>> > +     */
>> > +    @Override
>> > +    public Object getBean(CommandInfo paramCommandInfo) {
>> > +        return delegate.getBean(paramCommandInfo);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
>> > +     */
>> > +    @Override
>> > +    public CommandInfo getCommand(String paramString) {
>> > +        return delegate.getCommand(paramString);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getContent()
>> > +     */
>> > +    @Override
>> > +    public Object getContent() throws IOException {
>> > +        return delegate.getContent();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getContentType()
>> > +     */
>> > +    @Override
>> > +    public String getContentType() {
>> > +        return (contentType != null ? contentType :
>> delegate.getContentType());
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getDataSource()
>> > +     */
>> > +    @Override
>> > +    public DataSource getDataSource() {
>> > +        return delegate.getDataSource();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getInputStream()
>> > +     */
>> > +    @Override
>> > +    public InputStream getInputStream() throws IOException {
>> > +        return delegate.getInputStream();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getName()
>> > +     */
>> > +    @Override
>> > +    public String getName() {
>> > +        return delegate.getName();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getOutputStream()
>> > +     */
>> > +    @Override
>> > +    public OutputStream getOutputStream() throws IOException {
>> > +        return delegate.getOutputStream();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getPreferredCommands()
>> > +     */
>> > +    @Override
>> > +    public CommandInfo[] getPreferredCommands() {
>> > +        return delegate.getPreferredCommands();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getTransferData
>> (java.awt.datatransfer.DataFlavor)
>> > +     */
>> > +    @Override
>> > +    public Object getTransferData(DataFlavor paramDataFlavor)
>> throws UnsupportedFlavorException, IOException {
>> > +        return delegate.getTransferData(paramDataFlavor);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
>> > +     */
>> > +    @Override
>> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
>> > +        return delegate.getTransferDataFlavors();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
>> (java.awt.datatransfer.DataFlavor)
>> > +     */
>> > +    @Override
>> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
>> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#setCommandMap
>> (javax.activation.CommandMap)
>> > +     */
>> > +    @Override
>> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
>> > {
>> > +        delegate.setCommandMap(paramCommandMap);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
>> > +     */
>> > +    @Override
>> > +    public void writeTo(OutputStream paramOutputStream) throws
>> IOException {
>> > +        delegate.writeTo(paramOutputStream);
>> > +    }
>> > +}
>> >
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> For additional commands, e-mail: java-dev-help@axis.apache.org
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by Andreas Veithen <an...@gmail.com>.
Rich,

I was going to do an attempt to fix the issue we have with Hudson when
several Axis2 related jobs run in parallel. For this I need a stable
build. Therefore, I'm going to temporarily revert the change. Remember
that you can easily reapply it using "svn -c 952971 . ." later.

Andreas

On Wed, Jun 9, 2010 at 18:07, R J Scheuerle Jr <sc...@us.ibm.com> wrote:
> Thanks Andreas,
>
> Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
> the null DataSource issue.
>
> Rich Scheuerle
> Senior Programmer, AIM SWG
> IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
> Development, Customer Solutions, and Open Source
> Apache Axis2 (scheu@apache.org)
> 512-286-8420 (IBM TL 363-8420)
>
> Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16 AM:
>
>> Andreas Veithen <an...@gmail.com>
>> 06/09/2010 10:12 AM
>>
>> Please respond to
>> java-dev@axis.apache.org
>>
>> To
>>
>> java-dev@axis.apache.org
>>
>> cc
>>
>> Subject
>>
>> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
>> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
>> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>
>>
>> Rich,
>>
>> I think this change causes the Hudson build to fail, because passing
>> null as DataSource argument to DataHandler is not allowed. Probably
>> this depends on the particular JAF implementation that is used. Can
>> you make sure that the DataHandler wrapper works with both the Sun and
>> the Geronimo implementation?
>>
>> Andreas
>>
>> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
>> > Author: scheu
>> > Date: Wed Jun  9 12:02:06 2010
>> > New Revision: 952971
>> >
>> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
>> > Log:
>> > AXIS2-4733
>> > Contributor: Phil Adams
>> > Contributed WrappedDataHandler to allow Axis2 to set the
>> appropriate content-type on a DataHandler.
>> > Also added a validation test.
>> >
>> > Added:
>> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
>> jaxws/message/impl/WrappedDataHandlerTest.java
>> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
>> util/WrappedDataHandler.java
>> > Modified:
>> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java
>> >
>> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
>> axis2/jaxws/message/impl/MessageFactoryImpl.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
>> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java (original)
>> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
>> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
>> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
>> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
>> >  import org.apache.axis2.transport.http.HTTPConstants;
>> > +import org.apache.axis2.util.WrappedDataHandler;
>> >
>> >  import javax.xml.soap.AttachmentPart;
>> >  import javax.xml.soap.MimeHeader;
>> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
>> >                 m.setDoingSWA(true);
>> >                 while (it.hasNext()) {
>> >                     AttachmentPart ap = (AttachmentPart)it.next();
>> > -                    m.addDataHandler(ap.getDataHandler(),
>> ap.getContentId());
>> > +                    m.addDataHandler(new WrappedDataHandler
>> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
>> >                 }
>> >             }
>> >             return m;
>> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
>> >         }
>> >         return createFrom(block.getXMLStreamReader(true), protocol);
>> >     }
>> > -
>> >  }
>> >
>> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
>> WrappedDataHandlerTest.java?rev=952971&view=auto
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
>> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
>> 2010
>> > @@ -0,0 +1,48 @@
>> > +package org.apache.axis2.jaxws.message.impl;
>> > +
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you under the Apache License, Version 2.0 (the
>> > + * "License"); you may not use this file except in compliance
>> > + * with the License. You may obtain a copy of the License at
>> > + *
>> > + * http://www.apache.org/licenses/LICENSE-2.0
>> > + *
>> > + * Unless required by applicable law or agreed to in writing,
>> > + * software distributed under the License is distributed on an
>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> > + * KIND, either express or implied. See the License for the
>> > + * specific language governing permissions and limitations
>> > + * under the License.
>> > + */
>> > +
>> > +import java.net.URL;
>> > +import javax.activation.DataHandler;
>> > +
>> > +import org.apache.axis2.util.WrappedDataHandler;
>> > +
>> > +import junit.framework.TestCase;
>> > +
>> > +/**
>> > + * Test the WrappedDataHandler class.
>> > + */
>> > +public class WrappedDataHandlerTest extends TestCase {
>> > +
>> > +   /**
>> > +    * Verify that the Wrapped DataHandler maintains the correct
>> content-type value
>> > +    * for an XML document attachment.
>> > +    */
>> > +   public void testWrappedDataHandler() throws Exception {
>> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
>> soapmessage.xml");
>> > +
>> > +      DataHandler dh = new DataHandler(xmlAttachment);
>> > +      assertTrue(dh.getContentType().equals("application/xml"));
>> > +
>> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
>> "text/xml");
>> > +      assertTrue(wrappedDH.getContentType() != null);
>> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
>> > +   }
>> > +}
>> >
>> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
>> rev=952971&view=auto
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java (added)
>> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
>> > @@ -0,0 +1,185 @@
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you under the Apache License, Version 2.0 (the
>> > + * "License"); you may not use this file except in compliance
>> > + * with the License. You may obtain a copy of the License at
>> > + *
>> > + * http://www.apache.org/licenses/LICENSE-2.0
>> > + *
>> > + * Unless required by applicable law or agreed to in writing,
>> > + * software distributed under the License is distributed on an
>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> > + * KIND, either express or implied. See the License for the
>> > + * specific language governing permissions and limitations
>> > + * under the License.
>> > + */
>> > +
>> > +package org.apache.axis2.util;
>> > +
>> > +import java.awt.datatransfer.DataFlavor;
>> > +import java.awt.datatransfer.UnsupportedFlavorException;
>> > +import java.io.IOException;
>> > +import java.io.InputStream;
>> > +import java.io.OutputStream;
>> > +
>> > +import javax.activation.CommandInfo;
>> > +import javax.activation.CommandMap;
>> > +import javax.activation.DataHandler;
>> > +import javax.activation.DataSource;
>> > +
>> > +import org.apache.commons.logging.Log;
>> > +import org.apache.commons.logging.LogFactory;
>> > +
>> > +/**
>> > + * This class acts as a wrapper for the javax.activation.DataHandler
>> > class.
>> > + * It is used to store away a (potentially) user-defined content-
>> type value along with
>> > + * the DataHandler instance.   We'll delegate all method calls
>> except for getContentType()
>> > + * to the delegate DataHandler instance passed into the ctor.
>> > + */
>> > +public class WrappedDataHandler extends DataHandler {
>> > +
>> > +    private static final Log log = LogFactory.getLog
>> (WrappedDataHandler.class);
>> > +
>> > +    DataHandler delegate;
>> > +    String contentType;
>> > +
>> > +    /**
>> > +     * Constructs a new instance of the WrappedDataHandler.
>> > +     * @param _delegate the real DataHandler instance being wrapped
>> > +     * @param _contentType the user-defined contentType
>> associated with the DataHandler instance
>> > +     */
>> > +    public WrappedDataHandler(DataHandler _delegate, String
>> > _contentType) {
>> > +        super((DataSource)null);
>> > +
>> > +        delegate = _delegate;
>> > +        contentType = _contentType;
>> > +
>> > +        if (log.isDebugEnabled()) {
>> > +            log.debug("Created instance of WrappedDatahandler: "
>> + this.toString() + ", contentType=" + contentType
>> > +                + "\nDelegate DataHandler: " + delegate.toString());
>> > +        }
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getAllCommands()
>> > +     */
>> > +    @Override
>> > +    public CommandInfo[] getAllCommands() {
>> > +        return delegate.getAllCommands();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getBean
>> (javax.activation.CommandInfo)
>> > +     */
>> > +    @Override
>> > +    public Object getBean(CommandInfo paramCommandInfo) {
>> > +        return delegate.getBean(paramCommandInfo);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
>> > +     */
>> > +    @Override
>> > +    public CommandInfo getCommand(String paramString) {
>> > +        return delegate.getCommand(paramString);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getContent()
>> > +     */
>> > +    @Override
>> > +    public Object getContent() throws IOException {
>> > +        return delegate.getContent();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getContentType()
>> > +     */
>> > +    @Override
>> > +    public String getContentType() {
>> > +        return (contentType != null ? contentType :
>> delegate.getContentType());
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getDataSource()
>> > +     */
>> > +    @Override
>> > +    public DataSource getDataSource() {
>> > +        return delegate.getDataSource();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getInputStream()
>> > +     */
>> > +    @Override
>> > +    public InputStream getInputStream() throws IOException {
>> > +        return delegate.getInputStream();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getName()
>> > +     */
>> > +    @Override
>> > +    public String getName() {
>> > +        return delegate.getName();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getOutputStream()
>> > +     */
>> > +    @Override
>> > +    public OutputStream getOutputStream() throws IOException {
>> > +        return delegate.getOutputStream();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getPreferredCommands()
>> > +     */
>> > +    @Override
>> > +    public CommandInfo[] getPreferredCommands() {
>> > +        return delegate.getPreferredCommands();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getTransferData
>> (java.awt.datatransfer.DataFlavor)
>> > +     */
>> > +    @Override
>> > +    public Object getTransferData(DataFlavor paramDataFlavor)
>> throws UnsupportedFlavorException, IOException {
>> > +        return delegate.getTransferData(paramDataFlavor);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
>> > +     */
>> > +    @Override
>> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
>> > +        return delegate.getTransferDataFlavors();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
>> (java.awt.datatransfer.DataFlavor)
>> > +     */
>> > +    @Override
>> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
>> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#setCommandMap
>> (javax.activation.CommandMap)
>> > +     */
>> > +    @Override
>> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
>> > {
>> > +        delegate.setCommandMap(paramCommandMap);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
>> > +     */
>> > +    @Override
>> > +    public void writeTo(OutputStream paramOutputStream) throws
>> IOException {
>> > +        delegate.writeTo(paramOutputStream);
>> > +    }
>> > +}
>> >
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> For additional commands, e-mail: java-dev-help@axis.apache.org
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by Andreas Veithen <an...@gmail.com>.
Rich,

I was going to do an attempt to fix the issue we have with Hudson when
several Axis2 related jobs run in parallel. For this I need a stable
build. Therefore, I'm going to temporarily revert the change. Remember
that you can easily reapply it using "svn -c 952971 . ." later.

Andreas

On Wed, Jun 9, 2010 at 18:07, R J Scheuerle Jr <sc...@us.ibm.com> wrote:
> Thanks Andreas,
>
> Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
> the null DataSource issue.
>
> Rich Scheuerle
> Senior Programmer, AIM SWG
> IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
> Development, Customer Solutions, and Open Source
> Apache Axis2 (scheu@apache.org)
> 512-286-8420 (IBM TL 363-8420)
>
> Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16 AM:
>
>> Andreas Veithen <an...@gmail.com>
>> 06/09/2010 10:12 AM
>>
>> Please respond to
>> java-dev@axis.apache.org
>>
>> To
>>
>> java-dev@axis.apache.org
>>
>> cc
>>
>> Subject
>>
>> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
>> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
>> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>
>>
>> Rich,
>>
>> I think this change causes the Hudson build to fail, because passing
>> null as DataSource argument to DataHandler is not allowed. Probably
>> this depends on the particular JAF implementation that is used. Can
>> you make sure that the DataHandler wrapper works with both the Sun and
>> the Geronimo implementation?
>>
>> Andreas
>>
>> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
>> > Author: scheu
>> > Date: Wed Jun  9 12:02:06 2010
>> > New Revision: 952971
>> >
>> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
>> > Log:
>> > AXIS2-4733
>> > Contributor: Phil Adams
>> > Contributed WrappedDataHandler to allow Axis2 to set the
>> appropriate content-type on a DataHandler.
>> > Also added a validation test.
>> >
>> > Added:
>> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
>> jaxws/message/impl/WrappedDataHandlerTest.java
>> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
>> util/WrappedDataHandler.java
>> > Modified:
>> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java
>> >
>> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
>> axis2/jaxws/message/impl/MessageFactoryImpl.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
>> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java (original)
>> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
>> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
>> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
>> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
>> >  import org.apache.axis2.transport.http.HTTPConstants;
>> > +import org.apache.axis2.util.WrappedDataHandler;
>> >
>> >  import javax.xml.soap.AttachmentPart;
>> >  import javax.xml.soap.MimeHeader;
>> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
>> >                 m.setDoingSWA(true);
>> >                 while (it.hasNext()) {
>> >                     AttachmentPart ap = (AttachmentPart)it.next();
>> > -                    m.addDataHandler(ap.getDataHandler(),
>> ap.getContentId());
>> > +                    m.addDataHandler(new WrappedDataHandler
>> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
>> >                 }
>> >             }
>> >             return m;
>> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
>> >         }
>> >         return createFrom(block.getXMLStreamReader(true), protocol);
>> >     }
>> > -
>> >  }
>> >
>> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
>> WrappedDataHandlerTest.java?rev=952971&view=auto
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
>> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
>> 2010
>> > @@ -0,0 +1,48 @@
>> > +package org.apache.axis2.jaxws.message.impl;
>> > +
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you under the Apache License, Version 2.0 (the
>> > + * "License"); you may not use this file except in compliance
>> > + * with the License. You may obtain a copy of the License at
>> > + *
>> > + * http://www.apache.org/licenses/LICENSE-2.0
>> > + *
>> > + * Unless required by applicable law or agreed to in writing,
>> > + * software distributed under the License is distributed on an
>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> > + * KIND, either express or implied. See the License for the
>> > + * specific language governing permissions and limitations
>> > + * under the License.
>> > + */
>> > +
>> > +import java.net.URL;
>> > +import javax.activation.DataHandler;
>> > +
>> > +import org.apache.axis2.util.WrappedDataHandler;
>> > +
>> > +import junit.framework.TestCase;
>> > +
>> > +/**
>> > + * Test the WrappedDataHandler class.
>> > + */
>> > +public class WrappedDataHandlerTest extends TestCase {
>> > +
>> > +   /**
>> > +    * Verify that the Wrapped DataHandler maintains the correct
>> content-type value
>> > +    * for an XML document attachment.
>> > +    */
>> > +   public void testWrappedDataHandler() throws Exception {
>> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
>> soapmessage.xml");
>> > +
>> > +      DataHandler dh = new DataHandler(xmlAttachment);
>> > +      assertTrue(dh.getContentType().equals("application/xml"));
>> > +
>> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
>> "text/xml");
>> > +      assertTrue(wrappedDH.getContentType() != null);
>> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
>> > +   }
>> > +}
>> >
>> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
>> rev=952971&view=auto
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java (added)
>> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
>> > @@ -0,0 +1,185 @@
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you under the Apache License, Version 2.0 (the
>> > + * "License"); you may not use this file except in compliance
>> > + * with the License. You may obtain a copy of the License at
>> > + *
>> > + * http://www.apache.org/licenses/LICENSE-2.0
>> > + *
>> > + * Unless required by applicable law or agreed to in writing,
>> > + * software distributed under the License is distributed on an
>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> > + * KIND, either express or implied. See the License for the
>> > + * specific language governing permissions and limitations
>> > + * under the License.
>> > + */
>> > +
>> > +package org.apache.axis2.util;
>> > +
>> > +import java.awt.datatransfer.DataFlavor;
>> > +import java.awt.datatransfer.UnsupportedFlavorException;
>> > +import java.io.IOException;
>> > +import java.io.InputStream;
>> > +import java.io.OutputStream;
>> > +
>> > +import javax.activation.CommandInfo;
>> > +import javax.activation.CommandMap;
>> > +import javax.activation.DataHandler;
>> > +import javax.activation.DataSource;
>> > +
>> > +import org.apache.commons.logging.Log;
>> > +import org.apache.commons.logging.LogFactory;
>> > +
>> > +/**
>> > + * This class acts as a wrapper for the javax.activation.DataHandler
>> > class.
>> > + * It is used to store away a (potentially) user-defined content-
>> type value along with
>> > + * the DataHandler instance.   We'll delegate all method calls
>> except for getContentType()
>> > + * to the delegate DataHandler instance passed into the ctor.
>> > + */
>> > +public class WrappedDataHandler extends DataHandler {
>> > +
>> > +    private static final Log log = LogFactory.getLog
>> (WrappedDataHandler.class);
>> > +
>> > +    DataHandler delegate;
>> > +    String contentType;
>> > +
>> > +    /**
>> > +     * Constructs a new instance of the WrappedDataHandler.
>> > +     * @param _delegate the real DataHandler instance being wrapped
>> > +     * @param _contentType the user-defined contentType
>> associated with the DataHandler instance
>> > +     */
>> > +    public WrappedDataHandler(DataHandler _delegate, String
>> > _contentType) {
>> > +        super((DataSource)null);
>> > +
>> > +        delegate = _delegate;
>> > +        contentType = _contentType;
>> > +
>> > +        if (log.isDebugEnabled()) {
>> > +            log.debug("Created instance of WrappedDatahandler: "
>> + this.toString() + ", contentType=" + contentType
>> > +                + "\nDelegate DataHandler: " + delegate.toString());
>> > +        }
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getAllCommands()
>> > +     */
>> > +    @Override
>> > +    public CommandInfo[] getAllCommands() {
>> > +        return delegate.getAllCommands();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getBean
>> (javax.activation.CommandInfo)
>> > +     */
>> > +    @Override
>> > +    public Object getBean(CommandInfo paramCommandInfo) {
>> > +        return delegate.getBean(paramCommandInfo);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
>> > +     */
>> > +    @Override
>> > +    public CommandInfo getCommand(String paramString) {
>> > +        return delegate.getCommand(paramString);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getContent()
>> > +     */
>> > +    @Override
>> > +    public Object getContent() throws IOException {
>> > +        return delegate.getContent();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getContentType()
>> > +     */
>> > +    @Override
>> > +    public String getContentType() {
>> > +        return (contentType != null ? contentType :
>> delegate.getContentType());
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getDataSource()
>> > +     */
>> > +    @Override
>> > +    public DataSource getDataSource() {
>> > +        return delegate.getDataSource();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getInputStream()
>> > +     */
>> > +    @Override
>> > +    public InputStream getInputStream() throws IOException {
>> > +        return delegate.getInputStream();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getName()
>> > +     */
>> > +    @Override
>> > +    public String getName() {
>> > +        return delegate.getName();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getOutputStream()
>> > +     */
>> > +    @Override
>> > +    public OutputStream getOutputStream() throws IOException {
>> > +        return delegate.getOutputStream();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getPreferredCommands()
>> > +     */
>> > +    @Override
>> > +    public CommandInfo[] getPreferredCommands() {
>> > +        return delegate.getPreferredCommands();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getTransferData
>> (java.awt.datatransfer.DataFlavor)
>> > +     */
>> > +    @Override
>> > +    public Object getTransferData(DataFlavor paramDataFlavor)
>> throws UnsupportedFlavorException, IOException {
>> > +        return delegate.getTransferData(paramDataFlavor);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
>> > +     */
>> > +    @Override
>> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
>> > +        return delegate.getTransferDataFlavors();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
>> (java.awt.datatransfer.DataFlavor)
>> > +     */
>> > +    @Override
>> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
>> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#setCommandMap
>> (javax.activation.CommandMap)
>> > +     */
>> > +    @Override
>> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
>> > {
>> > +        delegate.setCommandMap(paramCommandMap);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
>> > +     */
>> > +    @Override
>> > +    public void writeTo(OutputStream paramOutputStream) throws
>> IOException {
>> > +        delegate.writeTo(paramOutputStream);
>> > +    }
>> > +}
>> >
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> For additional commands, e-mail: java-dev-help@axis.apache.org
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by Andreas Veithen <an...@gmail.com>.
Rich,

I was going to do an attempt to fix the issue we have with Hudson when
several Axis2 related jobs run in parallel. For this I need a stable
build. Therefore, I'm going to temporarily revert the change. Remember
that you can easily reapply it using "svn -c 952971 . ." later.

Andreas

On Wed, Jun 9, 2010 at 18:07, R J Scheuerle Jr <sc...@us.ibm.com> wrote:
> Thanks Andreas,
>
> Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
> the null DataSource issue.
>
> Rich Scheuerle
> Senior Programmer, AIM SWG
> IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
> Development, Customer Solutions, and Open Source
> Apache Axis2 (scheu@apache.org)
> 512-286-8420 (IBM TL 363-8420)
>
> Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16 AM:
>
>> Andreas Veithen <an...@gmail.com>
>> 06/09/2010 10:12 AM
>>
>> Please respond to
>> java-dev@axis.apache.org
>>
>> To
>>
>> java-dev@axis.apache.org
>>
>> cc
>>
>> Subject
>>
>> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
>> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
>> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>
>>
>> Rich,
>>
>> I think this change causes the Hudson build to fail, because passing
>> null as DataSource argument to DataHandler is not allowed. Probably
>> this depends on the particular JAF implementation that is used. Can
>> you make sure that the DataHandler wrapper works with both the Sun and
>> the Geronimo implementation?
>>
>> Andreas
>>
>> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
>> > Author: scheu
>> > Date: Wed Jun  9 12:02:06 2010
>> > New Revision: 952971
>> >
>> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
>> > Log:
>> > AXIS2-4733
>> > Contributor: Phil Adams
>> > Contributed WrappedDataHandler to allow Axis2 to set the
>> appropriate content-type on a DataHandler.
>> > Also added a validation test.
>> >
>> > Added:
>> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
>> jaxws/message/impl/WrappedDataHandlerTest.java
>> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
>> util/WrappedDataHandler.java
>> > Modified:
>> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java
>> >
>> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
>> axis2/jaxws/message/impl/MessageFactoryImpl.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
>> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java (original)
>> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
>> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
>> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
>> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
>> >  import org.apache.axis2.transport.http.HTTPConstants;
>> > +import org.apache.axis2.util.WrappedDataHandler;
>> >
>> >  import javax.xml.soap.AttachmentPart;
>> >  import javax.xml.soap.MimeHeader;
>> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
>> >                 m.setDoingSWA(true);
>> >                 while (it.hasNext()) {
>> >                     AttachmentPart ap = (AttachmentPart)it.next();
>> > -                    m.addDataHandler(ap.getDataHandler(),
>> ap.getContentId());
>> > +                    m.addDataHandler(new WrappedDataHandler
>> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
>> >                 }
>> >             }
>> >             return m;
>> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
>> >         }
>> >         return createFrom(block.getXMLStreamReader(true), protocol);
>> >     }
>> > -
>> >  }
>> >
>> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
>> WrappedDataHandlerTest.java?rev=952971&view=auto
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
>> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
>> 2010
>> > @@ -0,0 +1,48 @@
>> > +package org.apache.axis2.jaxws.message.impl;
>> > +
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you under the Apache License, Version 2.0 (the
>> > + * "License"); you may not use this file except in compliance
>> > + * with the License. You may obtain a copy of the License at
>> > + *
>> > + * http://www.apache.org/licenses/LICENSE-2.0
>> > + *
>> > + * Unless required by applicable law or agreed to in writing,
>> > + * software distributed under the License is distributed on an
>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> > + * KIND, either express or implied. See the License for the
>> > + * specific language governing permissions and limitations
>> > + * under the License.
>> > + */
>> > +
>> > +import java.net.URL;
>> > +import javax.activation.DataHandler;
>> > +
>> > +import org.apache.axis2.util.WrappedDataHandler;
>> > +
>> > +import junit.framework.TestCase;
>> > +
>> > +/**
>> > + * Test the WrappedDataHandler class.
>> > + */
>> > +public class WrappedDataHandlerTest extends TestCase {
>> > +
>> > +   /**
>> > +    * Verify that the Wrapped DataHandler maintains the correct
>> content-type value
>> > +    * for an XML document attachment.
>> > +    */
>> > +   public void testWrappedDataHandler() throws Exception {
>> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
>> soapmessage.xml");
>> > +
>> > +      DataHandler dh = new DataHandler(xmlAttachment);
>> > +      assertTrue(dh.getContentType().equals("application/xml"));
>> > +
>> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
>> "text/xml");
>> > +      assertTrue(wrappedDH.getContentType() != null);
>> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
>> > +   }
>> > +}
>> >
>> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
>> rev=952971&view=auto
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java (added)
>> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
>> > @@ -0,0 +1,185 @@
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you under the Apache License, Version 2.0 (the
>> > + * "License"); you may not use this file except in compliance
>> > + * with the License. You may obtain a copy of the License at
>> > + *
>> > + * http://www.apache.org/licenses/LICENSE-2.0
>> > + *
>> > + * Unless required by applicable law or agreed to in writing,
>> > + * software distributed under the License is distributed on an
>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> > + * KIND, either express or implied. See the License for the
>> > + * specific language governing permissions and limitations
>> > + * under the License.
>> > + */
>> > +
>> > +package org.apache.axis2.util;
>> > +
>> > +import java.awt.datatransfer.DataFlavor;
>> > +import java.awt.datatransfer.UnsupportedFlavorException;
>> > +import java.io.IOException;
>> > +import java.io.InputStream;
>> > +import java.io.OutputStream;
>> > +
>> > +import javax.activation.CommandInfo;
>> > +import javax.activation.CommandMap;
>> > +import javax.activation.DataHandler;
>> > +import javax.activation.DataSource;
>> > +
>> > +import org.apache.commons.logging.Log;
>> > +import org.apache.commons.logging.LogFactory;
>> > +
>> > +/**
>> > + * This class acts as a wrapper for the javax.activation.DataHandler
>> > class.
>> > + * It is used to store away a (potentially) user-defined content-
>> type value along with
>> > + * the DataHandler instance.   We'll delegate all method calls
>> except for getContentType()
>> > + * to the delegate DataHandler instance passed into the ctor.
>> > + */
>> > +public class WrappedDataHandler extends DataHandler {
>> > +
>> > +    private static final Log log = LogFactory.getLog
>> (WrappedDataHandler.class);
>> > +
>> > +    DataHandler delegate;
>> > +    String contentType;
>> > +
>> > +    /**
>> > +     * Constructs a new instance of the WrappedDataHandler.
>> > +     * @param _delegate the real DataHandler instance being wrapped
>> > +     * @param _contentType the user-defined contentType
>> associated with the DataHandler instance
>> > +     */
>> > +    public WrappedDataHandler(DataHandler _delegate, String
>> > _contentType) {
>> > +        super((DataSource)null);
>> > +
>> > +        delegate = _delegate;
>> > +        contentType = _contentType;
>> > +
>> > +        if (log.isDebugEnabled()) {
>> > +            log.debug("Created instance of WrappedDatahandler: "
>> + this.toString() + ", contentType=" + contentType
>> > +                + "\nDelegate DataHandler: " + delegate.toString());
>> > +        }
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getAllCommands()
>> > +     */
>> > +    @Override
>> > +    public CommandInfo[] getAllCommands() {
>> > +        return delegate.getAllCommands();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getBean
>> (javax.activation.CommandInfo)
>> > +     */
>> > +    @Override
>> > +    public Object getBean(CommandInfo paramCommandInfo) {
>> > +        return delegate.getBean(paramCommandInfo);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
>> > +     */
>> > +    @Override
>> > +    public CommandInfo getCommand(String paramString) {
>> > +        return delegate.getCommand(paramString);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getContent()
>> > +     */
>> > +    @Override
>> > +    public Object getContent() throws IOException {
>> > +        return delegate.getContent();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getContentType()
>> > +     */
>> > +    @Override
>> > +    public String getContentType() {
>> > +        return (contentType != null ? contentType :
>> delegate.getContentType());
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getDataSource()
>> > +     */
>> > +    @Override
>> > +    public DataSource getDataSource() {
>> > +        return delegate.getDataSource();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getInputStream()
>> > +     */
>> > +    @Override
>> > +    public InputStream getInputStream() throws IOException {
>> > +        return delegate.getInputStream();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getName()
>> > +     */
>> > +    @Override
>> > +    public String getName() {
>> > +        return delegate.getName();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getOutputStream()
>> > +     */
>> > +    @Override
>> > +    public OutputStream getOutputStream() throws IOException {
>> > +        return delegate.getOutputStream();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getPreferredCommands()
>> > +     */
>> > +    @Override
>> > +    public CommandInfo[] getPreferredCommands() {
>> > +        return delegate.getPreferredCommands();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getTransferData
>> (java.awt.datatransfer.DataFlavor)
>> > +     */
>> > +    @Override
>> > +    public Object getTransferData(DataFlavor paramDataFlavor)
>> throws UnsupportedFlavorException, IOException {
>> > +        return delegate.getTransferData(paramDataFlavor);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
>> > +     */
>> > +    @Override
>> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
>> > +        return delegate.getTransferDataFlavors();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
>> (java.awt.datatransfer.DataFlavor)
>> > +     */
>> > +    @Override
>> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
>> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#setCommandMap
>> (javax.activation.CommandMap)
>> > +     */
>> > +    @Override
>> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
>> > {
>> > +        delegate.setCommandMap(paramCommandMap);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
>> > +     */
>> > +    @Override
>> > +    public void writeTo(OutputStream paramOutputStream) throws
>> IOException {
>> > +        delegate.writeTo(paramOutputStream);
>> > +    }
>> > +}
>> >
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> For additional commands, e-mail: java-dev-help@axis.apache.org
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by Andreas Veithen <an...@gmail.com>.
Rich,

I was going to do an attempt to fix the issue we have with Hudson when
several Axis2 related jobs run in parallel. For this I need a stable
build. Therefore, I'm going to temporarily revert the change. Remember
that you can easily reapply it using "svn -c 952971 . ." later.

Andreas

On Wed, Jun 9, 2010 at 18:07, R J Scheuerle Jr <sc...@us.ibm.com> wrote:
> Thanks Andreas,
>
> Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
> the null DataSource issue.
>
> Rich Scheuerle
> Senior Programmer, AIM SWG
> IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
> Development, Customer Solutions, and Open Source
> Apache Axis2 (scheu@apache.org)
> 512-286-8420 (IBM TL 363-8420)
>
> Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16 AM:
>
>> Andreas Veithen <an...@gmail.com>
>> 06/09/2010 10:12 AM
>>
>> Please respond to
>> java-dev@axis.apache.org
>>
>> To
>>
>> java-dev@axis.apache.org
>>
>> cc
>>
>> Subject
>>
>> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
>> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
>> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>
>>
>> Rich,
>>
>> I think this change causes the Hudson build to fail, because passing
>> null as DataSource argument to DataHandler is not allowed. Probably
>> this depends on the particular JAF implementation that is used. Can
>> you make sure that the DataHandler wrapper works with both the Sun and
>> the Geronimo implementation?
>>
>> Andreas
>>
>> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
>> > Author: scheu
>> > Date: Wed Jun  9 12:02:06 2010
>> > New Revision: 952971
>> >
>> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
>> > Log:
>> > AXIS2-4733
>> > Contributor: Phil Adams
>> > Contributed WrappedDataHandler to allow Axis2 to set the
>> appropriate content-type on a DataHandler.
>> > Also added a validation test.
>> >
>> > Added:
>> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
>> jaxws/message/impl/WrappedDataHandlerTest.java
>> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
>> util/WrappedDataHandler.java
>> > Modified:
>> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java
>> >
>> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
>> axis2/jaxws/message/impl/MessageFactoryImpl.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
>> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java (original)
>> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
>> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
>> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
>> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
>> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
>> >  import org.apache.axis2.transport.http.HTTPConstants;
>> > +import org.apache.axis2.util.WrappedDataHandler;
>> >
>> >  import javax.xml.soap.AttachmentPart;
>> >  import javax.xml.soap.MimeHeader;
>> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
>> >                 m.setDoingSWA(true);
>> >                 while (it.hasNext()) {
>> >                     AttachmentPart ap = (AttachmentPart)it.next();
>> > -                    m.addDataHandler(ap.getDataHandler(),
>> ap.getContentId());
>> > +                    m.addDataHandler(new WrappedDataHandler
>> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
>> >                 }
>> >             }
>> >             return m;
>> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
>> >         }
>> >         return createFrom(block.getXMLStreamReader(true), protocol);
>> >     }
>> > -
>> >  }
>> >
>> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
>> WrappedDataHandlerTest.java?rev=952971&view=auto
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
>> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
>> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
>> 2010
>> > @@ -0,0 +1,48 @@
>> > +package org.apache.axis2.jaxws.message.impl;
>> > +
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you under the Apache License, Version 2.0 (the
>> > + * "License"); you may not use this file except in compliance
>> > + * with the License. You may obtain a copy of the License at
>> > + *
>> > + * http://www.apache.org/licenses/LICENSE-2.0
>> > + *
>> > + * Unless required by applicable law or agreed to in writing,
>> > + * software distributed under the License is distributed on an
>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> > + * KIND, either express or implied. See the License for the
>> > + * specific language governing permissions and limitations
>> > + * under the License.
>> > + */
>> > +
>> > +import java.net.URL;
>> > +import javax.activation.DataHandler;
>> > +
>> > +import org.apache.axis2.util.WrappedDataHandler;
>> > +
>> > +import junit.framework.TestCase;
>> > +
>> > +/**
>> > + * Test the WrappedDataHandler class.
>> > + */
>> > +public class WrappedDataHandlerTest extends TestCase {
>> > +
>> > +   /**
>> > +    * Verify that the Wrapped DataHandler maintains the correct
>> content-type value
>> > +    * for an XML document attachment.
>> > +    */
>> > +   public void testWrappedDataHandler() throws Exception {
>> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
>> soapmessage.xml");
>> > +
>> > +      DataHandler dh = new DataHandler(xmlAttachment);
>> > +      assertTrue(dh.getContentType().equals("application/xml"));
>> > +
>> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
>> "text/xml");
>> > +      assertTrue(wrappedDH.getContentType() != null);
>> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
>> > +   }
>> > +}
>> >
>> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java
>> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
>> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
>> rev=952971&view=auto
>> >
>>
>> ==============================================================================
>> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java (added)
>> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
>> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
>> > @@ -0,0 +1,185 @@
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you under the Apache License, Version 2.0 (the
>> > + * "License"); you may not use this file except in compliance
>> > + * with the License. You may obtain a copy of the License at
>> > + *
>> > + * http://www.apache.org/licenses/LICENSE-2.0
>> > + *
>> > + * Unless required by applicable law or agreed to in writing,
>> > + * software distributed under the License is distributed on an
>> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> > + * KIND, either express or implied. See the License for the
>> > + * specific language governing permissions and limitations
>> > + * under the License.
>> > + */
>> > +
>> > +package org.apache.axis2.util;
>> > +
>> > +import java.awt.datatransfer.DataFlavor;
>> > +import java.awt.datatransfer.UnsupportedFlavorException;
>> > +import java.io.IOException;
>> > +import java.io.InputStream;
>> > +import java.io.OutputStream;
>> > +
>> > +import javax.activation.CommandInfo;
>> > +import javax.activation.CommandMap;
>> > +import javax.activation.DataHandler;
>> > +import javax.activation.DataSource;
>> > +
>> > +import org.apache.commons.logging.Log;
>> > +import org.apache.commons.logging.LogFactory;
>> > +
>> > +/**
>> > + * This class acts as a wrapper for the javax.activation.DataHandler
>> > class.
>> > + * It is used to store away a (potentially) user-defined content-
>> type value along with
>> > + * the DataHandler instance.   We'll delegate all method calls
>> except for getContentType()
>> > + * to the delegate DataHandler instance passed into the ctor.
>> > + */
>> > +public class WrappedDataHandler extends DataHandler {
>> > +
>> > +    private static final Log log = LogFactory.getLog
>> (WrappedDataHandler.class);
>> > +
>> > +    DataHandler delegate;
>> > +    String contentType;
>> > +
>> > +    /**
>> > +     * Constructs a new instance of the WrappedDataHandler.
>> > +     * @param _delegate the real DataHandler instance being wrapped
>> > +     * @param _contentType the user-defined contentType
>> associated with the DataHandler instance
>> > +     */
>> > +    public WrappedDataHandler(DataHandler _delegate, String
>> > _contentType) {
>> > +        super((DataSource)null);
>> > +
>> > +        delegate = _delegate;
>> > +        contentType = _contentType;
>> > +
>> > +        if (log.isDebugEnabled()) {
>> > +            log.debug("Created instance of WrappedDatahandler: "
>> + this.toString() + ", contentType=" + contentType
>> > +                + "\nDelegate DataHandler: " + delegate.toString());
>> > +        }
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getAllCommands()
>> > +     */
>> > +    @Override
>> > +    public CommandInfo[] getAllCommands() {
>> > +        return delegate.getAllCommands();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getBean
>> (javax.activation.CommandInfo)
>> > +     */
>> > +    @Override
>> > +    public Object getBean(CommandInfo paramCommandInfo) {
>> > +        return delegate.getBean(paramCommandInfo);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
>> > +     */
>> > +    @Override
>> > +    public CommandInfo getCommand(String paramString) {
>> > +        return delegate.getCommand(paramString);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getContent()
>> > +     */
>> > +    @Override
>> > +    public Object getContent() throws IOException {
>> > +        return delegate.getContent();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getContentType()
>> > +     */
>> > +    @Override
>> > +    public String getContentType() {
>> > +        return (contentType != null ? contentType :
>> delegate.getContentType());
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getDataSource()
>> > +     */
>> > +    @Override
>> > +    public DataSource getDataSource() {
>> > +        return delegate.getDataSource();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getInputStream()
>> > +     */
>> > +    @Override
>> > +    public InputStream getInputStream() throws IOException {
>> > +        return delegate.getInputStream();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getName()
>> > +     */
>> > +    @Override
>> > +    public String getName() {
>> > +        return delegate.getName();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getOutputStream()
>> > +     */
>> > +    @Override
>> > +    public OutputStream getOutputStream() throws IOException {
>> > +        return delegate.getOutputStream();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getPreferredCommands()
>> > +     */
>> > +    @Override
>> > +    public CommandInfo[] getPreferredCommands() {
>> > +        return delegate.getPreferredCommands();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getTransferData
>> (java.awt.datatransfer.DataFlavor)
>> > +     */
>> > +    @Override
>> > +    public Object getTransferData(DataFlavor paramDataFlavor)
>> throws UnsupportedFlavorException, IOException {
>> > +        return delegate.getTransferData(paramDataFlavor);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
>> > +     */
>> > +    @Override
>> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
>> > +        return delegate.getTransferDataFlavors();
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
>> (java.awt.datatransfer.DataFlavor)
>> > +     */
>> > +    @Override
>> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
>> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#setCommandMap
>> (javax.activation.CommandMap)
>> > +     */
>> > +    @Override
>> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
>> > {
>> > +        delegate.setCommandMap(paramCommandMap);
>> > +    }
>> > +
>> > +    /* (non-Javadoc)
>> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
>> > +     */
>> > +    @Override
>> > +    public void writeTo(OutputStream paramOutputStream) throws
>> IOException {
>> > +        delegate.writeTo(paramOutputStream);
>> > +    }
>> > +}
>> >
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
>> For additional commands, e-mail: java-dev-help@axis.apache.org
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by R J Scheuerle Jr <sc...@us.ibm.com>.
Thanks Andreas,

Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
the null DataSource issue.

Rich Scheuerle
Senior Programmer, AIM SWG
IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
Development, Customer Solutions, and Open Source
Apache Axis2 (scheu@apache.org)
512-286-8420  (IBM TL 363-8420)

Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16
AM:

> Andreas Veithen <an...@gmail.com>
> 06/09/2010 10:12 AM
>
> Please respond to
> java-dev@axis.apache.org
>
> To
>
> java-dev@axis.apache.org
>
> cc
>
> Subject
>
> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>
> Rich,
>
> I think this change causes the Hudson build to fail, because passing
> null as DataSource argument to DataHandler is not allowed. Probably
> this depends on the particular JAF implementation that is used. Can
> you make sure that the DataHandler wrapper works with both the Sun and
> the Geronimo implementation?
>
> Andreas
>
> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
> > Author: scheu
> > Date: Wed Jun  9 12:02:06 2010
> > New Revision: 952971
> >
> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
> > Log:
> > AXIS2-4733
> > Contributor: Phil Adams
> > Contributed WrappedDataHandler to allow Axis2 to set the
> appropriate content-type on a DataHandler.
> > Also added a validation test.
> >
> > Added:
> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
> jaxws/message/impl/WrappedDataHandlerTest.java
> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
> util/WrappedDataHandler.java
> > Modified:
> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java
> >
> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
> axis2/jaxws/message/impl/MessageFactoryImpl.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java (original)
> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
> >  import org.apache.axis2.transport.http.HTTPConstants;
> > +import org.apache.axis2.util.WrappedDataHandler;
> >
> >  import javax.xml.soap.AttachmentPart;
> >  import javax.xml.soap.MimeHeader;
> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
> >                 m.setDoingSWA(true);
> >                 while (it.hasNext()) {
> >                     AttachmentPart ap = (AttachmentPart)it.next();
> > -                    m.addDataHandler(ap.getDataHandler(),
> ap.getContentId());
> > +                    m.addDataHandler(new WrappedDataHandler
> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
> >                 }
> >             }
> >             return m;
> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
> >         }
> >         return createFrom(block.getXMLStreamReader(true), protocol);
> >     }
> > -
> >  }
> >
> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
> WrappedDataHandlerTest.java?rev=952971&view=auto
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
2010
> > @@ -0,0 +1,48 @@
> > +package org.apache.axis2.jaxws.message.impl;
> > +
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +import java.net.URL;
> > +import javax.activation.DataHandler;
> > +
> > +import org.apache.axis2.util.WrappedDataHandler;
> > +
> > +import junit.framework.TestCase;
> > +
> > +/**
> > + * Test the WrappedDataHandler class.
> > + */
> > +public class WrappedDataHandlerTest extends TestCase {
> > +
> > +   /**
> > +    * Verify that the Wrapped DataHandler maintains the correct
> content-type value
> > +    * for an XML document attachment.
> > +    */
> > +   public void testWrappedDataHandler() throws Exception {
> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
> soapmessage.xml");
> > +
> > +      DataHandler dh = new DataHandler(xmlAttachment);
> > +      assertTrue(dh.getContentType().equals("application/xml"));
> > +
> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
> "text/xml");
> > +      assertTrue(wrappedDH.getContentType() != null);
> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
> > +   }
> > +}
> >
> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
> rev=952971&view=auto
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java (added)
> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
> > @@ -0,0 +1,185 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +package org.apache.axis2.util;
> > +
> > +import java.awt.datatransfer.DataFlavor;
> > +import java.awt.datatransfer.UnsupportedFlavorException;
> > +import java.io.IOException;
> > +import java.io.InputStream;
> > +import java.io.OutputStream;
> > +
> > +import javax.activation.CommandInfo;
> > +import javax.activation.CommandMap;
> > +import javax.activation.DataHandler;
> > +import javax.activation.DataSource;
> > +
> > +import org.apache.commons.logging.Log;
> > +import org.apache.commons.logging.LogFactory;
> > +
> > +/**
> > + * This class acts as a wrapper for the javax.activation.DataHandler
class.
> > + * It is used to store away a (potentially) user-defined content-
> type value along with
> > + * the DataHandler instance.   We'll delegate all method calls
> except for getContentType()
> > + * to the delegate DataHandler instance passed into the ctor.
> > + */
> > +public class WrappedDataHandler extends DataHandler {
> > +
> > +    private static final Log log = LogFactory.getLog
> (WrappedDataHandler.class);
> > +
> > +    DataHandler delegate;
> > +    String contentType;
> > +
> > +    /**
> > +     * Constructs a new instance of the WrappedDataHandler.
> > +     * @param _delegate the real DataHandler instance being wrapped
> > +     * @param _contentType the user-defined contentType
> associated with the DataHandler instance
> > +     */
> > +    public WrappedDataHandler(DataHandler _delegate, String
_contentType) {
> > +        super((DataSource)null);
> > +
> > +        delegate = _delegate;
> > +        contentType = _contentType;
> > +
> > +        if (log.isDebugEnabled()) {
> > +            log.debug("Created instance of WrappedDatahandler: "
> + this.toString() + ", contentType=" + contentType
> > +                + "\nDelegate DataHandler: " + delegate.toString());
> > +        }
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getAllCommands()
> > +     */
> > +    @Override
> > +    public CommandInfo[] getAllCommands() {
> > +        return delegate.getAllCommands();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getBean
> (javax.activation.CommandInfo)
> > +     */
> > +    @Override
> > +    public Object getBean(CommandInfo paramCommandInfo) {
> > +        return delegate.getBean(paramCommandInfo);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
> > +     */
> > +    @Override
> > +    public CommandInfo getCommand(String paramString) {
> > +        return delegate.getCommand(paramString);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getContent()
> > +     */
> > +    @Override
> > +    public Object getContent() throws IOException {
> > +        return delegate.getContent();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getContentType()
> > +     */
> > +    @Override
> > +    public String getContentType() {
> > +        return (contentType != null ? contentType :
> delegate.getContentType());
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getDataSource()
> > +     */
> > +    @Override
> > +    public DataSource getDataSource() {
> > +        return delegate.getDataSource();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getInputStream()
> > +     */
> > +    @Override
> > +    public InputStream getInputStream() throws IOException {
> > +        return delegate.getInputStream();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getName()
> > +     */
> > +    @Override
> > +    public String getName() {
> > +        return delegate.getName();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getOutputStream()
> > +     */
> > +    @Override
> > +    public OutputStream getOutputStream() throws IOException {
> > +        return delegate.getOutputStream();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getPreferredCommands()
> > +     */
> > +    @Override
> > +    public CommandInfo[] getPreferredCommands() {
> > +        return delegate.getPreferredCommands();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getTransferData
> (java.awt.datatransfer.DataFlavor)
> > +     */
> > +    @Override
> > +    public Object getTransferData(DataFlavor paramDataFlavor)
> throws UnsupportedFlavorException, IOException {
> > +        return delegate.getTransferData(paramDataFlavor);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
> > +     */
> > +    @Override
> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
> > +        return delegate.getTransferDataFlavors();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
> (java.awt.datatransfer.DataFlavor)
> > +     */
> > +    @Override
> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#setCommandMap
> (javax.activation.CommandMap)
> > +     */
> > +    @Override
> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
{
> > +        delegate.setCommandMap(paramCommandMap);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
> > +     */
> > +    @Override
> > +    public void writeTo(OutputStream paramOutputStream) throws
> IOException {
> > +        delegate.writeTo(paramOutputStream);
> > +    }
> > +}
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-dev-help@axis.apache.org
>

Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by R J Scheuerle Jr <sc...@us.ibm.com>.
Thanks Andreas,

Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
the null DataSource issue.

Rich Scheuerle
Senior Programmer, AIM SWG
IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
Development, Customer Solutions, and Open Source
Apache Axis2 (scheu@apache.org)
512-286-8420  (IBM TL 363-8420)

Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16
AM:

> Andreas Veithen <an...@gmail.com>
> 06/09/2010 10:12 AM
>
> Please respond to
> java-dev@axis.apache.org
>
> To
>
> java-dev@axis.apache.org
>
> cc
>
> Subject
>
> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>
> Rich,
>
> I think this change causes the Hudson build to fail, because passing
> null as DataSource argument to DataHandler is not allowed. Probably
> this depends on the particular JAF implementation that is used. Can
> you make sure that the DataHandler wrapper works with both the Sun and
> the Geronimo implementation?
>
> Andreas
>
> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
> > Author: scheu
> > Date: Wed Jun  9 12:02:06 2010
> > New Revision: 952971
> >
> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
> > Log:
> > AXIS2-4733
> > Contributor: Phil Adams
> > Contributed WrappedDataHandler to allow Axis2 to set the
> appropriate content-type on a DataHandler.
> > Also added a validation test.
> >
> > Added:
> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
> jaxws/message/impl/WrappedDataHandlerTest.java
> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
> util/WrappedDataHandler.java
> > Modified:
> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java
> >
> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
> axis2/jaxws/message/impl/MessageFactoryImpl.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java (original)
> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
> >  import org.apache.axis2.transport.http.HTTPConstants;
> > +import org.apache.axis2.util.WrappedDataHandler;
> >
> >  import javax.xml.soap.AttachmentPart;
> >  import javax.xml.soap.MimeHeader;
> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
> >                 m.setDoingSWA(true);
> >                 while (it.hasNext()) {
> >                     AttachmentPart ap = (AttachmentPart)it.next();
> > -                    m.addDataHandler(ap.getDataHandler(),
> ap.getContentId());
> > +                    m.addDataHandler(new WrappedDataHandler
> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
> >                 }
> >             }
> >             return m;
> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
> >         }
> >         return createFrom(block.getXMLStreamReader(true), protocol);
> >     }
> > -
> >  }
> >
> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
> WrappedDataHandlerTest.java?rev=952971&view=auto
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
2010
> > @@ -0,0 +1,48 @@
> > +package org.apache.axis2.jaxws.message.impl;
> > +
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +import java.net.URL;
> > +import javax.activation.DataHandler;
> > +
> > +import org.apache.axis2.util.WrappedDataHandler;
> > +
> > +import junit.framework.TestCase;
> > +
> > +/**
> > + * Test the WrappedDataHandler class.
> > + */
> > +public class WrappedDataHandlerTest extends TestCase {
> > +
> > +   /**
> > +    * Verify that the Wrapped DataHandler maintains the correct
> content-type value
> > +    * for an XML document attachment.
> > +    */
> > +   public void testWrappedDataHandler() throws Exception {
> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
> soapmessage.xml");
> > +
> > +      DataHandler dh = new DataHandler(xmlAttachment);
> > +      assertTrue(dh.getContentType().equals("application/xml"));
> > +
> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
> "text/xml");
> > +      assertTrue(wrappedDH.getContentType() != null);
> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
> > +   }
> > +}
> >
> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
> rev=952971&view=auto
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java (added)
> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
> > @@ -0,0 +1,185 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +package org.apache.axis2.util;
> > +
> > +import java.awt.datatransfer.DataFlavor;
> > +import java.awt.datatransfer.UnsupportedFlavorException;
> > +import java.io.IOException;
> > +import java.io.InputStream;
> > +import java.io.OutputStream;
> > +
> > +import javax.activation.CommandInfo;
> > +import javax.activation.CommandMap;
> > +import javax.activation.DataHandler;
> > +import javax.activation.DataSource;
> > +
> > +import org.apache.commons.logging.Log;
> > +import org.apache.commons.logging.LogFactory;
> > +
> > +/**
> > + * This class acts as a wrapper for the javax.activation.DataHandler
class.
> > + * It is used to store away a (potentially) user-defined content-
> type value along with
> > + * the DataHandler instance.   We'll delegate all method calls
> except for getContentType()
> > + * to the delegate DataHandler instance passed into the ctor.
> > + */
> > +public class WrappedDataHandler extends DataHandler {
> > +
> > +    private static final Log log = LogFactory.getLog
> (WrappedDataHandler.class);
> > +
> > +    DataHandler delegate;
> > +    String contentType;
> > +
> > +    /**
> > +     * Constructs a new instance of the WrappedDataHandler.
> > +     * @param _delegate the real DataHandler instance being wrapped
> > +     * @param _contentType the user-defined contentType
> associated with the DataHandler instance
> > +     */
> > +    public WrappedDataHandler(DataHandler _delegate, String
_contentType) {
> > +        super((DataSource)null);
> > +
> > +        delegate = _delegate;
> > +        contentType = _contentType;
> > +
> > +        if (log.isDebugEnabled()) {
> > +            log.debug("Created instance of WrappedDatahandler: "
> + this.toString() + ", contentType=" + contentType
> > +                + "\nDelegate DataHandler: " + delegate.toString());
> > +        }
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getAllCommands()
> > +     */
> > +    @Override
> > +    public CommandInfo[] getAllCommands() {
> > +        return delegate.getAllCommands();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getBean
> (javax.activation.CommandInfo)
> > +     */
> > +    @Override
> > +    public Object getBean(CommandInfo paramCommandInfo) {
> > +        return delegate.getBean(paramCommandInfo);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
> > +     */
> > +    @Override
> > +    public CommandInfo getCommand(String paramString) {
> > +        return delegate.getCommand(paramString);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getContent()
> > +     */
> > +    @Override
> > +    public Object getContent() throws IOException {
> > +        return delegate.getContent();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getContentType()
> > +     */
> > +    @Override
> > +    public String getContentType() {
> > +        return (contentType != null ? contentType :
> delegate.getContentType());
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getDataSource()
> > +     */
> > +    @Override
> > +    public DataSource getDataSource() {
> > +        return delegate.getDataSource();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getInputStream()
> > +     */
> > +    @Override
> > +    public InputStream getInputStream() throws IOException {
> > +        return delegate.getInputStream();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getName()
> > +     */
> > +    @Override
> > +    public String getName() {
> > +        return delegate.getName();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getOutputStream()
> > +     */
> > +    @Override
> > +    public OutputStream getOutputStream() throws IOException {
> > +        return delegate.getOutputStream();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getPreferredCommands()
> > +     */
> > +    @Override
> > +    public CommandInfo[] getPreferredCommands() {
> > +        return delegate.getPreferredCommands();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getTransferData
> (java.awt.datatransfer.DataFlavor)
> > +     */
> > +    @Override
> > +    public Object getTransferData(DataFlavor paramDataFlavor)
> throws UnsupportedFlavorException, IOException {
> > +        return delegate.getTransferData(paramDataFlavor);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
> > +     */
> > +    @Override
> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
> > +        return delegate.getTransferDataFlavors();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
> (java.awt.datatransfer.DataFlavor)
> > +     */
> > +    @Override
> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#setCommandMap
> (javax.activation.CommandMap)
> > +     */
> > +    @Override
> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
{
> > +        delegate.setCommandMap(paramCommandMap);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
> > +     */
> > +    @Override
> > +    public void writeTo(OutputStream paramOutputStream) throws
> IOException {
> > +        delegate.writeTo(paramOutputStream);
> > +    }
> > +}
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-dev-help@axis.apache.org
>

Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by R J Scheuerle Jr <sc...@us.ibm.com>.
Thanks Andreas,

Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
the null DataSource issue.

Rich Scheuerle
Senior Programmer, AIM SWG
IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
Development, Customer Solutions, and Open Source
Apache Axis2 (scheu@apache.org)
512-286-8420  (IBM TL 363-8420)

Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16
AM:

> Andreas Veithen <an...@gmail.com>
> 06/09/2010 10:12 AM
>
> Please respond to
> java-dev@axis.apache.org
>
> To
>
> java-dev@axis.apache.org
>
> cc
>
> Subject
>
> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>
> Rich,
>
> I think this change causes the Hudson build to fail, because passing
> null as DataSource argument to DataHandler is not allowed. Probably
> this depends on the particular JAF implementation that is used. Can
> you make sure that the DataHandler wrapper works with both the Sun and
> the Geronimo implementation?
>
> Andreas
>
> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
> > Author: scheu
> > Date: Wed Jun  9 12:02:06 2010
> > New Revision: 952971
> >
> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
> > Log:
> > AXIS2-4733
> > Contributor: Phil Adams
> > Contributed WrappedDataHandler to allow Axis2 to set the
> appropriate content-type on a DataHandler.
> > Also added a validation test.
> >
> > Added:
> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
> jaxws/message/impl/WrappedDataHandlerTest.java
> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
> util/WrappedDataHandler.java
> > Modified:
> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java
> >
> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
> axis2/jaxws/message/impl/MessageFactoryImpl.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java (original)
> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
> >  import org.apache.axis2.transport.http.HTTPConstants;
> > +import org.apache.axis2.util.WrappedDataHandler;
> >
> >  import javax.xml.soap.AttachmentPart;
> >  import javax.xml.soap.MimeHeader;
> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
> >                 m.setDoingSWA(true);
> >                 while (it.hasNext()) {
> >                     AttachmentPart ap = (AttachmentPart)it.next();
> > -                    m.addDataHandler(ap.getDataHandler(),
> ap.getContentId());
> > +                    m.addDataHandler(new WrappedDataHandler
> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
> >                 }
> >             }
> >             return m;
> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
> >         }
> >         return createFrom(block.getXMLStreamReader(true), protocol);
> >     }
> > -
> >  }
> >
> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
> WrappedDataHandlerTest.java?rev=952971&view=auto
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
2010
> > @@ -0,0 +1,48 @@
> > +package org.apache.axis2.jaxws.message.impl;
> > +
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +import java.net.URL;
> > +import javax.activation.DataHandler;
> > +
> > +import org.apache.axis2.util.WrappedDataHandler;
> > +
> > +import junit.framework.TestCase;
> > +
> > +/**
> > + * Test the WrappedDataHandler class.
> > + */
> > +public class WrappedDataHandlerTest extends TestCase {
> > +
> > +   /**
> > +    * Verify that the Wrapped DataHandler maintains the correct
> content-type value
> > +    * for an XML document attachment.
> > +    */
> > +   public void testWrappedDataHandler() throws Exception {
> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
> soapmessage.xml");
> > +
> > +      DataHandler dh = new DataHandler(xmlAttachment);
> > +      assertTrue(dh.getContentType().equals("application/xml"));
> > +
> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
> "text/xml");
> > +      assertTrue(wrappedDH.getContentType() != null);
> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
> > +   }
> > +}
> >
> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
> rev=952971&view=auto
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java (added)
> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
> > @@ -0,0 +1,185 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +package org.apache.axis2.util;
> > +
> > +import java.awt.datatransfer.DataFlavor;
> > +import java.awt.datatransfer.UnsupportedFlavorException;
> > +import java.io.IOException;
> > +import java.io.InputStream;
> > +import java.io.OutputStream;
> > +
> > +import javax.activation.CommandInfo;
> > +import javax.activation.CommandMap;
> > +import javax.activation.DataHandler;
> > +import javax.activation.DataSource;
> > +
> > +import org.apache.commons.logging.Log;
> > +import org.apache.commons.logging.LogFactory;
> > +
> > +/**
> > + * This class acts as a wrapper for the javax.activation.DataHandler
class.
> > + * It is used to store away a (potentially) user-defined content-
> type value along with
> > + * the DataHandler instance.   We'll delegate all method calls
> except for getContentType()
> > + * to the delegate DataHandler instance passed into the ctor.
> > + */
> > +public class WrappedDataHandler extends DataHandler {
> > +
> > +    private static final Log log = LogFactory.getLog
> (WrappedDataHandler.class);
> > +
> > +    DataHandler delegate;
> > +    String contentType;
> > +
> > +    /**
> > +     * Constructs a new instance of the WrappedDataHandler.
> > +     * @param _delegate the real DataHandler instance being wrapped
> > +     * @param _contentType the user-defined contentType
> associated with the DataHandler instance
> > +     */
> > +    public WrappedDataHandler(DataHandler _delegate, String
_contentType) {
> > +        super((DataSource)null);
> > +
> > +        delegate = _delegate;
> > +        contentType = _contentType;
> > +
> > +        if (log.isDebugEnabled()) {
> > +            log.debug("Created instance of WrappedDatahandler: "
> + this.toString() + ", contentType=" + contentType
> > +                + "\nDelegate DataHandler: " + delegate.toString());
> > +        }
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getAllCommands()
> > +     */
> > +    @Override
> > +    public CommandInfo[] getAllCommands() {
> > +        return delegate.getAllCommands();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getBean
> (javax.activation.CommandInfo)
> > +     */
> > +    @Override
> > +    public Object getBean(CommandInfo paramCommandInfo) {
> > +        return delegate.getBean(paramCommandInfo);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
> > +     */
> > +    @Override
> > +    public CommandInfo getCommand(String paramString) {
> > +        return delegate.getCommand(paramString);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getContent()
> > +     */
> > +    @Override
> > +    public Object getContent() throws IOException {
> > +        return delegate.getContent();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getContentType()
> > +     */
> > +    @Override
> > +    public String getContentType() {
> > +        return (contentType != null ? contentType :
> delegate.getContentType());
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getDataSource()
> > +     */
> > +    @Override
> > +    public DataSource getDataSource() {
> > +        return delegate.getDataSource();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getInputStream()
> > +     */
> > +    @Override
> > +    public InputStream getInputStream() throws IOException {
> > +        return delegate.getInputStream();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getName()
> > +     */
> > +    @Override
> > +    public String getName() {
> > +        return delegate.getName();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getOutputStream()
> > +     */
> > +    @Override
> > +    public OutputStream getOutputStream() throws IOException {
> > +        return delegate.getOutputStream();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getPreferredCommands()
> > +     */
> > +    @Override
> > +    public CommandInfo[] getPreferredCommands() {
> > +        return delegate.getPreferredCommands();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getTransferData
> (java.awt.datatransfer.DataFlavor)
> > +     */
> > +    @Override
> > +    public Object getTransferData(DataFlavor paramDataFlavor)
> throws UnsupportedFlavorException, IOException {
> > +        return delegate.getTransferData(paramDataFlavor);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
> > +     */
> > +    @Override
> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
> > +        return delegate.getTransferDataFlavors();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
> (java.awt.datatransfer.DataFlavor)
> > +     */
> > +    @Override
> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#setCommandMap
> (javax.activation.CommandMap)
> > +     */
> > +    @Override
> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
{
> > +        delegate.setCommandMap(paramCommandMap);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
> > +     */
> > +    @Override
> > +    public void writeTo(OutputStream paramOutputStream) throws
> IOException {
> > +        delegate.writeTo(paramOutputStream);
> > +    }
> > +}
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-dev-help@axis.apache.org
>

Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by R J Scheuerle Jr <sc...@us.ibm.com>.
Thanks Andreas,

Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
the null DataSource issue.

Rich Scheuerle
Senior Programmer, AIM SWG
IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
Development, Customer Solutions, and Open Source
Apache Axis2 (scheu@apache.org)
512-286-8420  (IBM TL 363-8420)

Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16
AM:

> Andreas Veithen <an...@gmail.com>
> 06/09/2010 10:12 AM
>
> Please respond to
> java-dev@axis.apache.org
>
> To
>
> java-dev@axis.apache.org
>
> cc
>
> Subject
>
> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>
> Rich,
>
> I think this change causes the Hudson build to fail, because passing
> null as DataSource argument to DataHandler is not allowed. Probably
> this depends on the particular JAF implementation that is used. Can
> you make sure that the DataHandler wrapper works with both the Sun and
> the Geronimo implementation?
>
> Andreas
>
> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
> > Author: scheu
> > Date: Wed Jun  9 12:02:06 2010
> > New Revision: 952971
> >
> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
> > Log:
> > AXIS2-4733
> > Contributor: Phil Adams
> > Contributed WrappedDataHandler to allow Axis2 to set the
> appropriate content-type on a DataHandler.
> > Also added a validation test.
> >
> > Added:
> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
> jaxws/message/impl/WrappedDataHandlerTest.java
> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
> util/WrappedDataHandler.java
> > Modified:
> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java
> >
> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
> axis2/jaxws/message/impl/MessageFactoryImpl.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java (original)
> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
> >  import org.apache.axis2.transport.http.HTTPConstants;
> > +import org.apache.axis2.util.WrappedDataHandler;
> >
> >  import javax.xml.soap.AttachmentPart;
> >  import javax.xml.soap.MimeHeader;
> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
> >                 m.setDoingSWA(true);
> >                 while (it.hasNext()) {
> >                     AttachmentPart ap = (AttachmentPart)it.next();
> > -                    m.addDataHandler(ap.getDataHandler(),
> ap.getContentId());
> > +                    m.addDataHandler(new WrappedDataHandler
> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
> >                 }
> >             }
> >             return m;
> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
> >         }
> >         return createFrom(block.getXMLStreamReader(true), protocol);
> >     }
> > -
> >  }
> >
> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
> WrappedDataHandlerTest.java?rev=952971&view=auto
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
2010
> > @@ -0,0 +1,48 @@
> > +package org.apache.axis2.jaxws.message.impl;
> > +
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +import java.net.URL;
> > +import javax.activation.DataHandler;
> > +
> > +import org.apache.axis2.util.WrappedDataHandler;
> > +
> > +import junit.framework.TestCase;
> > +
> > +/**
> > + * Test the WrappedDataHandler class.
> > + */
> > +public class WrappedDataHandlerTest extends TestCase {
> > +
> > +   /**
> > +    * Verify that the Wrapped DataHandler maintains the correct
> content-type value
> > +    * for an XML document attachment.
> > +    */
> > +   public void testWrappedDataHandler() throws Exception {
> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
> soapmessage.xml");
> > +
> > +      DataHandler dh = new DataHandler(xmlAttachment);
> > +      assertTrue(dh.getContentType().equals("application/xml"));
> > +
> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
> "text/xml");
> > +      assertTrue(wrappedDH.getContentType() != null);
> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
> > +   }
> > +}
> >
> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
> rev=952971&view=auto
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java (added)
> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
> > @@ -0,0 +1,185 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +package org.apache.axis2.util;
> > +
> > +import java.awt.datatransfer.DataFlavor;
> > +import java.awt.datatransfer.UnsupportedFlavorException;
> > +import java.io.IOException;
> > +import java.io.InputStream;
> > +import java.io.OutputStream;
> > +
> > +import javax.activation.CommandInfo;
> > +import javax.activation.CommandMap;
> > +import javax.activation.DataHandler;
> > +import javax.activation.DataSource;
> > +
> > +import org.apache.commons.logging.Log;
> > +import org.apache.commons.logging.LogFactory;
> > +
> > +/**
> > + * This class acts as a wrapper for the javax.activation.DataHandler
class.
> > + * It is used to store away a (potentially) user-defined content-
> type value along with
> > + * the DataHandler instance.   We'll delegate all method calls
> except for getContentType()
> > + * to the delegate DataHandler instance passed into the ctor.
> > + */
> > +public class WrappedDataHandler extends DataHandler {
> > +
> > +    private static final Log log = LogFactory.getLog
> (WrappedDataHandler.class);
> > +
> > +    DataHandler delegate;
> > +    String contentType;
> > +
> > +    /**
> > +     * Constructs a new instance of the WrappedDataHandler.
> > +     * @param _delegate the real DataHandler instance being wrapped
> > +     * @param _contentType the user-defined contentType
> associated with the DataHandler instance
> > +     */
> > +    public WrappedDataHandler(DataHandler _delegate, String
_contentType) {
> > +        super((DataSource)null);
> > +
> > +        delegate = _delegate;
> > +        contentType = _contentType;
> > +
> > +        if (log.isDebugEnabled()) {
> > +            log.debug("Created instance of WrappedDatahandler: "
> + this.toString() + ", contentType=" + contentType
> > +                + "\nDelegate DataHandler: " + delegate.toString());
> > +        }
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getAllCommands()
> > +     */
> > +    @Override
> > +    public CommandInfo[] getAllCommands() {
> > +        return delegate.getAllCommands();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getBean
> (javax.activation.CommandInfo)
> > +     */
> > +    @Override
> > +    public Object getBean(CommandInfo paramCommandInfo) {
> > +        return delegate.getBean(paramCommandInfo);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
> > +     */
> > +    @Override
> > +    public CommandInfo getCommand(String paramString) {
> > +        return delegate.getCommand(paramString);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getContent()
> > +     */
> > +    @Override
> > +    public Object getContent() throws IOException {
> > +        return delegate.getContent();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getContentType()
> > +     */
> > +    @Override
> > +    public String getContentType() {
> > +        return (contentType != null ? contentType :
> delegate.getContentType());
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getDataSource()
> > +     */
> > +    @Override
> > +    public DataSource getDataSource() {
> > +        return delegate.getDataSource();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getInputStream()
> > +     */
> > +    @Override
> > +    public InputStream getInputStream() throws IOException {
> > +        return delegate.getInputStream();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getName()
> > +     */
> > +    @Override
> > +    public String getName() {
> > +        return delegate.getName();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getOutputStream()
> > +     */
> > +    @Override
> > +    public OutputStream getOutputStream() throws IOException {
> > +        return delegate.getOutputStream();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getPreferredCommands()
> > +     */
> > +    @Override
> > +    public CommandInfo[] getPreferredCommands() {
> > +        return delegate.getPreferredCommands();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getTransferData
> (java.awt.datatransfer.DataFlavor)
> > +     */
> > +    @Override
> > +    public Object getTransferData(DataFlavor paramDataFlavor)
> throws UnsupportedFlavorException, IOException {
> > +        return delegate.getTransferData(paramDataFlavor);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
> > +     */
> > +    @Override
> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
> > +        return delegate.getTransferDataFlavors();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
> (java.awt.datatransfer.DataFlavor)
> > +     */
> > +    @Override
> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#setCommandMap
> (javax.activation.CommandMap)
> > +     */
> > +    @Override
> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
{
> > +        delegate.setCommandMap(paramCommandMap);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
> > +     */
> > +    @Override
> > +    public void writeTo(OutputStream paramOutputStream) throws
> IOException {
> > +        delegate.writeTo(paramOutputStream);
> > +    }
> > +}
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-dev-help@axis.apache.org
>

Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules: jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/apache/axis2/jaxws/message/impl/ kernel/src/org/apache/axis2/util/

Posted by R J Scheuerle Jr <sc...@us.ibm.com>.
Thanks Andreas,

Phil is going to reopen the JIRA and change the WrappedDataHandler to avoid
the null DataSource issue.

Rich Scheuerle
Senior Programmer, AIM SWG
IBM Web Services (JAX-RPC, JAX-WS, SAAJ)
Development, Customer Solutions, and Open Source
Apache Axis2 (scheu@apache.org)
512-286-8420  (IBM TL 363-8420)

Andreas Veithen <an...@gmail.com> wrote on 06/09/2010 10:12:16
AM:

> Andreas Veithen <an...@gmail.com>
> 06/09/2010 10:12 AM
>
> Please respond to
> java-dev@axis.apache.org
>
> To
>
> java-dev@axis.apache.org
>
> cc
>
> Subject
>
> Re: svn commit: r952971 - in /axis/axis2/java/core/trunk/modules:
> jaxws/src/org/apache/axis2/jaxws/message/impl/ jaxws/test/org/
> apache/axis2/jaxws/message/impl/  kernel/src/org/apache/axis2/util/
>
> Rich,
>
> I think this change causes the Hudson build to fail, because passing
> null as DataSource argument to DataHandler is not allowed. Probably
> this depends on the particular JAF implementation that is used. Can
> you make sure that the DataHandler wrapper works with both the Sun and
> the Geronimo implementation?
>
> Andreas
>
> On Wed, Jun 9, 2010 at 14:02,  <sc...@apache.org> wrote:
> > Author: scheu
> > Date: Wed Jun  9 12:02:06 2010
> > New Revision: 952971
> >
> > URL: http://svn.apache.org/viewvc?rev=952971&view=rev
> > Log:
> > AXIS2-4733
> > Contributor: Phil Adams
> > Contributed WrappedDataHandler to allow Axis2 to set the
> appropriate content-type on a DataHandler.
> > Also added a validation test.
> >
> > Added:
> >    axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/
> jaxws/message/impl/WrappedDataHandlerTest.java
> >    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/
> util/WrappedDataHandler.java
> > Modified:
> >    axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java
> >
> > Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/
> axis2/jaxws/message/impl/MessageFactoryImpl.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/jaxws/src/org/apache/axis2/jaxws/message/impl/
> MessageFactoryImpl.java?rev=952971&r1=952970&r2=952971&view=diff
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java (original)
> > +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/
> jaxws/message/impl/MessageFactoryImpl.java Wed Jun  9 12:02:06 2010
> > @@ -37,6 +37,7 @@ import org.apache.axis2.jaxws.message.da
> >  import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;
> >  import org.apache.axis2.jaxws.message.factory.MessageFactory;
> >  import org.apache.axis2.transport.http.HTTPConstants;
> > +import org.apache.axis2.util.WrappedDataHandler;
> >
> >  import javax.xml.soap.AttachmentPart;
> >  import javax.xml.soap.MimeHeader;
> > @@ -118,7 +119,7 @@ public class MessageFactoryImpl implemen
> >                 m.setDoingSWA(true);
> >                 while (it.hasNext()) {
> >                     AttachmentPart ap = (AttachmentPart)it.next();
> > -                    m.addDataHandler(ap.getDataHandler(),
> ap.getContentId());
> > +                    m.addDataHandler(new WrappedDataHandler
> (ap.getDataHandler(), ap.getContentType()), ap.getContentId());
> >                 }
> >             }
> >             return m;
> > @@ -144,5 +145,4 @@ public class MessageFactoryImpl implemen
> >         }
> >         return createFrom(block.getXMLStreamReader(true), protocol);
> >     }
> > -
> >  }
> >
> > Added: axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/jaxws/test/org/apache/axis2/jaxws/message/impl/
> WrappedDataHandlerTest.java?rev=952971&view=auto
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java (added)
> > +++ axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/
> axis2/jaxws/message/impl/WrappedDataHandlerTest.java Wed Jun  9 12:02:06
2010
> > @@ -0,0 +1,48 @@
> > +package org.apache.axis2.jaxws.message.impl;
> > +
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +import java.net.URL;
> > +import javax.activation.DataHandler;
> > +
> > +import org.apache.axis2.util.WrappedDataHandler;
> > +
> > +import junit.framework.TestCase;
> > +
> > +/**
> > + * Test the WrappedDataHandler class.
> > + */
> > +public class WrappedDataHandlerTest extends TestCase {
> > +
> > +   /**
> > +    * Verify that the Wrapped DataHandler maintains the correct
> content-type value
> > +    * for an XML document attachment.
> > +    */
> > +   public void testWrappedDataHandler() throws Exception {
> > +      URL xmlAttachment = new URL("file:./test-resources/xml/
> soapmessage.xml");
> > +
> > +      DataHandler dh = new DataHandler(xmlAttachment);
> > +      assertTrue(dh.getContentType().equals("application/xml"));
> > +
> > +      WrappedDataHandler wrappedDH = new WrappedDataHandler(dh,
> "text/xml");
> > +      assertTrue(wrappedDH.getContentType() != null);
> > +      assertTrue(wrappedDH.getContentType().equals("text/xml"));
> > +   }
> > +}
> >
> > Added: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java
> > URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/
> modules/kernel/src/org/apache/axis2/util/WrappedDataHandler.java?
> rev=952971&view=auto
> >
>
==============================================================================

> > --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java (added)
> > +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/
> axis2/util/WrappedDataHandler.java Wed Jun  9 12:02:06 2010
> > @@ -0,0 +1,185 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you under the Apache License, Version 2.0 (the
> > + * "License"); you may not use this file except in compliance
> > + * with the License. You may obtain a copy of the License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed to in writing,
> > + * software distributed under the License is distributed on an
> > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > + * KIND, either express or implied. See the License for the
> > + * specific language governing permissions and limitations
> > + * under the License.
> > + */
> > +
> > +package org.apache.axis2.util;
> > +
> > +import java.awt.datatransfer.DataFlavor;
> > +import java.awt.datatransfer.UnsupportedFlavorException;
> > +import java.io.IOException;
> > +import java.io.InputStream;
> > +import java.io.OutputStream;
> > +
> > +import javax.activation.CommandInfo;
> > +import javax.activation.CommandMap;
> > +import javax.activation.DataHandler;
> > +import javax.activation.DataSource;
> > +
> > +import org.apache.commons.logging.Log;
> > +import org.apache.commons.logging.LogFactory;
> > +
> > +/**
> > + * This class acts as a wrapper for the javax.activation.DataHandler
class.
> > + * It is used to store away a (potentially) user-defined content-
> type value along with
> > + * the DataHandler instance.   We'll delegate all method calls
> except for getContentType()
> > + * to the delegate DataHandler instance passed into the ctor.
> > + */
> > +public class WrappedDataHandler extends DataHandler {
> > +
> > +    private static final Log log = LogFactory.getLog
> (WrappedDataHandler.class);
> > +
> > +    DataHandler delegate;
> > +    String contentType;
> > +
> > +    /**
> > +     * Constructs a new instance of the WrappedDataHandler.
> > +     * @param _delegate the real DataHandler instance being wrapped
> > +     * @param _contentType the user-defined contentType
> associated with the DataHandler instance
> > +     */
> > +    public WrappedDataHandler(DataHandler _delegate, String
_contentType) {
> > +        super((DataSource)null);
> > +
> > +        delegate = _delegate;
> > +        contentType = _contentType;
> > +
> > +        if (log.isDebugEnabled()) {
> > +            log.debug("Created instance of WrappedDatahandler: "
> + this.toString() + ", contentType=" + contentType
> > +                + "\nDelegate DataHandler: " + delegate.toString());
> > +        }
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getAllCommands()
> > +     */
> > +    @Override
> > +    public CommandInfo[] getAllCommands() {
> > +        return delegate.getAllCommands();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getBean
> (javax.activation.CommandInfo)
> > +     */
> > +    @Override
> > +    public Object getBean(CommandInfo paramCommandInfo) {
> > +        return delegate.getBean(paramCommandInfo);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getCommand(java.lang.String)
> > +     */
> > +    @Override
> > +    public CommandInfo getCommand(String paramString) {
> > +        return delegate.getCommand(paramString);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getContent()
> > +     */
> > +    @Override
> > +    public Object getContent() throws IOException {
> > +        return delegate.getContent();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getContentType()
> > +     */
> > +    @Override
> > +    public String getContentType() {
> > +        return (contentType != null ? contentType :
> delegate.getContentType());
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getDataSource()
> > +     */
> > +    @Override
> > +    public DataSource getDataSource() {
> > +        return delegate.getDataSource();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getInputStream()
> > +     */
> > +    @Override
> > +    public InputStream getInputStream() throws IOException {
> > +        return delegate.getInputStream();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getName()
> > +     */
> > +    @Override
> > +    public String getName() {
> > +        return delegate.getName();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getOutputStream()
> > +     */
> > +    @Override
> > +    public OutputStream getOutputStream() throws IOException {
> > +        return delegate.getOutputStream();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getPreferredCommands()
> > +     */
> > +    @Override
> > +    public CommandInfo[] getPreferredCommands() {
> > +        return delegate.getPreferredCommands();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getTransferData
> (java.awt.datatransfer.DataFlavor)
> > +     */
> > +    @Override
> > +    public Object getTransferData(DataFlavor paramDataFlavor)
> throws UnsupportedFlavorException, IOException {
> > +        return delegate.getTransferData(paramDataFlavor);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#getTransferDataFlavors()
> > +     */
> > +    @Override
> > +    public synchronized DataFlavor[] getTransferDataFlavors() {
> > +        return delegate.getTransferDataFlavors();
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#isDataFlavorSupported
> (java.awt.datatransfer.DataFlavor)
> > +     */
> > +    @Override
> > +    public boolean isDataFlavorSupported(DataFlavor paramDataFlavor) {
> > +        return delegate.isDataFlavorSupported(paramDataFlavor);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#setCommandMap
> (javax.activation.CommandMap)
> > +     */
> > +    @Override
> > +    public synchronized void setCommandMap(CommandMap paramCommandMap)
{
> > +        delegate.setCommandMap(paramCommandMap);
> > +    }
> > +
> > +    /* (non-Javadoc)
> > +     * @see javax.activation.DataHandler#writeTo(java.io.OutputStream)
> > +     */
> > +    @Override
> > +    public void writeTo(OutputStream paramOutputStream) throws
> IOException {
> > +        delegate.writeTo(paramOutputStream);
> > +    }
> > +}
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-dev-help@axis.apache.org
>