You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by pz...@apache.org on 2005/11/03 15:22:37 UTC

svn commit: r330555 - in /incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse: ./ axis2/

Author: pzf
Date: Thu Nov  3 06:22:20 2005
New Revision: 330555

URL: http://svn.apache.org/viewcvs?rev=330555&view=rev
Log:
still fixing it :-)

Modified:
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleEngine.class
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleEngine.java
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleList.class
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleList.java
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Axis2RuleEngineFinder.class
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Axis2RuleEngineFinder.java
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Expression.class
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Expression.java
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/MediatorExecutor.class
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/MediatorExecutor.java
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Sender.class
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Sender.java
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/SynapseMessageReceiver.class
    incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/SynapseMessageReceiver.java

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleEngine.class
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleEngine.class?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleEngine.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleEngine.java?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleEngine.java (original)
+++ incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleEngine.java Thu Nov  3 06:22:20 2005
@@ -45,7 +45,7 @@
 	}
 	
 	public void process(MessageContext messageContext) {
-		System.out.println("starting process");
+		System.out.println("starting process"+messageContext.getSystemContext().getAxisConfiguration().hashCode());
 		
 		Iterator iterator = rl.iterator();
 		while (iterator.hasNext()) {

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleList.class
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleList.class?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleList.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleList.java?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleList.java (original)
+++ incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/RuleList.java Thu Nov  3 06:22:20 2005
@@ -25,6 +25,7 @@
 
 
 import org.apache.axis2.om.OMElement;
+import org.apache.axis2.om.OMNamespace;
 import org.apache.axis2.om.impl.llom.builder.StAXOMBuilder;
 import org.apache.synapse.axis2.Expression;
 
@@ -51,6 +52,7 @@
 			StAXOMBuilder builder = new StAXOMBuilder(xsr);
 			OMElement rulelist = builder.getDocumentElement();
 			
+			
 		
 			
 			if (!rulelist.getQName().equals(rulelistQ)) throw new Exception("not a "+rulelistQ.toString()+" element");
@@ -67,7 +69,15 @@
 				OMElement rule = (OMElement)ruleIt.next();
 				Rule r = new Rule();
 				if (rule.getAttribute(xpathQ)==null) throw new Exception("missing "+xpathQ.toString()+" attribute");
-				r.setExpression(new Expression(rule.getAttribute(xpathQ).getAttributeValue()));
+				
+				Expression expr = new Expression(rule.getAttribute(xpathQ).getAttributeValue());
+				Iterator i = rulelist.getAllDeclaredNamespaces();
+				while (i.hasNext()) {
+					OMNamespace n = (OMNamespace)i.next();
+					expr.addNamespace(n.getPrefix(),n.getName());
+				}
+					
+				r.setExpression(expr);
 				if (rule.getAttribute(mediatorQ)==null) throw new Exception("missing "+mediatorQ.toString()+" attribute");
 				r.setMediatorName(rule.getAttribute(mediatorQ).getAttributeValue());
 				if (rule.getAttribute(reliableQ)!=null) r.setReliable(isTrue(rule.getAttribute(reliableQ).getAttributeValue()));

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Axis2RuleEngineFinder.class
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Axis2RuleEngineFinder.class?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Axis2RuleEngineFinder.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Axis2RuleEngineFinder.java?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Axis2RuleEngineFinder.java (original)
+++ incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Axis2RuleEngineFinder.java Thu Nov  3 06:22:20 2005
@@ -28,21 +28,15 @@
 public class Axis2RuleEngineFinder {
 	private static final String RULE_LIST_XMLFILE = "RuleListXMLFile";
 
-	private static final String RULE_ENGINE = "org.apache.synapse.RuleEngine";
-
-	public static RuleEngine getRuleEngine(MessageContext mc) {
-
+	public static final String RULE_ENGINE = "org.apache.synapse.RuleEngine";
+	
+	
+	public static synchronized RuleEngine getRuleEngine(MessageContext mc) {
+		
 		AxisConfiguration ac = mc.getSystemContext().getAxisConfiguration();
-		Parameter ruleEngineParam = getRuleEngineParameter(ac);
-		RuleEngine ruleEngine = (RuleEngine) ruleEngineParam.getValue();
-		return ruleEngine;
-	}
-
-	protected static synchronized Parameter getRuleEngineParameter(
-			AxisConfiguration ac) {
-		Parameter ruleEngineParam = null;
-		ruleEngineParam = ac.getParameter(RULE_ENGINE);
+		Parameter ruleEngineParam = ac.getParameter(RULE_ENGINE);
 		if (ruleEngineParam == null) {
+			System.out.println("setting rule engine on"+ac.hashCode());
 			Parameter param = ac.getParameter(RULE_LIST_XMLFILE);
 			if (param == null) {
 				throw new SynapseException("no parameter '" + RULE_LIST_XMLFILE
@@ -58,8 +52,9 @@
 				throw new SynapseException(e);
 			}
 		}
-		return ruleEngineParam;
-
+		RuleEngine ruleEngine = (RuleEngine) ruleEngineParam.getValue();
+		return ruleEngine;
 	}
+
 
 }

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Expression.class
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Expression.class?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Expression.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Expression.java?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Expression.java (original)
+++ incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Expression.java Thu Nov  3 06:22:20 2005
@@ -26,6 +26,7 @@
 	public Expression(String expr) {
 		try {
 			this.xp = new AXIOMXPath(expr);
+
 		} catch (JaxenException je) {
 			throw new SynapseException(je);
 		}
@@ -39,5 +40,14 @@
 		}
 
 	}
+	public void addNamespace(String prefix, String uri) {
+		if (xp!=null) { 
+			try {
+				xp.addNamespace(prefix, uri);
+			}catch (JaxenException je) { throw new SynapseException(je); }
+		}
+		else throw new SynapseException("XPath not yet initialised");
+	}
 
 }
+ 
\ No newline at end of file

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/MediatorExecutor.class
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/MediatorExecutor.class?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/MediatorExecutor.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/MediatorExecutor.java?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/MediatorExecutor.java (original)
+++ incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/MediatorExecutor.java Thu Nov  3 06:22:20 2005
@@ -38,6 +38,8 @@
 		ConfigurationContext cc = messageContext.getSystemContext(); 
 		AxisConfiguration ac = cc.getAxisConfiguration();
 		AxisEngine ae = new AxisEngine(cc);
+		System.out.println("medex"+cc.hashCode());
+	
 		AxisService as = null;
 		AxisOperation ao = null;
 		try {
@@ -52,7 +54,7 @@
 		                .getAxisSpecifMEPConstant(), ao);
 		        ao.registerOperationContext(messageContext, oc);
 
-		        ServiceContext sc = Utils.fillContextInformation(ao, as, messageContext.getSystemContext());
+		        ServiceContext sc = Utils.fillContextInformation(ao, as, cc);//messageContext.getSystemContext());
 		        oc.setParent(sc);
 		        messageContext.setOperationContext(oc);
 		        messageContext.setServiceContext(sc);

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Sender.class
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Sender.class?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Sender.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Sender.java?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Sender.java (original)
+++ incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/Sender.java Thu Nov  3 06:22:20 2005
@@ -17,9 +17,9 @@
 
 import javax.xml.stream.FactoryConfigurationError;
 
-
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.clientapi.Call;
+import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisService;
@@ -37,6 +37,7 @@
 		try {
 			Call call = new Call();
 			call.setTo(messageContext.getTo());
+			ConfigurationContext sc = messageContext.getSystemContext();
 
 			SynapseDispatcher sd = new SynapseDispatcher();
 			sd.initDispatcher();
@@ -49,36 +50,57 @@
 			MessageContext outMsgContext = call.invokeBlocking(ao,
 					messageContext);
 
+			outMsgContext.setConfigurationContext(sc);
+
+			System.out.println(messageContext.getSystemContext()
+					.getAxisConfiguration().hashCode());
 			AxisEngine ae = new AxisEngine(messageContext.getSystemContext());
 
-			// deal with the fact that AddressingOutHandler has a bug if there
+			// outMsgContext.getSystemContext().getAxisConfiguration().addParameter(messageContext.getSystemContext().getAxisConfiguration().getParameter(Axis2RuleEngineFinder.RULE_ENGINE));
+			// run all rules again
+			outMsgContext.setServerSide(true);
+
+			// deal with the fact that AddressingOutHandler has a bug if
+			// there
 			// is no header at all.
 			if (outMsgContext.getEnvelope().getHeader() == null)
 				outMsgContext.getEnvelope().getBody().insertSiblingBefore(
 						OMAbstractFactory.getSOAP11Factory()
 								.getDefaultEnvelope().getHeader());
 
-			outMsgContext.setAxisService(synapseService);
-			outMsgContext.setAxisOperation(synapseOperation);
-
-			// run all rules again
-			ae.receive(outMsgContext);
-
-			Object os = messageContext
-					.getProperty(MessageContext.TRANSPORT_OUT);
-			outMsgContext.setProperty(MessageContext.TRANSPORT_OUT, os);
-			Object ti = messageContext
-					.getProperty(HTTPConstants.HTTPOutTransportInfo);
-			outMsgContext.setProperty(HTTPConstants.HTTPOutTransportInfo, ti);
-
-			// respond to client
-			ae.send(outMsgContext);
-
+			if (outMsgContext.getProperty("response") == null
+					|| outMsgContext.getProperty("response") == Boolean.TRUE) {
+				System.out.println("receive");
+				outMsgContext.setAxisService(synapseService);
+				outMsgContext.setAxisOperation(synapseOperation);
+				outMsgContext.setProperty("response", new Boolean(true));
+				Object os = messageContext
+						.getProperty(MessageContext.TRANSPORT_OUT);
+				outMsgContext.setProperty(MessageContext.TRANSPORT_OUT, os);
+				Object ti = messageContext
+						.getProperty(HTTPConstants.HTTPOutTransportInfo);
+				outMsgContext.setProperty(HTTPConstants.HTTPOutTransportInfo,
+						ti);
+				ae.receive(outMsgContext);
+
+			} else {
+
+				System.out.println("send");
+				Object os = messageContext
+						.getProperty(MessageContext.TRANSPORT_OUT);
+				outMsgContext.setProperty(MessageContext.TRANSPORT_OUT, os);
+				Object ti = messageContext
+						.getProperty(HTTPConstants.HTTPOutTransportInfo);
+				outMsgContext.setProperty(HTTPConstants.HTTPOutTransportInfo,
+						ti);
+				// respond to client
+				ae.send(outMsgContext);
+			}
 		} catch (AxisFault e) {
 			throw new SynapseException(e);
 		} catch (FactoryConfigurationError e) {
 			throw new SynapseException(e);
-			
+
 		}
 	}
 

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/SynapseMessageReceiver.class
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/SynapseMessageReceiver.class?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/SynapseMessageReceiver.java
URL: http://svn.apache.org/viewcvs/incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/SynapseMessageReceiver.java?rev=330555&r1=330554&r2=330555&view=diff
==============================================================================
--- incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/SynapseMessageReceiver.java (original)
+++ incubator/synapse/trunk/scratch/paul2/synapsejoint/org/apache/synapse/axis2/SynapseMessageReceiver.java Thu Nov  3 06:22:20 2005
@@ -22,9 +22,11 @@
 import org.apache.synapse.RuleEngine;
 
 public class SynapseMessageReceiver implements MessageReceiver {
-	// THIS IS THE 
+	
 	
 	public void receive(MessageContext mc) throws AxisFault {
+		System.out.println("received by SMR");
+		System.out.println(mc.getSystemContext().getAxisConfiguration().hashCode());
 		RuleEngine ruleEngine = Axis2RuleEngineFinder.getRuleEngine(mc);
 		ruleEngine.process(mc);
 	}



---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org