[esb-java-dev] svn commit r23683 - in branches/synapse/modules/core/src/main/java/org/apache/synapse: . config core/axis2

ruwan at wso2.com ruwan at wso2.com
Tue Nov 11 03:16:02 PST 2008


Author: ruwan
Date: Tue Nov 11 03:16:01 2008
New Revision: 23683
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=23683

Log:
Fixing the OSGi related initialization issues

Modified:
   branches/synapse/modules/core/src/main/java/org/apache/synapse/ServerManager.java
   branches/synapse/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
   branches/synapse/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
   branches/synapse/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java

Modified: branches/synapse/modules/core/src/main/java/org/apache/synapse/ServerManager.java
URL: http://wso2.org/svn/browse/wso2/branches/synapse/modules/core/src/main/java/org/apache/synapse/ServerManager.java?rev=23683&r1=23682&r2=23683&view=diff
==============================================================================
--- branches/synapse/modules/core/src/main/java/org/apache/synapse/ServerManager.java	(original)
+++ branches/synapse/modules/core/src/main/java/org/apache/synapse/ServerManager.java	Tue Nov 11 03:16:01 2008
@@ -108,8 +108,6 @@
             configctx = ConfigurationContextFactory.
                     createConfigurationContextFromFileSystem(axis2Repolocation, axis2Xml);
             
-            addDefaultBuildersAndFormatters(configctx.getAxisConfiguration());
-            
             listenerManager = configctx.getListenerManager();
             if (listenerManager == null) {
                 listenerManager = new ListenerManager();
@@ -162,8 +160,6 @@
                 }
             }
 
-            synConfig.init(configctx);
-
             log.info("Ready for processing");
 
         } catch (Throwable t) {
@@ -172,15 +168,6 @@
         }
     }
 
-    private void addDefaultBuildersAndFormatters(AxisConfiguration axisConf) {
-        if (axisConf.getMessageBuilder("text/plain") == null) {
-            axisConf.addMessageBuilder("text/plain", new PlainTextBuilder());
-        }
-        if (axisConf.getMessageBuilder("application/octet-stream") == null) {
-            axisConf.addMessageBuilder("application/octet-stream", new BinaryBuilder());
-        }
-    }
-
     /**
      * stop all the listeners
      */
@@ -208,17 +195,6 @@
                 listenerManager.stop();
                 listenerManager.destroy();
             }
-
-            // clear session information used for SA load balancing
-            try {
-                RMIRegistryController.getInstance().removeLocalRegistry();
-                SALSessions.getInstance().reset();
-                InMemoryDataSourceRegistry.getInstance().clear();
-                JNDIBasedDataSourceRegistry registry = JNDIBasedDataSourceRegistry.getInstance();
-                if (registry.isInitialized()) {
-                    registry.clear();
-                }
-            } catch (Throwable ignored) {}
             
             // we need to call this method to clean the temp files we created.
             if (configctx != null) {
@@ -326,7 +302,11 @@
     }
 
     public String getSynapseHome() {
-        return synapseHome;
+        if (synapseHome != null) {
+            return synapseHome;
+        } else {
+            return getParamValue(SynapseConstants.Axis2Param.SYNAPSE_HOME);
+        }
     }
 
     public void setSynapseHome(String synapseHome) {
@@ -334,7 +314,11 @@
     }
 
     public String getResolveRoot() {
-        return resolveRoot;
+        if (resolveRoot != null) {
+            return resolveRoot;
+        } else {
+            return getParamValue(SynapseConstants.Axis2Param.SYNAPSE_RESOLVE_ROOT);
+        }
     }
 
     public void setResolveRoot(String resolveRoot) {
@@ -346,15 +330,27 @@
     }
 
     public String getServerName() {
-        return serverName;
+        if (serverName != null) {
+            return serverName;
+        } else {
+            return getParamValue(SynapseConstants.Axis2Param.SYNAPSE_SERVER_NAME);
+        }
     }
 
     public void setServerName(String serverName) {
         this.serverName = serverName;
     }
 
+    public void setConfigurationContext(ConfigurationContext configctx) {
+        this.configctx = configctx;
+    }
+
     public String getSynapseXMLPath() {
-        return synapseXMLPath;
+        if (synapseXMLPath != null) {
+            return synapseXMLPath;
+        } else {
+            return getParamValue(SynapseConstants.Axis2Param.SYNAPSE_CONFIG_LOCATION);
+        }
     }
 
     public void setSynapseXMLPath(String synapseXMLPath) {
@@ -400,4 +396,15 @@
                 SynapseConstants.GLOBAL_TIMEOUT_INTERVAL, SynapseConstants.DEFAULT_GLOBAL_TIMEOUT);
         }
     }
+
+    private String getParamValue(String paramKey) {
+        if (configctx != null) {
+            Parameter synCfgParam = configctx.getAxisConfiguration().getParameter(paramKey);
+            if (synCfgParam != null && synCfgParam.getValue() != null
+                    && synCfgParam.getValue() instanceof String) {
+                return synCfgParam.getValue().toString();
+            }
+        }
+        return null;
+    }
 }
\ No newline at end of file

Modified: branches/synapse/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
URL: http://wso2.org/svn/browse/wso2/branches/synapse/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java?rev=23683&r1=23682&r2=23683&view=diff
==============================================================================
--- branches/synapse/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java	(original)
+++ branches/synapse/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java	Tue Nov 11 03:16:01 2008
@@ -89,6 +89,18 @@
     /** The Axis2 client options property name for the Sandesha policy */
 	public static final String SANDESHA_POLICY = "sandeshaPolicy";
 
+    /** Parameter names in the axis2.xml that can be used to configure the synapse */
+    public static final class Axis2Param {
+        /** Synapse Configuration file location */
+        public static final String SYNAPSE_CONFIG_LOCATION = "SynapseConfig.ConfigurationFile";
+        /** Synapse Home directory */
+        public static final String SYNAPSE_HOME = "SynapseConfig.HomeDirectory";
+        /** Synapse resolve root */
+        public static final String SYNAPSE_RESOLVE_ROOT = "SynapseConfig.ResolveRoot";
+        /** Synapse server name */
+        public static final String SYNAPSE_SERVER_NAME = "SynapseConfig.ServerName";
+    }
+
     /** The name of the Parameter set on the Axis2Configuration to hold the Synapse Configuration */
     public static final String SYNAPSE_CONFIG = "synapse.config";
     /** The name of the Parameter set on the Axis2Configuration to hold the Synapse Environment */

Modified: branches/synapse/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
URL: http://wso2.org/svn/browse/wso2/branches/synapse/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java?rev=23683&r1=23682&r2=23683&view=diff
==============================================================================
--- branches/synapse/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java	(original)
+++ branches/synapse/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java	Tue Nov 11 03:16:01 2008
@@ -25,6 +25,9 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.*;
+import org.apache.synapse.util.RMIRegistryController;
+import org.apache.synapse.util.datasource.InMemoryDataSourceRegistry;
+import org.apache.synapse.util.datasource.JNDIBasedDataSourceRegistry;
 import org.apache.synapse.task.TaskDescriptionRepository;
 import org.apache.synapse.task.TaskDescriptionRepositoryFactory;
 import org.apache.synapse.config.xml.MediatorFactoryFinder;
@@ -32,6 +35,7 @@
 import org.apache.synapse.core.SynapseEnvironment;
 import org.apache.synapse.core.axis2.ProxyService;
 import org.apache.synapse.endpoints.Endpoint;
+import org.apache.synapse.endpoints.dispatch.SALSessions;
 import org.apache.synapse.mediators.base.SequenceMediator;
 import org.apache.synapse.mediators.ListMediator;
 import org.apache.synapse.mediators.AbstractMediator;
@@ -804,6 +808,17 @@
                 }
             }
         }
+
+        // clear session information used for SA load balancing
+        try {
+            RMIRegistryController.getInstance().removeLocalRegistry();
+            SALSessions.getInstance().reset();
+            InMemoryDataSourceRegistry.getInstance().clear();
+            JNDIBasedDataSourceRegistry registry = JNDIBasedDataSourceRegistry.getInstance();
+            if (registry.isInitialized()) {
+                registry.clear();
+            }
+        } catch (Throwable ignored) {}
     }
 
     /**
@@ -894,7 +909,6 @@
         e.init(cc);
     }
 
-
     private void handleException(String msg) {
 		log.error(msg);
 		throw new SynapseException(msg);

Modified: branches/synapse/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java
URL: http://wso2.org/svn/browse/wso2/branches/synapse/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java?rev=23683&r1=23682&r2=23683&view=diff
==============================================================================
--- branches/synapse/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java	(original)
+++ branches/synapse/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java	Tue Nov 11 03:16:01 2008
@@ -33,6 +33,8 @@
 import org.apache.synapse.SynapseConstants;
 import org.apache.synapse.SynapseException;
 import org.apache.synapse.ServerManager;
+import org.apache.synapse.format.PlainTextBuilder;
+import org.apache.synapse.format.BinaryBuilder;
 import org.apache.synapse.config.SynapseConfiguration;
 import org.apache.synapse.config.SynapseConfigurationBuilder;
 
@@ -75,6 +77,13 @@
             log.warn("Unable to determine hostname or IP address of the server for logging", e);
         }
 
+        // incase of an existing running axis2 instance is used to deploy synapse
+        if (ServerManager.getInstance().getConfigurationContext() == null) {
+            ServerManager.getInstance().setConfigurationContext(configurationContext);
+        }
+
+        addDefaultBuildersAndFormatters(configurationContext.getAxisConfiguration());
+
         // this will deploy the mediators in the mediator extensions folder
         log.info("Loading mediator extensions...");
         configurationContext.getAxisConfiguration().getConfigurator().loadServices();
@@ -137,6 +146,8 @@
                 proxy.stop(synCfg);
             }
         }
+
+        synCfg.init(configurationContext);
         
         log.info("Synapse initialized successfully...!");
     }
@@ -187,6 +198,15 @@
         return synapseConfiguration;
     }
 
+    private void addDefaultBuildersAndFormatters(AxisConfiguration axisConf) {
+        if (axisConf.getMessageBuilder("text/plain") == null) {
+            axisConf.addMessageBuilder("text/plain", new PlainTextBuilder());
+        }
+        if (axisConf.getMessageBuilder("application/octet-stream") == null) {
+            axisConf.addMessageBuilder("application/octet-stream", new BinaryBuilder());
+        }
+    }
+
     public void engageNotify(AxisDescription axisDescription) throws AxisFault {
         // ignore
     }



More information about the Esb-java-dev mailing list