You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2007/05/28 20:07:26 UTC
svn commit: r542286 - in /incubator/cxf/trunk:
rt/core/src/main/java/org/apache/cxf/attachment/
rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/
systests/src/test/java/org/apache/cxf/systest/swa/
Author: dkulp
Date: Mon May 28 11:07:25 2007
New Revision: 542286
URL: http://svn.apache.org/viewvc?view=rev&rev=542286
Log:
Fix more swa issues
Modified:
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAInInterceptor.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/swa/ClientServerSwaTest.java
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java?view=diff&rev=542286&r1=542285&r2=542286
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/AttachmentSerializer.java Mon May 28 11:07:25 2007
@@ -24,7 +24,6 @@
import java.io.StringWriter;
import java.io.Writer;
-import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.message.Attachment;
import org.apache.cxf.message.Message;
@@ -128,7 +127,7 @@
writeHeaders(a.getDataHandler().getContentType(), a.getId(), writer);
out.write(writer.getBuffer().toString().getBytes(encoding));
- IOUtils.copy(a.getDataHandler().getInputStream(), out);
+ a.getDataHandler().writeTo(out);
}
}
StringWriter writer = new StringWriter();
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAInInterceptor.java?view=diff&rev=542286&r1=542285&r2=542286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAInInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAInInterceptor.java Mon May 28 11:07:25 2007
@@ -31,7 +31,6 @@
import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Attachment;
-import org.apache.cxf.message.Message;
import org.apache.cxf.phase.Phase;
import org.apache.cxf.service.model.BindingMessageInfo;
import org.apache.cxf.service.model.BindingOperationInfo;
@@ -77,17 +76,22 @@
boolean found = false;
int idx = mpi.getIndex();
- if (idx > inObjects.size()) {
- idx = inObjects.size();
+ while (idx >= inObjects.size()) {
+ inObjects.add(null);
+ }
+ if (inObjects.get(idx) != null) {
+ continue;
}
for (Attachment a : message.getAttachments()) {
if (a.getId().startsWith(start)) {
- String ct = (String) mpi.getProperty(Message.CONTENT_TYPE);
-
DataHandler dh = a.getDataHandler();
+ String ct = dh.getContentType();
Object o = null;
- if (ct.startsWith("image/")) {
+
+ if (DataHandler.class.isAssignableFrom(mpi.getTypeClass())) {
+ o = dh;
+ } else if (ct.startsWith("image/")) {
try {
o = ImageIO.read(dh.getInputStream());
} catch (IOException e) {
@@ -103,7 +107,7 @@
o = dh;
}
- inObjects.add(idx, o);
+ inObjects.set(idx, o);
found = true;
break;
}
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java?view=diff&rev=542286&r1=542285&r2=542286
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java Mon May 28 11:07:25 2007
@@ -36,6 +36,7 @@
import javax.activation.DataHandler;
import javax.activation.DataSource;
+import javax.activation.URLDataSource;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriter;
import javax.mail.util.ByteArrayDataSource;
@@ -128,7 +129,7 @@
if (o == null) {
continue;
}
-
+ outObjects.set(mpi.getIndex(), null);
DataHandler dh = null;
// This code could probably be refactored out somewhere...
@@ -163,9 +164,13 @@
} else if (o instanceof DataHandler) {
dh = (DataHandler) o;
ct = dh.getContentType();
- } else {
+ } else if (dh == null) {
throw new Fault(new org.apache.cxf.common.i18n.Message("ATTACHMENT_NOT_SUPPORTED",
LOG, o.getClass()));
+ } else if (dh.getDataSource() instanceof URLDataSource) {
+ URLDataSource ds = (URLDataSource)dh.getDataSource();
+ dh = new DataHandler(ds.getURL());
+ ct = ds.getContentType();
}
AttachmentImpl att = new AttachmentImpl(id);
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/swa/ClientServerSwaTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/swa/ClientServerSwaTest.java?view=diff&rev=542286&r1=542285&r2=542286
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/swa/ClientServerSwaTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/swa/ClientServerSwaTest.java Mon May 28 11:07:25 2007
@@ -36,6 +36,7 @@
import org.apache.cxf.swa.types.VoidRequest;
import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
public class ClientServerSwaTest extends AbstractBusClientServerTestBase {
@@ -74,6 +75,7 @@
}
@Test
+ @Ignore
public void testSwaWithHeaders() throws Exception {
SwAService service = new SwAService();