Author: hiranya
Date: Mon Dec  5 13:20:26 2011
New Revision: 1210454

URL: http://svn.apache.org/viewvc?rev=1210454&view=rev
Log:
Fixing some minor issues with clone mediator, DB mediators and InvokeMediator

Added:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/Argument.java
Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/EnrichMediator.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Source.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/store/MessageStoreMediator.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/InvokeMediator.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java?rev=1210454&r1=1210453&r2=1210454&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java
 Mon Dec  5 13:20:26 2011
@@ -269,57 +269,109 @@ public abstract class AbstractDBMediator
                 case Types.CHAR:
                 case Types.VARCHAR:
                 case Types.LONGVARCHAR: {
-                    ps.setString(column++, value);
+                    if (value != null && value.length() != 0) {
+                        ps.setString(column++, value);
+                    } else {
+                        ps.setString(column++, null);
+                    }
                     break;
                 }
                 case Types.NUMERIC:
                 case Types.DECIMAL: {
-                    ps.setBigDecimal(column++, new BigDecimal(value));
+                    if (value != null && value.length() != 0) {
+                        ps.setBigDecimal(column++, new BigDecimal(value));
+                    } else {
+                        ps.setBigDecimal(column++, null);
+                    }
                     break;
                 }
                 case Types.BIT: {
-                    ps.setBoolean(column++, Boolean.parseBoolean(value));
+                    if (value != null && value.length() != 0) {
+                        ps.setBoolean(column++, Boolean.parseBoolean(value));
+                    } else {
+                        ps.setNull(column++, Types.BIT);
+                    }
                     break;
                 }
                 case Types.TINYINT: {
-                    ps.setByte(column++, Byte.parseByte(value));
+                    if (value != null && value.length() != 0) {
+                        ps.setByte(column++, Byte.parseByte(value));
+                    } else {
+                        ps.setNull(column++, Types.TINYINT);
+                    }
                     break;
                 }
                 case Types.SMALLINT: {
-                    ps.setShort(column++, Short.parseShort(value));
+                    if (value != null && value.length() != 0) {
+                        ps.setShort(column++, Short.parseShort(value));
+                    } else {
+                        ps.setNull(column++, Types.SMALLINT);
+                    }
                     break;
                 }
                 case Types.INTEGER: {
-                    ps.setInt(column++, Integer.parseInt(value));
+                    if (value != null && value.length() != 0) {
+                        ps.setInt(column++, Integer.parseInt(value));
+                    } else {
+                        ps.setNull(column++, Types.INTEGER);
+                    }
                     break;
                 }
                 case Types.BIGINT: {
-                    ps.setLong(column++, Long.parseLong(value));
+                    if (value != null && value.length() != 0) {
+                        ps.setLong(column++, Long.parseLong(value));
+                    } else {
+                        ps.setNull(column++, Types.BIGINT);
+                    }
                     break;
                 }
                 case Types.REAL: {
-                    ps.setFloat(column++, Float.parseFloat(value));
+                    if (value != null && value.length() != 0) {
+                        ps.setFloat(column++, Float.parseFloat(value));
+                    } else {
+                        ps.setNull(column++, Types.REAL);
+                    }
                     break;
                 }
                 case Types.FLOAT: {
-                    ps.setDouble(column++, Double.parseDouble(value));
+                    if (value != null && value.length() != 0) {
+                        ps.setDouble(column++, Double.parseDouble(value));
+                    } else {
+                        ps.setNull(column++, Types.FLOAT);
+                    }
                     break;
                 }
                 case Types.DOUBLE: {
-                    ps.setDouble(column++, Double.parseDouble(value));
+                    if (value != null && value.length() != 0) {
+                        ps.setDouble(column++, Double.parseDouble(value));
+                    } else {
+                        ps.setNull(column++, Types.DOUBLE);
+                    }
                     break;
                 }
                 // skip BINARY, VARBINARY and LONGVARBINARY
                 case Types.DATE: {
-                    ps.setDate(column++, Date.valueOf(value));
+                    if (value != null && value.length() != 0) {
+                        ps.setDate(column++, Date.valueOf(value));
+                    } else {
+                        ps.setNull(column++, Types.DATE);
+                    }
                     break;
                 }
                 case Types.TIME: {
-                    ps.setTime(column++, Time.valueOf(value));
+                    if (value != null && value.length() != 0) {
+                        ps.setTime(column++, Time.valueOf(value));
+                    } else {
+                        ps.setNull(column++, Types.TIME);
+                    }
                     break;
                 }
                 case Types.TIMESTAMP: {
-                    ps.setTimestamp(column++, Timestamp.valueOf(value));
+                    if (value != null && value.length() != 0) {
+                        ps.setTimestamp(column++, Timestamp.valueOf(value));
+                    } else {
+                        ps.setNull(column++, Types.TIMESTAMP);
+                    }
                     break;
                 }
                 // skip CLOB, BLOB, ARRAY, DISTINCT, STRUCT, REF, JAVA_OBJECT

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java?rev=1210454&r1=1210453&r2=1210454&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
 Mon Dec  5 13:20:26 2011
@@ -122,6 +122,9 @@ public class CloneMediator extends Abstr
         MessageContext newCtx = null;
         try {
             newCtx = MessageHelper.cloneMessageContext(synCtx);
+            // Set isServerSide property in the cloned message context
+            ((Axis2MessageContext) 
newCtx).getAxis2MessageContext().setServerSide(
+                    ((Axis2MessageContext) 
synCtx).getAxis2MessageContext().isServerSide());
 
             if (id != null) {
                 // set the parent correlation details to the cloned MC -

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/EnrichMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/EnrichMediator.java?rev=1210454&r1=1210453&r2=1210454&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/EnrichMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/EnrichMediator.java
 Mon Dec  5 13:20:26 2011
@@ -29,12 +29,12 @@ import java.util.ArrayList;
 /**
  * Syntax for EnrichMediator
  * <p/>
- * <xmlStore>
+ * <enrich>
  * <source [clone=true | false] type=[custom|envelope|body|property] xpath="" 
property=""/>
  * <target [replace=true | false] type=[custom|envelope|body|property] 
xpath="" property=""/>
- * </xmlStore>
+ * </enrich>
  * <p/>
- * This mediator will first get an OMELement from the source. Then put it to 
the current message
+ * This mediator will first get an OMElement from the source. Then put it to 
the current message
  * according to the target element.
  * <p/>
  * Both target and source can specify a type. These are the types supported

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Source.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Source.java?rev=1210454&r1=1210453&r2=1210454&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Source.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/elementary/Source.java
 Mon Dec  5 13:20:26 2011
@@ -19,12 +19,7 @@
 
 package org.apache.synapse.mediators.elementary;
 
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.OMText;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.*;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
@@ -45,7 +40,7 @@ import java.util.List;
  * 3. SOAP Envelope
  * 4. SOAP Body
  * <p/>
- * If clone is true a clone will be create and stored from the origincal 
content. Otherwise a
+ * If clone is true a clone will be create and stored from the original 
content. Otherwise a
  * reference will be stored.
  * <p/>
  * In case of property a OMElement is stored in a property and it will be 
fetched.

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/store/MessageStoreMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/store/MessageStoreMediator.java?rev=1210454&r1=1210453&r2=1210454&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/store/MessageStoreMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/store/MessageStoreMediator.java
 Mon Dec  5 13:20:26 2011
@@ -78,8 +78,6 @@ public class MessageStoreMediator extend
 
                 }
 
-                // Ensure that the message is fully read
-                synCtx.getEnvelope().buildWithAttachments();
                 messageStore.offer(synCtx);
 
                 // with the nio transport, this causes the listener not to 
write a 202

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/InvokeMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/InvokeMediator.java?rev=1210454&r1=1210453&r2=1210454&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/InvokeMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/InvokeMediator.java
 Mon Dec  5 13:20:26 2011
@@ -63,9 +63,10 @@ public class InvokeMediator extends Abst
                 synLog.traceTrace("Message : " + synCtx.getEnvelope());
             }
         }
-        populateParameters(synCtx);
+
         //get the target function template and invoke by passing populated 
parameters
         Mediator mediator = synCtx.getSequenceTemplate(targetTemplate);
+        populateParameters(synCtx, ((TemplateMediator)mediator).getName());
         if (mediator != null && mediator instanceof TemplateMediator) {
             return mediator.mediate(synCtx);
         }
@@ -73,17 +74,19 @@ public class InvokeMediator extends Abst
     }
 
     /**
-     * poplulate declared parameters on temp synapse properties
+     * populate declared parameters on temp synapse properties
      * @param synCtx
+     * @param templateQualifiedName
      */
-    private void populateParameters(MessageContext synCtx) {
+    private void populateParameters(MessageContext synCtx, String 
templateQualifiedName) {
         Iterator<String> params = pName2ExpressionMap.keySet().iterator();
         while (params.hasNext()) {
             String parameter = params.next();
             if (!"".equals(parameter)) {
                 Value expression = pName2ExpressionMap.get(parameter);
                 if (expression != null) {
-                    EIPUtils.createSynapseEIPTemplateProperty(synCtx, 
targetTemplate, parameter, expression);
+                    EIPUtils.createSynapseEIPTemplateProperty(synCtx, 
templateQualifiedName,
+                            parameter, expression);
                 }
             }
         }

Added: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/Argument.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/Argument.java?rev=1210454&view=auto
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/Argument.java
 (added)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/Argument.java
 Mon Dec  5 13:20:26 2011
@@ -0,0 +1,44 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.synapse.mediators.transform;
+
+import org.apache.synapse.util.xpath.SynapseXPath;
+
+public class Argument {
+
+    private String value;
+    private SynapseXPath expression;
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public SynapseXPath getExpression() {
+        return expression;
+    }
+
+    public void setExpression(SynapseXPath expression) {
+        this.expression = expression;
+    }
+}


Reply via email to