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
