Author: barrettj
Date: Fri Apr  9 20:07:06 2010
New Revision: 932570

URL: http://svn.apache.org/viewvc?rev=932570&view=rev
Log:
Support for MTOM.threshold on the client set via a WebServiceFeature on the 
factory APIs or via a sparse composite.

Modified:
    
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java
    
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java

Modified: 
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java?rev=932570&r1=932569&r2=932570&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java
 Fri Apr  9 20:07:06 2010
@@ -111,32 +111,35 @@ public class JAXBAttachmentMarshaller ex
         
         String cid = null;
         
-            try {
-                // Create MIME Body Part
-                InternetHeaders ih = new InternetHeaders();
-                ih.setHeader(HTTPConstants.HEADER_CONTENT_TYPE, mimeType);
-                MimeBodyPart mbp = new MimeBodyPart(ih, data);
-                
-                //Create a data source for the MIME Body Part
-                MimePartDataSource mpds = new MimePartDataSource(mbp);
-                long dataLength =data.length;
-                Integer value = null;
-                if (msgContext != null) {
-                    value = (Integer) 
msgContext.getProperty(Constants.Configuration.MTOM_THRESHOLD);
-                }
-                int optimizedThreshold = (value != null) ? value.intValue() : 
0;
-
-                if(optimizedThreshold==0 || dataLength > optimizedThreshold){
-                       DataHandler dataHandler = new DataHandler(mpds);
-                       cid = addDataHandler(dataHandler);
-                }
-                
-                // Add the content id to the mime body part
-                mbp.setHeader(HTTPConstants.HEADER_CONTENT_ID, cid);
-            } catch (MessagingException e) {
-                throw new OMException(e);
+        try {
+            // Create MIME Body Part
+            InternetHeaders ih = new InternetHeaders();
+            ih.setHeader(HTTPConstants.HEADER_CONTENT_TYPE, mimeType);
+            MimeBodyPart mbp = new MimeBodyPart(ih, data);
+
+            //Create a data source for the MIME Body Part
+            MimePartDataSource mpds = new MimePartDataSource(mbp);
+            long dataLength =data.length;
+            Integer value = null;
+            if (msgContext != null) {
+                value = (Integer) 
msgContext.getProperty(Constants.Configuration.MTOM_THRESHOLD);
+            } else if (log.isDebugEnabled()) {
+                log.debug("The msgContext is null so the MTOM threshold value 
can not be determined; it will default to 0.");
             }
-        
+
+            int optimizedThreshold = (value != null) ? value.intValue() : 0;
+
+            if(optimizedThreshold==0 || dataLength > optimizedThreshold){
+                DataHandler dataHandler = new DataHandler(mpds);
+                cid = addDataHandler(dataHandler);
+            }
+
+            // Add the content id to the mime body part
+            mbp.setHeader(HTTPConstants.HEADER_CONTENT_ID, cid);
+        } catch (MessagingException e) {
+            throw new OMException(e);
+        }
+
         return cid == null ? null : "cid:" + cid;
     }
     

Modified: 
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java?rev=932570&r1=932569&r2=932570&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java
 Fri Apr  9 20:07:06 2010
@@ -19,6 +19,7 @@
 
 package org.apache.axis2.jaxws.message.attachments;
 
+import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.jaxws.message.Message;
 
 import javax.activation.DataHandler;
@@ -32,9 +33,24 @@ public class JAXBAttachmentMarshaller ex
     private Message message;
     
     public JAXBAttachmentMarshaller(Message message, XMLStreamWriter writer) {
-        super(null, writer);
+        super(getAxis2MessageContext(message), writer);
         this.message = message;
     }
+    
+    /**
+     * Get the Axis2 Message Context out of the Message by going through the 
JAXWS Message Context.
+     * @param message The Message from which to get the Axis Message Context
+     * @return the Axis Message context or null if one is not found.
+     */
+    private static MessageContext getAxis2MessageContext(Message message) {
+        MessageContext axisMessageContext = null;
+        if (message != null) {
+            if (message.getMessageContext() != null) {
+                axisMessageContext = 
message.getMessageContext().getAxisMessageContext();
+            }
+        }
+        return axisMessageContext;
+    }
     /**
      * @return if MTOM enabled calculated from the context information
      */


Reply via email to