Author: asankha
Date: Mon Nov 27 07:17:38 2006
New Revision: 479657

URL: http://svn.apache.org/viewvc?view=rev&rev=479657
Log:
allow synapse to specify if mtom/swa should be turned on for outgoing messages 
- full functionality depends on support for this from axis2 - as currently this 
cannot be turned on per message

Modified:
    
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java
    
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Endpoint.java
    
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointFactory.java
    
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
    
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java
    
incubator/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
    
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/InlineScriptMediator.java
    
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java
    
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ThreadLocalMessageContext.java
    
incubator/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java

Modified: 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java
URL: 
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java?view=diff&rev=479657&r1=479656&r2=479657
==============================================================================
--- 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java
 (original)
+++ 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java
 Mon Nov 27 07:17:38 2006
@@ -185,10 +185,22 @@
     public boolean isDoingMTOM();
 
     /**
+     * If this message using SWA?
+     * @return true if using SWA
+     */
+    public boolean isDoingSWA();
+
+    /**
      * Marks as using MTOM
      * @param b true to mark as using MTOM
      */
     public void setDoingMTOM(boolean b);
+
+    /**
+     * Marks as using SWA
+     * @param b true to mark as using SWA
+     */
+    public void setDoingSWA(boolean b);
 
     /**
      * Is this message over POX?

Modified: 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Endpoint.java
URL: 
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Endpoint.java?view=diff&rev=479657&r1=479656&r2=479657
==============================================================================
--- 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Endpoint.java
 (original)
+++ 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Endpoint.java
 Mon Nov 27 07:17:38 2006
@@ -52,6 +52,10 @@
        private boolean forcePOX = false;
        /** force SOAP on **/
        private boolean forceSOAP = false;
+    /** use MTOM **/
+    private boolean useMTOM = false;
+    /** use SWA **/
+    private boolean useSwa = false;
        
        
 
@@ -205,4 +209,20 @@
        public boolean isForceSOAP() {
                return forceSOAP;
        }
+
+    public boolean isUseMTOM() {
+        return useMTOM;
+    }
+
+    public void setUseMTOM(boolean useMTOM) {
+        this.useMTOM = useMTOM;
+    }
+
+    public boolean isUseSwa() {
+        return useSwa;
+    }
+
+    public void setUseSwa(boolean useSwa) {
+        this.useSwa = useSwa;
+    }
 }

Modified: 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointFactory.java?view=diff&rev=479657&r1=479656&r2=479657
==============================================================================
--- 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointFactory.java
 (original)
+++ 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointFactory.java
 Mon Nov 27 07:17:38 2006
@@ -33,7 +33,7 @@
 /**
  * Creates an Endpoint instance using the XML fragment specification
  * 
- * <endpoint name="string" address="url" force="soap|pox">
+ * <endpoint name="string" address="url" [force="soap|pox"] 
[optimize="mtom|swa"]>
  *  .. extensibility ..
  * 
  * <enableRM [policy="key"]/>+ <enableSec [policy="key"]/>+ <enableAddressing
@@ -58,10 +58,12 @@
                                Constants.NULL_NAMESPACE, "name"));
                OMAttribute address = elem.getAttribute(new QName(
                                Constants.NULL_NAMESPACE, "address"));
-                OMAttribute force = elem.getAttribute(new QName(
+               OMAttribute force = elem.getAttribute(new QName(
                                        Constants.NULL_NAMESPACE, "force"));
-               
-               Endpoint endpoint = new Endpoint();
+        OMAttribute optimize = elem.getAttribute(new QName(
+                                       Constants.NULL_NAMESPACE, "optimize"));
+
+        Endpoint endpoint = new Endpoint();
                if (!anonymousEndpoint) {
                        if (name == null) {
                                handleException("The 'name' attribute is 
required for a named endpoint definition");
@@ -88,7 +90,7 @@
                }
                
                
-               if (force!=null) 
+               if (force != null)
                {
                        String forceValue = 
force.getAttributeValue().trim().toLowerCase();
                        if (forceValue.equals("pox")) {
@@ -100,7 +102,16 @@
                        }
                }
 
-               OMElement wsAddr = elem.getFirstChildWithName(new QName(
+        if (optimize != null && optimize.getAttributeValue().length() > 0) {
+            String method = optimize.getAttributeValue().trim();
+            if ("mtom".equalsIgnoreCase(method)) {
+                endpoint.setUseMTOM(true);
+            } else if ("swa".equalsIgnoreCase(method)) {
+                endpoint.setUseSwa(true);
+            }            
+        }
+
+        OMElement wsAddr = elem.getFirstChildWithName(new QName(
                                Constants.SYNAPSE_NAMESPACE, 
"enableAddressing"));
                if (wsAddr != null) {
                        endpoint.setAddressingOn(true);

Modified: 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
URL: 
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java?view=diff&rev=479657&r1=479656&r2=479657
==============================================================================
--- 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
 (original)
+++ 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
 Mon Nov 27 07:17:38 2006
@@ -183,8 +183,16 @@
         return axis2MessageContext.isDoingMTOM();
     }
 
+    public boolean isDoingSWA() {
+        return axis2MessageContext.isDoingSwA();
+    }
+
     public void setDoingMTOM(boolean b) {
         axis2MessageContext.setDoingMTOM(b);
+    }
+
+    public void setDoingSWA(boolean b) {
+        axis2MessageContext.setDoingSwA(b);
     }
 
     public boolean isDoingPOX() {

Modified: 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java
URL: 
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java?view=diff&rev=479657&r1=479656&r2=479657
==============================================================================
--- 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java
 (original)
+++ 
incubator/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java
 Mon Nov 27 07:17:38 2006
@@ -87,7 +87,14 @@
             } else if (singleEndpoint.isForceSOAP()) {
                synCtx.setDoingPOX(false);
             }
-            if (singleEndpoint.isUseSeparateListener()) 
+
+            if (singleEndpoint.isUseMTOM()) {
+                synCtx.setDoingMTOM(true);
+            } else if (singleEndpoint.isUseSwa()) {
+                synCtx.setDoingSWA(true);
+            }
+
+            if (singleEndpoint.isUseSeparateListener())
             {
                synCtx.setProperty(Constants.OUTFLOW_USE_SEPARATE_LISTENER, 
Boolean.TRUE);
             }

Modified: 
incubator/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
URL: 
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java?view=diff&rev=479657&r1=479656&r2=479657
==============================================================================
--- 
incubator/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
 (original)
+++ 
incubator/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
 Mon Nov 27 07:17:38 2006
@@ -156,7 +156,14 @@
         return false;
     }
 
+    public boolean isDoingSWA() {
+        return false;
+    }
+
     public void setDoingMTOM(boolean b) {
+    }
+
+    public void setDoingSWA(boolean b) {
     }
 
     public boolean isDoingPOX() {

Modified: 
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/InlineScriptMediator.java
URL: 
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/InlineScriptMediator.java?view=diff&rev=479657&r1=479656&r2=479657
==============================================================================
--- 
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/InlineScriptMediator.java
 (original)
+++ 
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/InlineScriptMediator.java
 Mon Nov 27 07:17:38 2006
@@ -26,6 +26,8 @@
 import org.apache.bsf.BSFManager;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.SynapseException;
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;
 
 /**
  * An inline script mediator has the script source embedded in the config XML:
@@ -40,6 +42,8 @@
  */
 public class InlineScriptMediator extends ScriptMediator {
 
+    private static final Log log = 
LogFactory.getLog(InlineScriptMediator.class);
+
     protected String scriptName;
 
     protected String scriptSrc;
@@ -55,6 +59,7 @@
 
     public boolean mediate(MessageContext synCtx) {
         try {
+            log.debug("Script mediator mediate()");
 
             // This is a bit of a hack to deal with inconsistencies in the 
varrious BSF script engines.
             // The JavaScript engine does not support BSFEngine.apply properly 
as it doesn't pass the
@@ -77,6 +82,7 @@
             return true; // default to returning true
 
         } catch (BSFException e) {
+            log.error("Error executing inline script", e);
             throw new SynapseException(e);
         }
     }

Modified: 
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java
URL: 
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java?view=diff&rev=479657&r1=479656&r2=479657
==============================================================================
--- 
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java
 (original)
+++ 
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java
 Mon Nov 27 07:17:38 2006
@@ -202,8 +202,16 @@
         return mc.isDoingMTOM();
     }
 
+    public boolean isDoingSWA() {
+        return mc.isDoingSWA();
+    }
+
     public void setDoingMTOM(boolean b) {
         mc.setDoingMTOM(b);
+    }
+
+    public void setDoingSWA(boolean b) {
+        mc.setDoingSWA(b);
     }
 
     public boolean isDoingPOX() {

Modified: 
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ThreadLocalMessageContext.java
URL: 
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ThreadLocalMessageContext.java?view=diff&rev=479657&r1=479656&r2=479657
==============================================================================
--- 
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ThreadLocalMessageContext.java
 (original)
+++ 
incubator/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ThreadLocalMessageContext.java
 Mon Nov 27 07:17:38 2006
@@ -141,6 +141,10 @@
         return getMC().isDoingMTOM();
     }
 
+    public boolean isDoingSWA() {
+        return getMC().isDoingSWA();
+    }
+
     public boolean isDoingPOX() {
         return getMC().isDoingPOX();
     }
@@ -163,6 +167,10 @@
 
     public void setDoingMTOM(boolean b) {
         getMC().setDoingMTOM(b);
+    }
+
+    public void setDoingSWA(boolean b) {
+        getMC().setDoingSWA(b);
     }
 
     public void setDoingPOX(boolean b) {

Modified: 
incubator/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java
URL: 
http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java?view=diff&rev=479657&r1=479656&r2=479657
==============================================================================
--- 
incubator/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java
 (original)
+++ 
incubator/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/TestMessageContext.java
 Mon Nov 27 07:17:38 2006
@@ -156,7 +156,14 @@
         return false;
     }
 
+    public boolean isDoingSWA() {
+        return false;
+    }
+
     public void setDoingMTOM(boolean b) {
+    }
+
+    public void setDoingSWA(boolean b) {
     }
 
     public boolean isDoingPOX() {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to