You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by Andreas Veithen <an...@gmail.com> on 2012/08/15 20:34:38 UTC
Re: svn commit: r1373302 - in /synapse/trunk/java: modules/core/
modules/core/src/main/java/org/apache/synapse/config/xml/ modules/core/src/main/java/org/apache/synapse/libraries/util/
modules/core/src/main/java/org/apache/synapse/mediators/ modules/
Please note that new samples are pretty much useless if there is no
corresponding documentation...
Andreas
On Wed, Aug 15, 2012 at 12:03 PM, <us...@apache.org> wrote:
> Author: uswick
> Date: Wed Aug 15 10:03:18 2012
> New Revision: 1373302
>
> URL: http://svn.apache.org/viewvc?rev=1373302&view=rev
> Log:
> commiting patches SYNAPSE-898,SYNAPSE-884, SYNAPSE-897 SYNAPSE-899, SYNAPSE-901
>
> Added:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
> synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml
> synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml
> synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml
> synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml
> synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml
> synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml
> synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml
> synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml
> Modified:
> synapse/trunk/java/modules/core/pom.xml
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
>
> Modified: synapse/trunk/java/modules/core/pom.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/pom.xml?rev=1373302&r1=1373301&r2=1373302&view=diff
> ==============================================================================
> --- synapse/trunk/java/modules/core/pom.xml (original)
> +++ synapse/trunk/java/modules/core/pom.xml Wed Aug 15 10:03:18 2012
> @@ -96,6 +96,25 @@
> </descriptors>
> </configuration>
> </execution>
> + <execution>
> + <id>eip-library-assembly</id>
> + <phase>generate-test-resources</phase>
> + <goals>
> + <goal>attached</goal>
> + </goals>
> + <configuration>
> + <finalName>synapse-eip-lib</finalName>
> + <filters>
> + <filter>
> + ${basedir}/src/test/resources/synapse-libraries/assembly/filter.properties
> + </filter>
> + </filters>
> + <descriptors>
> + <descriptor>src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> + </descriptor>
> + </descriptors>
> + </configuration>
> + </execution>
> </executions>
> </plugin>
>
> @@ -115,6 +134,7 @@
> <mkdir dir="target/test_repos/client/modules"/>
> <mkdir dir="target/test_repos/synapse/synapse-libraries"/>
> <copy file="target/synapse-test-lib.zip" todir="target/test_repos/synapse/synapse-libraries"/>
> + <copy file="target/synapse-eip-lib.zip" todir="target/test_repos/synapse/synapse-libraries"/>
> </tasks>
> </configuration>
> <goals>
> @@ -127,6 +147,7 @@
> <configuration>
> <tasks>
> <delete file="target/synapse-test-lib.zip"/>
> + <delete file="target/synapse-eip-lib.zip"/>
> </tasks>
> </configuration>
> <goals>
>
> Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java (original)
> +++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java Wed Aug 15 10:03:18 2012
> @@ -73,7 +73,7 @@ public class CloneMediatorFactory extend
> */
> public Mediator createSpecificMediator(OMElement elem, Properties properties) {
>
> - boolean asynchronousExe = true;
> + boolean asynchronousExe = false;
>
> CloneMediator mediator = new CloneMediator();
> processAuditStatus(mediator, elem);
> @@ -94,8 +94,6 @@ public class CloneMediatorFactory extend
> if (synchronousExeAttr != null && synchronousExeAttr.getAttributeValue().equals("true")) {
> asynchronousExe = false;
> }
> -
> - mediator.setSequential(!asynchronousExe);
>
> Iterator targetElements = elem.getChildrenWithName(TARGET_Q);
> while (targetElements.hasNext()) {
>
> Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java (original)
> +++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java Wed Aug 15 10:03:18 2012
> @@ -128,7 +128,7 @@ public class IterateMediatorFactory exte
> attachPathValue, e);
> }
>
> - boolean asynchronous = true;
> + boolean asynchronous = false;
> OMAttribute asynchronousAttr = elem.getAttribute(ATT_SEQUENCIAL);
> if (asynchronousAttr != null && asynchronousAttr.getAttributeValue().equals("true")) {
> asynchronous = false;
>
> Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java (original)
> +++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java Wed Aug 15 10:03:18 2012
> @@ -85,8 +85,8 @@ public class IterateMediatorSerializer e
> handleException("Missing expression of the IterateMediator which is required.");
> }
>
> - if (itrMed.getTarget() != null && !itrMed.getTarget().isAsynchronous()) {
> - itrElem.addAttribute("sequential", "true", nullNS);
> + if (itrMed.getTarget() != null && itrMed.getTarget().isAsynchronous()) {
> + itrElem.addAttribute("sequential", "false", nullNS);
> }
>
> itrElem.addChild(TargetSerializer.serializeTarget(itrMed.getTarget()));
>
> Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java (original)
> +++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java Wed Aug 15 10:03:18 2012
> @@ -22,6 +22,7 @@ import org.apache.axiom.om.OMAttribute;
> import org.apache.axiom.om.OMElement;
> import org.apache.synapse.Mediator;
> import org.apache.synapse.SynapseException;
> +import org.apache.synapse.mediators.TemplateParameter;
> import org.apache.synapse.mediators.template.TemplateMediator;
>
> import javax.xml.namespace.QName;
> @@ -32,8 +33,8 @@ import java.util.Properties;
> /**
> * Factory class for Template configuration as follows
> * <template name="simple_func">
> - <parameter name="p1"/>
> - <parameter name="p2"/>*
> + <parameter name="p1" [default="value|expression"] [optional=(true|false)]/>
> + <parameter name="p2" [default="value|expression"] [optional=(true|false)]/>*
> <mediator/>+
> </template>
> */
> @@ -43,20 +44,14 @@ public class TemplateMediatorFactory ext
> private static final QName TEMPLATE_BODY_Q
> = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "sequence");
>
> - /**
> - * Element QName Definitions
> - */
> - public static final QName PARAMETER_Q = new QName(
> - XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
> -
> -
> protected Mediator createSpecificMediator(OMElement elem, Properties properties) {
> TemplateMediator templateTemplateMediator = new TemplateMediator();
> OMAttribute nameAttr = elem.getAttribute(ATT_NAME);
> if (nameAttr != null) {
> templateTemplateMediator.setName(nameAttr.getAttributeValue());
> processAuditStatus(templateTemplateMediator, elem);
> - initParameters(elem, templateTemplateMediator);
> + //set template parameters
> + templateTemplateMediator.setParameters(TemplateParameterFactory.getTemplateParameters(elem));
> OMElement templateBodyElem = elem.getFirstChildWithName(TEMPLATE_BODY_Q);
> addChildren(templateBodyElem, templateTemplateMediator, properties);
> } else {
> @@ -67,22 +62,6 @@ public class TemplateMediatorFactory ext
> return templateTemplateMediator;
> }
>
> - private void initParameters(OMElement templateElem, TemplateMediator templateMediator) {
> - Iterator subElements = templateElem.getChildElements();
> - Collection<String> paramNames = new ArrayList<String>();
> - while (subElements.hasNext()) {
> - OMElement child = (OMElement) subElements.next();
> - if (child.getQName().equals(PARAMETER_Q)) {
> - OMAttribute paramNameAttr = child.getAttribute(ATT_NAME);
> - if (paramNameAttr != null) {
> - paramNames.add(paramNameAttr.getAttributeValue());
> - }
> -// child.detach();
> - }
> - }
> - templateMediator.setParameters(paramNames);
> - }
> -
> public QName getTagQName() {
> return TEMPLATE_Q;
> }
>
> Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java (original)
> +++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java Wed Aug 15 10:03:18 2012
> @@ -20,17 +20,17 @@ package org.apache.synapse.config.xml;
>
> import org.apache.axiom.om.OMElement;
> import org.apache.synapse.Mediator;
> +import org.apache.synapse.mediators.TemplateParameter;
> import org.apache.synapse.mediators.template.TemplateMediator;
>
> import java.util.Collection;
> -import java.util.Iterator;
> import java.util.List;
>
> /**
> * Serializer class for Template to serialize into a configuration as follows
> * <template name="simple_func">
> - <parameter name="p1"/>
> - <parameter name="p2"/>*
> + <parameter name="p1" [default="value|expression"] [optional=(true|false)]/>
> + <parameter name="p2" [default="value|expression"] [optional=(true|false)]/>*
> <mediator/>+
> </template>
> */
> @@ -47,6 +47,7 @@ public class TemplateMediatorSerializer
> if (mediator.getName() != null) {
> templateElem.addAttribute(fac.createOMAttribute(
> "name", nullNS, mediator.getName()));
> + //serialize parameters
> serializeParams(templateElem,mediator);
> serializeBody(templateElem, mediator.getList());
> saveTracingState(templateElem, mediator);
> @@ -55,14 +56,16 @@ public class TemplateMediatorSerializer
> return templateElem;
> }
>
> + /**
> + * Serialize parameters for the template mediator specified
> + *
> + * @param templateElem the OMElement that specifies the template configuration
> + * @param mediator the TemplateMediator
> + */
> private void serializeParams(OMElement templateElem, TemplateMediator mediator) {
> - Collection<String> params = mediator.getParameters();
> - for (String param : params) {
> - if (param != null && !"".equals(param)) {
> - OMElement paramEl = fac.createOMElement("parameter", synNS);
> - paramEl.addAttribute(fac.createOMAttribute("name", nullNS, param));
> - templateElem.addChild(paramEl);
> - }
> + Collection<TemplateParameter> params = mediator.getParameters();
> + if (params != null && params.size() > 0) {
> + TemplateParameterSerializer.serializeTemplateParameters(templateElem,mediator.getParameters());
> }
> }
>
>
> Added: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java (added)
> +++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,98 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements. See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership. The ASF licenses this file
> + * to you 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.config.xml;
> +
> +import org.apache.axiom.om.OMAttribute;
> +import org.apache.axiom.om.OMElement;
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +import org.apache.synapse.SynapseException;
> +import org.apache.synapse.mediators.TemplateParameter;
> +import org.apache.synapse.mediators.Value;
> +
> +import java.util.ArrayList;
> +import java.util.Iterator;
> +import java.util.List;
> +
> +/**
> + * A utility class capable of creating instances of TemplateParameter objects by reading
> + * through a given XML configuration
> + *
> + * <pre>
> + * <element>
> + * <parameter name="p1" [default="value|expression"] [optional=(true|false)]/>*
> + * </element>
> + * </pre>
> + */
> +public class TemplateParameterFactory {
> + private static final Log log = LogFactory.getLog(TemplateParameterFactory.class);
> +
> + /**
> + * Creates a list of parameters in a given template
> + *
> + * @param elem the OMElement that specifies the template configuration
> + * @return the list of TemplateParameter instances created
> + */
> + public static List<TemplateParameter> getTemplateParameters(OMElement elem) {
> +
> + List<TemplateParameter> parameterList = new ArrayList<TemplateParameter>();
> +
> + Iterator iter = elem.getChildrenWithName(TemplateParameter.PARAMETER_Q);
> +
> + while (iter.hasNext()) {
> +
> + OMElement paramEle = (OMElement) iter.next();
> + OMAttribute attName = paramEle.getAttribute(TemplateParameter.ATT_NAME_Q);
> + OMAttribute attDefault = paramEle.getAttribute(TemplateParameter.ATT_DEFAULT_Q);
> + OMAttribute attOptional = paramEle.getAttribute(TemplateParameter.ATT_OPTIONAL_Q);
> +
> + TemplateParameter param = new TemplateParameter();
> +
> + if (attName == null || attName.getAttributeValue() == null ||
> + attName.getAttributeValue().trim().length() == 0) {
> + String msg = "Parameter name is a required attribute for a Template Parameter";
> + log.error(msg);
> + throw new SynapseException(msg);
> + } else {
> + param.setName(attName.getAttributeValue());
> + }
> +
> +
> + if (attDefault == null || attDefault.getAttributeValue() == null ||
> + attDefault.getAttributeValue().trim().length() == 0) {
> + String msg = "Default value is not specified for " + param.getName() + " Parameter";
> + log.warn(msg);
> + } else {
> + Value paramValue = new ValueFactory().createValue("default", paramEle);
> + param.setDefaultValue(paramValue);
> + }
> +
> + if (attOptional == null || attOptional.getAttributeValue() == null ||
> + attOptional.getAttributeValue().trim().length() == 0) {
> + } else {
> + param.setOptional(Boolean.valueOf(attOptional.getAttributeValue()));
> + }
> +
> + parameterList.add(param);
> + }
> +
> + return parameterList;
> + }
> +
> +}
>
> Added: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java (added)
> +++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,111 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements. See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership. The ASF licenses this file
> + * to you 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.config.xml;
> +
> +import org.apache.axiom.om.OMAbstractFactory;
> +import org.apache.axiom.om.OMElement;
> +import org.apache.axiom.om.OMFactory;
> +import org.apache.axiom.om.OMNamespace;
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> +import org.apache.synapse.SynapseConstants;
> +import org.apache.synapse.SynapseException;
> +import org.apache.synapse.mediators.TemplateParameter;
> +
> +import javax.xml.namespace.QName;
> +import java.util.Collection;
> +
> +/**
> + * A utility class for serializing instances of TemplateParameter objects by reading
> + * through a given XML configuration
> + *
> + * <pre>
> + * <element>
> + * <parameter name="p1" [default="value|expression"] [optional=(true|false)]/>*
> + * </element>
> + * </pre>
> + */
> +public class TemplateParameterSerializer {
> + private static final Log log = LogFactory.getLog(TemplateParameterSerializer.class);
> +
> + protected static final OMFactory fac = OMAbstractFactory.getOMFactory();
> + protected static final OMNamespace synNS = SynapseConstants.SYNAPSE_OMNAMESPACE;
> + protected static final OMNamespace nullNS
> + = fac.createOMNamespace(XMLConfigConstants.NULL_NAMESPACE, "");
> +
> + protected static final QName PARAMETER_Q
> + = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
> +
> + /**
> + * Serialize all the parameters to the given parent element. For each and every
> + * parameter there will be a separate parameter element created inside the parent element.
> + *
> + * @param parent element to which parameter elements should be added
> + * @param params the list of TemplateParameter objects
> + */
> + public static void serializeTemplateParameters(OMElement parent,
> + Collection<TemplateParameter> params) {
> + serializeTemplateParameters(parent, params, PARAMETER_Q);
> + }
> +
> + /**
> + * Serialize all the parameters to the given parent element. For each and every
> + * parameter there will be a separate parameter element created inside the parent element.
> + *
> + * @param parent element to which parameter elements should be added
> + * @param params the list of TemplateParameter objects
> + * @param childElementName of the parameter element to be created
> + */
> + public static void serializeTemplateParameters(OMElement parent,
> + Collection<TemplateParameter> params,
> + QName childElementName) {
> + for (TemplateParameter tp : params) {
> + serializeTemplateParameter(parent,tp, childElementName);
> + }
> + }
> +
> + /**
> + * Serialize the parameter to the given parent element. There will be a element created with
> + * given configuration inside the parent element.
> + *
> + * @param parent element to which parameter elements should be added
> + * @param tp a property to be serialized
> + * @param childElementName of the parameter element to be created
> + */
> + public static void serializeTemplateParameter(OMElement parent,
> + TemplateParameter tp,
> + QName childElementName) {
> + OMElement param = fac.createOMElement(childElementName, parent);
> + if (tp.getName() != null) {
> + param.addAttribute(fac.createOMAttribute("name", nullNS, tp.getName()));
> + } else {
> + String msg = "Template parameter name missing";
> + log.error(msg);
> + throw new SynapseException(msg);
> + }
> +
> + if (tp.getDefaultValue() != null) {
> + new ValueSerializer().serializeValue(tp.getDefaultValue(), "default", param);
> +
> + if (tp.isOptional()) {
> + param.addAttribute(fac.createOMAttribute("optional", nullNS, "true"));
> + }
> + }
> +}
> +}
> \ No newline at end of file
>
> Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java (original)
> +++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java Wed Aug 15 10:03:18 2012
> @@ -56,6 +56,8 @@ public class LibDeployerUtils {
>
>
> public static Library createSynapseLibrary(String libPath) {
> + createDir(APP_UNZIP_DIR);
> +
> String libFilePath = LibDeployerUtils.formatPath(libPath);
> //extract
> String extractPath = LibDeployerUtils.extractSynapseLib(libFilePath);
>
> Added: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java (added)
> +++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,71 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements. See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership. The ASF licenses this file
> + * to you 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;
> +
> +import javax.xml.namespace.QName;
> +
> +import org.apache.synapse.config.xml.XMLConfigConstants;
> +
> +/**
> + * A template parameter is a variable which is used when creating templates and contains following configuration
> + * parameter name="p1" [default="value|expression"] [optional=(true|false)]
> + *
> + */
> +public class TemplateParameter {
> + public static final QName PARAMETER_Q = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
> + public static final QName ATT_NAME_Q = new QName(XMLConfigConstants.NULL_NAMESPACE, "name");
> + public static final QName ATT_DEFAULT_Q = new QName(XMLConfigConstants.NULL_NAMESPACE, "default");
> + public static final QName ATT_OPTIONAL_Q = new QName(XMLConfigConstants.NULL_NAMESPACE, "optional");
> +
> +
> + private String name;
> + private Value defaultValue;
> + private boolean isOptional;
> +
> + public TemplateParameter() {
> + this.name = null;
> + this.defaultValue = null;
> + this.isOptional = false;
> + }
> +
> + public String getName() {
> + return name;
> + }
> +
> + public void setName(String name) {
> + this.name = name;
> + }
> +
> + public Value getDefaultValue() {
> + return defaultValue;
> + }
> +
> + public void setDefaultValue(Value defaultValue) {
> + this.defaultValue = defaultValue;
> + }
> +
> + public boolean isOptional() {
> + return isOptional;
> + }
> +
> + public void setOptional(boolean optional) {
> + isOptional = optional;
> + }
> +
> +}
>
> Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java (original)
> +++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java Wed Aug 15 10:03:18 2012
> @@ -18,7 +18,10 @@
> */
> package org.apache.synapse.mediators.template;
>
> +import org.apache.commons.logging.Log;
> +import org.apache.commons.logging.LogFactory;
> import org.apache.synapse.MessageContext;
> +import org.apache.synapse.mediators.TemplateParameter;
> import org.apache.synapse.mediators.Value;
> import org.apache.synapse.mediators.eip.EIPUtils;
> import org.jaxen.JaxenException;
> @@ -30,6 +33,7 @@ import java.util.*;
> * a context will be populated with function parameters.
> */
> public class TemplateContext {
> + private static final Log log = LogFactory.getLog(TemplateContext.class);
> /**
> * refers to the function-template name this context is binded to
> */
> @@ -37,31 +41,40 @@ public class TemplateContext {
> /**
> * refers to the parameter names of the function
> */
> - private Collection<String> parameters;
> + private Collection<TemplateParameter> parameters;
> /**
> * contains a map for parameterNames to evaluated values
> */
> private Map mappedValues;
>
> - TemplateContext(String name, Collection<String> parameters) {
> + TemplateContext(String name, Collection<TemplateParameter> parameters) {
> this.fName = name;
> this.parameters = parameters;
> mappedValues = new HashMap();
> }
>
> /**
> - * evaluate raw parameters passed from an invoke medaiator and store them in this context
> + * evaluate raw parameters passed from an invoke mediator and store them in this context
> * @param synCtxt Synapse MessageContext
> */
> public void setupParams(MessageContext synCtxt) {
> - Iterator<String> paramNames = parameters.iterator();
> + Iterator<TemplateParameter> paramNames = parameters.iterator();
> while (paramNames.hasNext()) {
> - String parameter = paramNames.next();
> - String mapping = EIPUtils.getTemplatePropertyMapping(fName, parameter);
> + TemplateParameter parameter = paramNames.next();
> + String mapping = EIPUtils.getTemplatePropertyMapping(fName, parameter.getName());
> Object propertyValue = synCtxt.getProperty(mapping);
> - Object paramValue = getEvaluatedParamValue(synCtxt, parameter, (Value) propertyValue);
> + //If property value is not provided assign default value
> + if (propertyValue == null && parameter.getDefaultValue() != null) {
> + propertyValue = parameter.getDefaultValue();
> + }
> + //If this parameter is a required one give an error
> + if (!parameter.isOptional() && propertyValue == null) {
> + String msg = parameter.getName() + " is a required parameter for " + fName + " template";
> + log.error(msg);
> + }
> + Object paramValue = getEvaluatedParamValue(synCtxt, parameter.getName(), (Value) propertyValue);
> if (paramValue != null) {
> - mappedValues.put(parameter, paramValue);
> + mappedValues.put(parameter.getName(), paramValue);
> //remove temp property from the context
> removeProperty(synCtxt, mapping);
> }
>
> Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java (original)
> +++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java Wed Aug 15 10:03:18 2012
> @@ -23,6 +23,7 @@ import org.apache.synapse.SynapseConstan
> import org.apache.synapse.SynapseLog;
> import org.apache.synapse.core.SynapseEnvironment;
> import org.apache.synapse.mediators.AbstractListMediator;
> +import org.apache.synapse.mediators.TemplateParameter;
>
> import javax.sound.midi.Sequence;
> import java.util.Collection;
> @@ -37,19 +38,19 @@ import java.util.Stack;
> */
> public class TemplateMediator extends AbstractListMediator {
>
> - private Collection<String> paramNames;
> + private Collection<TemplateParameter> parameters;
>
> private String eipPatternName;
> private String fileName;
> /** flag to ensure that each and every sequence is initialized and destroyed atmost once */
> private boolean initialized = false;
>
> - public void setParameters(Collection<String> paramNames) {
> - this.paramNames = paramNames;
> + public void setParameters(Collection<TemplateParameter> paramNames) {
> + this.parameters = paramNames;
> }
>
> - public Collection<String> getParameters() {
> - return paramNames;
> + public Collection<TemplateParameter> getParameters() {
> + return parameters;
> }
>
> public void setName(String name) {
> @@ -64,7 +65,7 @@ public class TemplateMediator extends Ab
> SynapseLog synLog = getLog(synCtx);
>
> if (synLog.isTraceOrDebugEnabled()) {
> - synLog.traceOrDebug("Start : EIP Sequence " + "paramNames : " + paramNames);
> + synLog.traceOrDebug("Start : EIP Sequence " + "paramNames : " + parameters);
>
> if (synLog.isTraceTraceEnabled()) {
> synLog.traceTrace("Message : " + synCtx.getEnvelope());
> @@ -86,7 +87,7 @@ public class TemplateMediator extends Ab
> * @param synCtx Synapse Message context
> */
> private void pushFuncContextTo(MessageContext synCtx) {
> - TemplateContext funcContext = new TemplateContext(eipPatternName, paramNames);
> + TemplateContext funcContext = new TemplateContext(eipPatternName, parameters);
> //process the raw parameters parsed in
> funcContext.setupParams(synCtx);
> //if a function stack has not already been created for this message flow create new one
>
> Added: synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java (added)
> +++ synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,26 @@
> +package org.apache.synapse.libraries.eip;
> +
> +import junit.framework.TestCase;
> +import org.apache.synapse.libraries.imports.SynapseImport;
> +import org.apache.synapse.libraries.model.Library;
> +import org.apache.synapse.libraries.util.LibDeployerUtils;
> +import org.apache.synapse.mediators.eip.AbstractSplitMediatorTestCase;
> +
> +import java.io.File;
> +import java.net.URISyntaxException;
> +
> +public abstract class AbstractEipLibTestCase extends TestCase {
> + public String path = null;
> +
> + protected String getResourcePath() {
> + try {
> + if (path == null) {
> + path = new File("./target/test_repos/synapse/synapse-libraries/synapse-eip-lib.zip").getAbsolutePath();
> + }
> + } catch (Exception e) {
> + return null;
> + }
> + return path;
> +
> + }
> +}
>
> Added: synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java (added)
> +++ synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,87 @@
> +package org.apache.synapse.libraries.eip;
> +
> +import org.apache.axiom.om.OMAbstractFactory;
> +import org.apache.axiom.soap.SOAPEnvelope;
> +import org.apache.axis2.context.ConfigurationContext;
> +import org.apache.axis2.engine.AxisConfiguration;
> +import org.apache.synapse.MessageContext;
> +import org.apache.synapse.config.SynapseConfigUtils;
> +import org.apache.synapse.config.SynapseConfiguration;
> +import org.apache.synapse.config.xml.InvokeMediatorFactory;
> +import org.apache.synapse.config.xml.MediatorFactory;
> +import org.apache.synapse.core.axis2.Axis2MessageContext;
> +import org.apache.synapse.core.axis2.Axis2SynapseEnvironment;
> +import org.apache.synapse.libraries.imports.SynapseImport;
> +import org.apache.synapse.libraries.model.Library;
> +import org.apache.synapse.libraries.util.LibDeployerUtils;
> +import org.apache.synapse.mediators.base.SequenceMediator;
> +import org.apache.synapse.mediators.template.InvokeMediator;
> +
> +import java.util.Properties;
> +
> +/**
> + * Tests for synapse template invoke
> + */
> +public class EipLibTest extends AbstractEipLibTestCase {
> + private MessageContext synCtx;
> +
> +
> + protected void setUp() throws Exception {
> + super.setUp();
> + Library library = LibDeployerUtils.createSynapseLibrary(getResourcePath());
> + SynapseImport validSynImport = new SynapseImport();
> + validSynImport.setLibName("EipLibrary");
> + validSynImport.setLibPackage("synapse.lang.eip");
> + if (validSynImport != null) {
> + LibDeployerUtils.loadLibArtifacts(validSynImport, library);
> + }
> + assertEquals("EipLibrary", library.getQName().getLocalPart());
> + assertEquals("synapse.lang.eip", library.getPackage());
> + assertEquals("eip synapse library", library.getDescription());
> + assertNotNull(library.getArtifact("synapse.lang.eip.splitter"));
> + //setting up synapse context & configuration
> + SynapseConfiguration synConf = new SynapseConfiguration();
> + synConf.addSynapseLibrary(library.toString(), library);
> + synConf.addSequence("main", new SequenceMediator());
> + synConf.addSequence("fault", new SequenceMediator());
> + AxisConfiguration config = new AxisConfiguration();
> + synCtx = new Axis2MessageContext(new org.apache.axis2.context.MessageContext(),
> + synConf, new Axis2SynapseEnvironment(new ConfigurationContext(config), synConf));
> + //((Axis2MessageContext)synCtx).getAxis2MessageContext().setConfigurationContext(new ConfigurationContext(config));
> + SOAPEnvelope envelope = OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
> + envelope.getBody().addChild(SynapseConfigUtils.stringToOM("<original><itr><a>IBM</a></itr><itr><a>DELL</a></itr></original>"));
> + synCtx.setEnvelope(envelope);
> + SequenceMediator seqMed = new SequenceMediator();
> + synCtx.getConfiguration().addSequence("seqRef", seqMed);
> +
> + }
> +
> +
> + public void testValidEipLibInvoke() throws Exception {
> +
> + //Invoke Template
> + MediatorFactory fac = new InvokeMediatorFactory();
> +
> + InvokeMediator iterate = (InvokeMediator) fac.createMediator(SynapseConfigUtils.stringToOM("<call-template xmlns=\"http://ws.apache.org/ns/synapse\" " +
> + "target=\"synapse.lang.eip.splitter\">" +
> + "<with-param xmlns=\"http://ws.apache.org/ns/synapse\" name=\"iterate_exp\" value=\"{{//original/itr}}\"/>" +
> + "<with-param xmlns=\"http://ws.apache.org/ns/synapse\" name=\"endpoint_uri\" value=\"http://localhost:9000/services/IterateTestService\"/>" +
> + "<with-param xmlns=\"http://ws.apache.org/ns/synapse\" name=\"sequence_ref\" value=\"seqRef\"/>" +
> + "</call-template>"), new Properties());
> +
> + boolean returnValue = iterate.mediate(synCtx);
> +
> + //Test Template Parameters
> + assertEquals("<itr><a>IBM</a></itr><itr><a>DELL</a></itr>", synCtx.getProperty("ItrExp"));
> + assertEquals("http://localhost:9000/services/IterateTestService", synCtx.getProperty("EndPUri"));
> + assertEquals("<original><itr><a>IBM</a></itr><itr><a>DELL</a></itr></original>", synCtx.getProperty("AttachPath"));
> + assertEquals("seqRef", synCtx.getProperty("SRef"));
> +
> + //Test Template invoke & mediation
> + assertTrue(returnValue);
> + assertEquals("", synCtx.getProperty("Endpoint_1"));
> + assertEquals("http://localhost:9000/services/IterateTestService", synCtx.getProperty("Endpoint_2"));
> + }
> +
> +
> +}
>
> Added: synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml (added)
> +++ synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,23 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<assembly>
> + <formats>
> + <format>zip</format>
> + </formats>
> + <includeBaseDirectory>false</includeBaseDirectory>
> + <fileSets>
> + <fileSet>
> + <directory>src/test/resources/synapse-libraries/synapse-eip-lib</directory>
> + <outputDirectory></outputDirectory>
> + </fileSet>
> + <fileSet>
> + <directory>target/classes</directory>
> + <outputDirectory></outputDirectory>
> + <excludes>
> + <exclude>**/metrics_module.xml</exclude>
> + <exclude>**/META-INF/*</exclude>
> + </excludes>
> + </fileSet>
> + </fileSets>
> +
> +
> +</assembly>
>
> Added: synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml (added)
> +++ synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,7 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<artifacts>
> + <artifact name="EipLibrary" package="synapse.lang.eip" >
> + <dependency artifact="systemManagement" />
> + <description>eip synapse library</description>
> + </artifact>
> +</artifacts>
>
> Added: synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml (added)
> +++ synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,11 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<artifact name="systemManagement" type="synapse/template">
> +
> + <subArtifacts>
> + <artifact name="splitter">
> + <file>template_splitter.xml</file>
> + <description>Splitter library function</description>
> + </artifact>
> + </subArtifacts>
> +
> +</artifact>
> \ No newline at end of file
>
> Added: synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml (added)
> +++ synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,20 @@
> +<template xmlns="http://ws.apache.org/ns/synapse" name="splitter">
> + <parameter name="iterate_exp"/>
> + <parameter name="endpoint_uri"/>
> + <parameter name="attach_path" default="{{//original}}" optional="true"/>
> + <parameter name="sequence_ref"/>
> + <sequence>
> + <property name="ItrExp" expression="$func:iterate_exp" />
> + <property name="EndPUri" expression="$func:endpoint_uri" />
> + <property name="AttachPath" expression="$func:attach_path" />
> + <property name="SRef" expression="$func:sequence_ref" />
> + <property name="Endpoint_1" expression="get-property('To')" />
> + <header name="To" expression="$func:endpoint_uri"/>
> + <iterate xmlns:ns="http://org.apache.synapse/xsd" continueParent="true" preservePayload="true" attachPath="$func:attach_path" expression="$func:iterate_exp">
> + <target>
> + <sequence key="{$func:sequence_ref}"/>
> + </target>
> + </iterate>
> + <property name="Endpoint_2" expression="get-property('To')" />
> + </sequence>
> +</template>
>
> Added: synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml (added)
> +++ synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,36 @@
> +<?xml version="1.0" encoding="ISO-8859-1"?>
> +<!--
> + ~ Licensed to the Apache Software Foundation (ASF) under one
> + ~ or more contributor license agreements. See the NOTICE file
> + ~ distributed with this work for additional information
> + ~ regarding copyright ownership. The ASF licenses this file
> + ~ to you 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.
> + -->
> +
> +<!-- Introduction to Synapse Callout Block function template -->
> +<definitions xmlns="http://ws.apache.org/ns/synapse">
> +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary" package="synapse.lang.eip" />
> + <sequence name="main">
> + <call-template target="synapse.lang.eip.callout_block">
> + <with-param name="action" value="urn:getQuote"/>
> + <with-param name="service_URL" value="http://localhost:9000/services/SimpleStockQuoteService"/>
> + <with-param xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:s12="http://www.w3.org/2003/05/soap-envelope" name="source_xpath" value="{{s11:Body/child::*[fn:position()=1] | s12:Body/child::*[fn:position()=1]}}"/>
> + <with-param xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:s12="http://www.w3.org/2003/05/soap-envelope" name="target_xpath" value="{{s11:Body/child::*[fn:position()=1] | s12:Body/child::*[fn:position()=1]}}"/>
> + </call-template>
> + <property name="RESPONSE" value="true"/>
> + <header name="To" action="remove"/>
> + <send/>
> + <drop/>
> +</sequence>
> +</definitions>
>
> Added: synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml (added)
> +++ synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,57 @@
> +<?xml version="1.0" encoding="ISO-8859-1"?>
> +<!--
> + ~ Licensed to the Apache Software Foundation (ASF) under one
> + ~ or more contributor license agreements. See the NOTICE file
> + ~ distributed with this work for additional information
> + ~ regarding copyright ownership. The ASF licenses this file
> + ~ to you 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.
> + -->
> +
> +<!-- Introduction to Synapse Splitter & Aggregator eip function template -->
> +<definitions xmlns="http://ws.apache.org/ns/synapse">
> +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary" package="synapse.lang.eip" />
> + <proxy name="StockQuoteProxy" transports="https http" startOnLoad="true" trace="disable">
> + <target>
> + <inSequence>
> + <log level="custom">
> + <property name="text" value="splitterAggrigator"/>
> + </log>
> + <call-template target="synapse.lang.eip.splitter">
> + <with-param xmlns:m0="http://services.samples" name="iterate_exp" value="{{//m0:getQuote/m0:request}}"/>
> + <with-param xmlns:m0="http://services.samples" name="attach_path" value="{{//m0:getQuote}}"/>
> + <with-param name="attach_path_enabled" value="true"/>
> + <with-param name="endpoint_uri" value="http://localhost:9000/services/SimpleStockQuoteService"/>
> + </call-template>
> + </inSequence>
> + <outSequence>
> + <call-template target="synapse.lang.eip.aggregator">
> + <with-param name="sequence_ref" value="enr"/>
> + <with-param xmlns:m0="http://services.samples" name="aggregator_exp" value="{{//m0:return}}"/>
> + <with-param name="oncomplete_seq_enabled" value="true"/>
> + </call-template>
> + </outSequence>
> + </target>
> + </proxy>
> +<sequence xmlns="http://ws.apache.org/ns/synapse" name="enr">
> + <log level="custom">
> + <property name="text" value="seqhit"/>
> + </log>
> + <enrich>
> + <source xmlns:m1="http://services.samples/xsd" xmlns:m0="http://services.samples" clone="true"
> + xpath="//m0:return[not(preceding-sibling::m0:return/m1:last <= m1:last) and not(following-sibling::m0:return/m1:last < m1:last)]"/>
> + <target type="body"/>
> + </enrich>
> + <send/>
> +</sequence>
> +</definitions>
>
> Added: synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml (added)
> +++ synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,46 @@
> +<?xml version="1.0" encoding="ISO-8859-1"?>
> +<!--
> + ~ Licensed to the Apache Software Foundation (ASF) under one
> + ~ or more contributor license agreements. See the NOTICE file
> + ~ distributed with this work for additional information
> + ~ regarding copyright ownership. The ASF licenses this file
> + ~ to you 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.
> + -->
> +
> +<!-- Introduction to Synapse Splitter-Agrregator eip function templates -->
> +<definitions xmlns="http://ws.apache.org/ns/synapse">
> +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary" package="synapse.lang.eip" />
> + <sequence name="main">
> + <call-template target="synapse.lang.eip.splitter_aggregator">
> + <with-param name="attach_path_enabled" value="true"/>
> + <with-param name="endpoint_uri" value="http://localhost:9000/services/SimpleStockQuoteService"/>
> + <with-param xmlns:m0="http://services.samples" name="iterate_exp" value="{{//m0:getQuote/m0:request}}"/>
> + <with-param xmlns:m0="http://services.samples" name="attach_path" value="{{//m0:getQuote}}"/>
> + <with-param name="sequence_ref" value="enr"/>
> + <with-param xmlns:m0="http://services.samples" name="aggregator_exp" value="{{//m0:return}}"/>
> + <with-param name="oncomplete_seq_enabled" value="true"/>
> + </call-template>
> +</sequence>
> +<sequence xmlns="http://ws.apache.org/ns/synapse" name="enr">
> + <log level="custom">
> + <property name="text" value="seqhit"/>
> + </log>
> + <enrich>
> + <source xmlns:m1="http://services.samples/xsd" xmlns:m0="http://services.samples" clone="true"
> + xpath="//m0:return[not(preceding-sibling::m0:return/m1:last <= m1:last) and not(following-sibling::m0:return/m1:last < m1:last)]"/>
> + <target type="body"/>
> + </enrich>
> + <send/>
> +</sequence>
> +</definitions>
>
> Added: synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml (added)
> +++ synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,42 @@
> +<?xml version="1.0" encoding="ISO-8859-1"?>
> +<!--
> + ~ Licensed to the Apache Software Foundation (ASF) under one
> + ~ or more contributor license agreements. See the NOTICE file
> + ~ distributed with this work for additional information
> + ~ regarding copyright ownership. The ASF licenses this file
> + ~ to you 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.
> + -->
> +
> +<!-- Introduction to Synapse Scatter-Gather eip function template -->
> +<definitions xmlns="http://ws.apache.org/ns/synapse">
> +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary" package="synapse.lang.eip" />
> +<sequence name="enr">
> + <log level="custom">
> + <property name="text" value="seqhit"/>
> + </log>
> + <enrich>
> + <source xmlns:m1="http://services.samples/xsd" xmlns:m0="http://services.samples" clone="true" xpath="//m0:return[not(preceding-sibling::m0:return/m1:last <= m1:last) and not(following-sibling::m0:return/m1:last < m1:last)]"/>
> + <target type="body"/>
> + </enrich>
> + <send/>
> + </sequence>
> + <sequence name="main">
> + <call-template target="synapse.lang.eip.scatter_gather">
> + <with-param name="sequence_ref" value="enr"/>
> + <with-param xmlns:m0="http://services.samples" name="aggregator_exp" value="{{//m0:return}}"/>
> + <with-param name="oncomplete_seq_enabled" value="true"/>
> + <with-param name="recipient_list" value="http://localhost:9001/services/SimpleStockQuoteService,http://localhost:9002/services/SimpleStockQuoteService,http://localhost:9003/services/SimpleStockQuoteService"/>
> + </call-template>
> + </sequence>
> +</definitions>
>
> Added: synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml (added)
> +++ synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,32 @@
> +<?xml version="1.0" encoding="ISO-8859-1"?>
> +<!--
> + ~ Licensed to the Apache Software Foundation (ASF) under one
> + ~ or more contributor license agreements. See the NOTICE file
> + ~ distributed with this work for additional information
> + ~ regarding copyright ownership. The ASF licenses this file
> + ~ to you 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.
> + -->
> +
> +<!-- Introduction to Synapse Wire Tap eip function template -->
> +<definitions xmlns="http://ws.apache.org/ns/synapse">
> +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary" package="synapse.lang.eip" />
> + <sequence name="main">
> +<property name="OUT_ONLY" value="true"/>
> + <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
> + <call-template target="synapse.lang.eip.wire_tap">
> +<with-param name="wiretap_uri" value="http://localhost:9000/services/SimpleStockQuoteService"/>
> + <with-param name="destination_uri" value="http://localhost:9001/services/SimpleStockQuoteService"/>
> + </call-template>
> + </sequence>
> +</definitions>
>
> Added: synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml (added)
> +++ synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,66 @@
> +<?xml version="1.0" encoding="ISO-8859-1"?>
> +<!--
> + ~ Licensed to the Apache Software Foundation (ASF) under one
> + ~ or more contributor license agreements. See the NOTICE file
> + ~ distributed with this work for additional information
> + ~ regarding copyright ownership. The ASF licenses this file
> + ~ to you 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.
> + -->
> +
> +<!-- Introduction to Synapse Content Based Router eip function template -->
> +<definitions xmlns="http://ws.apache.org/ns/synapse">
> +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary" package="synapse.lang.eip" />
> +<proxy name="StockQuoteProxy" transports="https http" startOnLoad="true" trace="disable">
> + <target>
> + <inSequence>
> + <call-template target="synapse.lang.eip.content_based_router">
> +<with-param name="routing_exp" value="{{//m0:getQuote/m0:request/m0:symbol}}" xmlns:m0="http://services.samples"/>
> +<with-param name="match_content" value="IBM:cnd1_seq,MSFT:cnd2_seq;cnd3_seq"/>
> + </call-template>
> +</inSequence>
> +<outSequence>
> +<send/>
> + </outSequence>
> + </target>
> + </proxy>
> +<sequence name="send_seq">
> + <log level="custom">
> + <property name="DEBUG" value="Condition Satisfied"/>
> + </log>
> + <send>
> + <endpoint name="simple">
> + <address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
> + </endpoint>
> + </send>
> + </sequence>
> +
> + <sequence name="cnd1_seq">
> + <log level="custom">
> + <property name="MSG_FLOW" value="Condition (I) Satisfied"/>
> + </log>
> + <sequence key="send_seq"/>
> + </sequence>
> + <sequence name="cnd2_seq">
> + <log level="custom">
> + <property name="MSG_FLOW" value="Condition (II) Satisfied"/>
> + </log>
> + <sequence key="send_seq"/>
> + </sequence>
> + <sequence name="cnd3_seq">
> + <log level="custom">
> + <property name="MSG_FLOW" value="Condition (III) Satisfied"/>
> + </log>
> + <sequence key="send_seq"/>
> + </sequence>
> +</definitions>
>
> Added: synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml (added)
> +++ synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,65 @@
> +<?xml version="1.0" encoding="ISO-8859-1"?>
> +<!--
> + ~ Licensed to the Apache Software Foundation (ASF) under one
> + ~ or more contributor license agreements. See the NOTICE file
> + ~ distributed with this work for additional information
> + ~ regarding copyright ownership. The ASF licenses this file
> + ~ to you 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.
> + -->
> +
> +<!-- Introduction to Synapse Dynamic Router eip function template -->
> +<definitions xmlns="http://ws.apache.org/ns/synapse">
> +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary" package="synapse.lang.eip" />
> + <proxy name="StockQuoteProxy" transports="https http" startOnLoad="true" trace="disable">
> + <target>
> + <inSequence>
> + <call-template target="synapse.lang.eip.dynamic_router">
> +<with-param name="conditions" value="header=foo:bar.*#url=/services/StockQuoteProxy.*;seq=cnd1_seq,header=custom_header1:bar.*@header=custom_header1:foo.*;seq=cnd2_seq,header=custom_header2:foo.*;seq=cnd3_seq"/>
> + </call-template>
> + </inSequence>
> + <outSequence>
> + <send/>
> + </outSequence>
> + </target>
> + </proxy>
> +<sequence name="send_seq">
> + <log level="custom">
> + <property name="DEBUG" value="Condition Satisfied"/>
> + </log>
> + <send>
> + <endpoint name="simple">
> + <address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
> + </endpoint>
> + </send>
> + </sequence>
> +
> + <sequence name="cnd1_seq">
> + <log level="custom">
> + <property name="MSG_FLOW" value="Condition (I) Satisfied"/>
> + </log>
> + <sequence key="send_seq"/>
> + </sequence>
> + <sequence name="cnd2_seq">
> + <log level="custom">
> + <property name="MSG_FLOW" value="Condition (II) Satisfied"/>
> + </log>
> + <sequence key="send_seq"/>
> + </sequence>
> + <sequence name="cnd3_seq">
> + <log level="custom">
> + <property name="MSG_FLOW" value="Condition (III) Satisfied"/>
> + </log>
> + <sequence key="send_seq"/>
> + </sequence>
> +</definitions>
>
> Added: synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml
> URL: http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml?rev=1373302&view=auto
> ==============================================================================
> --- synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml (added)
> +++ synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml Wed Aug 15 10:03:18 2012
> @@ -0,0 +1,32 @@
> +<?xml version="1.0" encoding="ISO-8859-1"?>
> +<!--
> + ~ Licensed to the Apache Software Foundation (ASF) under one
> + ~ or more contributor license agreements. See the NOTICE file
> + ~ distributed with this work for additional information
> + ~ regarding copyright ownership. The ASF licenses this file
> + ~ to you 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.
> + -->
> +
> +<!-- Introduction to Synapse Recipient List eip function template -->
> +<definitions xmlns="http://ws.apache.org/ns/synapse">
> +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary" package="synapse.lang.eip" />
> + <sequence name="main">
> + <property name="OUT_ONLY" value="true"/>
> + <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
> + <call-template target="synapse.lang.eip.recipient_list">
> + <with-param name="recipient_list" value="http://localhost:9000/services/SimpleStockQuoteService,http://localhost:9001/services/SimpleStockQuoteService"/>
> + </call-template>
> + <drop/>
> +</sequence>
> +</definitions>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org
Re: svn commit: r1373302 - in /synapse/trunk/java: modules/core/
modules/core/src/main/java/org/apache/synapse/config/xml/ modules/core/src/main/java/org/apache/synapse/libraries/util/
modules/core/src/main/java/org/apache/synapse/mediators/ modules/
Posted by Malith Dhanushka <mm...@gmail.com>.
Hi,
All those samples are related to Synapse EIP Library (GSoC
project). Documentation patch is already attached by covering all the work
related project and above samples as well. Please refer [0],
[0] https://issues.apache.org/jira/browse/SYNAPSE-745
Thanks,
Malith
On Thu, Aug 16, 2012 at 9:07 AM, Rajika Kumarasiri <ra...@wso2.com> wrote:
> Yeah, as part of the patch we should ask for documentation as well.
>
> Rajika
>
> On Thu, Aug 16, 2012 at 12:04 AM, Andreas Veithen <
> andreas.veithen@gmail.com> wrote:
>
>> Please note that new samples are pretty much useless if there is no
>> corresponding documentation...
>>
>> Andreas
>>
>> On Wed, Aug 15, 2012 at 12:03 PM, <us...@apache.org> wrote:
>> > Author: uswick
>> > Date: Wed Aug 15 10:03:18 2012
>> > New Revision: 1373302
>> >
>> > URL: http://svn.apache.org/viewvc?rev=1373302&view=rev
>> > Log:
>> > commiting patches SYNAPSE-898,SYNAPSE-884, SYNAPSE-897 SYNAPSE-899,
>> SYNAPSE-901
>> >
>> > Added:
>> >
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
>> >
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
>> >
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
>> >
>> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/
>> >
>> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
>> >
>> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
>> >
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
>> >
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/
>> >
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
>> >
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/
>> >
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
>> >
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
>> > synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml
>> > synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml
>> > synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml
>> > synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml
>> > synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml
>> > synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml
>> > synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml
>> > synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml
>> > Modified:
>> > synapse/trunk/java/modules/core/pom.xml
>> >
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
>> >
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
>> >
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
>> >
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
>> >
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
>> >
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
>> >
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
>> >
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
>> >
>> > Modified: synapse/trunk/java/modules/core/pom.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/pom.xml?rev=1373302&r1=1373301&r2=1373302&view=diff
>> >
>> ==============================================================================
>> > --- synapse/trunk/java/modules/core/pom.xml (original)
>> > +++ synapse/trunk/java/modules/core/pom.xml Wed Aug 15 10:03:18 2012
>> > @@ -96,6 +96,25 @@
>> > </descriptors>
>> > </configuration>
>> > </execution>
>> > + <execution>
>> > + <id>eip-library-assembly</id>
>> > + <phase>generate-test-resources</phase>
>> > + <goals>
>> > + <goal>attached</goal>
>> > + </goals>
>> > + <configuration>
>> > + <finalName>synapse-eip-lib</finalName>
>> > + <filters>
>> > + <filter>
>> > +
>> ${basedir}/src/test/resources/synapse-libraries/assembly/filter.properties
>> > + </filter>
>> > + </filters>
>> > + <descriptors>
>> > +
>> <descriptor>src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
>> > + </descriptor>
>> > + </descriptors>
>> > + </configuration>
>> > + </execution>
>> > </executions>
>> > </plugin>
>> >
>> > @@ -115,6 +134,7 @@
>> > <mkdir
>> dir="target/test_repos/client/modules"/>
>> > <mkdir
>> dir="target/test_repos/synapse/synapse-libraries"/>
>> > <copy
>> file="target/synapse-test-lib.zip"
>> todir="target/test_repos/synapse/synapse-libraries"/>
>> > + <copy
>> file="target/synapse-eip-lib.zip"
>> todir="target/test_repos/synapse/synapse-libraries"/>
>> > </tasks>
>> > </configuration>
>> > <goals>
>> > @@ -127,6 +147,7 @@
>> > <configuration>
>> > <tasks>
>> > <delete
>> file="target/synapse-test-lib.zip"/>
>> > + <delete
>> file="target/synapse-eip-lib.zip"/>
>> > </tasks>
>> > </configuration>
>> > <goals>
>> >
>> > Modified:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java?rev=1373302&r1=1373301&r2=1373302&view=diff
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
>> (original)
>> > +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -73,7 +73,7 @@ public class CloneMediatorFactory extend
>> > */
>> > public Mediator createSpecificMediator(OMElement elem, Properties
>> properties) {
>> >
>> > - boolean asynchronousExe = true;
>> > + boolean asynchronousExe = false;
>> >
>> > CloneMediator mediator = new CloneMediator();
>> > processAuditStatus(mediator, elem);
>> > @@ -94,8 +94,6 @@ public class CloneMediatorFactory extend
>> > if (synchronousExeAttr != null &&
>> synchronousExeAttr.getAttributeValue().equals("true")) {
>> > asynchronousExe = false;
>> > }
>> > -
>> > - mediator.setSequential(!asynchronousExe);
>> >
>> > Iterator targetElements = elem.getChildrenWithName(TARGET_Q);
>> > while (targetElements.hasNext()) {
>> >
>> > Modified:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java?rev=1373302&r1=1373301&r2=1373302&view=diff
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
>> (original)
>> > +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -128,7 +128,7 @@ public class IterateMediatorFactory exte
>> > attachPathValue, e);
>> > }
>> >
>> > - boolean asynchronous = true;
>> > + boolean asynchronous = false;
>> > OMAttribute asynchronousAttr =
>> elem.getAttribute(ATT_SEQUENCIAL);
>> > if (asynchronousAttr != null &&
>> asynchronousAttr.getAttributeValue().equals("true")) {
>> > asynchronous = false;
>> >
>> > Modified:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java?rev=1373302&r1=1373301&r2=1373302&view=diff
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
>> (original)
>> > +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -85,8 +85,8 @@ public class IterateMediatorSerializer e
>> > handleException("Missing expression of the IterateMediator
>> which is required.");
>> > }
>> >
>> > - if (itrMed.getTarget() != null &&
>> !itrMed.getTarget().isAsynchronous()) {
>> > - itrElem.addAttribute("sequential", "true", nullNS);
>> > + if (itrMed.getTarget() != null &&
>> itrMed.getTarget().isAsynchronous()) {
>> > + itrElem.addAttribute("sequential", "false", nullNS);
>> > }
>> >
>> >
>> itrElem.addChild(TargetSerializer.serializeTarget(itrMed.getTarget()));
>> >
>> > Modified:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java?rev=1373302&r1=1373301&r2=1373302&view=diff
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
>> (original)
>> > +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -22,6 +22,7 @@ import org.apache.axiom.om.OMAttribute;
>> > import org.apache.axiom.om.OMElement;
>> > import org.apache.synapse.Mediator;
>> > import org.apache.synapse.SynapseException;
>> > +import org.apache.synapse.mediators.TemplateParameter;
>> > import org.apache.synapse.mediators.template.TemplateMediator;
>> >
>> > import javax.xml.namespace.QName;
>> > @@ -32,8 +33,8 @@ import java.util.Properties;
>> > /**
>> > * Factory class for Template configuration as follows
>> > * <template name="simple_func">
>> > - <parameter name="p1"/>
>> > - <parameter name="p2"/>*
>> > + <parameter name="p1" [default="value|expression"]
>> [optional=(true|false)]/>
>> > + <parameter name="p2" [default="value|expression"]
>> [optional=(true|false)]/>*
>> > <mediator/>+
>> > </template>
>> > */
>> > @@ -43,20 +44,14 @@ public class TemplateMediatorFactory ext
>> > private static final QName TEMPLATE_BODY_Q
>> > = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE,
>> "sequence");
>> >
>> > - /**
>> > - * Element QName Definitions
>> > - */
>> > - public static final QName PARAMETER_Q = new QName(
>> > - XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
>> > -
>> > -
>> > protected Mediator createSpecificMediator(OMElement elem,
>> Properties properties) {
>> > TemplateMediator templateTemplateMediator = new
>> TemplateMediator();
>> > OMAttribute nameAttr = elem.getAttribute(ATT_NAME);
>> > if (nameAttr != null) {
>> >
>> templateTemplateMediator.setName(nameAttr.getAttributeValue());
>> > processAuditStatus(templateTemplateMediator, elem);
>> > - initParameters(elem, templateTemplateMediator);
>> > + //set template parameters
>> > +
>> templateTemplateMediator.setParameters(TemplateParameterFactory.getTemplateParameters(elem));
>> > OMElement templateBodyElem =
>> elem.getFirstChildWithName(TEMPLATE_BODY_Q);
>> > addChildren(templateBodyElem, templateTemplateMediator,
>> properties);
>> > } else {
>> > @@ -67,22 +62,6 @@ public class TemplateMediatorFactory ext
>> > return templateTemplateMediator;
>> > }
>> >
>> > - private void initParameters(OMElement templateElem,
>> TemplateMediator templateMediator) {
>> > - Iterator subElements = templateElem.getChildElements();
>> > - Collection<String> paramNames = new ArrayList<String>();
>> > - while (subElements.hasNext()) {
>> > - OMElement child = (OMElement) subElements.next();
>> > - if (child.getQName().equals(PARAMETER_Q)) {
>> > - OMAttribute paramNameAttr =
>> child.getAttribute(ATT_NAME);
>> > - if (paramNameAttr != null) {
>> > - paramNames.add(paramNameAttr.getAttributeValue());
>> > - }
>> > -// child.detach();
>> > - }
>> > - }
>> > - templateMediator.setParameters(paramNames);
>> > - }
>> > -
>> > public QName getTagQName() {
>> > return TEMPLATE_Q;
>> > }
>> >
>> > Modified:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java?rev=1373302&r1=1373301&r2=1373302&view=diff
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
>> (original)
>> > +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -20,17 +20,17 @@ package org.apache.synapse.config.xml;
>> >
>> > import org.apache.axiom.om.OMElement;
>> > import org.apache.synapse.Mediator;
>> > +import org.apache.synapse.mediators.TemplateParameter;
>> > import org.apache.synapse.mediators.template.TemplateMediator;
>> >
>> > import java.util.Collection;
>> > -import java.util.Iterator;
>> > import java.util.List;
>> >
>> > /**
>> > * Serializer class for Template to serialize into a configuration
>> as follows
>> > * <template name="simple_func">
>> > - <parameter name="p1"/>
>> > - <parameter name="p2"/>*
>> > + <parameter name="p1" [default="value|expression"]
>> [optional=(true|false)]/>
>> > + <parameter name="p2" [default="value|expression"]
>> [optional=(true|false)]/>*
>> > <mediator/>+
>> > </template>
>> > */
>> > @@ -47,6 +47,7 @@ public class TemplateMediatorSerializer
>> > if (mediator.getName() != null) {
>> > templateElem.addAttribute(fac.createOMAttribute(
>> > "name", nullNS, mediator.getName()));
>> > + //serialize parameters
>> > serializeParams(templateElem,mediator);
>> > serializeBody(templateElem, mediator.getList());
>> > saveTracingState(templateElem, mediator);
>> > @@ -55,14 +56,16 @@ public class TemplateMediatorSerializer
>> > return templateElem;
>> > }
>> >
>> > + /**
>> > + * Serialize parameters for the template mediator specified
>> > + *
>> > + * @param templateElem the OMElement that specifies the template
>> configuration
>> > + * @param mediator the TemplateMediator
>> > + */
>> > private void serializeParams(OMElement templateElem,
>> TemplateMediator mediator) {
>> > - Collection<String> params = mediator.getParameters();
>> > - for (String param : params) {
>> > - if (param != null && !"".equals(param)) {
>> > - OMElement paramEl = fac.createOMElement("parameter",
>> synNS);
>> > - paramEl.addAttribute(fac.createOMAttribute("name",
>> nullNS, param));
>> > - templateElem.addChild(paramEl);
>> > - }
>> > + Collection<TemplateParameter> params =
>> mediator.getParameters();
>> > + if (params != null && params.size() > 0) {
>> > +
>> TemplateParameterSerializer.serializeTemplateParameters(templateElem,mediator.getParameters());
>> > }
>> > }
>> >
>> >
>> > Added:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
>> (added)
>> > +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,98 @@
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you 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.config.xml;
>> > +
>> > +import org.apache.axiom.om.OMAttribute;
>> > +import org.apache.axiom.om.OMElement;
>> > +import org.apache.commons.logging.Log;
>> > +import org.apache.commons.logging.LogFactory;
>> > +import org.apache.synapse.SynapseException;
>> > +import org.apache.synapse.mediators.TemplateParameter;
>> > +import org.apache.synapse.mediators.Value;
>> > +
>> > +import java.util.ArrayList;
>> > +import java.util.Iterator;
>> > +import java.util.List;
>> > +
>> > +/**
>> > + * A utility class capable of creating instances of TemplateParameter
>> objects by reading
>> > + * through a given XML configuration
>> > + *
>> > + * <pre>
>> > + * <element>
>> > + * <parameter name="p1" [default="value|expression"]
>> [optional=(true|false)]/>*
>> > + * </element>
>> > + * </pre>
>> > + */
>> > +public class TemplateParameterFactory {
>> > + private static final Log log =
>> LogFactory.getLog(TemplateParameterFactory.class);
>> > +
>> > + /**
>> > + * Creates a list of parameters in a given template
>> > + *
>> > + * @param elem the OMElement that specifies the template
>> configuration
>> > + * @return the list of TemplateParameter instances created
>> > + */
>> > + public static List<TemplateParameter>
>> getTemplateParameters(OMElement elem) {
>> > +
>> > + List<TemplateParameter> parameterList = new
>> ArrayList<TemplateParameter>();
>> > +
>> > + Iterator iter =
>> elem.getChildrenWithName(TemplateParameter.PARAMETER_Q);
>> > +
>> > + while (iter.hasNext()) {
>> > +
>> > + OMElement paramEle = (OMElement) iter.next();
>> > + OMAttribute attName =
>> paramEle.getAttribute(TemplateParameter.ATT_NAME_Q);
>> > + OMAttribute attDefault =
>> paramEle.getAttribute(TemplateParameter.ATT_DEFAULT_Q);
>> > + OMAttribute attOptional =
>> paramEle.getAttribute(TemplateParameter.ATT_OPTIONAL_Q);
>> > +
>> > + TemplateParameter param = new TemplateParameter();
>> > +
>> > + if (attName == null || attName.getAttributeValue() == null
>> ||
>> > + attName.getAttributeValue().trim().length() == 0) {
>> > + String msg = "Parameter name is a required attribute
>> for a Template Parameter";
>> > + log.error(msg);
>> > + throw new SynapseException(msg);
>> > + } else {
>> > + param.setName(attName.getAttributeValue());
>> > + }
>> > +
>> > +
>> > + if (attDefault == null || attDefault.getAttributeValue()
>> == null ||
>> > + attDefault.getAttributeValue().trim().length() ==
>> 0) {
>> > + String msg = "Default value is not specified for " +
>> param.getName() + " Parameter";
>> > + log.warn(msg);
>> > + } else {
>> > + Value paramValue = new
>> ValueFactory().createValue("default", paramEle);
>> > + param.setDefaultValue(paramValue);
>> > + }
>> > +
>> > + if (attOptional == null || attOptional.getAttributeValue()
>> == null ||
>> > + attOptional.getAttributeValue().trim().length() ==
>> 0) {
>> > + } else {
>> > +
>> param.setOptional(Boolean.valueOf(attOptional.getAttributeValue()));
>> > + }
>> > +
>> > + parameterList.add(param);
>> > + }
>> > +
>> > + return parameterList;
>> > + }
>> > +
>> > +}
>> >
>> > Added:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
>> (added)
>> > +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,111 @@
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you 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.config.xml;
>> > +
>> > +import org.apache.axiom.om.OMAbstractFactory;
>> > +import org.apache.axiom.om.OMElement;
>> > +import org.apache.axiom.om.OMFactory;
>> > +import org.apache.axiom.om.OMNamespace;
>> > +import org.apache.commons.logging.Log;
>> > +import org.apache.commons.logging.LogFactory;
>> > +import org.apache.synapse.SynapseConstants;
>> > +import org.apache.synapse.SynapseException;
>> > +import org.apache.synapse.mediators.TemplateParameter;
>> > +
>> > +import javax.xml.namespace.QName;
>> > +import java.util.Collection;
>> > +
>> > +/**
>> > + * A utility class for serializing instances of TemplateParameter
>> objects by reading
>> > + * through a given XML configuration
>> > + *
>> > + * <pre>
>> > + * <element>
>> > + * <parameter name="p1" [default="value|expression"]
>> [optional=(true|false)]/>*
>> > + * </element>
>> > + * </pre>
>> > + */
>> > +public class TemplateParameterSerializer {
>> > + private static final Log log =
>> LogFactory.getLog(TemplateParameterSerializer.class);
>> > +
>> > + protected static final OMFactory fac =
>> OMAbstractFactory.getOMFactory();
>> > + protected static final OMNamespace synNS =
>> SynapseConstants.SYNAPSE_OMNAMESPACE;
>> > + protected static final OMNamespace nullNS
>> > + = fac.createOMNamespace(XMLConfigConstants.NULL_NAMESPACE,
>> "");
>> > +
>> > + protected static final QName PARAMETER_Q
>> > + = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
>> > +
>> > + /**
>> > + * Serialize all the parameters to the given parent element. For
>> each and every
>> > + * parameter there will be a separate parameter element created
>> inside the parent element.
>> > + *
>> > + * @param parent element to which parameter elements should be
>> added
>> > + * @param params the list of TemplateParameter objects
>> > + */
>> > + public static void serializeTemplateParameters(OMElement parent,
>> > +
>> Collection<TemplateParameter> params) {
>> > + serializeTemplateParameters(parent, params, PARAMETER_Q);
>> > + }
>> > +
>> > + /**
>> > + * Serialize all the parameters to the given parent element. For
>> each and every
>> > + * parameter there will be a separate parameter element created
>> inside the parent element.
>> > + *
>> > + * @param parent element to which parameter elements should be
>> added
>> > + * @param params the list of TemplateParameter objects
>> > + * @param childElementName of the parameter element to be created
>> > + */
>> > + public static void serializeTemplateParameters(OMElement parent,
>> > +
>> Collection<TemplateParameter> params,
>> > + QName childElementName)
>> {
>> > + for (TemplateParameter tp : params) {
>> > + serializeTemplateParameter(parent,tp, childElementName);
>> > + }
>> > + }
>> > +
>> > + /**
>> > + * Serialize the parameter to the given parent element. There will
>> be a element created with
>> > + * given configuration inside the parent element.
>> > + *
>> > + * @param parent element to which parameter elements should be
>> added
>> > + * @param tp a property to be serialized
>> > + * @param childElementName of the parameter element to be created
>> > + */
>> > + public static void serializeTemplateParameter(OMElement parent,
>> > + TemplateParameter tp,
>> > + QName childElementName) {
>> > + OMElement param = fac.createOMElement(childElementName,
>> parent);
>> > + if (tp.getName() != null) {
>> > + param.addAttribute(fac.createOMAttribute("name", nullNS,
>> tp.getName()));
>> > + } else {
>> > + String msg = "Template parameter name missing";
>> > + log.error(msg);
>> > + throw new SynapseException(msg);
>> > + }
>> > +
>> > + if (tp.getDefaultValue() != null) {
>> > + new ValueSerializer().serializeValue(tp.getDefaultValue(),
>> "default", param);
>> > +
>> > + if (tp.isOptional()) {
>> > + param.addAttribute(fac.createOMAttribute("optional",
>> nullNS, "true"));
>> > + }
>> > + }
>> > +}
>> > +}
>> > \ No newline at end of file
>> >
>> > Modified:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java?rev=1373302&r1=1373301&r2=1373302&view=diff
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
>> (original)
>> > +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -56,6 +56,8 @@ public class LibDeployerUtils {
>> >
>> >
>> > public static Library createSynapseLibrary(String libPath) {
>> > + createDir(APP_UNZIP_DIR);
>> > +
>> > String libFilePath = LibDeployerUtils.formatPath(libPath);
>> > //extract
>> > String extractPath =
>> LibDeployerUtils.extractSynapseLib(libFilePath);
>> >
>> > Added:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
>> (added)
>> > +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,71 @@
>> > +/*
>> > + * Licensed to the Apache Software Foundation (ASF) under one
>> > + * or more contributor license agreements. See the NOTICE file
>> > + * distributed with this work for additional information
>> > + * regarding copyright ownership. The ASF licenses this file
>> > + * to you 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;
>> > +
>> > +import javax.xml.namespace.QName;
>> > +
>> > +import org.apache.synapse.config.xml.XMLConfigConstants;
>> > +
>> > +/**
>> > + * A template parameter is a variable which is used when creating
>> templates and contains following configuration
>> > + * parameter name="p1" [default="value|expression"]
>> [optional=(true|false)]
>> > + *
>> > + */
>> > +public class TemplateParameter {
>> > + public static final QName PARAMETER_Q = new
>> QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
>> > + public static final QName ATT_NAME_Q = new
>> QName(XMLConfigConstants.NULL_NAMESPACE, "name");
>> > + public static final QName ATT_DEFAULT_Q = new
>> QName(XMLConfigConstants.NULL_NAMESPACE, "default");
>> > + public static final QName ATT_OPTIONAL_Q = new
>> QName(XMLConfigConstants.NULL_NAMESPACE, "optional");
>> > +
>> > +
>> > + private String name;
>> > + private Value defaultValue;
>> > + private boolean isOptional;
>> > +
>> > + public TemplateParameter() {
>> > + this.name = null;
>> > + this.defaultValue = null;
>> > + this.isOptional = false;
>> > + }
>> > +
>> > + public String getName() {
>> > + return name;
>> > + }
>> > +
>> > + public void setName(String name) {
>> > + this.name = name;
>> > + }
>> > +
>> > + public Value getDefaultValue() {
>> > + return defaultValue;
>> > + }
>> > +
>> > + public void setDefaultValue(Value defaultValue) {
>> > + this.defaultValue = defaultValue;
>> > + }
>> > +
>> > + public boolean isOptional() {
>> > + return isOptional;
>> > + }
>> > +
>> > + public void setOptional(boolean optional) {
>> > + isOptional = optional;
>> > + }
>> > +
>> > +}
>> >
>> > Modified:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java?rev=1373302&r1=1373301&r2=1373302&view=diff
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
>> (original)
>> > +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -18,7 +18,10 @@
>> > */
>> > package org.apache.synapse.mediators.template;
>> >
>> > +import org.apache.commons.logging.Log;
>> > +import org.apache.commons.logging.LogFactory;
>> > import org.apache.synapse.MessageContext;
>> > +import org.apache.synapse.mediators.TemplateParameter;
>> > import org.apache.synapse.mediators.Value;
>> > import org.apache.synapse.mediators.eip.EIPUtils;
>> > import org.jaxen.JaxenException;
>> > @@ -30,6 +33,7 @@ import java.util.*;
>> > * a context will be populated with function parameters.
>> > */
>> > public class TemplateContext {
>> > + private static final Log log =
>> LogFactory.getLog(TemplateContext.class);
>> > /**
>> > * refers to the function-template name this context is binded to
>> > */
>> > @@ -37,31 +41,40 @@ public class TemplateContext {
>> > /**
>> > * refers to the parameter names of the function
>> > */
>> > - private Collection<String> parameters;
>> > + private Collection<TemplateParameter> parameters;
>> > /**
>> > * contains a map for parameterNames to evaluated values
>> > */
>> > private Map mappedValues;
>> >
>> > - TemplateContext(String name, Collection<String> parameters) {
>> > + TemplateContext(String name, Collection<TemplateParameter>
>> parameters) {
>> > this.fName = name;
>> > this.parameters = parameters;
>> > mappedValues = new HashMap();
>> > }
>> >
>> > /**
>> > - * evaluate raw parameters passed from an invoke medaiator and
>> store them in this context
>> > + * evaluate raw parameters passed from an invoke mediator and
>> store them in this context
>> > * @param synCtxt Synapse MessageContext
>> > */
>> > public void setupParams(MessageContext synCtxt) {
>> > - Iterator<String> paramNames = parameters.iterator();
>> > + Iterator<TemplateParameter> paramNames = parameters.iterator();
>> > while (paramNames.hasNext()) {
>> > - String parameter = paramNames.next();
>> > - String mapping =
>> EIPUtils.getTemplatePropertyMapping(fName, parameter);
>> > + TemplateParameter parameter = paramNames.next();
>> > + String mapping =
>> EIPUtils.getTemplatePropertyMapping(fName, parameter.getName());
>> > Object propertyValue = synCtxt.getProperty(mapping);
>> > - Object paramValue = getEvaluatedParamValue(synCtxt,
>> parameter, (Value) propertyValue);
>> > + //If property value is not provided assign default value
>> > + if (propertyValue == null && parameter.getDefaultValue()
>> != null) {
>> > + propertyValue = parameter.getDefaultValue();
>> > + }
>> > + //If this parameter is a required one give an error
>> > + if (!parameter.isOptional() && propertyValue == null) {
>> > + String msg = parameter.getName() + " is a required
>> parameter for " + fName + " template";
>> > + log.error(msg);
>> > + }
>> > + Object paramValue = getEvaluatedParamValue(synCtxt,
>> parameter.getName(), (Value) propertyValue);
>> > if (paramValue != null) {
>> > - mappedValues.put(parameter, paramValue);
>> > + mappedValues.put(parameter.getName(), paramValue);
>> > //remove temp property from the context
>> > removeProperty(synCtxt, mapping);
>> > }
>> >
>> > Modified:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java?rev=1373302&r1=1373301&r2=1373302&view=diff
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
>> (original)
>> > +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -23,6 +23,7 @@ import org.apache.synapse.SynapseConstan
>> > import org.apache.synapse.SynapseLog;
>> > import org.apache.synapse.core.SynapseEnvironment;
>> > import org.apache.synapse.mediators.AbstractListMediator;
>> > +import org.apache.synapse.mediators.TemplateParameter;
>> >
>> > import javax.sound.midi.Sequence;
>> > import java.util.Collection;
>> > @@ -37,19 +38,19 @@ import java.util.Stack;
>> > */
>> > public class TemplateMediator extends AbstractListMediator {
>> >
>> > - private Collection<String> paramNames;
>> > + private Collection<TemplateParameter> parameters;
>> >
>> > private String eipPatternName;
>> > private String fileName;
>> > /** flag to ensure that each and every sequence is initialized and
>> destroyed atmost once */
>> > private boolean initialized = false;
>> >
>> > - public void setParameters(Collection<String> paramNames) {
>> > - this.paramNames = paramNames;
>> > + public void setParameters(Collection<TemplateParameter>
>> paramNames) {
>> > + this.parameters = paramNames;
>> > }
>> >
>> > - public Collection<String> getParameters() {
>> > - return paramNames;
>> > + public Collection<TemplateParameter> getParameters() {
>> > + return parameters;
>> > }
>> >
>> > public void setName(String name) {
>> > @@ -64,7 +65,7 @@ public class TemplateMediator extends Ab
>> > SynapseLog synLog = getLog(synCtx);
>> >
>> > if (synLog.isTraceOrDebugEnabled()) {
>> > - synLog.traceOrDebug("Start : EIP Sequence " + "paramNames
>> : " + paramNames);
>> > + synLog.traceOrDebug("Start : EIP Sequence " + "paramNames
>> : " + parameters);
>> >
>> > if (synLog.isTraceTraceEnabled()) {
>> > synLog.traceTrace("Message : " + synCtx.getEnvelope());
>> > @@ -86,7 +87,7 @@ public class TemplateMediator extends Ab
>> > * @param synCtx Synapse Message context
>> > */
>> > private void pushFuncContextTo(MessageContext synCtx) {
>> > - TemplateContext funcContext = new
>> TemplateContext(eipPatternName, paramNames);
>> > + TemplateContext funcContext = new
>> TemplateContext(eipPatternName, parameters);
>> > //process the raw parameters parsed in
>> > funcContext.setupParams(synCtx);
>> > //if a function stack has not already been created for this
>> message flow create new one
>> >
>> > Added:
>> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
>> (added)
>> > +++
>> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,26 @@
>> > +package org.apache.synapse.libraries.eip;
>> > +
>> > +import junit.framework.TestCase;
>> > +import org.apache.synapse.libraries.imports.SynapseImport;
>> > +import org.apache.synapse.libraries.model.Library;
>> > +import org.apache.synapse.libraries.util.LibDeployerUtils;
>> > +import org.apache.synapse.mediators.eip.AbstractSplitMediatorTestCase;
>> > +
>> > +import java.io.File;
>> > +import java.net.URISyntaxException;
>> > +
>> > +public abstract class AbstractEipLibTestCase extends TestCase {
>> > + public String path = null;
>> > +
>> > + protected String getResourcePath() {
>> > + try {
>> > + if (path == null) {
>> > + path = new
>> File("./target/test_repos/synapse/synapse-libraries/synapse-eip-lib.zip").getAbsolutePath();
>> > + }
>> > + } catch (Exception e) {
>> > + return null;
>> > + }
>> > + return path;
>> > +
>> > + }
>> > +}
>> >
>> > Added:
>> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
>> (added)
>> > +++
>> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,87 @@
>> > +package org.apache.synapse.libraries.eip;
>> > +
>> > +import org.apache.axiom.om.OMAbstractFactory;
>> > +import org.apache.axiom.soap.SOAPEnvelope;
>> > +import org.apache.axis2.context.ConfigurationContext;
>> > +import org.apache.axis2.engine.AxisConfiguration;
>> > +import org.apache.synapse.MessageContext;
>> > +import org.apache.synapse.config.SynapseConfigUtils;
>> > +import org.apache.synapse.config.SynapseConfiguration;
>> > +import org.apache.synapse.config.xml.InvokeMediatorFactory;
>> > +import org.apache.synapse.config.xml.MediatorFactory;
>> > +import org.apache.synapse.core.axis2.Axis2MessageContext;
>> > +import org.apache.synapse.core.axis2.Axis2SynapseEnvironment;
>> > +import org.apache.synapse.libraries.imports.SynapseImport;
>> > +import org.apache.synapse.libraries.model.Library;
>> > +import org.apache.synapse.libraries.util.LibDeployerUtils;
>> > +import org.apache.synapse.mediators.base.SequenceMediator;
>> > +import org.apache.synapse.mediators.template.InvokeMediator;
>> > +
>> > +import java.util.Properties;
>> > +
>> > +/**
>> > + * Tests for synapse template invoke
>> > + */
>> > +public class EipLibTest extends AbstractEipLibTestCase {
>> > + private MessageContext synCtx;
>> > +
>> > +
>> > + protected void setUp() throws Exception {
>> > + super.setUp();
>> > + Library library =
>> LibDeployerUtils.createSynapseLibrary(getResourcePath());
>> > + SynapseImport validSynImport = new SynapseImport();
>> > + validSynImport.setLibName("EipLibrary");
>> > + validSynImport.setLibPackage("synapse.lang.eip");
>> > + if (validSynImport != null) {
>> > + LibDeployerUtils.loadLibArtifacts(validSynImport, library);
>> > + }
>> > + assertEquals("EipLibrary", library.getQName().getLocalPart());
>> > + assertEquals("synapse.lang.eip", library.getPackage());
>> > + assertEquals("eip synapse library", library.getDescription());
>> > +
>> assertNotNull(library.getArtifact("synapse.lang.eip.splitter"));
>> > + //setting up synapse context & configuration
>> > + SynapseConfiguration synConf = new SynapseConfiguration();
>> > + synConf.addSynapseLibrary(library.toString(), library);
>> > + synConf.addSequence("main", new SequenceMediator());
>> > + synConf.addSequence("fault", new SequenceMediator());
>> > + AxisConfiguration config = new AxisConfiguration();
>> > + synCtx = new Axis2MessageContext(new
>> org.apache.axis2.context.MessageContext(),
>> > + synConf, new Axis2SynapseEnvironment(new
>> ConfigurationContext(config), synConf));
>> > +
>> //((Axis2MessageContext)synCtx).getAxis2MessageContext().setConfigurationContext(new
>> ConfigurationContext(config));
>> > + SOAPEnvelope envelope =
>> OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
>> > +
>> envelope.getBody().addChild(SynapseConfigUtils.stringToOM("<original><itr><a>IBM</a></itr><itr><a>DELL</a></itr></original>"));
>> > + synCtx.setEnvelope(envelope);
>> > + SequenceMediator seqMed = new SequenceMediator();
>> > + synCtx.getConfiguration().addSequence("seqRef", seqMed);
>> > +
>> > + }
>> > +
>> > +
>> > + public void testValidEipLibInvoke() throws Exception {
>> > +
>> > + //Invoke Template
>> > + MediatorFactory fac = new InvokeMediatorFactory();
>> > +
>> > + InvokeMediator iterate = (InvokeMediator)
>> fac.createMediator(SynapseConfigUtils.stringToOM("<call-template xmlns=\"
>> http://ws.apache.org/ns/synapse\" " +
>> > + "target=\"synapse.lang.eip.splitter\">" +
>> > + "<with-param xmlns=\"http://ws.apache.org/ns/synapse\"
>> name=\"iterate_exp\" value=\"{{//original/itr}}\"/>" +
>> > + "<with-param xmlns=\"http://ws.apache.org/ns/synapse\"
>> name=\"endpoint_uri\" value=\"
>> http://localhost:9000/services/IterateTestService\"/>" +
>> > + "<with-param xmlns=\"http://ws.apache.org/ns/synapse\"
>> name=\"sequence_ref\" value=\"seqRef\"/>" +
>> > + "</call-template>"), new Properties());
>> > +
>> > + boolean returnValue = iterate.mediate(synCtx);
>> > +
>> > + //Test Template Parameters
>> > + assertEquals("<itr><a>IBM</a></itr><itr><a>DELL</a></itr>",
>> synCtx.getProperty("ItrExp"));
>> > + assertEquals("
>> http://localhost:9000/services/IterateTestService",
>> synCtx.getProperty("EndPUri"));
>> > +
>> assertEquals("<original><itr><a>IBM</a></itr><itr><a>DELL</a></itr></original>",
>> synCtx.getProperty("AttachPath"));
>> > + assertEquals("seqRef", synCtx.getProperty("SRef"));
>> > +
>> > + //Test Template invoke & mediation
>> > + assertTrue(returnValue);
>> > + assertEquals("", synCtx.getProperty("Endpoint_1"));
>> > + assertEquals("
>> http://localhost:9000/services/IterateTestService",
>> synCtx.getProperty("Endpoint_2"));
>> > + }
>> > +
>> > +
>> > +}
>> >
>> > Added:
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
>> (added)
>> > +++
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,23 @@
>> > +<?xml version="1.0" encoding="UTF-8"?>
>> > +<assembly>
>> > + <formats>
>> > + <format>zip</format>
>> > + </formats>
>> > + <includeBaseDirectory>false</includeBaseDirectory>
>> > + <fileSets>
>> > + <fileSet>
>> > +
>> <directory>src/test/resources/synapse-libraries/synapse-eip-lib</directory>
>> > + <outputDirectory></outputDirectory>
>> > + </fileSet>
>> > + <fileSet>
>> > + <directory>target/classes</directory>
>> > + <outputDirectory></outputDirectory>
>> > + <excludes>
>> > + <exclude>**/metrics_module.xml</exclude>
>> > + <exclude>**/META-INF/*</exclude>
>> > + </excludes>
>> > + </fileSet>
>> > + </fileSets>
>> > +
>> > +
>> > +</assembly>
>> >
>> > Added:
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
>> (added)
>> > +++
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,7 @@
>> > +<?xml version="1.0" encoding="UTF-8"?>
>> > +<artifacts>
>> > + <artifact name="EipLibrary" package="synapse.lang.eip" >
>> > + <dependency artifact="systemManagement" />
>> > + <description>eip synapse library</description>
>> > + </artifact>
>> > +</artifacts>
>> >
>> > Added:
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
>> (added)
>> > +++
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,11 @@
>> > +<?xml version="1.0" encoding="UTF-8"?>
>> > +<artifact name="systemManagement" type="synapse/template">
>> > +
>> > + <subArtifacts>
>> > + <artifact name="splitter">
>> > + <file>template_splitter.xml</file>
>> > + <description>Splitter library function</description>
>> > + </artifact>
>> > + </subArtifacts>
>> > +
>> > +</artifact>
>> > \ No newline at end of file
>> >
>> > Added:
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > ---
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
>> (added)
>> > +++
>> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,20 @@
>> > +<template xmlns="http://ws.apache.org/ns/synapse" name="splitter">
>> > + <parameter name="iterate_exp"/>
>> > + <parameter name="endpoint_uri"/>
>> > + <parameter name="attach_path" default="{{//original}}"
>> optional="true"/>
>> > + <parameter name="sequence_ref"/>
>> > + <sequence>
>> > + <property name="ItrExp" expression="$func:iterate_exp" />
>> > + <property name="EndPUri" expression="$func:endpoint_uri" />
>> > + <property name="AttachPath" expression="$func:attach_path" />
>> > + <property name="SRef" expression="$func:sequence_ref" />
>> > + <property name="Endpoint_1" expression="get-property('To')" />
>> > + <header name="To" expression="$func:endpoint_uri"/>
>> > + <iterate xmlns:ns="http://org.apache.synapse/xsd"
>> continueParent="true" preservePayload="true" attachPath="$func:attach_path"
>> expression="$func:iterate_exp">
>> > + <target>
>> > + <sequence key="{$func:sequence_ref}"/>
>> > + </target>
>> > + </iterate>
>> > + <property name="Endpoint_2" expression="get-property('To')" />
>> > + </sequence>
>> > +</template>
>> >
>> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml
>> (added)
>> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,36 @@
>> > +<?xml version="1.0" encoding="ISO-8859-1"?>
>> > +<!--
>> > + ~ Licensed to the Apache Software Foundation (ASF) under one
>> > + ~ or more contributor license agreements. See the NOTICE file
>> > + ~ distributed with this work for additional information
>> > + ~ regarding copyright ownership. The ASF licenses this file
>> > + ~ to you 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.
>> > + -->
>> > +
>> > +<!-- Introduction to Synapse Callout Block function template -->
>> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
>> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
>> package="synapse.lang.eip" />
>> > + <sequence name="main">
>> > + <call-template target="synapse.lang.eip.callout_block">
>> > + <with-param name="action" value="urn:getQuote"/>
>> > + <with-param name="service_URL" value="
>> http://localhost:9000/services/SimpleStockQuoteService"/>
>> > + <with-param xmlns:s11="
>> http://schemas.xmlsoap.org/soap/envelope/" xmlns:s12="
>> http://www.w3.org/2003/05/soap-envelope" name="source_xpath"
>> value="{{s11:Body/child::*[fn:position()=1] |
>> s12:Body/child::*[fn:position()=1]}}"/>
>> > + <with-param xmlns:s11="
>> http://schemas.xmlsoap.org/soap/envelope/" xmlns:s12="
>> http://www.w3.org/2003/05/soap-envelope" name="target_xpath"
>> value="{{s11:Body/child::*[fn:position()=1] |
>> s12:Body/child::*[fn:position()=1]}}"/>
>> > + </call-template>
>> > + <property name="RESPONSE" value="true"/>
>> > + <header name="To" action="remove"/>
>> > + <send/>
>> > + <drop/>
>> > +</sequence>
>> > +</definitions>
>> >
>> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml
>> (added)
>> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,57 @@
>> > +<?xml version="1.0" encoding="ISO-8859-1"?>
>> > +<!--
>> > + ~ Licensed to the Apache Software Foundation (ASF) under one
>> > + ~ or more contributor license agreements. See the NOTICE file
>> > + ~ distributed with this work for additional information
>> > + ~ regarding copyright ownership. The ASF licenses this file
>> > + ~ to you 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.
>> > + -->
>> > +
>> > +<!-- Introduction to Synapse Splitter & Aggregator eip function
>> template -->
>> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
>> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
>> package="synapse.lang.eip" />
>> > + <proxy name="StockQuoteProxy" transports="https http"
>> startOnLoad="true" trace="disable">
>> > + <target>
>> > + <inSequence>
>> > + <log level="custom">
>> > + <property name="text" value="splitterAggrigator"/>
>> > + </log>
>> > + <call-template target="synapse.lang.eip.splitter">
>> > + <with-param xmlns:m0="http://services.samples"
>> name="iterate_exp" value="{{//m0:getQuote/m0:request}}"/>
>> > + <with-param xmlns:m0="http://services.samples"
>> name="attach_path" value="{{//m0:getQuote}}"/>
>> > + <with-param name="attach_path_enabled" value="true"/>
>> > + <with-param name="endpoint_uri" value="
>> http://localhost:9000/services/SimpleStockQuoteService"/>
>> > + </call-template>
>> > + </inSequence>
>> > + <outSequence>
>> > + <call-template target="synapse.lang.eip.aggregator">
>> > + <with-param name="sequence_ref" value="enr"/>
>> > + <with-param xmlns:m0="http://services.samples"
>> name="aggregator_exp" value="{{//m0:return}}"/>
>> > + <with-param name="oncomplete_seq_enabled"
>> value="true"/>
>> > + </call-template>
>> > + </outSequence>
>> > + </target>
>> > + </proxy>
>> > +<sequence xmlns="http://ws.apache.org/ns/synapse" name="enr">
>> > + <log level="custom">
>> > + <property name="text" value="seqhit"/>
>> > + </log>
>> > + <enrich>
>> > + <source xmlns:m1="http://services.samples/xsd" xmlns:m0="
>> http://services.samples" clone="true"
>> > +
>> xpath="//m0:return[not(preceding-sibling::m0:return/m1:last <= m1:last)
>> and not(following-sibling::m0:return/m1:last < m1:last)]"/>
>> > + <target type="body"/>
>> > + </enrich>
>> > + <send/>
>> > +</sequence>
>> > +</definitions>
>> >
>> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml
>> (added)
>> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,46 @@
>> > +<?xml version="1.0" encoding="ISO-8859-1"?>
>> > +<!--
>> > + ~ Licensed to the Apache Software Foundation (ASF) under one
>> > + ~ or more contributor license agreements. See the NOTICE file
>> > + ~ distributed with this work for additional information
>> > + ~ regarding copyright ownership. The ASF licenses this file
>> > + ~ to you 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.
>> > + -->
>> > +
>> > +<!-- Introduction to Synapse Splitter-Agrregator eip function
>> templates -->
>> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
>> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
>> package="synapse.lang.eip" />
>> > + <sequence name="main">
>> > + <call-template target="synapse.lang.eip.splitter_aggregator">
>> > + <with-param name="attach_path_enabled" value="true"/>
>> > + <with-param name="endpoint_uri" value="
>> http://localhost:9000/services/SimpleStockQuoteService"/>
>> > + <with-param xmlns:m0="http://services.samples"
>> name="iterate_exp" value="{{//m0:getQuote/m0:request}}"/>
>> > + <with-param xmlns:m0="http://services.samples"
>> name="attach_path" value="{{//m0:getQuote}}"/>
>> > + <with-param name="sequence_ref" value="enr"/>
>> > + <with-param xmlns:m0="http://services.samples"
>> name="aggregator_exp" value="{{//m0:return}}"/>
>> > + <with-param name="oncomplete_seq_enabled" value="true"/>
>> > + </call-template>
>> > +</sequence>
>> > +<sequence xmlns="http://ws.apache.org/ns/synapse" name="enr">
>> > + <log level="custom">
>> > + <property name="text" value="seqhit"/>
>> > + </log>
>> > + <enrich>
>> > + <source xmlns:m1="http://services.samples/xsd" xmlns:m0="
>> http://services.samples" clone="true"
>> > +
>> xpath="//m0:return[not(preceding-sibling::m0:return/m1:last <= m1:last)
>> and not(following-sibling::m0:return/m1:last < m1:last)]"/>
>> > + <target type="body"/>
>> > + </enrich>
>> > + <send/>
>> > +</sequence>
>> > +</definitions>
>> >
>> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml
>> (added)
>> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,42 @@
>> > +<?xml version="1.0" encoding="ISO-8859-1"?>
>> > +<!--
>> > + ~ Licensed to the Apache Software Foundation (ASF) under one
>> > + ~ or more contributor license agreements. See the NOTICE file
>> > + ~ distributed with this work for additional information
>> > + ~ regarding copyright ownership. The ASF licenses this file
>> > + ~ to you 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.
>> > + -->
>> > +
>> > +<!-- Introduction to Synapse Scatter-Gather eip function template -->
>> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
>> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
>> package="synapse.lang.eip" />
>> > +<sequence name="enr">
>> > + <log level="custom">
>> > + <property name="text" value="seqhit"/>
>> > + </log>
>> > + <enrich>
>> > + <source xmlns:m1="http://services.samples/xsd" xmlns:m0="
>> http://services.samples" clone="true"
>> xpath="//m0:return[not(preceding-sibling::m0:return/m1:last <= m1:last)
>> and not(following-sibling::m0:return/m1:last < m1:last)]"/>
>> > + <target type="body"/>
>> > + </enrich>
>> > + <send/>
>> > + </sequence>
>> > + <sequence name="main">
>> > + <call-template target="synapse.lang.eip.scatter_gather">
>> > + <with-param name="sequence_ref" value="enr"/>
>> > + <with-param xmlns:m0="http://services.samples"
>> name="aggregator_exp" value="{{//m0:return}}"/>
>> > + <with-param name="oncomplete_seq_enabled" value="true"/>
>> > + <with-param name="recipient_list" value="
>> http://localhost:9001/services/SimpleStockQuoteService,http://localhost:9002/services/SimpleStockQuoteService,http://localhost:9003/services/SimpleStockQuoteService
>> "/>
>> > + </call-template>
>> > + </sequence>
>> > +</definitions>
>> >
>> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml
>> (added)
>> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,32 @@
>> > +<?xml version="1.0" encoding="ISO-8859-1"?>
>> > +<!--
>> > + ~ Licensed to the Apache Software Foundation (ASF) under one
>> > + ~ or more contributor license agreements. See the NOTICE file
>> > + ~ distributed with this work for additional information
>> > + ~ regarding copyright ownership. The ASF licenses this file
>> > + ~ to you 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.
>> > + -->
>> > +
>> > +<!-- Introduction to Synapse Wire Tap eip function template -->
>> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
>> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
>> package="synapse.lang.eip" />
>> > + <sequence name="main">
>> > +<property name="OUT_ONLY" value="true"/>
>> > + <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
>> > + <call-template target="synapse.lang.eip.wire_tap">
>> > +<with-param name="wiretap_uri" value="
>> http://localhost:9000/services/SimpleStockQuoteService"/>
>> > + <with-param name="destination_uri" value="
>> http://localhost:9001/services/SimpleStockQuoteService"/>
>> > + </call-template>
>> > + </sequence>
>> > +</definitions>
>> >
>> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml
>> (added)
>> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,66 @@
>> > +<?xml version="1.0" encoding="ISO-8859-1"?>
>> > +<!--
>> > + ~ Licensed to the Apache Software Foundation (ASF) under one
>> > + ~ or more contributor license agreements. See the NOTICE file
>> > + ~ distributed with this work for additional information
>> > + ~ regarding copyright ownership. The ASF licenses this file
>> > + ~ to you 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.
>> > + -->
>> > +
>> > +<!-- Introduction to Synapse Content Based Router eip function
>> template -->
>> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
>> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
>> package="synapse.lang.eip" />
>> > +<proxy name="StockQuoteProxy" transports="https http"
>> startOnLoad="true" trace="disable">
>> > + <target>
>> > + <inSequence>
>> > + <call-template
>> target="synapse.lang.eip.content_based_router">
>> > +<with-param name="routing_exp"
>> value="{{//m0:getQuote/m0:request/m0:symbol}}" xmlns:m0="
>> http://services.samples"/>
>> > +<with-param name="match_content"
>> value="IBM:cnd1_seq,MSFT:cnd2_seq;cnd3_seq"/>
>> > + </call-template>
>> > +</inSequence>
>> > +<outSequence>
>> > +<send/>
>> > + </outSequence>
>> > + </target>
>> > + </proxy>
>> > +<sequence name="send_seq">
>> > + <log level="custom">
>> > + <property name="DEBUG" value="Condition Satisfied"/>
>> > + </log>
>> > + <send>
>> > + <endpoint name="simple">
>> > + <address uri="
>> http://localhost:9000/services/SimpleStockQuoteService"/>
>> > + </endpoint>
>> > + </send>
>> > + </sequence>
>> > +
>> > + <sequence name="cnd1_seq">
>> > + <log level="custom">
>> > + <property name="MSG_FLOW" value="Condition (I) Satisfied"/>
>> > + </log>
>> > + <sequence key="send_seq"/>
>> > + </sequence>
>> > + <sequence name="cnd2_seq">
>> > + <log level="custom">
>> > + <property name="MSG_FLOW" value="Condition (II)
>> Satisfied"/>
>> > + </log>
>> > + <sequence key="send_seq"/>
>> > + </sequence>
>> > + <sequence name="cnd3_seq">
>> > + <log level="custom">
>> > + <property name="MSG_FLOW" value="Condition (III)
>> Satisfied"/>
>> > + </log>
>> > + <sequence key="send_seq"/>
>> > + </sequence>
>> > +</definitions>
>> >
>> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml
>> (added)
>> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,65 @@
>> > +<?xml version="1.0" encoding="ISO-8859-1"?>
>> > +<!--
>> > + ~ Licensed to the Apache Software Foundation (ASF) under one
>> > + ~ or more contributor license agreements. See the NOTICE file
>> > + ~ distributed with this work for additional information
>> > + ~ regarding copyright ownership. The ASF licenses this file
>> > + ~ to you 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.
>> > + -->
>> > +
>> > +<!-- Introduction to Synapse Dynamic Router eip function template -->
>> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
>> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
>> package="synapse.lang.eip" />
>> > + <proxy name="StockQuoteProxy" transports="https http"
>> startOnLoad="true" trace="disable">
>> > + <target>
>> > + <inSequence>
>> > + <call-template target="synapse.lang.eip.dynamic_router">
>> > +<with-param name="conditions"
>> value="header=foo:bar.*#url=/services/StockQuoteProxy.*;seq=cnd1_seq,header=custom_header1:bar.*@header=custom_header1:foo.*;seq=cnd2_seq,header=custom_header2:foo.*;seq=cnd3_seq"/>
>> > + </call-template>
>> > + </inSequence>
>> > + <outSequence>
>> > + <send/>
>> > + </outSequence>
>> > + </target>
>> > + </proxy>
>> > +<sequence name="send_seq">
>> > + <log level="custom">
>> > + <property name="DEBUG" value="Condition Satisfied"/>
>> > + </log>
>> > + <send>
>> > + <endpoint name="simple">
>> > + <address uri="
>> http://localhost:9000/services/SimpleStockQuoteService"/>
>> > + </endpoint>
>> > + </send>
>> > + </sequence>
>> > +
>> > + <sequence name="cnd1_seq">
>> > + <log level="custom">
>> > + <property name="MSG_FLOW" value="Condition (I) Satisfied"/>
>> > + </log>
>> > + <sequence key="send_seq"/>
>> > + </sequence>
>> > + <sequence name="cnd2_seq">
>> > + <log level="custom">
>> > + <property name="MSG_FLOW" value="Condition (II)
>> Satisfied"/>
>> > + </log>
>> > + <sequence key="send_seq"/>
>> > + </sequence>
>> > + <sequence name="cnd3_seq">
>> > + <log level="custom">
>> > + <property name="MSG_FLOW" value="Condition (III)
>> Satisfied"/>
>> > + </log>
>> > + <sequence key="send_seq"/>
>> > + </sequence>
>> > +</definitions>
>> >
>> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml
>> > URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml?rev=1373302&view=auto
>> >
>> ==============================================================================
>> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml
>> (added)
>> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml
>> Wed Aug 15 10:03:18 2012
>> > @@ -0,0 +1,32 @@
>> > +<?xml version="1.0" encoding="ISO-8859-1"?>
>> > +<!--
>> > + ~ Licensed to the Apache Software Foundation (ASF) under one
>> > + ~ or more contributor license agreements. See the NOTICE file
>> > + ~ distributed with this work for additional information
>> > + ~ regarding copyright ownership. The ASF licenses this file
>> > + ~ to you 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.
>> > + -->
>> > +
>> > +<!-- Introduction to Synapse Recipient List eip function template -->
>> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
>> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
>> package="synapse.lang.eip" />
>> > + <sequence name="main">
>> > + <property name="OUT_ONLY" value="true"/>
>> > + <property name="FORCE_SC_ACCEPTED" value="true"
>> scope="axis2"/>
>> > + <call-template target="synapse.lang.eip.recipient_list">
>> > + <with-param name="recipient_list" value="
>> http://localhost:9000/services/SimpleStockQuoteService,http://localhost:9001/services/SimpleStockQuoteService
>> "/>
>> > + </call-template>
>> > + <drop/>
>> > +</sequence>
>> > +</definitions>
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
>> For additional commands, e-mail: dev-help@synapse.apache.org
>>
>>
Re: svn commit: r1373302 - in /synapse/trunk/java: modules/core/
modules/core/src/main/java/org/apache/synapse/config/xml/ modules/core/src/main/java/org/apache/synapse/libraries/util/
modules/core/src/main/java/org/apache/synapse/mediators/ modules/
Posted by Rajika Kumarasiri <ra...@wso2.com>.
Yeah, as part of the patch we should ask for documentation as well.
Rajika
On Thu, Aug 16, 2012 at 12:04 AM, Andreas Veithen <andreas.veithen@gmail.com
> wrote:
> Please note that new samples are pretty much useless if there is no
> corresponding documentation...
>
> Andreas
>
> On Wed, Aug 15, 2012 at 12:03 PM, <us...@apache.org> wrote:
> > Author: uswick
> > Date: Wed Aug 15 10:03:18 2012
> > New Revision: 1373302
> >
> > URL: http://svn.apache.org/viewvc?rev=1373302&view=rev
> > Log:
> > commiting patches SYNAPSE-898,SYNAPSE-884, SYNAPSE-897 SYNAPSE-899,
> SYNAPSE-901
> >
> > Added:
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
> >
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/
> >
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
> >
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
> >
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> >
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/
> >
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
> >
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/
> >
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
> >
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml
> > Modified:
> > synapse/trunk/java/modules/core/pom.xml
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
> >
> > Modified: synapse/trunk/java/modules/core/pom.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/pom.xml?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > --- synapse/trunk/java/modules/core/pom.xml (original)
> > +++ synapse/trunk/java/modules/core/pom.xml Wed Aug 15 10:03:18 2012
> > @@ -96,6 +96,25 @@
> > </descriptors>
> > </configuration>
> > </execution>
> > + <execution>
> > + <id>eip-library-assembly</id>
> > + <phase>generate-test-resources</phase>
> > + <goals>
> > + <goal>attached</goal>
> > + </goals>
> > + <configuration>
> > + <finalName>synapse-eip-lib</finalName>
> > + <filters>
> > + <filter>
> > +
> ${basedir}/src/test/resources/synapse-libraries/assembly/filter.properties
> > + </filter>
> > + </filters>
> > + <descriptors>
> > +
> <descriptor>src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> > + </descriptor>
> > + </descriptors>
> > + </configuration>
> > + </execution>
> > </executions>
> > </plugin>
> >
> > @@ -115,6 +134,7 @@
> > <mkdir
> dir="target/test_repos/client/modules"/>
> > <mkdir
> dir="target/test_repos/synapse/synapse-libraries"/>
> > <copy
> file="target/synapse-test-lib.zip"
> todir="target/test_repos/synapse/synapse-libraries"/>
> > + <copy file="target/synapse-eip-lib.zip"
> todir="target/test_repos/synapse/synapse-libraries"/>
> > </tasks>
> > </configuration>
> > <goals>
> > @@ -127,6 +147,7 @@
> > <configuration>
> > <tasks>
> > <delete
> file="target/synapse-test-lib.zip"/>
> > + <delete
> file="target/synapse-eip-lib.zip"/>
> > </tasks>
> > </configuration>
> > <goals>
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
> Wed Aug 15 10:03:18 2012
> > @@ -73,7 +73,7 @@ public class CloneMediatorFactory extend
> > */
> > public Mediator createSpecificMediator(OMElement elem, Properties
> properties) {
> >
> > - boolean asynchronousExe = true;
> > + boolean asynchronousExe = false;
> >
> > CloneMediator mediator = new CloneMediator();
> > processAuditStatus(mediator, elem);
> > @@ -94,8 +94,6 @@ public class CloneMediatorFactory extend
> > if (synchronousExeAttr != null &&
> synchronousExeAttr.getAttributeValue().equals("true")) {
> > asynchronousExe = false;
> > }
> > -
> > - mediator.setSequential(!asynchronousExe);
> >
> > Iterator targetElements = elem.getChildrenWithName(TARGET_Q);
> > while (targetElements.hasNext()) {
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
> Wed Aug 15 10:03:18 2012
> > @@ -128,7 +128,7 @@ public class IterateMediatorFactory exte
> > attachPathValue, e);
> > }
> >
> > - boolean asynchronous = true;
> > + boolean asynchronous = false;
> > OMAttribute asynchronousAttr =
> elem.getAttribute(ATT_SEQUENCIAL);
> > if (asynchronousAttr != null &&
> asynchronousAttr.getAttributeValue().equals("true")) {
> > asynchronous = false;
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
> Wed Aug 15 10:03:18 2012
> > @@ -85,8 +85,8 @@ public class IterateMediatorSerializer e
> > handleException("Missing expression of the IterateMediator
> which is required.");
> > }
> >
> > - if (itrMed.getTarget() != null &&
> !itrMed.getTarget().isAsynchronous()) {
> > - itrElem.addAttribute("sequential", "true", nullNS);
> > + if (itrMed.getTarget() != null &&
> itrMed.getTarget().isAsynchronous()) {
> > + itrElem.addAttribute("sequential", "false", nullNS);
> > }
> >
> >
> itrElem.addChild(TargetSerializer.serializeTarget(itrMed.getTarget()));
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
> Wed Aug 15 10:03:18 2012
> > @@ -22,6 +22,7 @@ import org.apache.axiom.om.OMAttribute;
> > import org.apache.axiom.om.OMElement;
> > import org.apache.synapse.Mediator;
> > import org.apache.synapse.SynapseException;
> > +import org.apache.synapse.mediators.TemplateParameter;
> > import org.apache.synapse.mediators.template.TemplateMediator;
> >
> > import javax.xml.namespace.QName;
> > @@ -32,8 +33,8 @@ import java.util.Properties;
> > /**
> > * Factory class for Template configuration as follows
> > * <template name="simple_func">
> > - <parameter name="p1"/>
> > - <parameter name="p2"/>*
> > + <parameter name="p1" [default="value|expression"]
> [optional=(true|false)]/>
> > + <parameter name="p2" [default="value|expression"]
> [optional=(true|false)]/>*
> > <mediator/>+
> > </template>
> > */
> > @@ -43,20 +44,14 @@ public class TemplateMediatorFactory ext
> > private static final QName TEMPLATE_BODY_Q
> > = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE,
> "sequence");
> >
> > - /**
> > - * Element QName Definitions
> > - */
> > - public static final QName PARAMETER_Q = new QName(
> > - XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
> > -
> > -
> > protected Mediator createSpecificMediator(OMElement elem,
> Properties properties) {
> > TemplateMediator templateTemplateMediator = new
> TemplateMediator();
> > OMAttribute nameAttr = elem.getAttribute(ATT_NAME);
> > if (nameAttr != null) {
> >
> templateTemplateMediator.setName(nameAttr.getAttributeValue());
> > processAuditStatus(templateTemplateMediator, elem);
> > - initParameters(elem, templateTemplateMediator);
> > + //set template parameters
> > +
> templateTemplateMediator.setParameters(TemplateParameterFactory.getTemplateParameters(elem));
> > OMElement templateBodyElem =
> elem.getFirstChildWithName(TEMPLATE_BODY_Q);
> > addChildren(templateBodyElem, templateTemplateMediator,
> properties);
> > } else {
> > @@ -67,22 +62,6 @@ public class TemplateMediatorFactory ext
> > return templateTemplateMediator;
> > }
> >
> > - private void initParameters(OMElement templateElem,
> TemplateMediator templateMediator) {
> > - Iterator subElements = templateElem.getChildElements();
> > - Collection<String> paramNames = new ArrayList<String>();
> > - while (subElements.hasNext()) {
> > - OMElement child = (OMElement) subElements.next();
> > - if (child.getQName().equals(PARAMETER_Q)) {
> > - OMAttribute paramNameAttr =
> child.getAttribute(ATT_NAME);
> > - if (paramNameAttr != null) {
> > - paramNames.add(paramNameAttr.getAttributeValue());
> > - }
> > -// child.detach();
> > - }
> > - }
> > - templateMediator.setParameters(paramNames);
> > - }
> > -
> > public QName getTagQName() {
> > return TEMPLATE_Q;
> > }
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
> Wed Aug 15 10:03:18 2012
> > @@ -20,17 +20,17 @@ package org.apache.synapse.config.xml;
> >
> > import org.apache.axiom.om.OMElement;
> > import org.apache.synapse.Mediator;
> > +import org.apache.synapse.mediators.TemplateParameter;
> > import org.apache.synapse.mediators.template.TemplateMediator;
> >
> > import java.util.Collection;
> > -import java.util.Iterator;
> > import java.util.List;
> >
> > /**
> > * Serializer class for Template to serialize into a configuration as
> follows
> > * <template name="simple_func">
> > - <parameter name="p1"/>
> > - <parameter name="p2"/>*
> > + <parameter name="p1" [default="value|expression"]
> [optional=(true|false)]/>
> > + <parameter name="p2" [default="value|expression"]
> [optional=(true|false)]/>*
> > <mediator/>+
> > </template>
> > */
> > @@ -47,6 +47,7 @@ public class TemplateMediatorSerializer
> > if (mediator.getName() != null) {
> > templateElem.addAttribute(fac.createOMAttribute(
> > "name", nullNS, mediator.getName()));
> > + //serialize parameters
> > serializeParams(templateElem,mediator);
> > serializeBody(templateElem, mediator.getList());
> > saveTracingState(templateElem, mediator);
> > @@ -55,14 +56,16 @@ public class TemplateMediatorSerializer
> > return templateElem;
> > }
> >
> > + /**
> > + * Serialize parameters for the template mediator specified
> > + *
> > + * @param templateElem the OMElement that specifies the template
> configuration
> > + * @param mediator the TemplateMediator
> > + */
> > private void serializeParams(OMElement templateElem,
> TemplateMediator mediator) {
> > - Collection<String> params = mediator.getParameters();
> > - for (String param : params) {
> > - if (param != null && !"".equals(param)) {
> > - OMElement paramEl = fac.createOMElement("parameter",
> synNS);
> > - paramEl.addAttribute(fac.createOMAttribute("name",
> nullNS, param));
> > - templateElem.addChild(paramEl);
> > - }
> > + Collection<TemplateParameter> params = mediator.getParameters();
> > + if (params != null && params.size() > 0) {
> > +
> TemplateParameterSerializer.serializeTemplateParameters(templateElem,mediator.getParameters());
> > }
> > }
> >
> >
> > Added:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
> (added)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,98 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you 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.config.xml;
> > +
> > +import org.apache.axiom.om.OMAttribute;
> > +import org.apache.axiom.om.OMElement;
> > +import org.apache.commons.logging.Log;
> > +import org.apache.commons.logging.LogFactory;
> > +import org.apache.synapse.SynapseException;
> > +import org.apache.synapse.mediators.TemplateParameter;
> > +import org.apache.synapse.mediators.Value;
> > +
> > +import java.util.ArrayList;
> > +import java.util.Iterator;
> > +import java.util.List;
> > +
> > +/**
> > + * A utility class capable of creating instances of TemplateParameter
> objects by reading
> > + * through a given XML configuration
> > + *
> > + * <pre>
> > + * <element>
> > + * <parameter name="p1" [default="value|expression"]
> [optional=(true|false)]/>*
> > + * </element>
> > + * </pre>
> > + */
> > +public class TemplateParameterFactory {
> > + private static final Log log =
> LogFactory.getLog(TemplateParameterFactory.class);
> > +
> > + /**
> > + * Creates a list of parameters in a given template
> > + *
> > + * @param elem the OMElement that specifies the template
> configuration
> > + * @return the list of TemplateParameter instances created
> > + */
> > + public static List<TemplateParameter>
> getTemplateParameters(OMElement elem) {
> > +
> > + List<TemplateParameter> parameterList = new
> ArrayList<TemplateParameter>();
> > +
> > + Iterator iter =
> elem.getChildrenWithName(TemplateParameter.PARAMETER_Q);
> > +
> > + while (iter.hasNext()) {
> > +
> > + OMElement paramEle = (OMElement) iter.next();
> > + OMAttribute attName =
> paramEle.getAttribute(TemplateParameter.ATT_NAME_Q);
> > + OMAttribute attDefault =
> paramEle.getAttribute(TemplateParameter.ATT_DEFAULT_Q);
> > + OMAttribute attOptional =
> paramEle.getAttribute(TemplateParameter.ATT_OPTIONAL_Q);
> > +
> > + TemplateParameter param = new TemplateParameter();
> > +
> > + if (attName == null || attName.getAttributeValue() == null
> ||
> > + attName.getAttributeValue().trim().length() == 0) {
> > + String msg = "Parameter name is a required attribute
> for a Template Parameter";
> > + log.error(msg);
> > + throw new SynapseException(msg);
> > + } else {
> > + param.setName(attName.getAttributeValue());
> > + }
> > +
> > +
> > + if (attDefault == null || attDefault.getAttributeValue() ==
> null ||
> > + attDefault.getAttributeValue().trim().length() ==
> 0) {
> > + String msg = "Default value is not specified for " +
> param.getName() + " Parameter";
> > + log.warn(msg);
> > + } else {
> > + Value paramValue = new
> ValueFactory().createValue("default", paramEle);
> > + param.setDefaultValue(paramValue);
> > + }
> > +
> > + if (attOptional == null || attOptional.getAttributeValue()
> == null ||
> > + attOptional.getAttributeValue().trim().length() ==
> 0) {
> > + } else {
> > +
> param.setOptional(Boolean.valueOf(attOptional.getAttributeValue()));
> > + }
> > +
> > + parameterList.add(param);
> > + }
> > +
> > + return parameterList;
> > + }
> > +
> > +}
> >
> > Added:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
> (added)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,111 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you 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.config.xml;
> > +
> > +import org.apache.axiom.om.OMAbstractFactory;
> > +import org.apache.axiom.om.OMElement;
> > +import org.apache.axiom.om.OMFactory;
> > +import org.apache.axiom.om.OMNamespace;
> > +import org.apache.commons.logging.Log;
> > +import org.apache.commons.logging.LogFactory;
> > +import org.apache.synapse.SynapseConstants;
> > +import org.apache.synapse.SynapseException;
> > +import org.apache.synapse.mediators.TemplateParameter;
> > +
> > +import javax.xml.namespace.QName;
> > +import java.util.Collection;
> > +
> > +/**
> > + * A utility class for serializing instances of TemplateParameter
> objects by reading
> > + * through a given XML configuration
> > + *
> > + * <pre>
> > + * <element>
> > + * <parameter name="p1" [default="value|expression"]
> [optional=(true|false)]/>*
> > + * </element>
> > + * </pre>
> > + */
> > +public class TemplateParameterSerializer {
> > + private static final Log log =
> LogFactory.getLog(TemplateParameterSerializer.class);
> > +
> > + protected static final OMFactory fac =
> OMAbstractFactory.getOMFactory();
> > + protected static final OMNamespace synNS =
> SynapseConstants.SYNAPSE_OMNAMESPACE;
> > + protected static final OMNamespace nullNS
> > + = fac.createOMNamespace(XMLConfigConstants.NULL_NAMESPACE,
> "");
> > +
> > + protected static final QName PARAMETER_Q
> > + = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
> > +
> > + /**
> > + * Serialize all the parameters to the given parent element. For
> each and every
> > + * parameter there will be a separate parameter element created
> inside the parent element.
> > + *
> > + * @param parent element to which parameter elements should be added
> > + * @param params the list of TemplateParameter objects
> > + */
> > + public static void serializeTemplateParameters(OMElement parent,
> > +
> Collection<TemplateParameter> params) {
> > + serializeTemplateParameters(parent, params, PARAMETER_Q);
> > + }
> > +
> > + /**
> > + * Serialize all the parameters to the given parent element. For
> each and every
> > + * parameter there will be a separate parameter element created
> inside the parent element.
> > + *
> > + * @param parent element to which parameter elements should be added
> > + * @param params the list of TemplateParameter objects
> > + * @param childElementName of the parameter element to be created
> > + */
> > + public static void serializeTemplateParameters(OMElement parent,
> > +
> Collection<TemplateParameter> params,
> > + QName childElementName) {
> > + for (TemplateParameter tp : params) {
> > + serializeTemplateParameter(parent,tp, childElementName);
> > + }
> > + }
> > +
> > + /**
> > + * Serialize the parameter to the given parent element. There will
> be a element created with
> > + * given configuration inside the parent element.
> > + *
> > + * @param parent element to which parameter elements should be added
> > + * @param tp a property to be serialized
> > + * @param childElementName of the parameter element to be created
> > + */
> > + public static void serializeTemplateParameter(OMElement parent,
> > + TemplateParameter tp,
> > + QName childElementName) {
> > + OMElement param = fac.createOMElement(childElementName, parent);
> > + if (tp.getName() != null) {
> > + param.addAttribute(fac.createOMAttribute("name", nullNS,
> tp.getName()));
> > + } else {
> > + String msg = "Template parameter name missing";
> > + log.error(msg);
> > + throw new SynapseException(msg);
> > + }
> > +
> > + if (tp.getDefaultValue() != null) {
> > + new ValueSerializer().serializeValue(tp.getDefaultValue(),
> "default", param);
> > +
> > + if (tp.isOptional()) {
> > + param.addAttribute(fac.createOMAttribute("optional",
> nullNS, "true"));
> > + }
> > + }
> > +}
> > +}
> > \ No newline at end of file
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
> Wed Aug 15 10:03:18 2012
> > @@ -56,6 +56,8 @@ public class LibDeployerUtils {
> >
> >
> > public static Library createSynapseLibrary(String libPath) {
> > + createDir(APP_UNZIP_DIR);
> > +
> > String libFilePath = LibDeployerUtils.formatPath(libPath);
> > //extract
> > String extractPath =
> LibDeployerUtils.extractSynapseLib(libFilePath);
> >
> > Added:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
> (added)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,71 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you 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;
> > +
> > +import javax.xml.namespace.QName;
> > +
> > +import org.apache.synapse.config.xml.XMLConfigConstants;
> > +
> > +/**
> > + * A template parameter is a variable which is used when creating
> templates and contains following configuration
> > + * parameter name="p1" [default="value|expression"]
> [optional=(true|false)]
> > + *
> > + */
> > +public class TemplateParameter {
> > + public static final QName PARAMETER_Q = new
> QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
> > + public static final QName ATT_NAME_Q = new
> QName(XMLConfigConstants.NULL_NAMESPACE, "name");
> > + public static final QName ATT_DEFAULT_Q = new
> QName(XMLConfigConstants.NULL_NAMESPACE, "default");
> > + public static final QName ATT_OPTIONAL_Q = new
> QName(XMLConfigConstants.NULL_NAMESPACE, "optional");
> > +
> > +
> > + private String name;
> > + private Value defaultValue;
> > + private boolean isOptional;
> > +
> > + public TemplateParameter() {
> > + this.name = null;
> > + this.defaultValue = null;
> > + this.isOptional = false;
> > + }
> > +
> > + public String getName() {
> > + return name;
> > + }
> > +
> > + public void setName(String name) {
> > + this.name = name;
> > + }
> > +
> > + public Value getDefaultValue() {
> > + return defaultValue;
> > + }
> > +
> > + public void setDefaultValue(Value defaultValue) {
> > + this.defaultValue = defaultValue;
> > + }
> > +
> > + public boolean isOptional() {
> > + return isOptional;
> > + }
> > +
> > + public void setOptional(boolean optional) {
> > + isOptional = optional;
> > + }
> > +
> > +}
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
> Wed Aug 15 10:03:18 2012
> > @@ -18,7 +18,10 @@
> > */
> > package org.apache.synapse.mediators.template;
> >
> > +import org.apache.commons.logging.Log;
> > +import org.apache.commons.logging.LogFactory;
> > import org.apache.synapse.MessageContext;
> > +import org.apache.synapse.mediators.TemplateParameter;
> > import org.apache.synapse.mediators.Value;
> > import org.apache.synapse.mediators.eip.EIPUtils;
> > import org.jaxen.JaxenException;
> > @@ -30,6 +33,7 @@ import java.util.*;
> > * a context will be populated with function parameters.
> > */
> > public class TemplateContext {
> > + private static final Log log =
> LogFactory.getLog(TemplateContext.class);
> > /**
> > * refers to the function-template name this context is binded to
> > */
> > @@ -37,31 +41,40 @@ public class TemplateContext {
> > /**
> > * refers to the parameter names of the function
> > */
> > - private Collection<String> parameters;
> > + private Collection<TemplateParameter> parameters;
> > /**
> > * contains a map for parameterNames to evaluated values
> > */
> > private Map mappedValues;
> >
> > - TemplateContext(String name, Collection<String> parameters) {
> > + TemplateContext(String name, Collection<TemplateParameter>
> parameters) {
> > this.fName = name;
> > this.parameters = parameters;
> > mappedValues = new HashMap();
> > }
> >
> > /**
> > - * evaluate raw parameters passed from an invoke medaiator and
> store them in this context
> > + * evaluate raw parameters passed from an invoke mediator and store
> them in this context
> > * @param synCtxt Synapse MessageContext
> > */
> > public void setupParams(MessageContext synCtxt) {
> > - Iterator<String> paramNames = parameters.iterator();
> > + Iterator<TemplateParameter> paramNames = parameters.iterator();
> > while (paramNames.hasNext()) {
> > - String parameter = paramNames.next();
> > - String mapping = EIPUtils.getTemplatePropertyMapping(fName,
> parameter);
> > + TemplateParameter parameter = paramNames.next();
> > + String mapping = EIPUtils.getTemplatePropertyMapping(fName,
> parameter.getName());
> > Object propertyValue = synCtxt.getProperty(mapping);
> > - Object paramValue = getEvaluatedParamValue(synCtxt,
> parameter, (Value) propertyValue);
> > + //If property value is not provided assign default value
> > + if (propertyValue == null && parameter.getDefaultValue() !=
> null) {
> > + propertyValue = parameter.getDefaultValue();
> > + }
> > + //If this parameter is a required one give an error
> > + if (!parameter.isOptional() && propertyValue == null) {
> > + String msg = parameter.getName() + " is a required
> parameter for " + fName + " template";
> > + log.error(msg);
> > + }
> > + Object paramValue = getEvaluatedParamValue(synCtxt,
> parameter.getName(), (Value) propertyValue);
> > if (paramValue != null) {
> > - mappedValues.put(parameter, paramValue);
> > + mappedValues.put(parameter.getName(), paramValue);
> > //remove temp property from the context
> > removeProperty(synCtxt, mapping);
> > }
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
> Wed Aug 15 10:03:18 2012
> > @@ -23,6 +23,7 @@ import org.apache.synapse.SynapseConstan
> > import org.apache.synapse.SynapseLog;
> > import org.apache.synapse.core.SynapseEnvironment;
> > import org.apache.synapse.mediators.AbstractListMediator;
> > +import org.apache.synapse.mediators.TemplateParameter;
> >
> > import javax.sound.midi.Sequence;
> > import java.util.Collection;
> > @@ -37,19 +38,19 @@ import java.util.Stack;
> > */
> > public class TemplateMediator extends AbstractListMediator {
> >
> > - private Collection<String> paramNames;
> > + private Collection<TemplateParameter> parameters;
> >
> > private String eipPatternName;
> > private String fileName;
> > /** flag to ensure that each and every sequence is initialized and
> destroyed atmost once */
> > private boolean initialized = false;
> >
> > - public void setParameters(Collection<String> paramNames) {
> > - this.paramNames = paramNames;
> > + public void setParameters(Collection<TemplateParameter> paramNames)
> {
> > + this.parameters = paramNames;
> > }
> >
> > - public Collection<String> getParameters() {
> > - return paramNames;
> > + public Collection<TemplateParameter> getParameters() {
> > + return parameters;
> > }
> >
> > public void setName(String name) {
> > @@ -64,7 +65,7 @@ public class TemplateMediator extends Ab
> > SynapseLog synLog = getLog(synCtx);
> >
> > if (synLog.isTraceOrDebugEnabled()) {
> > - synLog.traceOrDebug("Start : EIP Sequence " + "paramNames :
> " + paramNames);
> > + synLog.traceOrDebug("Start : EIP Sequence " + "paramNames :
> " + parameters);
> >
> > if (synLog.isTraceTraceEnabled()) {
> > synLog.traceTrace("Message : " + synCtx.getEnvelope());
> > @@ -86,7 +87,7 @@ public class TemplateMediator extends Ab
> > * @param synCtx Synapse Message context
> > */
> > private void pushFuncContextTo(MessageContext synCtx) {
> > - TemplateContext funcContext = new
> TemplateContext(eipPatternName, paramNames);
> > + TemplateContext funcContext = new
> TemplateContext(eipPatternName, parameters);
> > //process the raw parameters parsed in
> > funcContext.setupParams(synCtx);
> > //if a function stack has not already been created for this
> message flow create new one
> >
> > Added:
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
> (added)
> > +++
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,26 @@
> > +package org.apache.synapse.libraries.eip;
> > +
> > +import junit.framework.TestCase;
> > +import org.apache.synapse.libraries.imports.SynapseImport;
> > +import org.apache.synapse.libraries.model.Library;
> > +import org.apache.synapse.libraries.util.LibDeployerUtils;
> > +import org.apache.synapse.mediators.eip.AbstractSplitMediatorTestCase;
> > +
> > +import java.io.File;
> > +import java.net.URISyntaxException;
> > +
> > +public abstract class AbstractEipLibTestCase extends TestCase {
> > + public String path = null;
> > +
> > + protected String getResourcePath() {
> > + try {
> > + if (path == null) {
> > + path = new
> File("./target/test_repos/synapse/synapse-libraries/synapse-eip-lib.zip").getAbsolutePath();
> > + }
> > + } catch (Exception e) {
> > + return null;
> > + }
> > + return path;
> > +
> > + }
> > +}
> >
> > Added:
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
> (added)
> > +++
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,87 @@
> > +package org.apache.synapse.libraries.eip;
> > +
> > +import org.apache.axiom.om.OMAbstractFactory;
> > +import org.apache.axiom.soap.SOAPEnvelope;
> > +import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.engine.AxisConfiguration;
> > +import org.apache.synapse.MessageContext;
> > +import org.apache.synapse.config.SynapseConfigUtils;
> > +import org.apache.synapse.config.SynapseConfiguration;
> > +import org.apache.synapse.config.xml.InvokeMediatorFactory;
> > +import org.apache.synapse.config.xml.MediatorFactory;
> > +import org.apache.synapse.core.axis2.Axis2MessageContext;
> > +import org.apache.synapse.core.axis2.Axis2SynapseEnvironment;
> > +import org.apache.synapse.libraries.imports.SynapseImport;
> > +import org.apache.synapse.libraries.model.Library;
> > +import org.apache.synapse.libraries.util.LibDeployerUtils;
> > +import org.apache.synapse.mediators.base.SequenceMediator;
> > +import org.apache.synapse.mediators.template.InvokeMediator;
> > +
> > +import java.util.Properties;
> > +
> > +/**
> > + * Tests for synapse template invoke
> > + */
> > +public class EipLibTest extends AbstractEipLibTestCase {
> > + private MessageContext synCtx;
> > +
> > +
> > + protected void setUp() throws Exception {
> > + super.setUp();
> > + Library library =
> LibDeployerUtils.createSynapseLibrary(getResourcePath());
> > + SynapseImport validSynImport = new SynapseImport();
> > + validSynImport.setLibName("EipLibrary");
> > + validSynImport.setLibPackage("synapse.lang.eip");
> > + if (validSynImport != null) {
> > + LibDeployerUtils.loadLibArtifacts(validSynImport, library);
> > + }
> > + assertEquals("EipLibrary", library.getQName().getLocalPart());
> > + assertEquals("synapse.lang.eip", library.getPackage());
> > + assertEquals("eip synapse library", library.getDescription());
> > + assertNotNull(library.getArtifact("synapse.lang.eip.splitter"));
> > + //setting up synapse context & configuration
> > + SynapseConfiguration synConf = new SynapseConfiguration();
> > + synConf.addSynapseLibrary(library.toString(), library);
> > + synConf.addSequence("main", new SequenceMediator());
> > + synConf.addSequence("fault", new SequenceMediator());
> > + AxisConfiguration config = new AxisConfiguration();
> > + synCtx = new Axis2MessageContext(new
> org.apache.axis2.context.MessageContext(),
> > + synConf, new Axis2SynapseEnvironment(new
> ConfigurationContext(config), synConf));
> > +
> //((Axis2MessageContext)synCtx).getAxis2MessageContext().setConfigurationContext(new
> ConfigurationContext(config));
> > + SOAPEnvelope envelope =
> OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
> > +
> envelope.getBody().addChild(SynapseConfigUtils.stringToOM("<original><itr><a>IBM</a></itr><itr><a>DELL</a></itr></original>"));
> > + synCtx.setEnvelope(envelope);
> > + SequenceMediator seqMed = new SequenceMediator();
> > + synCtx.getConfiguration().addSequence("seqRef", seqMed);
> > +
> > + }
> > +
> > +
> > + public void testValidEipLibInvoke() throws Exception {
> > +
> > + //Invoke Template
> > + MediatorFactory fac = new InvokeMediatorFactory();
> > +
> > + InvokeMediator iterate = (InvokeMediator)
> fac.createMediator(SynapseConfigUtils.stringToOM("<call-template xmlns=\"
> http://ws.apache.org/ns/synapse\" " +
> > + "target=\"synapse.lang.eip.splitter\">" +
> > + "<with-param xmlns=\"http://ws.apache.org/ns/synapse\"
> name=\"iterate_exp\" value=\"{{//original/itr}}\"/>" +
> > + "<with-param xmlns=\"http://ws.apache.org/ns/synapse\"
> name=\"endpoint_uri\" value=\"
> http://localhost:9000/services/IterateTestService\"/>" +
> > + "<with-param xmlns=\"http://ws.apache.org/ns/synapse\"
> name=\"sequence_ref\" value=\"seqRef\"/>" +
> > + "</call-template>"), new Properties());
> > +
> > + boolean returnValue = iterate.mediate(synCtx);
> > +
> > + //Test Template Parameters
> > + assertEquals("<itr><a>IBM</a></itr><itr><a>DELL</a></itr>",
> synCtx.getProperty("ItrExp"));
> > + assertEquals("http://localhost:9000/services/IterateTestService",
> synCtx.getProperty("EndPUri"));
> > +
> assertEquals("<original><itr><a>IBM</a></itr><itr><a>DELL</a></itr></original>",
> synCtx.getProperty("AttachPath"));
> > + assertEquals("seqRef", synCtx.getProperty("SRef"));
> > +
> > + //Test Template invoke & mediation
> > + assertTrue(returnValue);
> > + assertEquals("", synCtx.getProperty("Endpoint_1"));
> > + assertEquals("http://localhost:9000/services/IterateTestService",
> synCtx.getProperty("Endpoint_2"));
> > + }
> > +
> > +
> > +}
> >
> > Added:
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> (added)
> > +++
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,23 @@
> > +<?xml version="1.0" encoding="UTF-8"?>
> > +<assembly>
> > + <formats>
> > + <format>zip</format>
> > + </formats>
> > + <includeBaseDirectory>false</includeBaseDirectory>
> > + <fileSets>
> > + <fileSet>
> > +
> <directory>src/test/resources/synapse-libraries/synapse-eip-lib</directory>
> > + <outputDirectory></outputDirectory>
> > + </fileSet>
> > + <fileSet>
> > + <directory>target/classes</directory>
> > + <outputDirectory></outputDirectory>
> > + <excludes>
> > + <exclude>**/metrics_module.xml</exclude>
> > + <exclude>**/META-INF/*</exclude>
> > + </excludes>
> > + </fileSet>
> > + </fileSets>
> > +
> > +
> > +</assembly>
> >
> > Added:
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
> (added)
> > +++
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,7 @@
> > +<?xml version="1.0" encoding="UTF-8"?>
> > +<artifacts>
> > + <artifact name="EipLibrary" package="synapse.lang.eip" >
> > + <dependency artifact="systemManagement" />
> > + <description>eip synapse library</description>
> > + </artifact>
> > +</artifacts>
> >
> > Added:
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
> (added)
> > +++
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,11 @@
> > +<?xml version="1.0" encoding="UTF-8"?>
> > +<artifact name="systemManagement" type="synapse/template">
> > +
> > + <subArtifacts>
> > + <artifact name="splitter">
> > + <file>template_splitter.xml</file>
> > + <description>Splitter library function</description>
> > + </artifact>
> > + </subArtifacts>
> > +
> > +</artifact>
> > \ No newline at end of file
> >
> > Added:
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
> (added)
> > +++
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,20 @@
> > +<template xmlns="http://ws.apache.org/ns/synapse" name="splitter">
> > + <parameter name="iterate_exp"/>
> > + <parameter name="endpoint_uri"/>
> > + <parameter name="attach_path" default="{{//original}}"
> optional="true"/>
> > + <parameter name="sequence_ref"/>
> > + <sequence>
> > + <property name="ItrExp" expression="$func:iterate_exp" />
> > + <property name="EndPUri" expression="$func:endpoint_uri" />
> > + <property name="AttachPath" expression="$func:attach_path" />
> > + <property name="SRef" expression="$func:sequence_ref" />
> > + <property name="Endpoint_1" expression="get-property('To')" />
> > + <header name="To" expression="$func:endpoint_uri"/>
> > + <iterate xmlns:ns="http://org.apache.synapse/xsd"
> continueParent="true" preservePayload="true" attachPath="$func:attach_path"
> expression="$func:iterate_exp">
> > + <target>
> > + <sequence key="{$func:sequence_ref}"/>
> > + </target>
> > + </iterate>
> > + <property name="Endpoint_2" expression="get-property('To')" />
> > + </sequence>
> > +</template>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,36 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Callout Block function template -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > + <sequence name="main">
> > + <call-template target="synapse.lang.eip.callout_block">
> > + <with-param name="action" value="urn:getQuote"/>
> > + <with-param name="service_URL" value="
> http://localhost:9000/services/SimpleStockQuoteService"/>
> > + <with-param xmlns:s11="
> http://schemas.xmlsoap.org/soap/envelope/" xmlns:s12="
> http://www.w3.org/2003/05/soap-envelope" name="source_xpath"
> value="{{s11:Body/child::*[fn:position()=1] |
> s12:Body/child::*[fn:position()=1]}}"/>
> > + <with-param xmlns:s11="
> http://schemas.xmlsoap.org/soap/envelope/" xmlns:s12="
> http://www.w3.org/2003/05/soap-envelope" name="target_xpath"
> value="{{s11:Body/child::*[fn:position()=1] |
> s12:Body/child::*[fn:position()=1]}}"/>
> > + </call-template>
> > + <property name="RESPONSE" value="true"/>
> > + <header name="To" action="remove"/>
> > + <send/>
> > + <drop/>
> > +</sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,57 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Splitter & Aggregator eip function
> template -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > + <proxy name="StockQuoteProxy" transports="https http"
> startOnLoad="true" trace="disable">
> > + <target>
> > + <inSequence>
> > + <log level="custom">
> > + <property name="text" value="splitterAggrigator"/>
> > + </log>
> > + <call-template target="synapse.lang.eip.splitter">
> > + <with-param xmlns:m0="http://services.samples"
> name="iterate_exp" value="{{//m0:getQuote/m0:request}}"/>
> > + <with-param xmlns:m0="http://services.samples"
> name="attach_path" value="{{//m0:getQuote}}"/>
> > + <with-param name="attach_path_enabled" value="true"/>
> > + <with-param name="endpoint_uri" value="
> http://localhost:9000/services/SimpleStockQuoteService"/>
> > + </call-template>
> > + </inSequence>
> > + <outSequence>
> > + <call-template target="synapse.lang.eip.aggregator">
> > + <with-param name="sequence_ref" value="enr"/>
> > + <with-param xmlns:m0="http://services.samples"
> name="aggregator_exp" value="{{//m0:return}}"/>
> > + <with-param name="oncomplete_seq_enabled" value="true"/>
> > + </call-template>
> > + </outSequence>
> > + </target>
> > + </proxy>
> > +<sequence xmlns="http://ws.apache.org/ns/synapse" name="enr">
> > + <log level="custom">
> > + <property name="text" value="seqhit"/>
> > + </log>
> > + <enrich>
> > + <source xmlns:m1="http://services.samples/xsd" xmlns:m0="
> http://services.samples" clone="true"
> > +
> xpath="//m0:return[not(preceding-sibling::m0:return/m1:last <= m1:last)
> and not(following-sibling::m0:return/m1:last < m1:last)]"/>
> > + <target type="body"/>
> > + </enrich>
> > + <send/>
> > +</sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,46 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Splitter-Agrregator eip function templates
> -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > + <sequence name="main">
> > + <call-template target="synapse.lang.eip.splitter_aggregator">
> > + <with-param name="attach_path_enabled" value="true"/>
> > + <with-param name="endpoint_uri" value="
> http://localhost:9000/services/SimpleStockQuoteService"/>
> > + <with-param xmlns:m0="http://services.samples"
> name="iterate_exp" value="{{//m0:getQuote/m0:request}}"/>
> > + <with-param xmlns:m0="http://services.samples"
> name="attach_path" value="{{//m0:getQuote}}"/>
> > + <with-param name="sequence_ref" value="enr"/>
> > + <with-param xmlns:m0="http://services.samples"
> name="aggregator_exp" value="{{//m0:return}}"/>
> > + <with-param name="oncomplete_seq_enabled" value="true"/>
> > + </call-template>
> > +</sequence>
> > +<sequence xmlns="http://ws.apache.org/ns/synapse" name="enr">
> > + <log level="custom">
> > + <property name="text" value="seqhit"/>
> > + </log>
> > + <enrich>
> > + <source xmlns:m1="http://services.samples/xsd" xmlns:m0="
> http://services.samples" clone="true"
> > +
> xpath="//m0:return[not(preceding-sibling::m0:return/m1:last <= m1:last)
> and not(following-sibling::m0:return/m1:last < m1:last)]"/>
> > + <target type="body"/>
> > + </enrich>
> > + <send/>
> > +</sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,42 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Scatter-Gather eip function template -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > +<sequence name="enr">
> > + <log level="custom">
> > + <property name="text" value="seqhit"/>
> > + </log>
> > + <enrich>
> > + <source xmlns:m1="http://services.samples/xsd" xmlns:m0="
> http://services.samples" clone="true"
> xpath="//m0:return[not(preceding-sibling::m0:return/m1:last <= m1:last)
> and not(following-sibling::m0:return/m1:last < m1:last)]"/>
> > + <target type="body"/>
> > + </enrich>
> > + <send/>
> > + </sequence>
> > + <sequence name="main">
> > + <call-template target="synapse.lang.eip.scatter_gather">
> > + <with-param name="sequence_ref" value="enr"/>
> > + <with-param xmlns:m0="http://services.samples"
> name="aggregator_exp" value="{{//m0:return}}"/>
> > + <with-param name="oncomplete_seq_enabled" value="true"/>
> > + <with-param name="recipient_list" value="
> http://localhost:9001/services/SimpleStockQuoteService,http://localhost:9002/services/SimpleStockQuoteService,http://localhost:9003/services/SimpleStockQuoteService
> "/>
> > + </call-template>
> > + </sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,32 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Wire Tap eip function template -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > + <sequence name="main">
> > +<property name="OUT_ONLY" value="true"/>
> > + <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
> > + <call-template target="synapse.lang.eip.wire_tap">
> > +<with-param name="wiretap_uri" value="
> http://localhost:9000/services/SimpleStockQuoteService"/>
> > + <with-param name="destination_uri" value="
> http://localhost:9001/services/SimpleStockQuoteService"/>
> > + </call-template>
> > + </sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,66 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Content Based Router eip function template
> -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > +<proxy name="StockQuoteProxy" transports="https http"
> startOnLoad="true" trace="disable">
> > + <target>
> > + <inSequence>
> > + <call-template
> target="synapse.lang.eip.content_based_router">
> > +<with-param name="routing_exp"
> value="{{//m0:getQuote/m0:request/m0:symbol}}" xmlns:m0="
> http://services.samples"/>
> > +<with-param name="match_content"
> value="IBM:cnd1_seq,MSFT:cnd2_seq;cnd3_seq"/>
> > + </call-template>
> > +</inSequence>
> > +<outSequence>
> > +<send/>
> > + </outSequence>
> > + </target>
> > + </proxy>
> > +<sequence name="send_seq">
> > + <log level="custom">
> > + <property name="DEBUG" value="Condition Satisfied"/>
> > + </log>
> > + <send>
> > + <endpoint name="simple">
> > + <address uri="
> http://localhost:9000/services/SimpleStockQuoteService"/>
> > + </endpoint>
> > + </send>
> > + </sequence>
> > +
> > + <sequence name="cnd1_seq">
> > + <log level="custom">
> > + <property name="MSG_FLOW" value="Condition (I) Satisfied"/>
> > + </log>
> > + <sequence key="send_seq"/>
> > + </sequence>
> > + <sequence name="cnd2_seq">
> > + <log level="custom">
> > + <property name="MSG_FLOW" value="Condition (II) Satisfied"/>
> > + </log>
> > + <sequence key="send_seq"/>
> > + </sequence>
> > + <sequence name="cnd3_seq">
> > + <log level="custom">
> > + <property name="MSG_FLOW" value="Condition (III)
> Satisfied"/>
> > + </log>
> > + <sequence key="send_seq"/>
> > + </sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,65 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Dynamic Router eip function template -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > + <proxy name="StockQuoteProxy" transports="https http"
> startOnLoad="true" trace="disable">
> > + <target>
> > + <inSequence>
> > + <call-template target="synapse.lang.eip.dynamic_router">
> > +<with-param name="conditions"
> value="header=foo:bar.*#url=/services/StockQuoteProxy.*;seq=cnd1_seq,header=custom_header1:bar.*@header=custom_header1:foo.*;seq=cnd2_seq,header=custom_header2:foo.*;seq=cnd3_seq"/>
> > + </call-template>
> > + </inSequence>
> > + <outSequence>
> > + <send/>
> > + </outSequence>
> > + </target>
> > + </proxy>
> > +<sequence name="send_seq">
> > + <log level="custom">
> > + <property name="DEBUG" value="Condition Satisfied"/>
> > + </log>
> > + <send>
> > + <endpoint name="simple">
> > + <address uri="
> http://localhost:9000/services/SimpleStockQuoteService"/>
> > + </endpoint>
> > + </send>
> > + </sequence>
> > +
> > + <sequence name="cnd1_seq">
> > + <log level="custom">
> > + <property name="MSG_FLOW" value="Condition (I) Satisfied"/>
> > + </log>
> > + <sequence key="send_seq"/>
> > + </sequence>
> > + <sequence name="cnd2_seq">
> > + <log level="custom">
> > + <property name="MSG_FLOW" value="Condition (II) Satisfied"/>
> > + </log>
> > + <sequence key="send_seq"/>
> > + </sequence>
> > + <sequence name="cnd3_seq">
> > + <log level="custom">
> > + <property name="MSG_FLOW" value="Condition (III)
> Satisfied"/>
> > + </log>
> > + <sequence key="send_seq"/>
> > + </sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,32 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Recipient List eip function template -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > + <sequence name="main">
> > + <property name="OUT_ONLY" value="true"/>
> > + <property name="FORCE_SC_ACCEPTED" value="true"
> scope="axis2"/>
> > + <call-template target="synapse.lang.eip.recipient_list">
> > + <with-param name="recipient_list" value="
> http://localhost:9000/services/SimpleStockQuoteService,http://localhost:9001/services/SimpleStockQuoteService
> "/>
> > + </call-template>
> > + <drop/>
> > +</sequence>
> > +</definitions>
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
> For additional commands, e-mail: dev-help@synapse.apache.org
>
>
Re: svn commit: r1373302 - in /synapse/trunk/java: modules/core/
modules/core/src/main/java/org/apache/synapse/config/xml/ modules/core/src/main/java/org/apache/synapse/libraries/util/
modules/core/src/main/java/org/apache/synapse/mediators/ modules/
Posted by Udayanga Wickramasinghe <ud...@wso2.com>.
On Thu, Aug 16, 2012 at 12:04 AM, Andreas Veithen <andreas.veithen@gmail.com
> wrote:
> Please note that new samples are pretty much useless if there is no
> corresponding documentation...
>
sorry for my delay in response.. At the time we were reviewing sample
documentation for this.. i will commit the patch soon
Andreas
>
> On Wed, Aug 15, 2012 at 12:03 PM, <us...@apache.org> wrote:
> > Author: uswick
> > Date: Wed Aug 15 10:03:18 2012
> > New Revision: 1373302
> >
> > URL: http://svn.apache.org/viewvc?rev=1373302&view=rev
> > Log:
> > commiting patches SYNAPSE-898,SYNAPSE-884, SYNAPSE-897 SYNAPSE-899,
> SYNAPSE-901
> >
> > Added:
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
> >
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/
> >
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
> >
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
> >
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> >
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/
> >
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
> >
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/
> >
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
> >
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml
> > synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml
> > Modified:
> > synapse/trunk/java/modules/core/pom.xml
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
> >
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
> >
> > Modified: synapse/trunk/java/modules/core/pom.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/pom.xml?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > --- synapse/trunk/java/modules/core/pom.xml (original)
> > +++ synapse/trunk/java/modules/core/pom.xml Wed Aug 15 10:03:18 2012
> > @@ -96,6 +96,25 @@
> > </descriptors>
> > </configuration>
> > </execution>
> > + <execution>
> > + <id>eip-library-assembly</id>
> > + <phase>generate-test-resources</phase>
> > + <goals>
> > + <goal>attached</goal>
> > + </goals>
> > + <configuration>
> > + <finalName>synapse-eip-lib</finalName>
> > + <filters>
> > + <filter>
> > +
> ${basedir}/src/test/resources/synapse-libraries/assembly/filter.properties
> > + </filter>
> > + </filters>
> > + <descriptors>
> > +
> <descriptor>src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> > + </descriptor>
> > + </descriptors>
> > + </configuration>
> > + </execution>
> > </executions>
> > </plugin>
> >
> > @@ -115,6 +134,7 @@
> > <mkdir
> dir="target/test_repos/client/modules"/>
> > <mkdir
> dir="target/test_repos/synapse/synapse-libraries"/>
> > <copy
> file="target/synapse-test-lib.zip"
> todir="target/test_repos/synapse/synapse-libraries"/>
> > + <copy file="target/synapse-eip-lib.zip"
> todir="target/test_repos/synapse/synapse-libraries"/>
> > </tasks>
> > </configuration>
> > <goals>
> > @@ -127,6 +147,7 @@
> > <configuration>
> > <tasks>
> > <delete
> file="target/synapse-test-lib.zip"/>
> > + <delete
> file="target/synapse-eip-lib.zip"/>
> > </tasks>
> > </configuration>
> > <goals>
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CloneMediatorFactory.java
> Wed Aug 15 10:03:18 2012
> > @@ -73,7 +73,7 @@ public class CloneMediatorFactory extend
> > */
> > public Mediator createSpecificMediator(OMElement elem, Properties
> properties) {
> >
> > - boolean asynchronousExe = true;
> > + boolean asynchronousExe = false;
> >
> > CloneMediator mediator = new CloneMediator();
> > processAuditStatus(mediator, elem);
> > @@ -94,8 +94,6 @@ public class CloneMediatorFactory extend
> > if (synchronousExeAttr != null &&
> synchronousExeAttr.getAttributeValue().equals("true")) {
> > asynchronousExe = false;
> > }
> > -
> > - mediator.setSequential(!asynchronousExe);
> >
> > Iterator targetElements = elem.getChildrenWithName(TARGET_Q);
> > while (targetElements.hasNext()) {
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorFactory.java
> Wed Aug 15 10:03:18 2012
> > @@ -128,7 +128,7 @@ public class IterateMediatorFactory exte
> > attachPathValue, e);
> > }
> >
> > - boolean asynchronous = true;
> > + boolean asynchronous = false;
> > OMAttribute asynchronousAttr =
> elem.getAttribute(ATT_SEQUENCIAL);
> > if (asynchronousAttr != null &&
> asynchronousAttr.getAttributeValue().equals("true")) {
> > asynchronous = false;
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/IterateMediatorSerializer.java
> Wed Aug 15 10:03:18 2012
> > @@ -85,8 +85,8 @@ public class IterateMediatorSerializer e
> > handleException("Missing expression of the IterateMediator
> which is required.");
> > }
> >
> > - if (itrMed.getTarget() != null &&
> !itrMed.getTarget().isAsynchronous()) {
> > - itrElem.addAttribute("sequential", "true", nullNS);
> > + if (itrMed.getTarget() != null &&
> itrMed.getTarget().isAsynchronous()) {
> > + itrElem.addAttribute("sequential", "false", nullNS);
> > }
> >
> >
> itrElem.addChild(TargetSerializer.serializeTarget(itrMed.getTarget()));
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorFactory.java
> Wed Aug 15 10:03:18 2012
> > @@ -22,6 +22,7 @@ import org.apache.axiom.om.OMAttribute;
> > import org.apache.axiom.om.OMElement;
> > import org.apache.synapse.Mediator;
> > import org.apache.synapse.SynapseException;
> > +import org.apache.synapse.mediators.TemplateParameter;
> > import org.apache.synapse.mediators.template.TemplateMediator;
> >
> > import javax.xml.namespace.QName;
> > @@ -32,8 +33,8 @@ import java.util.Properties;
> > /**
> > * Factory class for Template configuration as follows
> > * <template name="simple_func">
> > - <parameter name="p1"/>
> > - <parameter name="p2"/>*
> > + <parameter name="p1" [default="value|expression"]
> [optional=(true|false)]/>
> > + <parameter name="p2" [default="value|expression"]
> [optional=(true|false)]/>*
> > <mediator/>+
> > </template>
> > */
> > @@ -43,20 +44,14 @@ public class TemplateMediatorFactory ext
> > private static final QName TEMPLATE_BODY_Q
> > = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE,
> "sequence");
> >
> > - /**
> > - * Element QName Definitions
> > - */
> > - public static final QName PARAMETER_Q = new QName(
> > - XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
> > -
> > -
> > protected Mediator createSpecificMediator(OMElement elem,
> Properties properties) {
> > TemplateMediator templateTemplateMediator = new
> TemplateMediator();
> > OMAttribute nameAttr = elem.getAttribute(ATT_NAME);
> > if (nameAttr != null) {
> >
> templateTemplateMediator.setName(nameAttr.getAttributeValue());
> > processAuditStatus(templateTemplateMediator, elem);
> > - initParameters(elem, templateTemplateMediator);
> > + //set template parameters
> > +
> templateTemplateMediator.setParameters(TemplateParameterFactory.getTemplateParameters(elem));
> > OMElement templateBodyElem =
> elem.getFirstChildWithName(TEMPLATE_BODY_Q);
> > addChildren(templateBodyElem, templateTemplateMediator,
> properties);
> > } else {
> > @@ -67,22 +62,6 @@ public class TemplateMediatorFactory ext
> > return templateTemplateMediator;
> > }
> >
> > - private void initParameters(OMElement templateElem,
> TemplateMediator templateMediator) {
> > - Iterator subElements = templateElem.getChildElements();
> > - Collection<String> paramNames = new ArrayList<String>();
> > - while (subElements.hasNext()) {
> > - OMElement child = (OMElement) subElements.next();
> > - if (child.getQName().equals(PARAMETER_Q)) {
> > - OMAttribute paramNameAttr =
> child.getAttribute(ATT_NAME);
> > - if (paramNameAttr != null) {
> > - paramNames.add(paramNameAttr.getAttributeValue());
> > - }
> > -// child.detach();
> > - }
> > - }
> > - templateMediator.setParameters(paramNames);
> > - }
> > -
> > public QName getTagQName() {
> > return TEMPLATE_Q;
> > }
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateMediatorSerializer.java
> Wed Aug 15 10:03:18 2012
> > @@ -20,17 +20,17 @@ package org.apache.synapse.config.xml;
> >
> > import org.apache.axiom.om.OMElement;
> > import org.apache.synapse.Mediator;
> > +import org.apache.synapse.mediators.TemplateParameter;
> > import org.apache.synapse.mediators.template.TemplateMediator;
> >
> > import java.util.Collection;
> > -import java.util.Iterator;
> > import java.util.List;
> >
> > /**
> > * Serializer class for Template to serialize into a configuration as
> follows
> > * <template name="simple_func">
> > - <parameter name="p1"/>
> > - <parameter name="p2"/>*
> > + <parameter name="p1" [default="value|expression"]
> [optional=(true|false)]/>
> > + <parameter name="p2" [default="value|expression"]
> [optional=(true|false)]/>*
> > <mediator/>+
> > </template>
> > */
> > @@ -47,6 +47,7 @@ public class TemplateMediatorSerializer
> > if (mediator.getName() != null) {
> > templateElem.addAttribute(fac.createOMAttribute(
> > "name", nullNS, mediator.getName()));
> > + //serialize parameters
> > serializeParams(templateElem,mediator);
> > serializeBody(templateElem, mediator.getList());
> > saveTracingState(templateElem, mediator);
> > @@ -55,14 +56,16 @@ public class TemplateMediatorSerializer
> > return templateElem;
> > }
> >
> > + /**
> > + * Serialize parameters for the template mediator specified
> > + *
> > + * @param templateElem the OMElement that specifies the template
> configuration
> > + * @param mediator the TemplateMediator
> > + */
> > private void serializeParams(OMElement templateElem,
> TemplateMediator mediator) {
> > - Collection<String> params = mediator.getParameters();
> > - for (String param : params) {
> > - if (param != null && !"".equals(param)) {
> > - OMElement paramEl = fac.createOMElement("parameter",
> synNS);
> > - paramEl.addAttribute(fac.createOMAttribute("name",
> nullNS, param));
> > - templateElem.addChild(paramEl);
> > - }
> > + Collection<TemplateParameter> params = mediator.getParameters();
> > + if (params != null && params.size() > 0) {
> > +
> TemplateParameterSerializer.serializeTemplateParameters(templateElem,mediator.getParameters());
> > }
> > }
> >
> >
> > Added:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
> (added)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterFactory.java
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,98 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you 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.config.xml;
> > +
> > +import org.apache.axiom.om.OMAttribute;
> > +import org.apache.axiom.om.OMElement;
> > +import org.apache.commons.logging.Log;
> > +import org.apache.commons.logging.LogFactory;
> > +import org.apache.synapse.SynapseException;
> > +import org.apache.synapse.mediators.TemplateParameter;
> > +import org.apache.synapse.mediators.Value;
> > +
> > +import java.util.ArrayList;
> > +import java.util.Iterator;
> > +import java.util.List;
> > +
> > +/**
> > + * A utility class capable of creating instances of TemplateParameter
> objects by reading
> > + * through a given XML configuration
> > + *
> > + * <pre>
> > + * <element>
> > + * <parameter name="p1" [default="value|expression"]
> [optional=(true|false)]/>*
> > + * </element>
> > + * </pre>
> > + */
> > +public class TemplateParameterFactory {
> > + private static final Log log =
> LogFactory.getLog(TemplateParameterFactory.class);
> > +
> > + /**
> > + * Creates a list of parameters in a given template
> > + *
> > + * @param elem the OMElement that specifies the template
> configuration
> > + * @return the list of TemplateParameter instances created
> > + */
> > + public static List<TemplateParameter>
> getTemplateParameters(OMElement elem) {
> > +
> > + List<TemplateParameter> parameterList = new
> ArrayList<TemplateParameter>();
> > +
> > + Iterator iter =
> elem.getChildrenWithName(TemplateParameter.PARAMETER_Q);
> > +
> > + while (iter.hasNext()) {
> > +
> > + OMElement paramEle = (OMElement) iter.next();
> > + OMAttribute attName =
> paramEle.getAttribute(TemplateParameter.ATT_NAME_Q);
> > + OMAttribute attDefault =
> paramEle.getAttribute(TemplateParameter.ATT_DEFAULT_Q);
> > + OMAttribute attOptional =
> paramEle.getAttribute(TemplateParameter.ATT_OPTIONAL_Q);
> > +
> > + TemplateParameter param = new TemplateParameter();
> > +
> > + if (attName == null || attName.getAttributeValue() == null
> ||
> > + attName.getAttributeValue().trim().length() == 0) {
> > + String msg = "Parameter name is a required attribute
> for a Template Parameter";
> > + log.error(msg);
> > + throw new SynapseException(msg);
> > + } else {
> > + param.setName(attName.getAttributeValue());
> > + }
> > +
> > +
> > + if (attDefault == null || attDefault.getAttributeValue() ==
> null ||
> > + attDefault.getAttributeValue().trim().length() ==
> 0) {
> > + String msg = "Default value is not specified for " +
> param.getName() + " Parameter";
> > + log.warn(msg);
> > + } else {
> > + Value paramValue = new
> ValueFactory().createValue("default", paramEle);
> > + param.setDefaultValue(paramValue);
> > + }
> > +
> > + if (attOptional == null || attOptional.getAttributeValue()
> == null ||
> > + attOptional.getAttributeValue().trim().length() ==
> 0) {
> > + } else {
> > +
> param.setOptional(Boolean.valueOf(attOptional.getAttributeValue()));
> > + }
> > +
> > + parameterList.add(param);
> > + }
> > +
> > + return parameterList;
> > + }
> > +
> > +}
> >
> > Added:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
> (added)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/TemplateParameterSerializer.java
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,111 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you 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.config.xml;
> > +
> > +import org.apache.axiom.om.OMAbstractFactory;
> > +import org.apache.axiom.om.OMElement;
> > +import org.apache.axiom.om.OMFactory;
> > +import org.apache.axiom.om.OMNamespace;
> > +import org.apache.commons.logging.Log;
> > +import org.apache.commons.logging.LogFactory;
> > +import org.apache.synapse.SynapseConstants;
> > +import org.apache.synapse.SynapseException;
> > +import org.apache.synapse.mediators.TemplateParameter;
> > +
> > +import javax.xml.namespace.QName;
> > +import java.util.Collection;
> > +
> > +/**
> > + * A utility class for serializing instances of TemplateParameter
> objects by reading
> > + * through a given XML configuration
> > + *
> > + * <pre>
> > + * <element>
> > + * <parameter name="p1" [default="value|expression"]
> [optional=(true|false)]/>*
> > + * </element>
> > + * </pre>
> > + */
> > +public class TemplateParameterSerializer {
> > + private static final Log log =
> LogFactory.getLog(TemplateParameterSerializer.class);
> > +
> > + protected static final OMFactory fac =
> OMAbstractFactory.getOMFactory();
> > + protected static final OMNamespace synNS =
> SynapseConstants.SYNAPSE_OMNAMESPACE;
> > + protected static final OMNamespace nullNS
> > + = fac.createOMNamespace(XMLConfigConstants.NULL_NAMESPACE,
> "");
> > +
> > + protected static final QName PARAMETER_Q
> > + = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
> > +
> > + /**
> > + * Serialize all the parameters to the given parent element. For
> each and every
> > + * parameter there will be a separate parameter element created
> inside the parent element.
> > + *
> > + * @param parent element to which parameter elements should be added
> > + * @param params the list of TemplateParameter objects
> > + */
> > + public static void serializeTemplateParameters(OMElement parent,
> > +
> Collection<TemplateParameter> params) {
> > + serializeTemplateParameters(parent, params, PARAMETER_Q);
> > + }
> > +
> > + /**
> > + * Serialize all the parameters to the given parent element. For
> each and every
> > + * parameter there will be a separate parameter element created
> inside the parent element.
> > + *
> > + * @param parent element to which parameter elements should be added
> > + * @param params the list of TemplateParameter objects
> > + * @param childElementName of the parameter element to be created
> > + */
> > + public static void serializeTemplateParameters(OMElement parent,
> > +
> Collection<TemplateParameter> params,
> > + QName childElementName) {
> > + for (TemplateParameter tp : params) {
> > + serializeTemplateParameter(parent,tp, childElementName);
> > + }
> > + }
> > +
> > + /**
> > + * Serialize the parameter to the given parent element. There will
> be a element created with
> > + * given configuration inside the parent element.
> > + *
> > + * @param parent element to which parameter elements should be added
> > + * @param tp a property to be serialized
> > + * @param childElementName of the parameter element to be created
> > + */
> > + public static void serializeTemplateParameter(OMElement parent,
> > + TemplateParameter tp,
> > + QName childElementName) {
> > + OMElement param = fac.createOMElement(childElementName, parent);
> > + if (tp.getName() != null) {
> > + param.addAttribute(fac.createOMAttribute("name", nullNS,
> tp.getName()));
> > + } else {
> > + String msg = "Template parameter name missing";
> > + log.error(msg);
> > + throw new SynapseException(msg);
> > + }
> > +
> > + if (tp.getDefaultValue() != null) {
> > + new ValueSerializer().serializeValue(tp.getDefaultValue(),
> "default", param);
> > +
> > + if (tp.isOptional()) {
> > + param.addAttribute(fac.createOMAttribute("optional",
> nullNS, "true"));
> > + }
> > + }
> > +}
> > +}
> > \ No newline at end of file
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
> Wed Aug 15 10:03:18 2012
> > @@ -56,6 +56,8 @@ public class LibDeployerUtils {
> >
> >
> > public static Library createSynapseLibrary(String libPath) {
> > + createDir(APP_UNZIP_DIR);
> > +
> > String libFilePath = LibDeployerUtils.formatPath(libPath);
> > //extract
> > String extractPath =
> LibDeployerUtils.extractSynapseLib(libFilePath);
> >
> > Added:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
> (added)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/TemplateParameter.java
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,71 @@
> > +/*
> > + * Licensed to the Apache Software Foundation (ASF) under one
> > + * or more contributor license agreements. See the NOTICE file
> > + * distributed with this work for additional information
> > + * regarding copyright ownership. The ASF licenses this file
> > + * to you 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;
> > +
> > +import javax.xml.namespace.QName;
> > +
> > +import org.apache.synapse.config.xml.XMLConfigConstants;
> > +
> > +/**
> > + * A template parameter is a variable which is used when creating
> templates and contains following configuration
> > + * parameter name="p1" [default="value|expression"]
> [optional=(true|false)]
> > + *
> > + */
> > +public class TemplateParameter {
> > + public static final QName PARAMETER_Q = new
> QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "parameter");
> > + public static final QName ATT_NAME_Q = new
> QName(XMLConfigConstants.NULL_NAMESPACE, "name");
> > + public static final QName ATT_DEFAULT_Q = new
> QName(XMLConfigConstants.NULL_NAMESPACE, "default");
> > + public static final QName ATT_OPTIONAL_Q = new
> QName(XMLConfigConstants.NULL_NAMESPACE, "optional");
> > +
> > +
> > + private String name;
> > + private Value defaultValue;
> > + private boolean isOptional;
> > +
> > + public TemplateParameter() {
> > + this.name = null;
> > + this.defaultValue = null;
> > + this.isOptional = false;
> > + }
> > +
> > + public String getName() {
> > + return name;
> > + }
> > +
> > + public void setName(String name) {
> > + this.name = name;
> > + }
> > +
> > + public Value getDefaultValue() {
> > + return defaultValue;
> > + }
> > +
> > + public void setDefaultValue(Value defaultValue) {
> > + this.defaultValue = defaultValue;
> > + }
> > +
> > + public boolean isOptional() {
> > + return isOptional;
> > + }
> > +
> > + public void setOptional(boolean optional) {
> > + isOptional = optional;
> > + }
> > +
> > +}
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
> Wed Aug 15 10:03:18 2012
> > @@ -18,7 +18,10 @@
> > */
> > package org.apache.synapse.mediators.template;
> >
> > +import org.apache.commons.logging.Log;
> > +import org.apache.commons.logging.LogFactory;
> > import org.apache.synapse.MessageContext;
> > +import org.apache.synapse.mediators.TemplateParameter;
> > import org.apache.synapse.mediators.Value;
> > import org.apache.synapse.mediators.eip.EIPUtils;
> > import org.jaxen.JaxenException;
> > @@ -30,6 +33,7 @@ import java.util.*;
> > * a context will be populated with function parameters.
> > */
> > public class TemplateContext {
> > + private static final Log log =
> LogFactory.getLog(TemplateContext.class);
> > /**
> > * refers to the function-template name this context is binded to
> > */
> > @@ -37,31 +41,40 @@ public class TemplateContext {
> > /**
> > * refers to the parameter names of the function
> > */
> > - private Collection<String> parameters;
> > + private Collection<TemplateParameter> parameters;
> > /**
> > * contains a map for parameterNames to evaluated values
> > */
> > private Map mappedValues;
> >
> > - TemplateContext(String name, Collection<String> parameters) {
> > + TemplateContext(String name, Collection<TemplateParameter>
> parameters) {
> > this.fName = name;
> > this.parameters = parameters;
> > mappedValues = new HashMap();
> > }
> >
> > /**
> > - * evaluate raw parameters passed from an invoke medaiator and
> store them in this context
> > + * evaluate raw parameters passed from an invoke mediator and store
> them in this context
> > * @param synCtxt Synapse MessageContext
> > */
> > public void setupParams(MessageContext synCtxt) {
> > - Iterator<String> paramNames = parameters.iterator();
> > + Iterator<TemplateParameter> paramNames = parameters.iterator();
> > while (paramNames.hasNext()) {
> > - String parameter = paramNames.next();
> > - String mapping = EIPUtils.getTemplatePropertyMapping(fName,
> parameter);
> > + TemplateParameter parameter = paramNames.next();
> > + String mapping = EIPUtils.getTemplatePropertyMapping(fName,
> parameter.getName());
> > Object propertyValue = synCtxt.getProperty(mapping);
> > - Object paramValue = getEvaluatedParamValue(synCtxt,
> parameter, (Value) propertyValue);
> > + //If property value is not provided assign default value
> > + if (propertyValue == null && parameter.getDefaultValue() !=
> null) {
> > + propertyValue = parameter.getDefaultValue();
> > + }
> > + //If this parameter is a required one give an error
> > + if (!parameter.isOptional() && propertyValue == null) {
> > + String msg = parameter.getName() + " is a required
> parameter for " + fName + " template";
> > + log.error(msg);
> > + }
> > + Object paramValue = getEvaluatedParamValue(synCtxt,
> parameter.getName(), (Value) propertyValue);
> > if (paramValue != null) {
> > - mappedValues.put(parameter, paramValue);
> > + mappedValues.put(parameter.getName(), paramValue);
> > //remove temp property from the context
> > removeProperty(synCtxt, mapping);
> > }
> >
> > Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java?rev=1373302&r1=1373301&r2=1373302&view=diff
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
> (original)
> > +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateMediator.java
> Wed Aug 15 10:03:18 2012
> > @@ -23,6 +23,7 @@ import org.apache.synapse.SynapseConstan
> > import org.apache.synapse.SynapseLog;
> > import org.apache.synapse.core.SynapseEnvironment;
> > import org.apache.synapse.mediators.AbstractListMediator;
> > +import org.apache.synapse.mediators.TemplateParameter;
> >
> > import javax.sound.midi.Sequence;
> > import java.util.Collection;
> > @@ -37,19 +38,19 @@ import java.util.Stack;
> > */
> > public class TemplateMediator extends AbstractListMediator {
> >
> > - private Collection<String> paramNames;
> > + private Collection<TemplateParameter> parameters;
> >
> > private String eipPatternName;
> > private String fileName;
> > /** flag to ensure that each and every sequence is initialized and
> destroyed atmost once */
> > private boolean initialized = false;
> >
> > - public void setParameters(Collection<String> paramNames) {
> > - this.paramNames = paramNames;
> > + public void setParameters(Collection<TemplateParameter> paramNames)
> {
> > + this.parameters = paramNames;
> > }
> >
> > - public Collection<String> getParameters() {
> > - return paramNames;
> > + public Collection<TemplateParameter> getParameters() {
> > + return parameters;
> > }
> >
> > public void setName(String name) {
> > @@ -64,7 +65,7 @@ public class TemplateMediator extends Ab
> > SynapseLog synLog = getLog(synCtx);
> >
> > if (synLog.isTraceOrDebugEnabled()) {
> > - synLog.traceOrDebug("Start : EIP Sequence " + "paramNames :
> " + paramNames);
> > + synLog.traceOrDebug("Start : EIP Sequence " + "paramNames :
> " + parameters);
> >
> > if (synLog.isTraceTraceEnabled()) {
> > synLog.traceTrace("Message : " + synCtx.getEnvelope());
> > @@ -86,7 +87,7 @@ public class TemplateMediator extends Ab
> > * @param synCtx Synapse Message context
> > */
> > private void pushFuncContextTo(MessageContext synCtx) {
> > - TemplateContext funcContext = new
> TemplateContext(eipPatternName, paramNames);
> > + TemplateContext funcContext = new
> TemplateContext(eipPatternName, parameters);
> > //process the raw parameters parsed in
> > funcContext.setupParams(synCtx);
> > //if a function stack has not already been created for this
> message flow create new one
> >
> > Added:
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
> (added)
> > +++
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/AbstractEipLibTestCase.java
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,26 @@
> > +package org.apache.synapse.libraries.eip;
> > +
> > +import junit.framework.TestCase;
> > +import org.apache.synapse.libraries.imports.SynapseImport;
> > +import org.apache.synapse.libraries.model.Library;
> > +import org.apache.synapse.libraries.util.LibDeployerUtils;
> > +import org.apache.synapse.mediators.eip.AbstractSplitMediatorTestCase;
> > +
> > +import java.io.File;
> > +import java.net.URISyntaxException;
> > +
> > +public abstract class AbstractEipLibTestCase extends TestCase {
> > + public String path = null;
> > +
> > + protected String getResourcePath() {
> > + try {
> > + if (path == null) {
> > + path = new
> File("./target/test_repos/synapse/synapse-libraries/synapse-eip-lib.zip").getAbsolutePath();
> > + }
> > + } catch (Exception e) {
> > + return null;
> > + }
> > + return path;
> > +
> > + }
> > +}
> >
> > Added:
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
> (added)
> > +++
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/libraries/eip/EipLibTest.java
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,87 @@
> > +package org.apache.synapse.libraries.eip;
> > +
> > +import org.apache.axiom.om.OMAbstractFactory;
> > +import org.apache.axiom.soap.SOAPEnvelope;
> > +import org.apache.axis2.context.ConfigurationContext;
> > +import org.apache.axis2.engine.AxisConfiguration;
> > +import org.apache.synapse.MessageContext;
> > +import org.apache.synapse.config.SynapseConfigUtils;
> > +import org.apache.synapse.config.SynapseConfiguration;
> > +import org.apache.synapse.config.xml.InvokeMediatorFactory;
> > +import org.apache.synapse.config.xml.MediatorFactory;
> > +import org.apache.synapse.core.axis2.Axis2MessageContext;
> > +import org.apache.synapse.core.axis2.Axis2SynapseEnvironment;
> > +import org.apache.synapse.libraries.imports.SynapseImport;
> > +import org.apache.synapse.libraries.model.Library;
> > +import org.apache.synapse.libraries.util.LibDeployerUtils;
> > +import org.apache.synapse.mediators.base.SequenceMediator;
> > +import org.apache.synapse.mediators.template.InvokeMediator;
> > +
> > +import java.util.Properties;
> > +
> > +/**
> > + * Tests for synapse template invoke
> > + */
> > +public class EipLibTest extends AbstractEipLibTestCase {
> > + private MessageContext synCtx;
> > +
> > +
> > + protected void setUp() throws Exception {
> > + super.setUp();
> > + Library library =
> LibDeployerUtils.createSynapseLibrary(getResourcePath());
> > + SynapseImport validSynImport = new SynapseImport();
> > + validSynImport.setLibName("EipLibrary");
> > + validSynImport.setLibPackage("synapse.lang.eip");
> > + if (validSynImport != null) {
> > + LibDeployerUtils.loadLibArtifacts(validSynImport, library);
> > + }
> > + assertEquals("EipLibrary", library.getQName().getLocalPart());
> > + assertEquals("synapse.lang.eip", library.getPackage());
> > + assertEquals("eip synapse library", library.getDescription());
> > + assertNotNull(library.getArtifact("synapse.lang.eip.splitter"));
> > + //setting up synapse context & configuration
> > + SynapseConfiguration synConf = new SynapseConfiguration();
> > + synConf.addSynapseLibrary(library.toString(), library);
> > + synConf.addSequence("main", new SequenceMediator());
> > + synConf.addSequence("fault", new SequenceMediator());
> > + AxisConfiguration config = new AxisConfiguration();
> > + synCtx = new Axis2MessageContext(new
> org.apache.axis2.context.MessageContext(),
> > + synConf, new Axis2SynapseEnvironment(new
> ConfigurationContext(config), synConf));
> > +
> //((Axis2MessageContext)synCtx).getAxis2MessageContext().setConfigurationContext(new
> ConfigurationContext(config));
> > + SOAPEnvelope envelope =
> OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
> > +
> envelope.getBody().addChild(SynapseConfigUtils.stringToOM("<original><itr><a>IBM</a></itr><itr><a>DELL</a></itr></original>"));
> > + synCtx.setEnvelope(envelope);
> > + SequenceMediator seqMed = new SequenceMediator();
> > + synCtx.getConfiguration().addSequence("seqRef", seqMed);
> > +
> > + }
> > +
> > +
> > + public void testValidEipLibInvoke() throws Exception {
> > +
> > + //Invoke Template
> > + MediatorFactory fac = new InvokeMediatorFactory();
> > +
> > + InvokeMediator iterate = (InvokeMediator)
> fac.createMediator(SynapseConfigUtils.stringToOM("<call-template xmlns=\"
> http://ws.apache.org/ns/synapse\" " +
> > + "target=\"synapse.lang.eip.splitter\">" +
> > + "<with-param xmlns=\"http://ws.apache.org/ns/synapse\"
> name=\"iterate_exp\" value=\"{{//original/itr}}\"/>" +
> > + "<with-param xmlns=\"http://ws.apache.org/ns/synapse\"
> name=\"endpoint_uri\" value=\"
> http://localhost:9000/services/IterateTestService\"/>" +
> > + "<with-param xmlns=\"http://ws.apache.org/ns/synapse\"
> name=\"sequence_ref\" value=\"seqRef\"/>" +
> > + "</call-template>"), new Properties());
> > +
> > + boolean returnValue = iterate.mediate(synCtx);
> > +
> > + //Test Template Parameters
> > + assertEquals("<itr><a>IBM</a></itr><itr><a>DELL</a></itr>",
> synCtx.getProperty("ItrExp"));
> > + assertEquals("http://localhost:9000/services/IterateTestService",
> synCtx.getProperty("EndPUri"));
> > +
> assertEquals("<original><itr><a>IBM</a></itr><itr><a>DELL</a></itr></original>",
> synCtx.getProperty("AttachPath"));
> > + assertEquals("seqRef", synCtx.getProperty("SRef"));
> > +
> > + //Test Template invoke & mediation
> > + assertTrue(returnValue);
> > + assertEquals("", synCtx.getProperty("Endpoint_1"));
> > + assertEquals("http://localhost:9000/services/IterateTestService",
> synCtx.getProperty("Endpoint_2"));
> > + }
> > +
> > +
> > +}
> >
> > Added:
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> (added)
> > +++
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/assembly/assemble-eip-lib.xml
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,23 @@
> > +<?xml version="1.0" encoding="UTF-8"?>
> > +<assembly>
> > + <formats>
> > + <format>zip</format>
> > + </formats>
> > + <includeBaseDirectory>false</includeBaseDirectory>
> > + <fileSets>
> > + <fileSet>
> > +
> <directory>src/test/resources/synapse-libraries/synapse-eip-lib</directory>
> > + <outputDirectory></outputDirectory>
> > + </fileSet>
> > + <fileSet>
> > + <directory>target/classes</directory>
> > + <outputDirectory></outputDirectory>
> > + <excludes>
> > + <exclude>**/metrics_module.xml</exclude>
> > + <exclude>**/META-INF/*</exclude>
> > + </excludes>
> > + </fileSet>
> > + </fileSets>
> > +
> > +
> > +</assembly>
> >
> > Added:
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
> (added)
> > +++
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/artifacts.xml
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,7 @@
> > +<?xml version="1.0" encoding="UTF-8"?>
> > +<artifacts>
> > + <artifact name="EipLibrary" package="synapse.lang.eip" >
> > + <dependency artifact="systemManagement" />
> > + <description>eip synapse library</description>
> > + </artifact>
> > +</artifacts>
> >
> > Added:
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
> (added)
> > +++
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/artifact.xml
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,11 @@
> > +<?xml version="1.0" encoding="UTF-8"?>
> > +<artifact name="systemManagement" type="synapse/template">
> > +
> > + <subArtifacts>
> > + <artifact name="splitter">
> > + <file>template_splitter.xml</file>
> > + <description>Splitter library function</description>
> > + </artifact>
> > + </subArtifacts>
> > +
> > +</artifact>
> > \ No newline at end of file
> >
> > Added:
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > ---
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
> (added)
> > +++
> synapse/trunk/java/modules/core/src/test/resources/synapse-libraries/synapse-eip-lib/eip_systemManagement/template_splitter.xml
> Wed Aug 15 10:03:18 2012
> > @@ -0,0 +1,20 @@
> > +<template xmlns="http://ws.apache.org/ns/synapse" name="splitter">
> > + <parameter name="iterate_exp"/>
> > + <parameter name="endpoint_uri"/>
> > + <parameter name="attach_path" default="{{//original}}"
> optional="true"/>
> > + <parameter name="sequence_ref"/>
> > + <sequence>
> > + <property name="ItrExp" expression="$func:iterate_exp" />
> > + <property name="EndPUri" expression="$func:endpoint_uri" />
> > + <property name="AttachPath" expression="$func:attach_path" />
> > + <property name="SRef" expression="$func:sequence_ref" />
> > + <property name="Endpoint_1" expression="get-property('To')" />
> > + <header name="To" expression="$func:endpoint_uri"/>
> > + <iterate xmlns:ns="http://org.apache.synapse/xsd"
> continueParent="true" preservePayload="true" attachPath="$func:attach_path"
> expression="$func:iterate_exp">
> > + <target>
> > + <sequence key="{$func:sequence_ref}"/>
> > + </target>
> > + </iterate>
> > + <property name="Endpoint_2" expression="get-property('To')" />
> > + </sequence>
> > +</template>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_850.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,36 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Callout Block function template -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > + <sequence name="main">
> > + <call-template target="synapse.lang.eip.callout_block">
> > + <with-param name="action" value="urn:getQuote"/>
> > + <with-param name="service_URL" value="
> http://localhost:9000/services/SimpleStockQuoteService"/>
> > + <with-param xmlns:s11="
> http://schemas.xmlsoap.org/soap/envelope/" xmlns:s12="
> http://www.w3.org/2003/05/soap-envelope" name="source_xpath"
> value="{{s11:Body/child::*[fn:position()=1] |
> s12:Body/child::*[fn:position()=1]}}"/>
> > + <with-param xmlns:s11="
> http://schemas.xmlsoap.org/soap/envelope/" xmlns:s12="
> http://www.w3.org/2003/05/soap-envelope" name="target_xpath"
> value="{{s11:Body/child::*[fn:position()=1] |
> s12:Body/child::*[fn:position()=1]}}"/>
> > + </call-template>
> > + <property name="RESPONSE" value="true"/>
> > + <header name="To" action="remove"/>
> > + <send/>
> > + <drop/>
> > +</sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_851.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,57 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Splitter & Aggregator eip function
> template -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > + <proxy name="StockQuoteProxy" transports="https http"
> startOnLoad="true" trace="disable">
> > + <target>
> > + <inSequence>
> > + <log level="custom">
> > + <property name="text" value="splitterAggrigator"/>
> > + </log>
> > + <call-template target="synapse.lang.eip.splitter">
> > + <with-param xmlns:m0="http://services.samples"
> name="iterate_exp" value="{{//m0:getQuote/m0:request}}"/>
> > + <with-param xmlns:m0="http://services.samples"
> name="attach_path" value="{{//m0:getQuote}}"/>
> > + <with-param name="attach_path_enabled" value="true"/>
> > + <with-param name="endpoint_uri" value="
> http://localhost:9000/services/SimpleStockQuoteService"/>
> > + </call-template>
> > + </inSequence>
> > + <outSequence>
> > + <call-template target="synapse.lang.eip.aggregator">
> > + <with-param name="sequence_ref" value="enr"/>
> > + <with-param xmlns:m0="http://services.samples"
> name="aggregator_exp" value="{{//m0:return}}"/>
> > + <with-param name="oncomplete_seq_enabled" value="true"/>
> > + </call-template>
> > + </outSequence>
> > + </target>
> > + </proxy>
> > +<sequence xmlns="http://ws.apache.org/ns/synapse" name="enr">
> > + <log level="custom">
> > + <property name="text" value="seqhit"/>
> > + </log>
> > + <enrich>
> > + <source xmlns:m1="http://services.samples/xsd" xmlns:m0="
> http://services.samples" clone="true"
> > +
> xpath="//m0:return[not(preceding-sibling::m0:return/m1:last <= m1:last)
> and not(following-sibling::m0:return/m1:last < m1:last)]"/>
> > + <target type="body"/>
> > + </enrich>
> > + <send/>
> > +</sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_852.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,46 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Splitter-Agrregator eip function templates
> -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > + <sequence name="main">
> > + <call-template target="synapse.lang.eip.splitter_aggregator">
> > + <with-param name="attach_path_enabled" value="true"/>
> > + <with-param name="endpoint_uri" value="
> http://localhost:9000/services/SimpleStockQuoteService"/>
> > + <with-param xmlns:m0="http://services.samples"
> name="iterate_exp" value="{{//m0:getQuote/m0:request}}"/>
> > + <with-param xmlns:m0="http://services.samples"
> name="attach_path" value="{{//m0:getQuote}}"/>
> > + <with-param name="sequence_ref" value="enr"/>
> > + <with-param xmlns:m0="http://services.samples"
> name="aggregator_exp" value="{{//m0:return}}"/>
> > + <with-param name="oncomplete_seq_enabled" value="true"/>
> > + </call-template>
> > +</sequence>
> > +<sequence xmlns="http://ws.apache.org/ns/synapse" name="enr">
> > + <log level="custom">
> > + <property name="text" value="seqhit"/>
> > + </log>
> > + <enrich>
> > + <source xmlns:m1="http://services.samples/xsd" xmlns:m0="
> http://services.samples" clone="true"
> > +
> xpath="//m0:return[not(preceding-sibling::m0:return/m1:last <= m1:last)
> and not(following-sibling::m0:return/m1:last < m1:last)]"/>
> > + <target type="body"/>
> > + </enrich>
> > + <send/>
> > +</sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_853.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,42 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Scatter-Gather eip function template -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > +<sequence name="enr">
> > + <log level="custom">
> > + <property name="text" value="seqhit"/>
> > + </log>
> > + <enrich>
> > + <source xmlns:m1="http://services.samples/xsd" xmlns:m0="
> http://services.samples" clone="true"
> xpath="//m0:return[not(preceding-sibling::m0:return/m1:last <= m1:last)
> and not(following-sibling::m0:return/m1:last < m1:last)]"/>
> > + <target type="body"/>
> > + </enrich>
> > + <send/>
> > + </sequence>
> > + <sequence name="main">
> > + <call-template target="synapse.lang.eip.scatter_gather">
> > + <with-param name="sequence_ref" value="enr"/>
> > + <with-param xmlns:m0="http://services.samples"
> name="aggregator_exp" value="{{//m0:return}}"/>
> > + <with-param name="oncomplete_seq_enabled" value="true"/>
> > + <with-param name="recipient_list" value="
> http://localhost:9001/services/SimpleStockQuoteService,http://localhost:9002/services/SimpleStockQuoteService,http://localhost:9003/services/SimpleStockQuoteService
> "/>
> > + </call-template>
> > + </sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_854.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,32 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Wire Tap eip function template -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > + <sequence name="main">
> > +<property name="OUT_ONLY" value="true"/>
> > + <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
> > + <call-template target="synapse.lang.eip.wire_tap">
> > +<with-param name="wiretap_uri" value="
> http://localhost:9000/services/SimpleStockQuoteService"/>
> > + <with-param name="destination_uri" value="
> http://localhost:9001/services/SimpleStockQuoteService"/>
> > + </call-template>
> > + </sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_855.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,66 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Content Based Router eip function template
> -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > +<proxy name="StockQuoteProxy" transports="https http"
> startOnLoad="true" trace="disable">
> > + <target>
> > + <inSequence>
> > + <call-template
> target="synapse.lang.eip.content_based_router">
> > +<with-param name="routing_exp"
> value="{{//m0:getQuote/m0:request/m0:symbol}}" xmlns:m0="
> http://services.samples"/>
> > +<with-param name="match_content"
> value="IBM:cnd1_seq,MSFT:cnd2_seq;cnd3_seq"/>
> > + </call-template>
> > +</inSequence>
> > +<outSequence>
> > +<send/>
> > + </outSequence>
> > + </target>
> > + </proxy>
> > +<sequence name="send_seq">
> > + <log level="custom">
> > + <property name="DEBUG" value="Condition Satisfied"/>
> > + </log>
> > + <send>
> > + <endpoint name="simple">
> > + <address uri="
> http://localhost:9000/services/SimpleStockQuoteService"/>
> > + </endpoint>
> > + </send>
> > + </sequence>
> > +
> > + <sequence name="cnd1_seq">
> > + <log level="custom">
> > + <property name="MSG_FLOW" value="Condition (I) Satisfied"/>
> > + </log>
> > + <sequence key="send_seq"/>
> > + </sequence>
> > + <sequence name="cnd2_seq">
> > + <log level="custom">
> > + <property name="MSG_FLOW" value="Condition (II) Satisfied"/>
> > + </log>
> > + <sequence key="send_seq"/>
> > + </sequence>
> > + <sequence name="cnd3_seq">
> > + <log level="custom">
> > + <property name="MSG_FLOW" value="Condition (III)
> Satisfied"/>
> > + </log>
> > + <sequence key="send_seq"/>
> > + </sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_856.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,65 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Dynamic Router eip function template -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > + <proxy name="StockQuoteProxy" transports="https http"
> startOnLoad="true" trace="disable">
> > + <target>
> > + <inSequence>
> > + <call-template target="synapse.lang.eip.dynamic_router">
> > +<with-param name="conditions"
> value="header=foo:bar.*#url=/services/StockQuoteProxy.*;seq=cnd1_seq,header=custom_header1:bar.*@header=custom_header1:foo.*;seq=cnd2_seq,header=custom_header2:foo.*;seq=cnd3_seq"/>
> > + </call-template>
> > + </inSequence>
> > + <outSequence>
> > + <send/>
> > + </outSequence>
> > + </target>
> > + </proxy>
> > +<sequence name="send_seq">
> > + <log level="custom">
> > + <property name="DEBUG" value="Condition Satisfied"/>
> > + </log>
> > + <send>
> > + <endpoint name="simple">
> > + <address uri="
> http://localhost:9000/services/SimpleStockQuoteService"/>
> > + </endpoint>
> > + </send>
> > + </sequence>
> > +
> > + <sequence name="cnd1_seq">
> > + <log level="custom">
> > + <property name="MSG_FLOW" value="Condition (I) Satisfied"/>
> > + </log>
> > + <sequence key="send_seq"/>
> > + </sequence>
> > + <sequence name="cnd2_seq">
> > + <log level="custom">
> > + <property name="MSG_FLOW" value="Condition (II) Satisfied"/>
> > + </log>
> > + <sequence key="send_seq"/>
> > + </sequence>
> > + <sequence name="cnd3_seq">
> > + <log level="custom">
> > + <property name="MSG_FLOW" value="Condition (III)
> Satisfied"/>
> > + </log>
> > + <sequence key="send_seq"/>
> > + </sequence>
> > +</definitions>
> >
> > Added: synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml
> > URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml?rev=1373302&view=auto
> >
> ==============================================================================
> > --- synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml
> (added)
> > +++ synapse/trunk/java/repository/conf/sample/synapse_sample_857.xml Wed
> Aug 15 10:03:18 2012
> > @@ -0,0 +1,32 @@
> > +<?xml version="1.0" encoding="ISO-8859-1"?>
> > +<!--
> > + ~ Licensed to the Apache Software Foundation (ASF) under one
> > + ~ or more contributor license agreements. See the NOTICE file
> > + ~ distributed with this work for additional information
> > + ~ regarding copyright ownership. The ASF licenses this file
> > + ~ to you 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.
> > + -->
> > +
> > +<!-- Introduction to Synapse Recipient List eip function template -->
> > +<definitions xmlns="http://ws.apache.org/ns/synapse">
> > +<import xmlns="http://ws.apache.org/ns/synapse" name="EipLibrary"
> package="synapse.lang.eip" />
> > + <sequence name="main">
> > + <property name="OUT_ONLY" value="true"/>
> > + <property name="FORCE_SC_ACCEPTED" value="true"
> scope="axis2"/>
> > + <call-template target="synapse.lang.eip.recipient_list">
> > + <with-param name="recipient_list" value="
> http://localhost:9000/services/SimpleStockQuoteService,http://localhost:9001/services/SimpleStockQuoteService
> "/>
> > + </call-template>
> > + <drop/>
> > +</sequence>
> > +</definitions>
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
> For additional commands, e-mail: dev-help@synapse.apache.org
>
>
--
*Udayanga Wickramasinghe*
Software Engineer; WSO2 Inc.; http://wso2.com,
*email: **udayanga@wso2.com* <ud...@wso2.com>* cell: +94 (77) 983-4365
blog: **http://udayangawiki.blogspot.com*<http://udayangawiki.blogspot.com/>
*
twitter: **http://twitter.com/udayanga_wick*<http://twitter.com/udayanga_wick>
*
*