dims 2002/06/23 15:08:11 Modified: java/src/org/apache/axis/attachments AttachmentPart.java AttachmentsImpl.java Added: java/test/saaj PackageTests.java TestAttachment.java Log: Added a testcase for attachments (SAAJ style). Revision Changes Path 1.10 +27 -2 xml-axis/java/src/org/apache/axis/attachments/AttachmentPart.java Index: AttachmentPart.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/attachments/AttachmentPart.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- AttachmentPart.java 23 Jun 2002 17:39:19 -0000 1.9 +++ AttachmentPart.java 23 Jun 2002 22:08:10 -0000 1.10 @@ -310,7 +310,20 @@ * was a data transformation error */ public Object getContent() throws SOAPException { - //TODO: Implement this. + javax.activation.DataSource ds = datahandler.getDataSource(); + if(ds instanceof ManagedMemoryDataSource){ + ManagedMemoryDataSource mds = (ManagedMemoryDataSource)ds; + if(ds.getContentType().equals("text/plain")){ + try { + java.io.InputStream is = ds.getInputStream(); + byte[] bytes = new byte[is.available()]; + is.read(bytes); + return new String(bytes); + } catch (java.io.IOException io){ + log.error(JavaUtils.getMessage("javaIOException00"), io); + } + } + } return null; } @@ -333,7 +346,19 @@ * @see #getContent() getContent() */ public void setContent(Object object, String contentType) { - //TODO: Implement this. + if(object instanceof String) { + try { + String s = (String)object; + java.io.ByteArrayInputStream bais = new java.io.ByteArrayInputStream(s.getBytes()); + datahandler = new DataHandler(new ManagedMemoryDataSource(bais, 1024, contentType, true)); + return; + } catch (java.io.IOException io){ + log.error(JavaUtils.getMessage("javaIOException00"), io); + throw new java.lang.IllegalArgumentException(JavaUtils.getMessage("illegalAccessException00")); + } + } else { + throw new java.lang.IllegalArgumentException(JavaUtils.getMessage("illegalAccessException00")); + } } /** 1.16 +1 -2 xml-axis/java/src/org/apache/axis/attachments/AttachmentsImpl.java Index: AttachmentsImpl.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/attachments/AttachmentsImpl.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- AttachmentsImpl.java 23 Jun 2002 20:20:19 -0000 1.15 +++ AttachmentsImpl.java 23 Jun 2002 22:08:10 -0000 1.16 @@ -393,7 +393,6 @@ * Will actually, and always, return an AttachmentPart. */ public Part createAttachmentPart() throws org.apache.axis.AxisFault { - //TODO: Flesh it out. - return null; + return new AttachmentPart(); } } 1.1 xml-axis/java/test/saaj/PackageTests.java Index: PackageTests.java =================================================================== package test.saaj; /** * SAAJ PackageTests tests */ public class PackageTests extends junit.framework.TestCase { public PackageTests(String name) { super(name); } public static junit.framework.Test suite() throws Exception { junit.framework.TestSuite suite = new junit.framework.TestSuite(); suite.addTestSuite(test.saaj.TestAttachment.class); return suite; } } 1.1 xml-axis/java/test/saaj/TestAttachment.java Index: TestAttachment.java =================================================================== package test.saaj; import javax.xml.soap.AttachmentPart; import javax.xml.soap.MessageFactory; import javax.xml.soap.SOAPConnection; import javax.xml.soap.SOAPConnectionFactory; import javax.xml.soap.SOAPMessage; public class TestAttachment extends junit.framework.TestCase { public TestAttachment(String name) { super(name); } public void testStringAttachment() throws Exception { SOAPConnectionFactory scFactory = SOAPConnectionFactory.newInstance(); SOAPConnection con = scFactory.createConnection(); MessageFactory factory = MessageFactory.newInstance(); SOAPMessage message = factory.createMessage(); AttachmentPart attachment = message.createAttachmentPart(); String stringContent = "Update address for Sunny Skies " + "Inc., to 10 Upbeat Street, Pleasant Grove, CA 95439"; attachment.setContent(stringContent, "text/plain"); attachment.setContentId("update_address"); message.addAttachmentPart(attachment); java.util.Iterator it = message.getAttachments(); while (it.hasNext()) { attachment = (AttachmentPart) it.next(); Object content = attachment.getContent(); String id = attachment.getContentId(); System.out.println("Attachment " + id + " contains: " + content); assertEquals(content,stringContent); } } public static void main(String[] args) throws Exception { test.saaj.TestAttachment tester = new test.saaj.TestAttachment("TestSAAJ"); tester.testStringAttachment(); } }