Now you could perform a dist-bin (skipping the unit tests - they do not compile yet) and build Synapse and run it with the sample configuration in the new format .. (i.e. the StockQuoteClient)

asankha

e.g.
 <synapse xmlns="http://ws.apache.org/ns/synapse";>
   <definitions>
     <sequence name="registration_flow">
       <filter xpath="//[EMAIL PROTECTED]'GOLD']">
          <log level="full">
                  <property name="category" value="GOLD"/>
          </log>
          <drop/>
</filter> <sequence ref="fault_flow"/>
     </sequence>

     <sequence name="fault_flow">
       <log level="full">
         <property name="application" value="Hello World"/>
       </log>
       <drop/>
     </sequence>
<sequence name="stockquote">
       <log level="full">
         <property name="application" value="StockQuote"/>
       </log>
<filter xpath="//*[wsx:symbol='MSFT']" xmlns:wsx="http://www.webserviceX.NET/";>
           <log>
               <property name="Stock" value="IS MSFT"/>
           </log>
           <makefault>
<reason>Sorry the requested stock is no longer available</reason>
           </makefault>
       </filter>
<header name="to" value="http://www.webservicex.net/stockquote.asmx"/>
     </sequence>

   </definitions>

   <rules>
<filter source="//wsa:To" regex=".*/StockQuote.*" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing";>
           <sequence ref="stockquote"/>
       </filter>
       <send/>
   </rules>

 </synapse>
Index: bin/synapse.bat
===================================================================
--- bin/synapse.bat     (revision 398812)
+++ bin/synapse.bat     (working copy)
@@ -74,7 +74,7 @@
 
 :runSynapse
 @echo on
-"%_JAVACMD%" -Djava.ext.dirs=%SYNAPSE_HOME%\lib;%SYNAPSE_HOME% -cp 
%SYNAPSE_HOME%\lib org.apache.axis2.transport.http.SimpleHTTPServer 
%SYNAPSE_CMD_LINE_ARGS%
+"%_JAVACMD%" -Daxis2.xml=%SYNAPSE_HOME%\synapse_repository\conf\axis2.xml 
-Djava.ext.dirs=%SYNAPSE_HOME%\lib;%SYNAPSE_HOME% -cp %SYNAPSE_HOME%\lib 
org.apache.axis2.transport.http.SimpleHTTPServer %SYNAPSE_CMD_LINE_ARGS%
 goto end
 
 :end
Index: bin/synapse.sh
===================================================================
--- bin/synapse.sh      (revision 398812)
+++ bin/synapse.sh      (working copy)
@@ -89,4 +89,4 @@
 echo "Using $SYNAPSE_HOME:   $SYNAPSE_HOME"
 echo "Using JAVA_HOME:       $JAVA_HOME"
 
-$JAVA_HOME/bin/java -classpath $SYNAPSE_CLASSPATH 
org.apache.axis2.transport.http.SimpleHTTPServer 
$SYNAPSE_HOME/synapse_repository -p8080
+$JAVA_HOME/bin/java 
-Daxis2.xml=$SYNAPSE_HOME/synapse_repository/conf/axis2.xml -classpath 
$SYNAPSE_CLASSPATH org.apache.axis2.transport.http.SimpleHTTPServer 
$SYNAPSE_HOME/synapse_repository -p8080
Index: etc/project.properties
===================================================================
--- etc/project.properties      (revision 398812)
+++ etc/project.properties      (working copy)
@@ -32,11 +32,13 @@
 # -------------------------------------------------------------------
 ant.version=1.6.5
 axis.wsdl4j.version=1.2
-axis2.version=SNAPSHOT
-axiom.version=SNAPSHOT
+axis2.version=1.0-RC5
+axis2.wsdl.version=SNAPSHOT
+axiom.version=1.0
 policy.version=SNAPSHOT
+#XmlSchema.version=1.0.2
 XmlSchema.version=SNAPSHOT
-wss4j.version=SNAPSHOT
+wss4j.version=1.5.0
 commons.codec.version=1.3
 commons.discovery.version=0.2
 commons.httpclient.version=3.0
@@ -46,20 +48,20 @@
 geronimo.spec.servlet.version=2.4-rc4
 servletapi.version=2.3
 groovy.all.version=1.0-jsr-01
-jaxen.version=1.1-beta-7
+jaxen.version=1.1-beta-8
 junit.version=3.8.1
-log4j.version=1.2.12
+log4j.version=1.2.13
 opensaml.version=1.0.1
-stax.api.version=1.0
 stax.impl.groupid=woodstox
 stax.impl.artifactid=wstx
-stax.impl.version=asl-2.8.1
-xalan.version=2.6.0
-xerces.version=2.6.2
+stax.impl.version=asl-2.9.3
+stax.api.version=1.0
+xalan.version=2.7.0
+xerces.version=2.7.1
 xmlunit.version=1.0
 annogen.version=0.1.0
 geronimo.spec.jms.version=1.1-rc4
-backport_util_concurrent.version=2.0_01_pd
+backport_util_concurrent.version=2.1
 spring.version=1.2.6
 
 
@@ -70,12 +72,12 @@
 optional.includes=
 maven.multiproject.includes=\
 modules/core/project.xml,\
-modules/mediators/project.xml,\
+#modules/mediators/project.xml,\
 modules/samples/project.xml,\
-modules/extensions/project.xml,\
+#modules/extensions/project.xml,\
 ${optional.includes}
 
 # -------------------------------------------------------------------
 #                Addressing Version
 # -------------------------------------------------------------------
-addressing.version=0.95
+addressing.version=1.0
Index: etc/project.xml
===================================================================
--- etc/project.xml     (revision 398812)
+++ etc/project.xml     (working copy)
@@ -69,7 +69,7 @@
         <dependency>
             <groupId>axis2</groupId>
             <artifactId>axis2-wsdl</artifactId>
-            <version>${axis2.version}</version>
+            <version>${axis2.wsdl.version}</version>
         </dependency>
 
         <dependency>
Index: maven.xml
===================================================================
--- maven.xml   (revision 399114)
+++ maven.xml   (working copy)
@@ -335,7 +335,7 @@
         <ant:mkdir dir="${bin.dist.dir}/xdocs"/>
         <ant:mkdir dir="${bin.dist.dir}/synapse_repository"/>
         <ant:mkdir dir="${bin.dist.dir}/samples"/>
-        <ant:mkdir dir="${bin.dist.dir}/mediators"/>
+        <!--<ant:mkdir dir="${bin.dist.dir}/mediators"/>-->
 
         <ant:mkdir dir="target/temp/"/>
 
@@ -360,13 +360,13 @@
             <ant:fileset dir="modules/core/target/synapse-repository"/>
         </ant:copy>
 
-        <ant:copy todir="${bin.dist.dir}/samples" flatten="false">
+        <!--<ant:copy todir="${bin.dist.dir}/samples" flatten="false">
             <ant:fileset dir="modules/samples/target/dist-bin/samples"/>
         </ant:copy>
 
         <ant:copy todir="${bin.dist.dir}/mediators" flatten="false">
             <ant:fileset dir="modules/mediators/target/dist-bin/mediators"/>
-        </ant:copy>
+        </ant:copy>-->
 
         <ant:copy todir="target/temp/">
             <ant:fileset dir="target/dist-bin/">
Index: modules/core/maven.xml
===================================================================
--- modules/core/maven.xml      (revision 399112)
+++ modules/core/maven.xml      (working copy)
@@ -40,145 +40,7 @@
         </jar>
 
 
-        <echo message="----------------Creating NPE aar----------------"/>
-        <mkdir dir="target/services/npe/META-INF"/>
-        <mkdir dir="target/services/npe/org/apache/axis2/test"/>
-        <copy file="test-resources/org/apache/axis2/META-INF/services.xml"
-              tofile="target/services/npe/META-INF/services.xml"/>
-        <copy file="target/test-classes/org/apache/axis2/test/Echo.class"
-              tofile="target/services/npe/org/apache/axis2/test/Echo.class"/>
-        <jar jarfile="target/npe.aar"
-             basedir="target/services/npe">
-            <include name="**"/>
-        </jar>
-        <echo message="----------------Creating test-mediator 
aar----------------"/>
-        <mkdir dir="target/services/test-mediator/META-INF"/>
-        <mkdir dir="target/services/test-mediator/org/apache/axis2/test"/>
-        <copy 
file="test-resources/org/apache/axis2/META-INF/service-mediator.xml"
-              tofile="target/services/test-mediator/META-INF/services.xml"/>
-        <copy 
file="target/test-classes/org/apache/axis2/test/TestMediator.class"
-              
tofile="target/services/test-mediator/org/apache/axis2/test/TestMediator.class"/>
-        <jar jarfile="target/test-mediator.aar"
-             basedir="target/services/test-mediator">
-            <include name="**"/>
-        </jar>
 
-        <!--echo message="Creating EnvironmentAware-Mediator aar"/>
-        <mkdir dir="target/services/environmentaware-mediator/META-INF"/>
-        <mkdir 
dir="target/services/environmentaware-mediator/org/apache/axis2/test"/>
-        <copy 
file="test-resources/org/apache/axis2/META-INF/environmentaware-service.xml"
-              
tofile="target/services/environmentaware-mediator/META-INF/services.xml"/>
-        <copy 
file="target/test-classes/org/apache/axis2/test/EnvironmentAwareMediator.class"
-              
tofile="target/services/environmentaware-mediator/org/apache/axis2/test/EnvironmentAwareMediator.class"/>
-        <jar jarfile="target/environmentaware-mediator.aar"
-             basedir="target/services/environmentaware-mediator">
-            <include name="**"/>
-        </jar-->
-
-        <echo message="-----------Creating Testing Repository - SendOn 
----------"/>
-        <mkdir dir="target/synapse-repository-sendon"/>
-        <copy file="target/synapse.aar"
-              tofile="target/synapse-repository-sendon/services/synapse.aar"/>
-        <copy file="target/npe.aar"
-              tofile="target/synapse-repository-sendon/services/npe.aar"/>
-        <copy file="target/emptymediator.aar"
-              
tofile="target/synapse-repository-sendon/services/emptymediator.aar"/>
-        <mkdir dir="target/synapse-repository-sendon/modules"/>
-        <copy 
file="../../repository/modules/addressing-${addressing.version}.mar"
-              
tofile="target/synapse-repository-sendon/modules/addressing-${addressing.version}.mar"/>
-        <copy file="../../repository/conf/axis2.xml"
-              tofile="target/synapse-repository-sendon/conf/axis2.xml"/>
-        <copy file="test/rules/synapse-sendon.xml"
-              tofile="target/synapse-repository-sendon/conf/synapse.xml"/>
-
-
-        <echo message="-----------Creating Testing Repository - SendNow 
----------"/>
-            <mkdir dir="target/synapse-repository-sendnow"/>
-            <copy file="target/synapse.aar"
-                  
tofile="target/synapse-repository-sendnow/services/synapse.aar"/>
-            <copy file="target/npe.aar"
-                  tofile="target/synapse-repository-sendnow/services/npe.aar"/>
-            <copy file="target/emptymediator.aar"
-                  
tofile="target/synapse-repository-sendnow/services/emptymediator.aar"/>
-            <mkdir dir="target/synapse-repository-sendnow/modules"/>
-            <copy 
file="../../repository/modules/addressing-${addressing.version}.mar"
-                  
tofile="target/synapse-repository-sendnow/modules/addressing-${addressing.version}.mar"/>
-            <copy file="../../repository/conf/axis2.xml"
-                  tofile="target/synapse-repository-sendnow/conf/axis2.xml"/>
-            <copy file="test/rules/synapse-sendnow.xml"
-                  tofile="target/synapse-repository-sendnow/conf/synapse.xml"/>
-
-        <echo message="-----------Creating Testing Repository - SendOnAxis2 
----------"/>
-        <mkdir dir="target/synapse-repository-sendonAxis2"/>
-
-        <copy file="target/npe.aar"
-              tofile="target/synapse-repository-sendonAxis2/services/npe.aar"/>
-        <copy file="target/test-mediator.aar"
-              
tofile="target/synapse-repository-sendonAxis2/services/test-mediator.aar"/>
-        <copy file="target/emptymediator.aar"
-              
tofile="target/synapse-repository-sendonAxis2/services/emptymediator.aar"/>
-        <copy 
file="../../repository/modules/addressing-${addressing.version}.mar"
-              
tofile="target/synapse-repository-sendonAxis2/modules/addressing-${addressing.version}.mar"/>
-        <copy file="test-resources/axis2/conf/axis2.xml"
-              tofile="target/synapse-repository-sendonAxis2/conf/axis2.xml"/>
-
-        <echo message="-----------Creating Testing Repository - SendonAxis2Tcp 
----------"/>
-        <mkdir dir="target/synapse-repository-sendonAxis2"/>
-
-        <copy file="target/npe.aar"
-              
tofile="target/synapse-repository-sendonAxis2Tcp/services/npe.aar"/>
-        <copy 
file="../../repository/modules/addressing-${addressing.version}.mar"
-              
tofile="target/synapse-repository-sendonAxis2Tcp/modules/addressing-${addressing.version}.mar"/>
-        <copy file="test-resources/tcp/axis2-tcp.xml"
-              
tofile="target/synapse-repository-sendonAxis2Tcp/conf/axis2.xml"/>
-
-        <echo message="-----------Creating Testing Repository - HttpTcp 
----------"/>
-        <mkdir dir="target/synapse-repository-httptcp"/>
-
-        <copy file="target/emptymediator.aar"
-              
tofile="target/synapse-repository-httptcp/services/emptymediator.aar"/>
-        <copy file="target/synapse.aar"
-              tofile="target/synapse-repository-httptcp/services/synapse.aar"/>
-        <copy 
file="../../repository/modules/addressing-${addressing.version}.mar"
-              
tofile="target/synapse-repository-httptcp/modules/addressing-${addressing.version}.mar"/>
-        <copy file="../../repository/conf/axis2.xml"
-              tofile="target/synapse-repository-httptcp/conf/axis2.xml"/>
-        <copy file="test/rules/synapse-httptcp.xml"
-              tofile="target/synapse-repository-httptcp/conf/synapse.xml"/>
-
-        <echo message="-----------Creating Testing Repository - 
EnvironmentAware ----------"/>
-        <!--mkdir dir="target/synapse-repository-environmentaware"/>
-
-        <copy file="target/environmentaware-mediator.aar"
-              
tofile="target/synapse-repository-environmentaware/services/environmentaware-mediator.aar"/>
-        <copy file="target/emptymediator.aar"
-              
tofile="target/synapse-repository-sendon/services/emptymediator.aar"/>
-        <copy file="target/synapse.aar"
-              
tofile="target/synapse-repository-environmentaware/services/synapse.aar"/>
-        <copy 
file="../../repository/modules/addressing-${addressing.version}.mar"
-              
tofile="target/synapse-repository-environmentaware/modules/addressing-${addressing.version}.mar"/>
-        <copy file="../../repository/conf/axis2.xml"
-              
tofile="target/synapse-repository-environmentaware/conf/axis2.xml"/>
-        <copy file="test/rules/synapse-environmentaware.xml"
-              
tofile="target/synapse-repository-environmentaware/conf/synapse.xml"/-->
-
-        <echo message="-----------Creating Testing Repository - Simple REST 
Repository ----------"/>
-        <mkdir dir="target/synapse-repository-resources"/>
-
-        <copy file="target/npe.aar"
-              tofile="target/synapse-repository-resources/services/npe.aar"/>
-        <copy 
file="../../repository/modules/addressing-${addressing.version}.mar"
-              
tofile="target/synapse-repository-resources/modules/addressing-${addressing.version}.mar"/>
-        <copy file="test-resources/rest/conf/axis2-rest.xml"
-              tofile="target/synapse-repository-resources/conf/axis2.xml"/>
-
-        <ant:delete file="target/npe.aar"/>
-        <ant:delete file="target/test-mediator.aar"/>
-        <ant:delete dir="target/test-mediator"/>
-        <ant:delete dir="target/environmentaware-mediator.aar"/>
-        <ant:delete dir="target/environmentaware-mediator"/>
-
-
         <echo message="-----------Creating Testing Repository - 
Genral----------"/>
         <mkdir dir="target/synapse-repository"/>
         <copy file="target/synapse.aar"
Index: modules/core/src/org/apache/synapse/axis2/Axis2FlexibleMEPClient.java
===================================================================
--- modules/core/src/org/apache/synapse/axis2/Axis2FlexibleMEPClient.java       
(revision 398818)
+++ modules/core/src/org/apache/synapse/axis2/Axis2FlexibleMEPClient.java       
(working copy)
@@ -123,7 +123,7 @@
                 + UUIDGenerator.getUUID()));
         if (smc.getReplyTo() != null)
             mc.setReplyTo(smc.getReplyTo());
-        if (smc.getRelatesTo() != null)
+        //if (smc.getRelatesTo() != null)
             //mc.setRelatesTo(smc.getRelatesTo());
             if (smc.getTo() != null) {
                 mc.setTo(smc.getTo());
Index: modules/core/src/org/apache/synapse/axis2/SynapseMessageReceiver.java
===================================================================
--- modules/core/src/org/apache/synapse/axis2/SynapseMessageReceiver.java       
(revision 399252)
+++ modules/core/src/org/apache/synapse/axis2/SynapseMessageReceiver.java       
(working copy)
@@ -34,7 +34,7 @@
     private Log log = LogFactory.getLog(getClass());
 
     public void receive(MessageContext mc) throws AxisFault {
-        log.debug("receiving message");
+        log.debug("Synapse received message");
         SynapseContext synCtx = Axis2SynapseContextFinder
             .getSynapseContext(mc);
         
////////////////////////////////////////////////////////////////////////
Index: modules/core/src/org/apache/synapse/config/FaultMediatorFactory.java
===================================================================
--- modules/core/src/org/apache/synapse/config/FaultMediatorFactory.java        
(revision 399252)
+++ modules/core/src/org/apache/synapse/config/FaultMediatorFactory.java        
(working copy)
@@ -33,7 +33,7 @@
  */
 public class FaultMediatorFactory extends AbstractMediatorFactory {
 
-    private static final QName HEADER_Q = new 
QName(Constants.SYNAPSE_NAMESPACE, "fault");
+    private static final QName HEADER_Q = new 
QName(Constants.SYNAPSE_NAMESPACE, "makefault");
 
     private static final QName ATT_VERSION_Q = new 
QName(Constants.NULL_NAMESPACE, "version");
     private static final QName CODE_Q        = new 
QName(Constants.SYNAPSE_NAMESPACE, "code");
Index: modules/core/src/org/apache/synapse/config/FilterMediatorFactory.java
===================================================================
--- modules/core/src/org/apache/synapse/config/FilterMediatorFactory.java       
(revision 399252)
+++ modules/core/src/org/apache/synapse/config/FilterMediatorFactory.java       
(working copy)
@@ -21,12 +21,14 @@
 import org.apache.synapse.mediators.filters.FilterMediator;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.xpath.AXIOMXPath;
 import org.jaxen.JaxenException;
 
 import javax.xml.namespace.QName;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
+import java.util.Iterator;
 
 public class FilterMediatorFactory extends AbstractListMediatorFactory {
 
@@ -55,6 +57,7 @@
                     throw new SynapseException(msg);
                 }
             }
+            addNameSpaces(elem, filter.getXpath());
 
         } else if (attSource != null && attRegex != null) {
 
@@ -81,6 +84,7 @@
                     throw new SynapseException(msg);
                 }
             }
+            addNameSpaces(elem, filter.getSource());
 
         } else {
             String msg = "An xpath or (source, regex) attributes are required 
for a filter";
@@ -93,4 +97,18 @@
     public QName getTagQName() {
         return FILTER_Q;
     }
+
+    private void addNameSpaces(OMElement elem, AXIOMXPath xp) {
+        try {
+            Iterator it = elem.getAllDeclaredNamespaces();
+            while (it.hasNext()) {
+                OMNamespace n = (OMNamespace) it.next();
+                xp.addNamespace(n.getPrefix(), n.getName());
+            }
+        } catch (JaxenException je) {
+            String msg = "Error adding declared name spaces " + elem;
+            log.error(msg);
+            throw new SynapseException(msg, je);
+        }
+    }
 }
Index: modules/core/src/org/apache/synapse/config/HeaderMediatorFactory.java
===================================================================
--- modules/core/src/org/apache/synapse/config/HeaderMediatorFactory.java       
(revision 399252)
+++ modules/core/src/org/apache/synapse/config/HeaderMediatorFactory.java       
(working copy)
@@ -21,37 +21,57 @@
 import org.apache.synapse.SynapseException;
 import org.apache.synapse.config.Constants;
 import org.apache.synapse.api.Mediator;
-import org.apache.synapse.mediators.builtin.HeaderMediator;
+import org.apache.synapse.mediators.transform.HeaderMediator;
+import org.apache.synapse.mediators.transform.HeaderMediator;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMAttribute;
 
 /**
  *
- *         <p>
- *         <xmp><synapse:header name="optional" 
type="to|from|faultto|replyto|action"
- *         value="newvalue"/> </xmp>
- * 
- * 
  */
 public class HeaderMediatorFactory extends AbstractMediatorFactory {
-    private static final QName HEADER_Q = new QName(
-            Constants.SYNAPSE_NAMESPACE, "header");
 
+    private static final QName HEADER_Q = new 
QName(Constants.SYNAPSE_NAMESPACE, "header");
 
-        private static final QName TYPE_ATT_Q = new QName("type"),
-            VALUE_ATT_Q = new QName("value");
+    public Mediator createMediator(SynapseContext synCtx, OMElement elem) {
 
-        public Mediator createMediator(SynapseContext se, OMElement el) {
-            HeaderMediator hm = new HeaderMediator();
-            OMAttribute val = el.getAttribute(VALUE_ATT_Q);
-            OMAttribute type = el.getAttribute(TYPE_ATT_Q);
-            if (val == null || type == null) {
-                throw new SynapseException("<header> must have both " + 
VALUE_ATT_Q
-                    + " and " + TYPE_ATT_Q + " attributes: " + el.toString());
-            }
-            hm.setHeaderType(type.getAttributeValue());
-            hm.setValue( val.getAttributeValue());
-            return hm;
+        HeaderMediator headerMediator = new HeaderMediator();
+        OMAttribute name   = elem.getAttribute(new 
QName(Constants.NULL_NAMESPACE, "name"));
+        OMAttribute value  = elem.getAttribute(new 
QName(Constants.NULL_NAMESPACE, "value"));
+        OMAttribute exprn  = elem.getAttribute(new 
QName(Constants.NULL_NAMESPACE, "expression"));
+        OMAttribute action = elem.getAttribute(new 
QName(Constants.NULL_NAMESPACE, "action"));
+
+        if (name == null || name.getAttributeValue() == null) {
+            String msg = "A valid name attribute is required for the header 
mediator";
+            log.error(msg);
+            throw new SynapseException(msg);
+        } else {
+            headerMediator.setName(name.getAttributeValue());
+        }
+
+        // The action attribute is optional, if provided and equals to 
'remove' the
+        // header mediator will act as a header remove mediator
+        if (action != null && "remove".equals(action.getAttributeValue())) {
+            headerMediator.setAction(HeaderMediator.ACTION_REMOVE);
+        }
+
+        if (value == null && exprn == null) {
+            String msg = "A 'value' or 'expression' attribute is required for 
a header mediator";
+            log.error(msg);
+            throw new SynapseException(msg);
+        }
+
+        if (value != null && value.getAttributeValue() != null) {
+            headerMediator.setValue(value.getAttributeValue());
+        } else if (exprn != null && exprn.getAttributeValue() != null) {
+            headerMediator.setExpression(exprn.getAttributeValue());
+        } else {
+            String msg = "Invalid attribute value for the attribute 
'expression' or 'value'";
+            log.error(msg);
+            throw new SynapseException(msg);
+        }
+
+        return headerMediator;
     }
 
     public QName getTagQName() {
Index: modules/core/src/org/apache/synapse/config/MediatorFactoryFinder.java
===================================================================
--- modules/core/src/org/apache/synapse/config/MediatorFactoryFinder.java       
(revision 399252)
+++ modules/core/src/org/apache/synapse/config/MediatorFactoryFinder.java       
(working copy)
@@ -54,7 +54,9 @@
         SendMediatorFactory.class,
         FilterMediatorFactory.class,
         SynapseMediatorFactory.class,
-        DropMediatorFactory.class
+        DropMediatorFactory.class,
+        HeaderMediatorFactory.class,
+        FaultMediatorFactory.class
       };
 
     private static MediatorFactoryFinder instance = null;
Index: modules/core/src/org/apache/synapse/HeaderType.java
===================================================================
--- modules/core/src/org/apache/synapse/HeaderType.java (revision 398818)
+++ modules/core/src/org/apache/synapse/HeaderType.java (working copy)
@@ -45,7 +45,7 @@
         else if (header.equalsIgnoreCase(STRREPLYTO))
             headerType = REPLYTO;
         else
-            throw new SynapseException("unknown header type");
+            throw new SynapseException("Unknown header : " + header);
     }
 
     public String getHeaderType() {
Index: modules/core/src/org/apache/synapse/mediators/builtin/HeaderMediator.java
===================================================================
--- modules/core/src/org/apache/synapse/mediators/builtin/HeaderMediator.java   
(revision 399252)
+++ modules/core/src/org/apache/synapse/mediators/builtin/HeaderMediator.java   
(working copy)
@@ -1,58 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-package org.apache.synapse.mediators.builtin;
-
-import org.apache.synapse.HeaderType;
-import org.apache.synapse.SynapseMessage;
-import org.apache.synapse.mediators.AbstractMediator;
-
-
-/**
- * @see org.apache.synapse.HeaderType
- *      <p> Sets aspects of the header to new values.
- *      Uses HeaderType to set header values
- */
-public class HeaderMediator extends AbstractMediator {
-
-    private HeaderType headerType = new HeaderType();
-
-    private String value = null;
-
-    public void setHeaderType(String ht) {
-        headerType.setHeaderType(ht);
-    }
-
-    public String getHeaderType() {
-        return headerType.getHeaderType();
-    }
-
-    public boolean mediate(SynapseMessage sm) {
-        log.debug(getType() + " mediate()");
-        headerType.setHeader(sm, getValue());
-        return true;
-    }
-
-    public void setValue(String value) {
-        this.value = value;
-    }
-
-    public String getValue() {
-        return value;
-    }
-
-}
Index: modules/core/src/org/apache/synapse/mediators/builtin/SendMediator.java
===================================================================
--- modules/core/src/org/apache/synapse/mediators/builtin/SendMediator.java     
(revision 399252)
+++ modules/core/src/org/apache/synapse/mediators/builtin/SendMediator.java     
(working copy)
@@ -17,6 +17,7 @@
 package org.apache.synapse.mediators.builtin;
 
 import org.apache.synapse.SynapseMessage;
+import org.apache.synapse.Constants;
 import org.apache.synapse.mediators.AbstractMediator;
 
 /**
@@ -36,6 +37,9 @@
      */
     public boolean mediate(SynapseMessage synMsg) {
         log.debug(getType() + " mediate()");
+        log.debug("Sending To: " + (synMsg.getTo() != null ? 
synMsg.getTo().getAddress() : "null"));
+        log.debug("Body : \n" + synMsg.getEnvelope());
+        //synMsg.setProperty(Constants.ENGAGE_ADDRESSING_OUT_BOUND_MESSAGE, 
Boolean.TRUE);
         synMsg.getSynapseContext().send(synMsg);
         return false;
     }
Index: modules/core/src/org/apache/synapse/mediators/filters/FilterMediator.java
===================================================================
--- modules/core/src/org/apache/synapse/mediators/filters/FilterMediator.java   
(revision 399252)
+++ modules/core/src/org/apache/synapse/mediators/filters/FilterMediator.java   
(working copy)
@@ -17,11 +17,16 @@
 package org.apache.synapse.mediators.filters;
 
 import org.apache.axiom.om.xpath.AXIOMXPath;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.impl.llom.OMTextImpl;
+import org.apache.axiom.om.impl.llom.OMElementImpl;
 import org.apache.synapse.SynapseMessage;
 import org.apache.synapse.mediators.AbstractListMediator;
 import org.jaxen.JaxenException;
 
 import java.util.regex.Pattern;
+import java.util.List;
+import java.util.Iterator;
 
 
 /**
@@ -49,9 +54,25 @@
                 return xpath.booleanValueOf(synMsg.getEnvelope());
 
             } else if (source != null && regex != null) {
+
                 Object result = source.evaluate(synMsg.getEnvelope());
-                return regex.matcher(result.toString()).matches();
+                String textValue = "";
 
+                if (result instanceof List) {
+                    Iterator iter = ((List) result).iterator();
+                    while (iter.hasNext()) {
+                        Object o = iter.next();
+                        if (o instanceof OMTextImpl) {
+                            textValue += ((OMTextImpl) o).getText();
+                        } else if (o instanceof OMElementImpl) {
+                            textValue += ((OMElementImpl) o).getText();
+                        }
+                    }
+                } else {
+                    textValue = result.toString();
+                }
+                return regex.matcher(textValue).matches();
+
             } else {
                 log.error("Invalid configuration specified");
                 return false;
Index: 
modules/core/src/org/apache/synapse/mediators/transform/FaultMediator.java
===================================================================
--- modules/core/src/org/apache/synapse/mediators/transform/FaultMediator.java  
(revision 399252)
+++ modules/core/src/org/apache/synapse/mediators/transform/FaultMediator.java  
(working copy)
@@ -72,14 +72,19 @@
             }
         }
 
-        // TODO : Figure out how to easily gen the correct fault
-        // Replace this
         OMDocument soapFaultDocument = factory.createOMDocument();
-        SOAPEnvelope faultEnvelope   = factory.getDefaultFaultEnvelope();
-        //SOAPFault fault = factory.createSOAPFault();
-        //faultEnvelope.setFirstChild(fault);
+        SOAPEnvelope faultEnvelope = factory.getDefaultFaultEnvelope();
         soapFaultDocument.addChild(faultEnvelope);
 
+        /*SOAPFaultReason reason = factory.createSOAPFaultReason();
+        reason.setText(getReason());
+
+        SOAPFault fault = factory.createSOAPFault();
+        fault.setReason(reason);
+
+        SOAPEnvelope faultEnvelope = factory.getDefaultFaultEnvelope();
+        faultEnvelope.getBody().addFault(fault);*/
+
         // set the fault message to the "faultTo" of the original message if 
it exists
         // else to the "replyTo"
         EndpointReference toEPR = synMsg.getTo();
Index: 
modules/core/src/org/apache/synapse/mediators/transform/HeaderMediator.java
===================================================================
--- modules/core/src/org/apache/synapse/mediators/transform/HeaderMediator.java 
(revision 398818)
+++ modules/core/src/org/apache/synapse/mediators/transform/HeaderMediator.java 
(working copy)
@@ -1,58 +1,77 @@
 /*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.synapse.mediators.transform;
 
-
-package org.apache.synapse.mediators.builtin;
-
+import org.apache.synapse.mediators.AbstractMediator;
+import org.apache.synapse.SynapseMessage;
 import org.apache.synapse.HeaderType;
-import org.apache.synapse.SynapseMessage;
-import org.apache.synapse.mediators.AbstractMediator;
 
-
-/**
- * @see org.apache.synapse.HeaderType
- *      <p> Sets aspects of the header to new values.
- *      Uses HeaderType to set header values
- */
 public class HeaderMediator extends AbstractMediator {
 
-    private HeaderType headerType = new HeaderType();
+    public static final int ACTION_SET = 0;
+    public static final int ACTION_REMOVE = 1;
 
+    private String name = null;
     private String value = null;
+    private int action = ACTION_SET;
 
-    public void setHeaderType(String ht) {
-        headerType.setHeaderType(ht);
+    private String expression = null; //TODO handle this case later
+    private HeaderType headerType = new HeaderType();
+
+    public boolean mediate(SynapseMessage synMsg) {
+        log.debug(getType() + " mediate()");
+        if (action == ACTION_SET) {
+            headerType.setHeader(synMsg, getValue());
+            //TODO support exprns later
+        } else {
+            //TODO remove header later
+        }
+        return true;
     }
 
-    public String getHeaderType() {
-        return headerType.getHeaderType();
+    public int getAction() {
+        return action;
     }
 
-    public boolean mediate(SynapseMessage sm) {
-        log.debug(getType() + " mediate()");
-        headerType.setHeader(sm, getValue());
-        return true;
+    public void setAction(int action) {
+        this.action = action;
     }
 
-    public void setValue(String value) {
-        this.value = value;
+    public String getName() {
+        return name;
     }
 
+    public void setName(String name) {
+        this.name = name;
+        this.headerType.setHeaderType(name);
+    }
+
     public String getValue() {
         return value;
     }
 
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getExpression() {
+        return expression;
+    }
+
+    public void setExpression(String expression) {
+        this.expression = expression;
+    }
 }
Index: modules/samples/project.xml
===================================================================
--- modules/samples/project.xml (revision 398812)
+++ modules/samples/project.xml (working copy)
@@ -17,6 +17,7 @@
             <artifactId>synapse-core</artifactId>
             <version>${pom.currentVersion}</version>
         </dependency>
+<!--
         <dependency>
             <groupId>synapse</groupId>
             <artifactId>synapse-mediators</artifactId>
@@ -26,7 +27,7 @@
             <groupId>synapse</groupId>
             <artifactId>synapse-extensions</artifactId>
             <version>${pom.currentVersion}</version>
-        </dependency>
+        </dependency>-->
         <!-- external JARs -->
         <dependency>
             <groupId>axis2</groupId>
Index: modules/samples/src/sampleMediators/InjectRedirect.java
===================================================================
--- modules/samples/src/sampleMediators/InjectRedirect.java     (revision 
398812)
+++ modules/samples/src/sampleMediators/InjectRedirect.java     (working copy)
@@ -17,9 +17,10 @@
 
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.synapse.SynapseMessage;
+import org.apache.synapse.mediators.AbstractMediator;
 import org.apache.synapse.api.Mediator;
 
-public class InjectRedirect implements Mediator {
+public class InjectRedirect extends AbstractMediator {
        private String uri = null;
 
        public void setUri(String uri) {
Index: modules/samples/src/sampleMediators/Logger.java
===================================================================
--- modules/samples/src/sampleMediators/Logger.java     (revision 398812)
+++ modules/samples/src/sampleMediators/Logger.java     (working copy)
@@ -16,6 +16,7 @@
 package sampleMediators;
 
 import org.apache.synapse.SynapseMessage;
+import org.apache.synapse.mediators.AbstractMediator;
 import org.apache.synapse.api.Mediator;
 import org.apache.axiom.soap.SOAPEnvelope;
 
@@ -25,7 +26,7 @@
  * <p>A sample Mediator that logs the message
  * 
  */
-public class Logger implements Mediator {
+public class Logger extends AbstractMediator {
 
     /*
       * (non-Javadoc)
Index: repository/conf/axis2.xml
===================================================================
--- repository/conf/axis2.xml   (revision 398812)
+++ repository/conf/axis2.xml   (working copy)
@@ -4,7 +4,7 @@
     <!-- ================================================= -->
     <parameter name="hotdeployment" locked="false">true</parameter>
     <parameter name="hotupdate" locked="false">false</parameter>
-    <parameter name="enableMTOM" locked="false">true</parameter>
+    <parameter name="enableMTOM" locked="false">false</parameter>
     <parameter name="sendStacktraceDetailsWithFaults" 
locked="false">true</parameter>
 
     <!-- Uncomment this to enable REST support -->
@@ -16,6 +16,8 @@
 
     <parameter name="userName" locked="false">admin</parameter>
     <parameter name="password" locked="false">axis2</parameter>
+    
+    <module ref="addressing"/>
 
     <!-- ================================================= -->
     <!-- Message Receivers -->
Index: repository/conf/synapse.xml
===================================================================
--- repository/conf/synapse.xml (revision 398812)
+++ repository/conf/synapse.xml (working copy)
@@ -1,37 +1,41 @@
-<synapse xmlns="http://ws.apache.org/ns/synapse";>
-       <!-- start by reading ws-a headers if they exist -->
-    <engage-addressing-in/>
-    
-    <!-- now log the message using log4j -->
-       <log/>
-       
-    <!-- Check if the URL matches the stockquote gateway/dumb case -->
-       <regex message-address="to" pattern=".*/StockQuote.*">
-               <ref ref="stockquote"/>                         
-       </regex>        
-       
-       <!-- check if the URL matches the virtual url - either the proxy or 
ws-add case -->
-       <regex message-address="to" pattern="http://stockquote.*";>
-               <ref ref="stockquote"/>
-       </regex>        
-       
-       <!-- send the message on -->
-       <send/>
-       
-       <!-- these are only called if referenced above-->
-    <never>
-        <stage name="stockquote">
-            <!-- set the To address to the real endpoint -->
-            <header type="to" 
value="http://www.webservicex.net/stockquote.asmx"/>
-            <!-- check if the symbol is MSFT -->
-            <xpath expr="//*[wsx:symbol='MSFT']" 
xmlns:wsx="http://www.webserviceX.NET/";>
-                <!-- if it is throw a fault -->
-                <fault>
-                    <reason>Isn't there a Windows API for that?</reason>
-                </fault>
-            </xpath>
-        </stage>
-
-    </never>
-</synapse>
-
+  <synapse xmlns="http://ws.apache.org/ns/synapse";>
+    <definitions>
+      <sequence name="registration_flow">
+        <filter xpath="//[EMAIL PROTECTED]'GOLD']">
+           <log level="full">
+                       <property name="category" value="GOLD"/>
+           </log>
+           <drop/>
+        </filter>  
+        <sequence ref="fault_flow"/>
+      </sequence>
+  
+      <sequence name="fault_flow">
+        <log level="full">
+          <property name="application" value="Hello World"/>
+        </log>
+        <drop/>
+      </sequence>
+      
+      <sequence name="stockquote">
+        <log level="full">
+          <property name="application" value="StockQuote"/>
+        </log>
+        <filter xpath="//*[wsx:symbol='MSFT']" 
xmlns:wsx="http://www.webserviceX.NET/";>
+               <makefault>
+                       <reason>Sorry the requested stock is no longer 
available</reason>
+               </makefault>
+        </filter>
+        <header name="to" value="http://www.webservicex.net/stockquote.asmx"/>
+      </sequence>
+  
+    </definitions>
+  
+    <rules>
+       <filter source="//wsa:To" regex=".*/StockQuote.*" 
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing";>
+               <sequence ref="stockquote"/>
+       </filter>
+       <send/>
+    </rules>
+  
+  </synapse> 
\ No newline at end of file
Index: repository/modules/addressing-0.95.mar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: repository/modules/addressing-1.0.mar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to