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