You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ru...@apache.org on 2008/06/09 12:43:22 UTC
svn commit: r664672 [1/7] - in /synapse/trunk/java: ./ modules/core/
modules/core/src/main/java/org/apache/synapse/
modules/core/src/main/java/org/apache/synapse/config/
modules/core/src/main/java/org/apache/synapse/config/xml/
modules/core/src/main/ja...
Author: ruwan
Date: Mon Jun 9 03:43:19 2008
New Revision: 664672
URL: http://svn.apache.org/viewvc?rev=664672&view=rev
Log:
Merging the 1.2 branch back to the trunk, with changing the version to SNAPSHOT
Added:
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/format/BinaryBuilder.java
- copied unchanged from r664651, synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/format/BinaryBuilder.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/format/PlainTextBuilder.java
- copied unchanged from r664651, synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/format/PlainTextBuilder.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/util/SharedInputBuffer.java
- copied unchanged from r664651, synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/util/SharedInputBuffer.java
synapse/trunk/java/repository/conf/sample/synapse_sample_155.xml
- copied unchanged from r664651, synapse/branches/1.2/repository/conf/sample/synapse_sample_155.xml
Removed:
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/util/PipeImpl.java
Modified:
synapse/trunk/java/modules/core/pom.xml
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/ServerManager.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseServer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigUtils.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorSerializerFinder.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL11EndpointBuilder.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseStartUpServlet.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/TimeoutHandler.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AddressEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/DefaultEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/EndpointContext.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/IndirectEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/WSDLEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/algorithms/AlgorithmContext.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/algorithms/RoundRobin.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/dispatch/Dispatcher.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/dispatch/DispatcherContext.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/dispatch/HttpSessionDispatcher.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/dispatch/SimpleClientSessionDispatcher.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/dispatch/SoapSessionDispatcher.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/Aggregate.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/startup/quartz/SimpleQuartz.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/DataSourceRegistrar.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/RMIRegistryController.java
synapse/trunk/java/modules/core/src/main/resources/log4j.properties
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/db/DBLookupMediatorTest.java
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/db/DBReportMediatorTest.java
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/n2n/SynapseCommodityServiceTest.java
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/util/MessageHelperTest.java
synapse/trunk/java/modules/extensions/pom.xml
synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMediator.java
synapse/trunk/java/modules/handler/pom.xml
synapse/trunk/java/modules/handler/src/main/java/org/apache/synapse/handler/SynapseModule.java
synapse/trunk/java/modules/mar/pom.xml
synapse/trunk/java/modules/samples/pom.xml
synapse/trunk/java/modules/samples/services/FastStockQuoteService/wsdl/FastStockQuoteService.wsdl
synapse/trunk/java/modules/samples/src/main/java/samples/userguide/FIXClient.java
synapse/trunk/java/modules/samples/src/main/java/samples/userguide/LoadbalanceFailoverClient.java
synapse/trunk/java/modules/samples/src/main/java/samples/userguide/MTOMSwAClient.java
synapse/trunk/java/modules/samples/src/main/java/samples/userguide/ThreadedClient.java
synapse/trunk/java/modules/samples/src/main/scripts/build.xml
synapse/trunk/java/modules/samples/src/test/java/org/apache/synapse/samples/n2n/AbstractAutomationTestCase.java
synapse/trunk/java/modules/samples/src/test/java/org/apache/synapse/samples/n2n/SynapseSample_102_Integration.java
synapse/trunk/java/modules/samples/src/test/java/org/apache/synapse/samples/n2n/SynapseSample_51_Integration.java
synapse/trunk/java/modules/transports/pom.xml
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/AbstractPollingTransportListener.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/AbstractTransportListener.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/base/BaseUtils.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/jms/JMSListener.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/jms/JMSUtils.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/MailTransportListener.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/mail/MailUtils.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/ClientWorker.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/ConnectionPool.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListener.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/NHttpConfiguration.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/ServerWorker.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSTransportListener.java
synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/vfs/VFSUtils.java
synapse/trunk/java/modules/war/pom.xml
synapse/trunk/java/pom.xml
synapse/trunk/java/repository/conf/axis2.xml
synapse/trunk/java/repository/conf/sample-server-wrapper.conf
synapse/trunk/java/repository/conf/sample/resources/misc/server/axis2.xml
synapse/trunk/java/repository/conf/synapse.properties
synapse/trunk/java/repository/conf/web.xml
synapse/trunk/java/repository/conf/wrapper.conf
synapse/trunk/java/src/main/assembly/bin.xml
synapse/trunk/java/src/main/bin/synapse.bat
synapse/trunk/java/src/main/bin/synapse.sh
synapse/trunk/java/src/main/release/NOTICE
synapse/trunk/java/src/main/release/README.txt
synapse/trunk/java/src/main/release/docs/release_notes.txt
synapse/trunk/java/src/site/xdoc/Synapse_Configuration_Language.xml
synapse/trunk/java/src/site/xdoc/Synapse_Extending.xml
synapse/trunk/java/src/site/xdoc/Synapse_QuickStart.xml
synapse/trunk/java/src/site/xdoc/Synapse_Samples.xml
synapse/trunk/java/src/site/xdoc/Synapse_Samples_Setup.xml
Modified: synapse/trunk/java/modules/core/pom.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/pom.xml?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/pom.xml (original)
+++ synapse/trunk/java/modules/core/pom.xml Mon Jun 9 03:43:19 2008
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.synapse</groupId>
<artifactId>Apache-Synapse</artifactId>
- <version>1.2-SNAPSHOT</version>
+ <version>SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/ServerManager.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/ServerManager.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/ServerManager.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/ServerManager.java Mon Jun 9 03:43:19 2008
@@ -24,11 +24,14 @@
import org.apache.axis2.description.TransportInDescription;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.AxisModule;
+import org.apache.axis2.engine.AxisConfiguration;
import org.apache.axis2.engine.ListenerManager;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.core.SynapseEnvironment;
+import org.apache.synapse.format.BinaryBuilder;
+import org.apache.synapse.format.PlainTextBuilder;
import org.apache.synapse.transport.nhttp.NhttpConstants;
import org.apache.synapse.util.ClasspathURLStreamHandler;
import org.apache.synapse.util.RMIRegistryController;
@@ -49,40 +52,48 @@
public class ServerManager {
- private static ServerManager instance;
private static final Log log = LogFactory.getLog(ServerManager.class);
+
+ /** The singleton server manager instance */
+ private static ServerManager instance = new ServerManager();
+
+ /** The Axis2 repository location */
private String axis2Repolocation;
+ /** The path to the axis2.xml file */
private String axis2Xml;
+ /** The synapse home is the home directory of the Synapse installation */
+ private String synapseHome;
+ /** The path to the synapse.xml file */
+ private String synapseXMLPath;
+ /** The root directory to resolve paths for registry, default to synapse.home/repository */
+ private String resolveRoot;
+ /** An optional server name to activate pinned services, tasks etc.. and to differentiate instances on a cluster */
+ private String serverName = "localhost";
+
+ /** The Axis2 listener Manager */
private ListenerManager listenerManager;
+ /** The Axis2 configuration context used by Synapse */
private ConfigurationContext configctx;
- private static final int DEFAULT_HTTP_PORT = 8080;
- private static final int ALTERNATIVE_HTTP_PORT = 8008;
+ /** Reference to the Synapse configuration */
+ private SynapseConfiguration synConfig = null;
private Map callbackStore = null;
/**
- * To ensure that there is a only one Manager
- * @return Server Manager Instance
+ * return the singleton server manager
+ * @return ServerManager Instance
*/
public static ServerManager getInstance() {
- if (instance == null) {
- instance = new ServerManager();
- }
return instance;
}
- public void setAxis2Repolocation(String axis2Repolocation) {
- this.axis2Repolocation = axis2Repolocation;
- }
-
- public void setAxis2Xml(String axis2Xml) {
- this.axis2Xml = axis2Xml;
- }
-
/**
* starting all the listeners
*/
public void start() {
+ // validate if we can start
+ validate();
+
// Register custom protocol handler classpath://
try {
URL.setURLStreamHandlerFactory(new URLStreamHandlerFactoryImpl());
@@ -91,28 +102,17 @@
"Custom URL protocols may not work properly (e.g. classpath://)");
}
- if (axis2Repolocation == null) {
- log.fatal("The Axis2 Repository must be provided");
- return;
- }
- log.info("Using the Axis2 Repository : "
- + new File(axis2Repolocation).getAbsolutePath());
-
- if (axis2Xml != null) {
- log.info("Using the axis2.xml : " + new File(axis2Xml).getAbsolutePath());
- }
-
try {
configctx = ConfigurationContextFactory.
createConfigurationContextFromFileSystem(axis2Repolocation, axis2Xml);
+ addDefaultBuildersAndFormatters(configctx.getAxisConfiguration());
+
listenerManager = configctx.getListenerManager();
if (listenerManager == null) {
listenerManager = new ListenerManager();
listenerManager.init(configctx);
}
- // decide on HTTP port to execute
- selectPort(configctx);
for (Object o : configctx.getAxisConfiguration().getTransportsIn().keySet()) {
@@ -134,11 +134,14 @@
= configctx.getAxisConfiguration().getParameter(SynapseConstants.SYNAPSE_ENV);
Parameter synCfg
= configctx.getAxisConfiguration().getParameter(SynapseConstants.SYNAPSE_CONFIG);
+
String message = "Unable to initialize the Synapse Configuration : Cannot find the ";
if (synCfg == null || synCfg.getValue() == null
|| !(synCfg.getValue() instanceof SynapseConfiguration)) {
log.fatal(message + "Synapse Configuration");
throw new SynapseException(message + "Synapse Configuration");
+ } else {
+ synConfig = (SynapseConfiguration) synCfg.getValue();
}
if (synEnv == null || synEnv.getValue() == null
@@ -155,11 +158,22 @@
stp.init((SynapseEnvironment) synEnv.getValue());
}
}
- }
+ }
+
log.info("Ready for processing");
} catch (Throwable t) {
- log.fatal("Startup failed...", t);
+ log.fatal("Synaps startup failed...", t);
+ throw new SynapseException("Synapse startup failed", t);
+ }
+ }
+
+ 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());
}
}
@@ -192,7 +206,7 @@
listenerManager.destroy();
}
- //we need to call this method to clean the temp files we created.
+ // we need to call this method to clean the temp files we created.
if (configctx != null) {
configctx.terminate();
}
@@ -202,79 +216,6 @@
}
/**
- * Helper method to select a alternate port if the currently selected port is in use
- * @param configCtx configuration context
- */
- private static void selectPort(ConfigurationContext configCtx) {
- // check if configured port is available
- TransportInDescription trsIn = (TransportInDescription)
- configCtx.getAxisConfiguration().getTransportsIn().get("http");
-
- if (trsIn != null) {
-
- int port = DEFAULT_HTTP_PORT;
- String bindAddress = null;
-
- String strPort = System.getProperty("port");
- if (strPort != null) {
- // port is specified as a VM parameter
- try {
- port = Integer.parseInt(strPort);
- } catch (NumberFormatException e) {
- // user supplied parameter is not a valid integer. so use the port in configuration.
- log.error("System property 'port' does not provide a valid integer");
- }
- }
-
- Parameter param = trsIn.getParameter("port");
- if (param != null && param.getValue() != null) {
- port = Integer.parseInt(param.getValue().toString());
- }
-
- param = trsIn.getParameter(NhttpConstants.BIND_ADDRESS);
- if (param != null && param.getValue() != null) {
- bindAddress = ((String) param.getValue()).trim();
- }
-
- while (true) {
- ServerSocket sock = null;
- try {
- if (bindAddress == null) {
- sock = new ServerSocket(port);
- } else {
- sock = new ServerSocket(port, 50, InetAddress.getByName(bindAddress));
- }
- trsIn.getParameter("port").setValue(Integer.toString(port));
- break;
- } catch (Exception e) {
- log.warn("Port " + port + " already in use. Trying alternate");
- if (port == DEFAULT_HTTP_PORT) {
- port = ALTERNATIVE_HTTP_PORT;
- } else {
- port++;
- }
- } finally {
- if (sock != null) {
- try {
- sock.close();
- } catch (Exception e) {
- // do nothing
- }
- }
- }
- }
- }
- }
-
- public ConfigurationContext getConfigurationContext() {
- return configctx;
- }
-
- public void setCallbackStore(Map callbackStore) {
- this.callbackStore = callbackStore;
- }
-
- /**
* Expose the number of callbacks in the callback store
* @return the number of callbacks (messages) waiting for responses
*/
@@ -300,4 +241,149 @@
return urlSH;
}
}
+
+ /**
+ * Validate core settings for startup
+ */
+ private void validate() {
+ if (synapseHome == null || !new File(synapseHome).exists()) {
+ handleFatal("Synapse home");
+ } else {
+ log.info("Using Synapse home as : " + synapseHome);
+ }
+
+ if (axis2Repolocation == null || !new File(axis2Repolocation).exists()) {
+ handleFatal("Axis2 repository");
+ } else {
+ log.info("Using the Axis2 Repository : " + new File(axis2Repolocation).getAbsolutePath());
+ }
+
+ if (axis2Xml == null || !new File(axis2Xml).exists()) {
+ handleFatal("axis2.xml location");
+ } else {
+ log.info("Using the axis2.xml : " + new File(axis2Xml).getAbsolutePath());
+ }
+
+ if (synapseXMLPath == null || !new File(synapseXMLPath).exists()) {
+ handleFatal("synapse.xml path");
+ }
+
+ if (serverName == null) {
+ try {
+ serverName = InetAddress.getLocalHost().getHostName();
+ } catch (UnknownHostException ignore) {}
+ log.info("The server name was not specified, defaulting to : " + serverName);
+ } else {
+ log.info("Using server name : " + serverName);
+ }
+
+ log.info("The timeout handler will run every : " + (getTimeoutHandlerInterval()/1000) + "s");
+ }
+
+ public void handleFatal(String msgPre) {
+ String msg = "The " + msgPre + " must be set as a system property or init-parameter";
+ log.fatal(msg);
+ throw new SynapseException(msg);
+ }
+
+ // getters and setters
+ public ConfigurationContext getConfigurationContext() {
+ return configctx;
+ }
+
+ public void setCallbackStore(Map callbackStore) {
+ this.callbackStore = callbackStore;
+ }
+
+ public void setAxis2Repolocation(String axis2Repolocation) {
+ if (!new File(axis2Repolocation).isAbsolute() && synapseHome != null) {
+ this.axis2Repolocation = synapseHome + File.separator + axis2Repolocation;
+ } else {
+ this.axis2Repolocation = axis2Repolocation;
+ }
+ }
+
+ public void setAxis2Xml(String axis2Xml) {
+ if (!new File(axis2Xml).isAbsolute() && synapseHome != null) {
+ this.axis2Xml = synapseHome + File.separator + axis2Xml;
+ } else {
+ this.axis2Xml = axis2Xml;
+ }
+ }
+
+ public String getSynapseHome() {
+ return synapseHome;
+ }
+
+ public void setSynapseHome(String synapseHome) {
+ this.synapseHome = synapseHome;
+ }
+
+ public String getResolveRoot() {
+ return resolveRoot;
+ }
+
+ public void setResolveRoot(String resolveRoot) {
+ if (!new File(resolveRoot).isAbsolute() && synapseHome != null) {
+ this.resolveRoot = synapseHome + File.separator + resolveRoot;
+ } else {
+ this.resolveRoot = resolveRoot;
+ }
+ }
+
+ public String getServerName() {
+ return serverName;
+ }
+
+ public void setServerName(String serverName) {
+ this.serverName = serverName;
+ }
+
+ public String getSynapseXMLPath() {
+ return synapseXMLPath;
+ }
+
+ public void setSynapseXMLPath(String synapseXMLPath) {
+ if (!new File(synapseXMLPath).isAbsolute() && synapseHome != null) {
+ this.synapseXMLPath = synapseHome + File.separator + synapseXMLPath;
+ } else {
+ this.synapseXMLPath = synapseXMLPath;
+ }
+ }
+
+ public int getConnectTimeout() {
+ if (synConfig == null) {
+ return (int) SynapseConstants.DEFAULT_GLOBAL_TIMEOUT;
+ } else {
+ return (int) synConfig.getProperty(
+ SynapseConstants.CONNECTTIMEOUT, SynapseConstants.DEFAULT_CONNECTTIMEOUT);
+ }
+ }
+
+ public int getReadTimeout() {
+ if (synConfig == null) {
+ return SynapseConstants.DEFAULT_READTIMEOUT;
+ } else {
+ return (int) synConfig.getProperty(
+ SynapseConstants.READTIMEOUT, SynapseConstants.DEFAULT_READTIMEOUT);
+ }
+ }
+
+ public long getTimeoutHandlerInterval() {
+ if (synConfig == null) {
+ return SynapseConstants.DEFAULT_TIMEOUT_HANDLER_INTERVAL;
+ } else {
+ return synConfig.getProperty(
+ SynapseConstants.TIMEOUT_HANDLER_INTERVAL, SynapseConstants.DEFAULT_TIMEOUT_HANDLER_INTERVAL);
+ }
+ }
+
+ public long getGlobalTimeoutInterval() {
+ if (synConfig == null) {
+ return SynapseConstants.DEFAULT_GLOBAL_TIMEOUT;
+ } else {
+ return synConfig.getProperty(
+ SynapseConstants.GLOBAL_TIMEOUT_INTERVAL, SynapseConstants.DEFAULT_GLOBAL_TIMEOUT);
+ }
+ }
}
\ No newline at end of file
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java Mon Jun 9 03:43:19 2008
@@ -96,12 +96,12 @@
/** The name of the system property that will hold the Synapse home directory */
public static final String SYNAPSE_HOME = "synapse.home";
- /** The default synapse.properties file path */
- public static final String DEFAULT_PROP_PATH = "synapse.properties";
/** The name of the system property used to specify/override the Synapse config XML location */
public static final String SYNAPSE_XML = "synapse.xml";
/** The name of the system property used to specify/override the Synapse properties location */
public static final String SYNAPSE_PROPERTIES = "synapse.properties";
+ /** conf directory name **/
+ public static final String CONF_DIRECTORY = "conf";
//- Synapse Message Context Properties -
/** The Synapse MC property name that holds the name of the Proxy service thats handling it */
@@ -237,7 +237,7 @@
public static final String FORMAT_SOAP12 = "soap12";
/** Synapse server instance name */
- public static final String SYNAPSE_SERVER_NAME = "SynapseServerName";
+ public static final String SERVER_NAME = "serverName";
public static final String SYNAPSE_DATASOURCES = "synapse.datasources";
@@ -250,9 +250,9 @@
public static final int DEFAULT_CONNECTTIMEOUT = 20000;
- public static final String READTIMEOUT = "Connection.ReadTimeout";
+ public static final String READTIMEOUT = "synapse.connection.read_timeout";
- public static final String CONNECTTIMEOUT = "Connection.ConnectTimeout";
+ public static final String CONNECTTIMEOUT = "synapse.connection.connect_timeout";
/** chunk size and chunk length configuration parameters */
public static final int DEFAULT_THRESHOLD_CHUNKS = 8;
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseServer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseServer.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseServer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseServer.java Mon Jun 9 03:43:19 2008
@@ -19,6 +19,7 @@
package org.apache.synapse;
+import org.apache.axis2.Constants;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -27,26 +28,56 @@
/**
* This is the class invoked by the command line scripts synapse.sh and synapse-daemon.sh to
* start an instance of Synapse. This class calls on the ServerManager to start up the instance
+ *
+ * TODO Switch to using commons-cli and move all command line parameter processing etc from the
+ * .sh and .bat into this.. for 1.3 release :)
*/
public class SynapseServer {
private static final Log log = LogFactory.getLog(SynapseServer.class);
+ private static final String USAGE_TXT =
+ "Usage: SynapseServer <axis2_repository> <axis2_xml> <synapse_home> <synapse_xml> <resolve_root>" +
+ "\n Opts: -? this message";
+
public static void printUsage() {
- System.out.println("Usage: SynapseServer <repository>");
- System.out.println(" Opts: -? this message");
+ System.out.println(USAGE_TXT);
System.exit(1);
}
public static void main(String[] args) throws Exception {
// first check if we should print usage
- if (args.length != 1 || !new File(args[0]).exists()) {
+ if (args.length != 1 && args.length != 4 && args.length != 5 && args.length != 6) {
printUsage();
}
ServerManager serverManager = ServerManager.getInstance();
serverManager.setAxis2Repolocation(args[0]);
+ if (args.length == 1) {
+ log.warn("Configuring server manager using deprecated system properties; please update your configuration");
+ serverManager.setAxis2Xml(System.getProperty(Constants.AXIS2_CONF));
+ serverManager.setSynapseHome(System.getProperty(SynapseConstants.SYNAPSE_HOME));
+ serverManager.setSynapseXMLPath(System.getProperty(SynapseConstants.SYNAPSE_XML));
+ serverManager.setResolveRoot(System.getProperty(SynapseConstants.RESOLVE_ROOT));
+ } else if(args.length == 4) {
+ serverManager.setAxis2Xml(args[1]);
+ serverManager.setSynapseHome(args[2]);
+ serverManager.setSynapseXMLPath(args[3]);
+ serverManager.setResolveRoot(args[2] + File.separator + "repository");
+ } else if(args.length == 5) {
+ serverManager.setAxis2Xml(args[1]);
+ serverManager.setSynapseHome(args[2]);
+ serverManager.setSynapseXMLPath(args[3]);
+ serverManager.setResolveRoot(args[4]);
+ } else if(args.length == 6) {
+ serverManager.setAxis2Xml(args[1]);
+ serverManager.setSynapseHome(args[2]);
+ serverManager.setSynapseXMLPath(args[3]);
+ serverManager.setResolveRoot(args[4]);
+ serverManager.setServerName(args[5]);
+ }
+
serverManager.start();
addShutdownHook();
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigUtils.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigUtils.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigUtils.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigUtils.java Mon Jun 9 03:43:19 2008
@@ -25,6 +25,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.ServerManager;
import org.apache.synapse.util.SynapseBinaryDataSource;
import org.xml.sax.InputSource;
@@ -134,7 +135,7 @@
log.debug("Can not open a connection to the URL with a path :" +
path);
}
- String synapseHome = System.getProperty(SynapseConstants.SYNAPSE_HOME);
+ String synapseHome = ServerManager.getInstance().getSynapseHome();
if (synapseHome != null) {
if (log.isDebugEnabled()) {
log.debug("Trying to resolve an absolute path of the " +
@@ -297,29 +298,11 @@
}
private static int getReadTimeout() {
- //getting read timeout
- String readTO = System.getProperty(SynapseConstants.READTIMEOUT);
- int readTimeout = SynapseConstants.DEFAULT_READTIMEOUT;
- if (readTO != null && !"".equals(readTO)) {
- try {
- readTimeout = Integer.parseInt(readTO);
- } catch (NumberFormatException ignored) {
- }
- }
- return readTimeout;
+ return ServerManager.getInstance().getReadTimeout();
}
private static int getConnectionTimeout() {
- //getting connection timeout
- String connectionTO = System.getProperty(SynapseConstants.CONNECTTIMEOUT);
- int connectionTimeout = SynapseConstants.DEFAULT_CONNECTTIMEOUT;
- if (connectionTO != null && !"".equals(connectionTO)) {
- try {
- connectionTimeout = Integer.parseInt(connectionTO);
- } catch (NumberFormatException ignored) {
- }
- }
- return connectionTimeout;
+ return ServerManager.getInstance().getConnectTimeout();
}
private static void handleException(String msg, Exception e) {
@@ -369,7 +352,7 @@
log.debug("Can not open a connection to the URL with a path :" +
path);
}
- String synapseHome = System.getProperty(SynapseConstants.SYNAPSE_HOME);
+ String synapseHome = ServerManager.getInstance().getSynapseHome();
if (synapseHome != null) {
if (synapseHome.endsWith("/")) {
synapseHome = synapseHome.substring(0, synapseHome.lastIndexOf("/"));
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java Mon Jun 9 03:43:19 2008
@@ -710,6 +710,29 @@
}
/**
+ * Gets the String representation of the property value if there is a property for the
+ * given propKey or returns the default value passed
+ *
+ * @param propKey - key for the property lookup
+ * @param def - default value
+ * @return String representation of the property value with the given key or the def value
+ */
+ public long getProperty(String propKey, long def) {
+ String val = System.getProperty(propKey);
+ if (val == null) {
+ val = properties.getProperty(propKey);
+ }
+
+ if (val != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Using synapse tuning parameter : " + propKey + " = " + val);
+ }
+ return Long.valueOf(val);
+ }
+ return def;
+ }
+
+ /**
* Gets the propety value if the property specified by the propKey is there or null else
*
* @param propKey - key for the property lookup
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java Mon Jun 9 03:43:19 2008
@@ -32,6 +32,7 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
+import java.io.InputStream;
import java.util.Properties;
/**
@@ -89,14 +90,43 @@
}
private static Properties loadSynapseProperties() {
- String props = System.getProperty(SynapseConstants.SYNAPSE_PROPERTIES);
- if (props == null) {
- props = SynapseConstants.DEFAULT_PROP_PATH;
- }
+
try {
Properties properties = new Properties();
- properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(props));
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+
+ if (log.isDebugEnabled()) {
+ log.debug("synapse.properties file is loading from classpath");
+ }
+
+ InputStream in = cl.getResourceAsStream(SynapseConstants.SYNAPSE_PROPERTIES);
+ if (in == null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Unable to load synapse.propeties file");
+ }
+
+ String path = SynapseConstants.CONF_DIRECTORY +
+ File.separatorChar + SynapseConstants.SYNAPSE_PROPERTIES;
+ if (log.isDebugEnabled()) {
+ log.debug("synapse.properties file is loading from classpath" +
+ " with resource path '" + path + " '");
+ }
+
+ in = cl.getResourceAsStream(path);
+ if (in == null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Unable to load the synapse.properties file from classpath" +
+ " with resource name '" + path + " '");
+ }
+ }
+ }
+
+ if (in != null) {
+ properties.load(in);
+ }
+
return properties;
+
} catch (Exception e) {
log.info("Using the default tuning parameters for Synapse");
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorSerializerFinder.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorSerializerFinder.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorSerializerFinder.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MediatorSerializerFinder.java Mon Jun 9 03:43:19 2008
@@ -103,7 +103,7 @@
*/
private void registerExtensions() {
if (log.isDebugEnabled()) {
- log.debug("Registering mediator extensions found in the classpath : " + System.getProperty("java.class.path"));
+ log.debug("Registering mediator extensions found in the classpath.. ");
}
// register MediatorSerializer extensions
Iterator it = Service.providers(MediatorSerializer.class);
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java Mon Jun 9 03:43:19 2008
@@ -31,13 +31,13 @@
/**
* Creates {@link AddressEndpoint} using a XML configuration.
- * <p>
+ * <p/>
* Configuration syntax:
* <pre>
* <endpoint [name="<em>name</em>"]>
- * <address uri="<em>url</em>" [format="soap11|soap12|pox|get"] [optimize="mtom|swa"]
- * [encoding="<em>charset encoding</em>"]
- * [statistics="enable|disable"] [trace="enable|disable"]>
+ * <address uri="<em>endpoint address</em>" [format="soap11|soap12|pox|get"] [optimize="mtom|swa"]
+ * [encoding="<em>charset encoding</em>"]
+ * [statistics="enable|disable"] [trace="enable|disable"]>
* .. extensibility ..
*
* <enableRM [policy="<em>key</em>"]/>?
@@ -50,16 +50,18 @@
* </timeout>?
*
* <suspendDurationOnFailure>
- * <em>suspend duration in seconds</em></suspendDurationOnFailure>?
+ * <em>suspend duration in seconds</em>
+ * </suspendDurationOnFailure>?
* </address>
* </endpoint>
* </pre>
*/
-public class AddressEndpointFactory extends EndpointFactory {
+public class AddressEndpointFactory extends DefaultEndpointFactory {
private static AddressEndpointFactory instance = new AddressEndpointFactory();
- private AddressEndpointFactory() {}
+ private AddressEndpointFactory() {
+ }
public static AddressEndpointFactory getInstance() {
return instance;
@@ -102,7 +104,8 @@
endpointDefinition.setAddress(address.getAttributeValue());
}
- extractEndpointProperties(endpointDefinition, elem);
+ extractCommonEndpointProperties(endpointDefinition, elem);
+ extractSpecificEndpointProperties(endpointDefinition,elem);
return endpointDefinition;
}
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java Mon Jun 9 03:43:19 2008
@@ -29,10 +29,10 @@
/**
* Serializes {@link AddressEndpoint} to XML.
- *
+ *
* @see AddressEndpointFactory
*/
-public class AddressEndpointSerializer extends EndpointSerializer {
+public class AddressEndpointSerializer extends DefaultEndpointSerializer {
protected OMElement serializeEndpoint(Endpoint endpoint) {
@@ -60,7 +60,7 @@
public OMElement serializeEndpointDefinition(EndpointDefinition endpointDefinition) {
OMElement element = fac.createOMElement("address", SynapseConstants.SYNAPSE_OMNAMESPACE);
-
+
if (endpointDefinition.getAddress() != null) {
element.addAttribute(
fac.createOMAttribute("uri", null, endpointDefinition.getAddress()));
@@ -68,8 +68,9 @@
handleException("Invalid Endpoint. Address is required");
}
- serializeQOSInformation(endpointDefinition, element);
-
+ serializeCommonEndpointProperties(endpointDefinition, element);
+ serializeSpecificEndpointProperties(endpointDefinition, element);
+
return element;
}
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointFactory.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointFactory.java Mon Jun 9 03:43:19 2008
@@ -31,7 +31,7 @@
/**
* Creates {@link DefaultEndpoint} using a XML configuration.
- * <p>
+ * <p/>
* Configuration syntax:
* <pre>
* <endpoint [name="<em>name</em>"]>
@@ -50,7 +50,8 @@
* </timeout>?
*
* <suspendDurationOnFailure>
- * <em>suspend duration in seconds</em></suspendDurationOnFailure>?
+ * <em>suspend duration in seconds</em>
+ * </suspendDurationOnFailure>?
* </address>
* </endpoint>
* </pre>
@@ -59,7 +60,8 @@
private static DefaultEndpointFactory instance = new DefaultEndpointFactory();
- private DefaultEndpointFactory() {}
+ protected DefaultEndpointFactory() {
+ }
public static DefaultEndpointFactory getInstance() {
return instance;
@@ -85,6 +87,35 @@
return defaultEndpoint;
}
+ protected void extractSpecificEndpointProperties(EndpointDefinition definition, OMElement elem) {
+
+ OMAttribute format
+ = elem.getAttribute(new QName(XMLConfigConstants.NULL_NAMESPACE, "format"));
+ if (format != null) {
+ String forceValue = format.getAttributeValue().trim().toLowerCase();
+ if (SynapseConstants.FORMAT_POX.equals(forceValue)) {
+ definition.setForcePOX(true);
+ definition.setFormat(SynapseConstants.FORMAT_POX);
+
+ } else if (SynapseConstants.FORMAT_GET.equals(forceValue)) {
+ definition.setForceGET(true);
+ definition.setFormat(SynapseConstants.FORMAT_GET);
+
+ } else if (SynapseConstants.FORMAT_SOAP11.equals(forceValue)) {
+ definition.setForceSOAP11(true);
+ definition.setFormat(SynapseConstants.FORMAT_SOAP11);
+
+ } else if (SynapseConstants.FORMAT_SOAP12.equals(forceValue)) {
+ definition.setForceSOAP12(true);
+ definition.setFormat(SynapseConstants.FORMAT_SOAP12);
+
+ } else {
+ handleException("force value -\"" + forceValue + "\" not yet implemented");
+ }
+ }
+
+ }
+
/**
* Creates an EndpointDefinition instance using the XML fragment specification. Configuration
* for EndpointDefinition always resides inside a configuration of an AddressEndpoint. This
@@ -95,7 +126,8 @@
*/
public EndpointDefinition createEndpointDefinition(OMElement elem) {
EndpointDefinition endpointDefinition = new EndpointDefinition();
- extractEndpointProperties(endpointDefinition, elem);
+ extractCommonEndpointProperties(endpointDefinition, elem);
+ extractSpecificEndpointProperties(endpointDefinition, elem);
return endpointDefinition;
}
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java Mon Jun 9 03:43:19 2008
@@ -57,9 +57,34 @@
return endpointElement;
}
+ protected void serializeSpecificEndpointProperties(EndpointDefinition endpointDefinition, OMElement element) {
+
+ if (SynapseConstants.FORMAT_POX.equals(endpointDefinition.getFormat())) {
+ element.addAttribute(fac.createOMAttribute("format", null, "pox"));
+ } else if (SynapseConstants.FORMAT_GET.equals(endpointDefinition.getFormat())) {
+ element.addAttribute(fac.createOMAttribute("format", null, "get"));
+ } else if (SynapseConstants.FORMAT_SOAP11.equals(endpointDefinition.getFormat())) {
+ element.addAttribute(fac.createOMAttribute("format", null, "soap11"));
+ } else if (SynapseConstants.FORMAT_SOAP12.equals(endpointDefinition.getFormat())) {
+ element.addAttribute(fac.createOMAttribute("format", null, "soap12"));
+
+ // following two kept for backward compatibility
+ } else if (endpointDefinition.isForcePOX()) {
+ element.addAttribute(fac.createOMAttribute("format", null, "pox"));
+ } else if (endpointDefinition.isForceGET()) {
+ element.addAttribute(fac.createOMAttribute("format", null, "get"));
+ } else if (endpointDefinition.isForceSOAP11()) {
+ element.addAttribute(fac.createOMAttribute("format", null, "soap11"));
+ } else if (endpointDefinition.isForceSOAP12()) {
+ element.addAttribute(fac.createOMAttribute("format", null, "soap12"));
+ }
+
+ }
+
public OMElement serializeEndpointDefinition(EndpointDefinition endpointDefinition) {
OMElement element = fac.createOMElement("default", SynapseConstants.SYNAPSE_OMNAMESPACE);
- serializeQOSInformation(endpointDefinition, element);
+ serializeCommonEndpointProperties(endpointDefinition, element);
+ serializeSpecificEndpointProperties(endpointDefinition, element);
return element;
}
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java Mon Jun 9 03:43:19 2008
@@ -29,16 +29,19 @@
import org.apache.synapse.config.XMLToObjectMapper;
import org.apache.synapse.config.xml.XMLConfigConstants;
import org.apache.synapse.endpoints.Endpoint;
+import org.apache.synapse.endpoints.IndirectEndpoint;
import org.apache.synapse.endpoints.utils.EndpointDefinition;
import javax.xml.namespace.QName;
+import java.util.ArrayList;
+import java.util.Iterator;
/**
* All endpoint factories should implement this interface. Use EndpointFactory to obtain the
* correct endpoint for particular endpoint configuration. As endpoints can be nested inside
* each other, EndpointFactory implementations may call other EndpointFactory implementations
* recursively to obtain the required endpoint hierarchy.
- *
+ * <p/>
* This also serves as the XMLToObjactMapper implementation for specific endpoint implementations.
* If the endpoint type is not known use XMLToEndpointMapper as the generic XMLToObjectMapper for
* all endpoints.
@@ -50,8 +53,8 @@
/**
* Core method which is exposed for the external use, and this will find the proper
* {@link EndpointFactory} and create the endpoint which is of the format {@link Endpoint}.
- *
- * @param elem XML from which the endpoint will be built
+ *
+ * @param elem XML from which the endpoint will be built
* @param isAnonymous whether this is an anonymous endpoint or not
* @return created endpoint
*/
@@ -80,7 +83,7 @@
* immediate child element of the definitions tag it should have a name, which is used as the
* key in local registry.
*
- * @param epConfig OMElement conatining the endpoint configuration.
+ * @param epConfig OMElement conatining the endpoint configuration.
* @param anonymousEndpoint false if the endpoint has a name. true otherwise.
* @return Endpoint implementation for the given configuration.
*/
@@ -90,12 +93,10 @@
* Extracts the QoS information from the XML which represents a WSDL/Address/Default endpoints
*
* @param definition to be filled with the extracted information
- * @param elem XML which represents the endpoint with QoS information
+ * @param elem XML which represents the endpoint with QoS information
*/
- protected void extractEndpointProperties(EndpointDefinition definition, OMElement elem) {
+ protected void extractCommonEndpointProperties(EndpointDefinition definition, OMElement elem) {
- OMAttribute format
- = elem.getAttribute(new QName(XMLConfigConstants.NULL_NAMESPACE, "format"));
OMAttribute optimize
= elem.getAttribute(new QName(XMLConfigConstants.NULL_NAMESPACE, "optimize"));
OMAttribute encoding
@@ -127,28 +128,6 @@
definition.setTraceState(SynapseConstants.TRACING_UNSET);
}
- if (format != null) {
- String forceValue = format.getAttributeValue().trim().toLowerCase();
- if (SynapseConstants.FORMAT_POX.equals(forceValue)) {
- definition.setForcePOX(true);
- definition.setFormat(SynapseConstants.FORMAT_POX);
-
- } else if (SynapseConstants.FORMAT_GET.equals(forceValue)) {
- definition.setForceGET(true);
- definition.setFormat(SynapseConstants.FORMAT_GET);
-
- } else if (SynapseConstants.FORMAT_SOAP11.equals(forceValue)) {
- definition.setForceSOAP11(true);
- definition.setFormat(SynapseConstants.FORMAT_SOAP11);
-
- } else if (SynapseConstants.FORMAT_SOAP12.equals(forceValue)) {
- definition.setForceSOAP12(true);
- definition.setFormat(SynapseConstants.FORMAT_SOAP12);
-
- } else {
- handleException("force value -\""+forceValue+"\" not yet implemented");
- }
- }
if (optimize != null && optimize.getAttributeValue().length() > 0) {
String method = optimize.getAttributeValue().trim();
@@ -166,7 +145,7 @@
OMElement wsAddr = elem.getFirstChildWithName(
new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "enableAddressing"));
if (wsAddr != null) {
-
+
definition.setAddressingOn(true);
OMAttribute version = wsAddr.getAttribute(new QName("version"));
@@ -201,7 +180,7 @@
definition.setWsSecPolicyKey(policy.getAttributeValue());
}
}
-
+
OMElement wsRm = elem.getFirstChildWithName(
new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "enableRM"));
if (wsRm != null) {
@@ -240,7 +219,7 @@
if (action != null && action.getText() != null) {
String actionString = action.getText();
if ("discard".equalsIgnoreCase(actionString.trim())) {
-
+
definition.setTimeoutAction(SynapseConstants.DISCARD);
// set timeout duration to 30 seconds, if it is not set explicitly
@@ -248,7 +227,7 @@
definition.setTimeoutDuration(30000);
}
} else if ("fault".equalsIgnoreCase(actionString.trim())) {
-
+
definition.setTimeoutAction(SynapseConstants.DISCARD_AND_FAULT);
// set timeout duration to 30 seconds, if it is not set explicitly
@@ -277,6 +256,10 @@
}
}
+ protected void extractSpecificEndpointProperties(EndpointDefinition definition, OMElement elem){
+
+ }
+
/**
* Returns the EndpointFactory implementation for given endpoint configuration. Throws a
* SynapseException, if there is no EndpointFactory for given configuration.
@@ -331,6 +314,36 @@
return null;
}
+ /**
+ * Helper method to construct children endpoints
+ *
+ * @param listEndpointElement OMElement representing the children endpoints
+ * @param parent Parent endpoint
+ * @return List of children endpoints
+ */
+ protected ArrayList<Endpoint> getEndpoints(OMElement listEndpointElement, Endpoint parent) {
+
+ ArrayList<Endpoint> endpoints = new ArrayList<Endpoint>();
+ ArrayList<String> keys = new ArrayList<String>();
+ Iterator iter = listEndpointElement.getChildrenWithName(XMLConfigConstants.ENDPOINT_ELT);
+ while (iter.hasNext()) {
+ OMElement endptElem = (OMElement) iter.next();
+ Endpoint endpoint = EndpointFactory.getEndpointFromElement(endptElem, true);
+ if (endpoint instanceof IndirectEndpoint) {
+ String key = ((IndirectEndpoint) endpoint).getKey();
+ if (!keys.contains(key)) {
+ keys.add(key);
+ } else {
+ handleException("Same endpoint definition cannot be used with in the siblings");
+ }
+ }
+ endpoint.setParentEndpoint(parent);
+ endpoints.add(endpoint);
+ }
+
+ return endpoints;
+ }
+
protected static void handleException(String msg) {
log.error(msg);
throw new SynapseException(msg);
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java Mon Jun 9 03:43:19 2008
@@ -64,9 +64,9 @@
* Serializes the QoS infomation of the endpoint to the XML element
*
* @param endpointDefinition specifies the QoS information of the endpoint
- * @param element to which the QoS information will be serialized
+ * @param element to which the QoS information will be serialized
*/
- protected void serializeQOSInformation(
+ protected void serializeCommonEndpointProperties(
EndpointDefinition endpointDefinition, OMElement element) {
if (endpointDefinition.getStatisticsState() == SynapseConstants.STATISTICS_ON) {
@@ -85,26 +85,6 @@
null, XMLConfigConstants.TRACE_DISABLE));
}
- if (SynapseConstants.FORMAT_POX.equals(endpointDefinition.getFormat())) {
- element.addAttribute(fac.createOMAttribute("format", null, "pox"));
- } else if (SynapseConstants.FORMAT_GET.equals(endpointDefinition.getFormat())) {
- element.addAttribute(fac.createOMAttribute("format", null, "get"));
- } else if (SynapseConstants.FORMAT_SOAP11.equals(endpointDefinition.getFormat())) {
- element.addAttribute(fac.createOMAttribute("format", null, "soap11"));
- } else if (SynapseConstants.FORMAT_SOAP12.equals(endpointDefinition.getFormat())) {
- element.addAttribute(fac.createOMAttribute("format", null, "soap12"));
-
- // following two kept for backward compatibility
- } else if (endpointDefinition.isForcePOX()) {
- element.addAttribute(fac.createOMAttribute("format", null, "pox"));
- } else if (endpointDefinition.isForceGET()) {
- element.addAttribute(fac.createOMAttribute("format", null, "get"));
- } else if (endpointDefinition.isForceSOAP11()) {
- element.addAttribute(fac.createOMAttribute("format", null, "soap11"));
- } else if (endpointDefinition.isForceSOAP12()) {
- element.addAttribute(fac.createOMAttribute("format", null, "soap12"));
- }
-
if (endpointDefinition.isUseSwa()) {
element.addAttribute(fac.createOMAttribute("optimize", null, "swa"));
} else if (endpointDefinition.isUseMTOM()) {
@@ -115,7 +95,7 @@
element.addAttribute(fac.createOMAttribute(
"encoding", null, endpointDefinition.getCharSetEncoding()));
}
-
+
if (endpointDefinition.isAddressingOn()) {
OMElement addressing = fac.createOMElement(
"enableAddressing", SynapseConstants.SYNAPSE_OMNAMESPACE);
@@ -124,7 +104,7 @@
addressing.addAttribute(fac.createOMAttribute(
"version", null, endpointDefinition.getAddressingVersion()));
}
-
+
if (endpointDefinition.isUseSeparateListener()) {
addressing.addAttribute(fac.createOMAttribute("separateListener", null, "true"));
}
@@ -184,6 +164,11 @@
}
}
+ protected void serializeSpecificEndpointProperties(EndpointDefinition endpointDefinition, OMElement element){
+
+ }
+
+
protected void handleException(String message) {
log.error(message);
throw new SynapseException(message);
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java Mon Jun 9 03:43:19 2008
@@ -24,6 +24,8 @@
import org.apache.synapse.config.xml.XMLConfigConstants;
import org.apache.synapse.endpoints.Endpoint;
import org.apache.synapse.endpoints.FailoverEndpoint;
+import org.apache.synapse.endpoints.IndirectEndpoint;
+import org.apache.synapse.endpoints.utils.EndpointDefinition;
import javax.xml.namespace.QName;
import java.util.ArrayList;
@@ -64,21 +66,7 @@
failoverEndpoint.setEndpoints(getEndpoints(failoverElement, failoverEndpoint));
return failoverEndpoint;
}
-
return null;
}
-
- private ArrayList<Endpoint> getEndpoints(OMElement failoverElement, Endpoint parent) {
-
- ArrayList<Endpoint> endpoints = new ArrayList<Endpoint>();
- Iterator iter = failoverElement.getChildrenWithName(XMLConfigConstants.ENDPOINT_ELT);
- while (iter.hasNext()) {
- OMElement endptElem = (OMElement) iter.next();
- Endpoint endpoint = EndpointFactory.getEndpointFromElement(endptElem, true);
- endpoint.setParentEndpoint(parent);
- endpoints.add(endpoint);
- }
- return endpoints;
- }
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java Mon Jun 9 03:43:19 2008
@@ -90,18 +90,4 @@
return null; //To change body of implemented methods use File | Settings | File Templates.
}
-
- private ArrayList<Endpoint> getEndpoints(OMElement loadbalanceElement, Endpoint parent) {
-
- ArrayList<Endpoint> endpoints = new ArrayList<Endpoint>();
- Iterator iter = loadbalanceElement.getChildrenWithName(XMLConfigConstants.ENDPOINT_ELT);
- while (iter.hasNext()) {
- OMElement endptElem = (OMElement) iter.next();
- Endpoint endpoint = EndpointFactory.getEndpointFromElement(endptElem, true);
- endpoint.setParentEndpoint(parent);
- endpoints.add(endpoint);
- }
-
- return endpoints;
- }
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointFactory.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointFactory.java Mon Jun 9 03:43:19 2008
@@ -81,7 +81,8 @@
loadbalanceEndpoint.setDispatcher(csDispatcher);
}
} else {
- handleException("Session affinity endpoints should have a session element in the configuration.");
+ handleException("Session affinity endpoints should " +
+ "have a session element in the configuration.");
}
// set endpoint name
@@ -109,8 +110,8 @@
// set abandon time
//long abandonTime = 0;
- //OMAttribute atAttribute = loadbalanceElement.getAttribute
- // (new QName(null, org.apache.synapse.config.xml.Constants.RETRY_AFTER_FAILURE_TIME));
+ //OMAttribute atAttribute = loadbalanceElement.getAttribute(new QName(
+ // null, org.apache.synapse.config.xml.Constants.RETRY_AFTER_FAILURE_TIME));
//if(atAttribute != null) {
// String at = atAttribute.getAttributeValue();
// abandonTime = Long.parseLong(at);
@@ -138,20 +139,6 @@
return loadbalanceEndpoint;
}
- return null; //To change body of implemented methods use File | Settings | File Templates.
- }
-
- private ArrayList<Endpoint> getEndpoints(OMElement loadbalanceElement, Endpoint parent) {
-
- ArrayList<Endpoint> endpoints = new ArrayList<Endpoint>();
- Iterator iter = loadbalanceElement.getChildrenWithName(XMLConfigConstants.ENDPOINT_ELT);
- while (iter.hasNext()) {
- OMElement endptElem = (OMElement) iter.next();
- Endpoint endpoint = EndpointFactory.getEndpointFromElement(endptElem, true);
- endpoint.setParentEndpoint(parent);
- endpoints.add(endpoint);
- }
-
- return endpoints;
+ return null;
}
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java Mon Jun 9 03:43:19 2008
@@ -25,6 +25,7 @@
import org.apache.axiom.om.OMNode;
import org.apache.axis2.description.WSDL2Constants;
import org.apache.synapse.SynapseConstants;
+import org.apache.synapse.ServerManager;
import org.apache.synapse.config.SynapseConfigUtils;
import org.apache.synapse.config.xml.endpoints.utils.WSDL11EndpointBuilder;
import org.apache.synapse.endpoints.Endpoint;
@@ -37,25 +38,40 @@
/**
* Creates an {@link WSDLEndpoint} based endpoint from a XML configuration.
- *
- * <wsdl [uri="wsdl-uri"] service="qname" port/endpoint="qname">
- * <wsdl:definition>...</wsdl:definition>?
- * <wsdl20:description>...</wsdl20:description>?
- * <enableRM [policy="key"]/>?
- * <enableSec [policy="key"]/>?
- * <enableAddressing [version=("final" | "submission")]/>?
- * <suspendDurationOnFailure>suspend-duration</suspendDurationOnFailure>?
- * <timeout>
- * <duration>timeout-duration</duration>
- * <action>discard|fault</action>
- * </timeout>?
- * </wsdl>
+ * <p>
+ * Configuration syntax:
+ * <pre>
+ * <endpoint [name="<em>name</em>"]>
+ * <wsdl [uri="<em>WSDL location</em>"]
+ * service="<em>qualified name</em>" port="<em>qualified name</em>"
+ * [format="soap11|soap12|pox|get"] [optimize="mtom|swa"]
+ * [encoding="<em>charset encoding</em>"]
+ * [statistics="enable|disable"] [trace="enable|disable"]>
+ * <wsdl:definition>...</wsdl:definition>?
+ * <wsdl20:description>...</wsdl20:description>?
+ *
+ * <enableRM [policy="<em>key</em>"]/>?
+ * <enableSec [policy="<em>key</em>"]/>?
+ * <enableAddressing [version="final|submission"] [separateListener="true|false"]/>?
+ *
+ * <timeout>
+ * <duration><em>timeout duration in seconds</em></duration>
+ * <action>discard|fault</action>
+ * </timeout>?
+ *
+ * <suspendDurationOnFailure>
+ * <em>suspend duration in seconds</em>
+ * </suspendDurationOnFailure>?
+ * </wsdl>
+ * </endpoint>
+ * </pre>
*/
public class WSDLEndpointFactory extends EndpointFactory {
private static WSDLEndpointFactory instance = new WSDLEndpointFactory();
- private WSDLEndpointFactory() {}
+ private WSDLEndpointFactory() {
+ }
public static WSDLEndpointFactory getInstance() {
return instance;
@@ -125,12 +141,12 @@
(new QName(org.apache.axis2.namespace.Constants.NS_URI_WSDL11, "definitions"));
if (endpoint == null && definitionElement != null) {
wsdlEndpoint.setWsdlDoc(definitionElement);
- String resolveRoot = System.getProperty(SynapseConstants.RESOLVE_ROOT);
+ String resolveRoot = ServerManager.getInstance().getResolveRoot();
String baseUri = "file:./";
if (resolveRoot != null) {
baseUri = resolveRoot.trim();
}
- if(!baseUri.endsWith(File.separator)){
+ if (!baseUri.endsWith(File.separator)) {
baseUri = baseUri + File.separator;
}
endpoint = new WSDL11EndpointBuilder().createEndpointDefinitionFromWSDL(
@@ -144,10 +160,11 @@
wsdlEndpoint.setWsdlDoc(descriptionElement);
handleException("WSDL 2.0 Endpoints are currently not supported.");
}
-
+
if (endpoint != null) {
// for now, QOS information has to be provided explicitly.
- extractEndpointProperties(endpoint, wsdlElement);
+ extractCommonEndpointProperties(endpoint, wsdlElement);
+ extractSpecificEndpointProperties(endpoint, wsdlElement);
wsdlEndpoint.setEndpoint(endpoint);
} else {
handleException("WSDL is not specified for WSDL endpoint.");
@@ -157,4 +174,8 @@
return wsdlEndpoint;
}
+ protected void extractSpecificEndpointProperties(EndpointDefinition definition, OMElement elem) {
+
+ }
+
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java Mon Jun 9 03:43:19 2008
@@ -21,7 +21,6 @@
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.SynapseException;
import org.apache.synapse.endpoints.Endpoint;
@@ -30,13 +29,8 @@
/**
* Serializes an WSDL based endpoint to an XML configuration.
- *
- * <endpoint [name="name"]>
- * <suspendDurationOnFailue>suspend-duration</suspendDurationOnFailue>
- * <wsdl uri="wsdl uri" service="service name" port="port name">
- * .. extensibility ..
- * </wsdl>
- * </endpoint>
+ *
+ * @see WSDLEndpointFactory
*/
public class WSDLEndpointSerializer extends EndpointSerializer {
@@ -81,11 +75,14 @@
// special elements under the wsdl element. in future, these information should be
// extracted from the wsdl.
EndpointDefinition epDefinition = wsdlEndpoint.getEndpoint();
- serializeQOSInformation(epDefinition, wsdlElement);
-
+ serializeCommonEndpointProperties(epDefinition, wsdlElement);
+ serializeSpecificEndpointProperties(epDefinition, wsdlElement);
endpointElement.addChild(wsdlElement);
return endpointElement;
}
-
+
+ protected void serializeSpecificEndpointProperties(EndpointDefinition endpointDefinition, OMElement element) {
+ }
+
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL11EndpointBuilder.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL11EndpointBuilder.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL11EndpointBuilder.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL11EndpointBuilder.java Mon Jun 9 03:43:19 2008
@@ -173,8 +173,15 @@
if (serviceURL != null) {
EndpointDefinition endpointDefinition = new EndpointDefinition();
endpointDefinition.setAddress(serviceURL);
+ if (SynapseConstants.FORMAT_SOAP11.equals(format)) {
+ endpointDefinition.setForceSOAP11(true);
+ } else if (SynapseConstants.FORMAT_SOAP12.equals(format)) {
+ endpointDefinition.setForceSOAP12(true);
+ } else {
+ handleException("format value -\"" + format + "\" not yet implemented");
+ }
endpointDefinition.setFormat(format);
-
+
// todo: determine this using wsdl and policy
return endpointDefinition;
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java Mon Jun 9 03:43:19 2008
@@ -101,15 +101,15 @@
"] [sec = " + wsSecurityEnabled +
"] [rm = " + wsRMEnabled +
(endpoint != null ?
- "] [ mtom = " + endpoint.isUseMTOM() +
- "] [ swa = " + endpoint.isUseSwa() +
- "] [ format = " + endpoint.getFormat() +
- "] [ force soap11=" + endpoint.isForceSOAP11() +
- "] [ force soap12=" + endpoint.isForceSOAP12() +
- "] [ pox=" + endpoint.isForcePOX() +
- "] [ get=" + endpoint.isForceGET() +
- "] [ encoding=" + endpoint.getCharSetEncoding() : "") +
- "] [ to " + synapseOutMessageContext.getTo() + "]");
+ "] [mtom = " + endpoint.isUseMTOM() +
+ "] [swa = " + endpoint.isUseSwa() +
+ "] [format = " + endpoint.getFormat() +
+ "] [force soap11=" + endpoint.isForceSOAP11() +
+ "] [force soap12=" + endpoint.isForceSOAP12() +
+ "] [pox=" + endpoint.isForcePOX() +
+ "] [get=" + endpoint.isForceGET() +
+ "] [encoding=" + endpoint.getCharSetEncoding() : "") +
+ "] [to " + synapseOutMessageContext.getTo() + "]");
}
// save the original message context wihout altering it, so we can tie the response
@@ -279,13 +279,13 @@
mepClient.setCallback(callback);
}
- mepClient.execute(true);
-
// with the nio transport, this causes the listener not to write a 202
// Accepted response, as this implies that Synapse does not yet know if
// a 202 or 200 response would be written back.
originalInMsgCtx.getOperationContext().setProperty(
org.apache.axis2.Constants.RESPONSE_WRITTEN, "SKIP");
+
+ mepClient.execute(true);
}
private static MessageContext cloneForSend(MessageContext ori) throws AxisFault {
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java Mon Jun 9 03:43:19 2008
@@ -253,8 +253,9 @@
mc.setEnvelope(OMAbstractFactory.getSOAP12Factory().createSOAPEnvelope());
mc.getEnvelope().addChild(OMAbstractFactory.getSOAP12Factory().createSOAPBody());
} catch (Exception e) {
- e.printStackTrace();
- }
+ handleException("Unable to attach the SOAP envelope to " +
+ "the created new message context", e);
+ }
return mc;
}
@@ -334,4 +335,9 @@
this.initialized = state;
}
+ private void handleException(String message, Throwable e) {
+ log.error(message, e);
+ throw new SynapseException(message, e);
+ }
+
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java Mon Jun 9 03:43:19 2008
@@ -25,12 +25,14 @@
import org.apache.axis2.AxisFault;
import org.apache.axis2.description.*;
import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.engine.AxisEvent;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyEngine;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.ServerManager;
import org.apache.synapse.config.SynapseConfigUtils;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.core.SynapseEnvironment;
@@ -305,7 +307,7 @@
wsdlToAxisServiceBuilder.setBaseUri(
wsdlURI != null ? wsdlURI.toString() :
- System.getProperty(SynapseConstants.SYNAPSE_HOME));
+ ServerManager.getInstance().getSynapseHome());
if (trace()) {
trace.info("Setting up custom resolvers");
@@ -523,8 +525,9 @@
private Policy getPolicyFromKey(String key, SynapseConfiguration synCfg) {
- return PolicyEngine.getPolicy(SynapseConfigUtils.getStreamSource(
- synCfg.getEntry(key)).getInputStream());
+ synCfg.getEntryDefinition(key);
+ return PolicyEngine.getPolicy(
+ SynapseConfigUtils.getStreamSource(synCfg.getEntry(key)).getInputStream());
}
/**
@@ -551,8 +554,10 @@
auditWarn("Unable to find the SynapseEnvironment. " +
"Components of the proxy service may not be initialized");
}
-
- axisConfig.getServiceForActivation(this.getName()).setActive(true);
+
+ AxisService as = axisConfig.getServiceForActivation(this.getName());
+ as.setActive(true);
+ axisConfig.notifyObservers(AxisEvent.SERVICE_START, as);
this.setRunning(true);
auditInfo("Started the proxy service : " + name);
} else {
@@ -583,9 +588,10 @@
AxisService as = axisConfig.getService(this.getName());
if (as != null) {
as.setActive(false);
+ axisConfig.notifyObservers(AxisEvent.SERVICE_STOP, as);
}
this.setRunning(false);
- auditInfo("Started the proxy service : " + name);
+ auditInfo("Stopped the proxy service : " + name);
} catch (AxisFault axisFault) {
handleException("Error stopping the proxy service : " + name, axisFault);
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java Mon Jun 9 03:43:19 2008
@@ -74,11 +74,7 @@
TimeoutHandler timeoutHandler = new TimeoutHandler(callbackStore);
Timer timeOutTimer = synCfg.getSynapseTimer();
- long timeoutHandlerInterval = SynapseConstants.DEFAULT_TIMEOUT_HANDLER_INTERVAL;
- try {
- timeoutHandlerInterval = Long.parseLong(
- System.getProperty(SynapseConstants.TIMEOUT_HANDLER_INTERVAL));
- } catch (Exception ignore) {}
+ long timeoutHandlerInterval = ServerManager.getInstance().getTimeoutHandlerInterval();
// schedule timeout handler to run every n seconds (n : specified or defaults to 15s)
timeOutTimer.schedule(timeoutHandler, 0, timeoutHandlerInterval);
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java?rev=664672&r1=664671&r2=664672&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java Mon Jun 9 03:43:19 2008
@@ -32,6 +32,7 @@
import org.apache.neethi.Policy;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.ServerManager;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.config.SynapseConfigurationBuilder;
@@ -95,19 +96,11 @@
transports.add(Constants.TRANSPORT_HTTPS);
synapseService.setExposedTransports(transports);
axisCfg.addService(synapseService);
-
- log.info("Initializing Mercury...");
- AxisModule mercuryAxisModule = configurationContext.getAxisConfiguration().
- getModule(SynapseConstants.MERCURY_MODULE_NAME);
- if (mercuryAxisModule != null) {
- Module mercury = mercuryAxisModule.getModule();
- mercury.init(configurationContext, mercuryAxisModule);
- }
-
+
// this server name is given by system property SynapseServerName
// otherwise take host-name
// if nothing found assume localhost
- String thisServerName = System.getProperty(SynapseConstants.SYNAPSE_SERVER_NAME);
+ String thisServerName = ServerManager.getInstance().getServerName();
if(thisServerName == null || thisServerName.equals("")) {
try {
InetAddress addr = InetAddress.getLocalHost();
@@ -154,16 +147,12 @@
AxisConfiguration axisConfiguration = cfgCtx.getAxisConfiguration();
SynapseConfiguration synapseConfiguration;
- String config = System.getProperty(SynapseConstants.SYNAPSE_XML);
+ String config = ServerManager.getInstance().getSynapseXMLPath();
if (config != null) {
- if (log.isDebugEnabled()) {
- log.debug("System property '" + SynapseConstants.SYNAPSE_XML +
- "' specifies Synapse configuration as " + config);
- }
synapseConfiguration = SynapseConfigurationBuilder.getConfiguration(config);
} else {
- log.warn("System property '" + SynapseConstants.SYNAPSE_XML +
+ log.warn("System property or init-parameter '" + SynapseConstants.SYNAPSE_XML +
"' is not specified. Using default configuration..");
synapseConfiguration = SynapseConfigurationBuilder.getDefaultConfiguration();
}