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/05/07 10:11:02 UTC
svn commit: r654024 - in
/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse:
config/SynapseConfiguration.java
config/xml/SynapseXMLConfigurationFactory.java
core/axis2/Axis2SynapseEnvironment.java
core/axis2/ProxyServiceMessageReceiver.java
Author: ruwan
Date: Wed May 7 01:11:01 2008
New Revision: 654024
URL: http://svn.apache.org/viewvc?rev=654024&view=rev
Log:
Fixing the issue SYNAPSE-291
Modified:
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/xml/SynapseXMLConfigurationFactory.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/ProxyServiceMessageReceiver.java
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=654024&r1=654023&r2=654024&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 Wed May 7 01:11:01 2008
@@ -55,7 +55,14 @@
*/
private QName defaultQName = null;
- /**
+ /**
+ * Mandatory sequence is treated specially since it is required for each and every message.
+ * Keeps the reference to the mandatory sequence while it is available as a sequence in the
+ * localRegistry map
+ */
+ private Mediator mandatorySequence = null;
+
+ /**
* Holds Proxy services defined through Synapse
*/
private Map<String, ProxyService> proxyServices = new HashMap<String, ProxyService>();
@@ -135,7 +142,27 @@
return definedSequences;
}
- /**
+ /**
+ * Gets the mandatory sequence, from the direct reference. This is also available in the
+ * {@link SynapseConfiguration#getSequence} but this method improves the performance hence this
+ * will be required for all messages
+ *
+ * @return mandatory sequence direct reference in the local configuration
+ */
+ public Mediator getMandatorySequence() {
+ return mandatorySequence;
+ }
+
+ /**
+ * Sets the mandatory sequence direct reference
+ *
+ * @param mandatorySequence to be set as the direct reference
+ */
+ public void setMandatorySequence(Mediator mandatorySequence) {
+ this.mandatorySequence = mandatorySequence;
+ }
+
+ /**
* Return the sequence specified with the given key
*
* @param key
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationFactory.java?rev=654024&r1=654023&r2=654024&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationFactory.java Wed May 7 01:11:01 2008
@@ -168,7 +168,14 @@
if (config.getLocalRegistry().get(name) != null) {
handleException("Duplicate sequence definition : " + name);
}
- config.addSequence(name, MediatorFactoryFinder.getInstance().getMediator(ele));
+ Mediator mediator = MediatorFactoryFinder.getInstance().getMediator(ele);
+ config.addSequence(name, mediator);
+ // mandatory sequence is treated as a speciall sequence because it will be fetched for
+ // each and every message and keeps a direct reference to that from the configuration
+ // this also limits the ability of the mandatory sequence to be dynamic
+ if (SynapseConstants.MANDATORY_SEQUENCE_KEY.equals(name)) {
+ config.setMandatorySequence(mediator);
+ }
} else {
handleException("Invalid sequence definition without a name");
}
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=654024&r1=654023&r2=654024&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 Wed May 7 01:11:01 2008
@@ -107,9 +107,7 @@
StatisticsUtils.processSequenceStatistics(synCtx);
}
- Mediator mandatorySeq = synCtx.getConfiguration().getSequence(
- SynapseConstants.MANDATORY_SEQUENCE_KEY);
-
+ Mediator mandatorySeq = synCtx.getConfiguration().getMandatorySequence();
// the mandatory sequence is optional and hence check for the existance before mediation
if (mandatorySeq != null) {
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java?rev=654024&r1=654023&r2=654024&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java Wed May 7 01:11:01 2008
@@ -91,11 +91,8 @@
proxyServiceStatisticsStack);
}
- Mediator mandatorySeq = synCtx.getConfiguration().getSequence(
- SynapseConstants.MANDATORY_SEQUENCE_KEY);
-
+ Mediator mandatorySeq = synCtx.getConfiguration().getMandatorySequence();
if (mandatorySeq != null) {
-
if (log.isDebugEnabled()) {
log.debug("Start mediating the message in the " +
"pre-mediate state using the mandatory sequence");