You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by de...@apache.org on 2005/09/06 07:07:31 UTC

svn commit: r278911 - in /webservices/axis2/trunk/java/modules/core/src/org/apache/axis2: context/MessageContext.java engine/AxisConfiguration.java engine/AxisConfigurationImpl.java

Author: deepal
Date: Mon Sep  5 22:07:18 2005
New Revision: 278911

URL: http://svn.apache.org/viewcvs?rev=278911&view=rev
Log:
removed the code which gives parameter when we ask for properties
and added two methods to get parameter and module parameter

Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisConfiguration.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisConfigurationImpl.java

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java?rev=278911&r1=278910&r2=278911&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/context/MessageContext.java Mon Sep  5 22:07:18 2005
@@ -21,6 +21,7 @@
 import org.apache.axis2.addressing.miheaders.RelatesTo;
 import org.apache.axis2.description.*;
 import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.engine.AxisConfigurationImpl;
 import org.apache.axis2.soap.SOAP11Constants;
 import org.apache.axis2.soap.SOAP12Constants;
 import org.apache.axis2.soap.SOAPEnvelope;
@@ -573,20 +574,72 @@
         return param;
     }
 
-    public Parameter getModuleParameter(String key, String moduleName){
+
+    /**
+     * This method is to retrive both module configuration parameters and othere paramerts
+     * The searching procedure is as follows;
+     *  1. Search in module configurations inside corresponding operation descripton if its three
+     *  2. Search in corresponding operation if its there
+     *  3. Search in module configurations inside corresponding service description if its there
+     *  4. Next search in Corresponding Service description if its there
+     *  5. Next sercah in module configurations inside axisConfiguration
+     *  6. Search in AxisConfiguration for paramters
+     *  7. Next get the corresponding module and search for the paramters
+     *  8. Search in HandlerDescription for the paramter
+     *
+     * and the way of specifing mdoule configuration is as follows
+     * <moduleConfig name="addressing">
+     *      <parameter name="addressingPara" locked="false">N/A</parameter>
+     * </moduleConfig>
+     * @param key   : Paramtre Name
+     * @param moduleName : Name of the module
+     * @param handler  <code>HandlerDescription</code>
+     * @return  Parameter <code>Parameter</code>
+     */
+    public Parameter getModuleParameter(String key, String moduleName , HandlerDescription handler){
         Parameter param = null;
+        ModuleConfiguration moduleConfig = null;
         if (operationContext != null) {
             OperationDescription opDesc = operationContext.getAxisOperation();
-            param = opDesc.getParameter(key);
+            moduleConfig = opDesc.getModuleConfig(new QName(moduleName));
+            if(moduleConfig != null){
+                param =  moduleConfig.getParameter(key);
+            }
+            if(param == null){
+                param = opDesc.getParameter(key);
+            }
         }
         if (param == null && serviceContext != null) {
             ServiceDescription serviceDesc = serviceContext.getServiceConfig();
-            param = serviceDesc.getParameter(key);
+            moduleConfig = serviceDesc.getModuleConfig(new QName(moduleName));
+            if(moduleConfig != null){
+                param =  moduleConfig.getParameter(key);
+            }
+            if(param == null){
+                param = serviceDesc.getParameter(key);
+            }
         }
-        if (param == null && configurationContext != null) {
+        if (param == null) {
             AxisConfiguration baseConfig =
                     configurationContext.getAxisConfiguration();
-            param = baseConfig.getParameter(key);
+
+            moduleConfig = ((AxisConfigurationImpl)baseConfig).getModuleConfig(new QName(moduleName));
+            if(moduleConfig != null){
+                param =  moduleConfig.getParameter(key);
+            }
+            if(param == null){
+                param = baseConfig.getParameter(key);
+            }
+        }
+        if(param == null){
+            AxisConfiguration baseConfig = configurationContext.getAxisConfiguration();
+            ModuleDescription module = baseConfig.getModule(new QName(moduleName));
+            if(module != null){
+                param = module.getParameter(key);
+            }
+        }
+        if(param == null ){
+            param = handler.getParameter(key);
         }
         return param;
     }
@@ -595,6 +648,15 @@
     /* (non-Javadoc)
     * @see org.apache.axis2.context.AbstractContext#getProperty(java.lang.Object, boolean)
     */
+
+    /**
+     *  To acess any property set at the run time , a handler can add property to wherever he wants
+     * to MesageContext , to OperationContext , to ServiceContext and to ConfigurationContext.
+     * This method is to retrive those properties NOT paramters
+     * @param key  : property Name
+     * @param persistent : need to be persistent even when server re-start
+     * @return Object
+     */
     public Object getProperty(String key, boolean persistent) {
         // search in MC
         Object obj = super.getProperty(key, persistent);
@@ -602,22 +664,16 @@
         //The context hirachy might not have constructed fully, the check should
         //look for the disconnected grandparents
         // Search in Operation Context
-        if(obj != null){
-            return obj;
-        }
-        if(operationContext != null) {
+        if(operationContext != null && obj == null ) {
             obj = operationContext.getProperty(key, persistent);
-            return obj;
         }
         //Search in ServiceContext
-        if(serviceContext != null){
+        if(serviceContext != null && obj == null ){
             obj = serviceContext.getProperty(key, persistent);
-            return obj;
-        } else {
-
+        }
+        if(obj == null) {
             // search in Configuration Context
             obj = configurationContext.getProperty(key, persistent);
-            return obj;
         }
 
 //
@@ -647,7 +703,7 @@
 //        if (param != null) {
 //            obj = param.getValue();
 //        }
-//        return obj;
+        return obj;
     }
 
     /**

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisConfiguration.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisConfiguration.java?rev=278911&r1=278910&r2=278911&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisConfiguration.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisConfiguration.java Mon Sep  5 22:07:18 2005
@@ -80,7 +80,7 @@
      * @return
      * @throws AxisFault
      */
-    public ModuleDescription getModule(QName name) throws AxisFault;
+    public ModuleDescription getModule(QName name);
 
     /**
      * Method addMdoule

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisConfigurationImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisConfigurationImpl.java?rev=278911&r1=278910&r2=278911&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisConfigurationImpl.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisConfigurationImpl.java Mon Sep  5 22:07:18 2005
@@ -195,7 +195,7 @@
      * @return
      * @throws AxisFault
      */
-    public ModuleDescription getModule(QName name) throws AxisFault {
+    public ModuleDescription getModule(QName name) {
         return (ModuleDescription) modules.get(name);
     }