Author: ruwan
Date: Thu Jan 17 03:31:35 2008
New Revision: 612796
URL: http://svn.apache.org/viewvc?rev=612796&view=rev
Log:
Fixing the initialization of the sequecens inlined in proxy and prevented the
repeated initialization of the refered sequences
Modified:
webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java
Modified:
webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java?rev=612796&r1=612795&r2=612796&view=diff
==============================================================================
---
webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
(original)
+++
webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyService.java
Thu Jan 17 03:31:35 2008
@@ -19,8 +19,8 @@
package org.apache.synapse.core.axis2;
-import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.description.*;
import org.apache.axis2.engine.AxisConfiguration;
@@ -30,20 +30,23 @@
import org.apache.neethi.PolicyEngine;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.SynapseException;
-import org.apache.synapse.mediators.base.SequenceMediator;
-import org.apache.synapse.endpoints.Endpoint;
-import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.config.SynapseConfigUtils;
+import org.apache.synapse.config.SynapseConfiguration;
+import org.apache.synapse.core.SynapseEnvironment;
+import org.apache.synapse.endpoints.Endpoint;
+import org.apache.synapse.mediators.base.SequenceMediator;
import org.xml.sax.InputSource;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ByteArrayInputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
import java.util.*;
-import java.net.*;
/**
* <proxy-service name="string" [transports="(http |https |jms )+|all"]
[trace="enable|disable"]>
@@ -474,6 +477,24 @@
public void start(SynapseConfiguration synCfg) {
AxisConfiguration axisConfig = synCfg.getAxisConfiguration();
if (axisConfig != null) {
+
+ Parameter param =
axisConfig.getParameter(SynapseConstants.SYNAPSE_ENV);
+ if (param != null && param.getValue() instanceof
SynapseEnvironment) {
+ SynapseEnvironment env = (SynapseEnvironment) param.getValue();
+ if (targetInLineInSequence != null) {
+ targetInLineInSequence.init(env);
+ }
+ if (targetInLineOutSequence != null) {
+ targetInLineOutSequence.init(env);
+ }
+ if (targetInLineFaultSequence != null) {
+ targetInLineFaultSequence.init(env);
+ }
+ } else {
+ auditWarn("Unable to find the SynapseEnvironment. " +
+ "Components of the proxy service may not be initialized");
+ }
+
axisConfig.getServiceForActivation(this.getName()).setActive(true);
this.setRunning(true);
auditInfo("Started the proxy service : " + name);
@@ -490,6 +511,17 @@
public void stop(SynapseConfiguration synCfg) {
AxisConfiguration axisConfig = synCfg.getAxisConfiguration();
if (axisConfig != null) {
+
+ if (targetInLineInSequence != null) {
+ targetInLineInSequence.destroy();
+ }
+ if (targetInLineOutSequence != null) {
+ targetInLineOutSequence.destroy();
+ }
+ if (targetInLineFaultSequence != null) {
+ targetInLineFaultSequence.destroy();
+ }
+
try {
AxisService as = axisConfig.getService(this.getName());
if (as != null) {
Modified:
webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java?rev=612796&r1=612795&r2=612796&view=diff
==============================================================================
---
webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java
(original)
+++
webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java
Thu Jan 17 03:31:35 2008
@@ -22,6 +22,7 @@
import org.apache.synapse.Mediator;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.MessageContext;
+import org.apache.synapse.core.SynapseEnvironment;
import org.apache.synapse.mediators.AbstractListMediator;
import org.apache.synapse.mediators.MediatorFaultHandler;
import org.apache.synapse.statistics.StatisticsUtils;
@@ -49,6 +50,8 @@
private String errorHandler = null;
/** is this definition dynamic */
private boolean dynamic = false;
+ /** flag to ensure that each and every sequence is initialized and
destroyed atmost once */
+ private boolean initialized = false;
/** the registry key to load this definition if dynamic */
private String registryKey = null;
@@ -178,6 +181,24 @@
}
return false;
+ }
+
+ /**
+ * This method will ensure that each and every sequence wil only be
initialized atmost once
+ * @param se - enviorenment to be initialized
+ */
+ public synchronized void init(SynapseEnvironment se) {
+ if (!initialized) {
+ super.init(se);
+ initialized = true;
+ }
+ }
+
+ public synchronized void destroy() {
+ if (initialized) {
+ super.destroy();
+ initialized = false;
+ }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]