Author: ruwan
Date: Mon Aug  6 06:11:50 2007
New Revision: 563126

URL: http://svn.apache.org/viewvc?view=rev&rev=563126
Log:
Cleaning the code and adding the helper class to build the properties

Added:
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyHelper.java
Modified:
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ClassMediatorFactory.java
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ClassMediatorFactory.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ClassMediatorFactory.java?view=diff&rev=563126&r1=563125&r2=563126
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ClassMediatorFactory.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ClassMediatorFactory.java
 Mon Aug  6 06:11:50 2007
@@ -45,7 +45,7 @@
  */
 public class ClassMediatorFactory extends AbstractMediatorFactory {
 
-    private static final Log log = LogFactory.getLog(LogMediatorFactory.class);
+    private static final Log log = 
LogFactory.getLog(ClassMediatorFactory.class);
 
     private static final QName CLASS_Q = new QName(Constants.SYNAPSE_NAMESPACE,
             "class");
@@ -75,68 +75,8 @@
 
         for (Iterator it = elem.getChildElements(); it.hasNext();) {
             OMElement child = (OMElement) it.next();
-            if (child.getLocalName().toLowerCase().equals("property")) {
-
-                String propertyName = child
-                        .getAttributeValue(new QName("name"));
-                String mName = "set"
-                        + Character.toUpperCase(propertyName.charAt(0))
-                        + propertyName.substring(1);
-
-                // try to set String value first
-                if (child.getAttributeValue(new QName("value")) != null) {
-                    String value = child.getAttributeValue(new QName("value"));
-
-                    try {
-                        Method method = m.getClass().getMethod(mName,
-                                new Class[]{String.class});
-                        if (log.isDebugEnabled()) {
-                            log.debug("Setting property :: invoking method "
-                                    + mName + "(" + value + ")");
-                        }
-                        method.invoke(m, new Object[]{value});
-
-                    } catch (Exception e) {
-                        String msg = "Error setting property : " + propertyName
-                                + " as a String property into class"
-                                + " mediator : " + m.getClass() + " : "
-                                + e.getMessage();
-                        throw new SynapseException(msg, e);
-
-                    }
-                } else if (child.getAttributeValue(new QName("expression")) != 
null) {
-                    // check whether there is an XPATH exp for the property 
value
-                    // todo:
-                } else {
-                    // now try XML child
-                    OMElement value = child.getFirstElement();
-                    if (value != null) {
-
-                        try {
-                            Method method = m.getClass().getMethod(mName,
-                                    new Class[]{OMElement.class});
-                            if (log.isDebugEnabled()) {
-                                log
-                                        .debug("Setting property :: invoking 
method "
-                                                + mName + "(" + value + ")");
-                            }
-                            method.invoke(m, new Object[]{value});
-
-                        } catch (Exception e) {
-                            String msg = "Error setting property : "
-                                    + propertyName
-                                    + " as an OMElement property into class"
-                                    + " mediator : " + m.getClass() + " : "
-                                    + e.getMessage();
-                            throw new SynapseException(msg, e);
-
-                        }
-
-                    }
-
-                    // 
classMediator.addAllProperties(MediatorPropertyFactory.getMediatorProperties(elem));
-
-                }
+            if(PropertyHelper.isStaticProperty(child)) {
+                PropertyHelper.setStaticProperty(child, m);
             }
         }
 

Added: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyHelper.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyHelper.java?view=auto&rev=563126
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyHelper.java
 (added)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyHelper.java
 Mon Aug  6 06:11:50 2007
@@ -0,0 +1,138 @@
+/*
+ *  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.config.xml;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.MessageContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.xml.namespace.QName;
+import java.lang.reflect.Method;
+
+/**
+ * This class will be used as a Helper class to get the properties loaded 
while building the
+ * Synapse Configuration from the XML
+ */
+public class PropertyHelper {
+
+    /**
+     * Log variable for the logging purposes
+     */
+    private static final Log log = LogFactory.getLog(PropertyHelper.class);
+
+    /**
+     * This method will set the static property discribed in the OMElement to 
the specified object.
+     * This Object should have the setter method for the specified property 
name
+     * 
+     * @param property - OMElement specifying the property to be built in to 
the object
+     * @param o - Object to which the specified property will be set.
+     */
+    public static void setStaticProperty(OMElement property, Object o) {
+
+        if (property.getLocalName().toLowerCase().equals("property")) {
+
+            String propertyName = property.getAttributeValue(new 
QName("name"));
+            String mName = "set"
+                    + Character.toUpperCase(propertyName.charAt(0))
+                    + propertyName.substring(1);
+
+            // try to set String value first
+            if (property.getAttributeValue(new QName("value")) != null) {
+                String value = property.getAttributeValue(new QName("value"));
+
+                try {
+                    Method method = o.getClass().getMethod(mName,
+                            new Class[]{String.class});
+                    if (log.isDebugEnabled()) {
+                        log.debug("Setting property :: invoking method "
+                                + mName + "(" + value + ")");
+                    }
+                    method.invoke(o, new Object[]{value});
+
+                } catch (Exception e) {
+                    String msg = "Error setting property : " + propertyName
+                            + " as a String property into class"
+                            + " mediator : " + o.getClass() + " : "
+                            + e.getMessage();
+                    throw new SynapseException(msg, e);
+
+                }
+                
+            } else {
+                // now try XML child
+                OMElement value = property.getFirstElement();
+                if (value != null) {
+
+                    try {
+                        Method method = o.getClass().getMethod(mName,
+                                new Class[]{OMElement.class});
+                        if (log.isDebugEnabled()) {
+                            log
+                                    .debug("Setting property :: invoking 
method "
+                                            + mName + "(" + value + ")");
+                        }
+                        method.invoke(o, new Object[]{value});
+
+                    } catch (Exception e) {
+                        String msg = "Error setting property : "
+                                + propertyName
+                                + " as an OMElement property into class"
+                                + " mediator : " + o.getClass() + " : "
+                                + e.getMessage();
+                        throw new SynapseException(msg, e);
+
+                    }
+
+                }
+
+            }
+        }
+    }
+
+    /**
+     * This method will be called in the mediation time to set the dynamic 
properties specified by
+     * XPATH functions over the message context to the specified object. In 
this case the setter
+     * method should be present for the specified property name
+     * 
+     * @param property - OMElement specifying the property to get the XPATH 
expression
+     * @param o - Object to which the executed XPATH function value over the 
MC will be set
+     * @param synCtx - MessageContext containg the message over which the 
XPATH function will
+     *                 be executed
+     */
+    public static void setDynamicProperty(OMElement property, Object o, 
MessageContext synCtx) {
+
+        // todo: ruwan
+    }
+
+    /**
+     * This method will check the given OMElement represent either a static 
property or not
+     * 
+     * @param property - OMElement to be checked for the static property
+     * @return boolean true id the elemet represents a static property element 
false otherwise
+     */
+    public static boolean isStaticProperty(OMElement property) {
+
+        return "property".equals(property.getLocalName().toLowerCase())
+                && (property.getAttributeValue(new QName("value")) != null);
+
+    }
+}

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java?view=diff&rev=563126&r1=563125&r2=563126
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
 Mon Aug  6 06:11:50 2007
@@ -128,9 +128,14 @@
     }
 
     public MessageContext createMessageContext() {
-       log.debug("Creating Message Context");
+
+        if (log.isDebugEnabled()) {
+            log.debug("Creating Message Context");
+        }
+        
         org.apache.axis2.context.MessageContext axis2MC
                 = new org.apache.axis2.context.MessageContext();
+        axis2MC.setConfigurationContext(this.configContext);
         MessageContext mc = new Axis2MessageContext(axis2MC, synapseConfig, 
this);
                try {
                        
mc.setEnvelope(OMAbstractFactory.getSOAP12Factory().createSOAPEnvelope());

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java?view=diff&rev=563126&r1=563125&r2=563126
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java
 Mon Aug  6 06:11:50 2007
@@ -28,6 +28,12 @@
 
 import org.apache.synapse.core.SynapseEnvironment;
 import org.apache.synapse.mediators.AbstractMediator;
+import org.apache.axiom.om.OMElement;
+
+import java.util.Map;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
 
 /**
  * The class mediator delegates the mediation to a new instance of a specified
@@ -43,7 +49,9 @@
 
        private Mediator mediator = null;
 
-       /**
+    private List properties = new ArrayList();
+
+    /**
         * Don't use a new instance... do one instance of the object per 
instance of
         * this mediator
         * 
@@ -67,7 +75,6 @@
                        if (mediator == null) {
                                if (log.isDebugEnabled()) {
                                        log.debug("The instance of the 
specified mediator is null");
-
                                }
                                return true;
                        }
@@ -83,8 +90,6 @@
                }
        }
 
-       
-
        public void destroy() {
                log.debug("destroy");
                if (mediator instanceof ManagedLifecycle) {
@@ -112,4 +117,12 @@
        public Mediator getMediator() {
                return mediator;
        }
+
+    public void addProperty(OMElement property) {
+        properties.add(property);
+    }
+
+    public List getProperties() {
+        return this.properties;
+    }
 }



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

Reply via email to