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 2007/07/09 13:35:39 UTC

svn commit: r554608 - /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContextFactory.java

Author: deepal
Date: Mon Jul  9 04:35:38 2007
New Revision: 554608

URL: http://svn.apache.org/viewvc?view=rev&rev=554608
Log:
oh , what happen if module thr exception when we call its init method

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContextFactory.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContextFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContextFactory.java?view=diff&rev=554608&r1=554607&r2=554608
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContextFactory.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/ConfigurationContextFactory.java Mon Jul  9 04:35:38 2007
@@ -43,6 +43,7 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.Map;
 
 public class ConfigurationContextFactory {
 
@@ -54,9 +55,9 @@
      * Depending on the implementation getAxisConfiguration(), gets
      * the AxisConfiguration and uses it to create the ConfigurationContext.
      *
-     * @param axisConfigurator
+     * @param axisConfigurator : AxisConfigurator
      * @return Returns ConfigurationContext.
-     * @throws AxisFault
+     * @throws AxisFault  : If somthing goes wrong
      */
     public static ConfigurationContext createConfigurationContext(
             AxisConfigurator axisConfigurator) throws AxisFault {
@@ -204,30 +205,54 @@
      * Initializes the modules. If the module needs to perform some recovery process
      * it can do so in init and this is different from module.engage().
      *
-     * @param context
+     * @param context : ConfigurationContext
      */
     private static void initModules(ConfigurationContext context) {
-        try {
-            HashMap modules = context.getAxisConfiguration().getModules();
+        AxisConfiguration configuration = context.getAxisConfiguration();
+        HashMap modules = configuration.getModules();
             Collection col = modules.values();
+            Map faultyModule = new HashMap();
 
             for (Iterator iterator = col.iterator(); iterator.hasNext();) {
                 AxisModule axismodule = (AxisModule) iterator.next();
                 Module module = axismodule.getModule();
 
                 if (module != null) {
-                    module.init(context, axismodule);
+                    try {
+                        module.init(context, axismodule);
+                    } catch (AxisFault axisFault) {
+                        log.info(axisFault.getMessage());
+                        faultyModule.put(module,axisFault);
+                    }
                 }
             }
-        } catch (AxisFault e) {
-            log.info(e.getMessage());
-        }
+
+            //Checking whether we have found any faulty services during the module initilization ,
+            // if so we need to mark them as fautyModule and need to remove from the modules list
+            if (faultyModule.size() >0 ) {
+                Iterator axisModules = faultyModule.keySet().iterator();
+                while (axisModules.hasNext()) {
+                    AxisModule axisModule = (AxisModule) axisModules.next();
+                    String fileName;
+                    if (axisModule.getFileName() != null) {
+                         fileName = axisModule.getFileName().toString();
+                    } else {
+                        fileName = axisModule.getName();
+                    }
+                    configuration.getFaultyModules().put(fileName, faultyModule.get(axisModule));
+                    //removing from original list
+                    configuration.removeModule(org.apache.axis2.util.Utils.getModuleName(axisModule.getName()),
+                            org.apache.axis2.util.Utils.getModuleVersion(axisModule.getName()));
+                }
+            }
+
+
     }
 
     /**
      * Initializes TransportSenders and TransportListeners with appropriate configuration information
      *
-     * @param configContext
+     * @param configContext : ConfigurationContext
      */
     private static void initTransportSenders(ConfigurationContext configContext) {
         AxisConfiguration axisConf = configContext.getAxisConfiguration();



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org