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();
}
}