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
     }

_______________________________________________
Esb-java-dev mailing list
[email protected]
http://mailman.wso2.org/cgi-bin/mailman/listinfo/esb-java-dev

Reply via email to