You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by as...@apache.org on 2006/07/06 06:51:18 UTC
svn commit: r419435 - in /incubator/synapse/trunk/java:
modules/core/src/org/apache/synapse/config/xml/
modules/extensions/src/META-INF/services/
modules/extensions/src/org/apache/synapse/config/
modules/extensions/src/org/apache/synapse/json/ modules/...
Author: asankha
Date: Wed Jul 5 21:51:15 2006
New Revision: 419435
URL: http://svn.apache.org/viewvc?rev=419435&view=rev
Log:
1) Allow mediator factories to expose the XML schema to be used for the configuration of the mediators.
2) Create schema support for all core and extension mediators
3) Re-factor packages of extensions to be consistent
4) Fix sample spring configuration used for unit tests
Added:
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/Util.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/CDL.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/CDL.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/Cookie.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/Cookie.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/CookieList.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/CookieList.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/HTTP.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/HTTP.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/HTTPTokener.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/HTTPTokener.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JSONArray.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/JSONArray.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JSONException.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/JSONException.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JSONObject.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/JSONObject.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JSONStringer.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/JSONStringer.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JSONTokener.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/JSONTokener.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JSONWriter.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/JSONWriter.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JsonMediator.java
- copied, changed from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ext/json/JsonMediator.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JsonMediatorFactory.java
- copied, changed from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/JsonMediatorFactory.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/SynapseJsonSender.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/SynapseJsonSender.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/XML.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/XML.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/XMLTokener.java
- copied unchanged from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/XMLTokener.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringConfigExtension.java
- copied, changed from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/SpringConfigExtension.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringConfigExtensionFactory.java
- copied, changed from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/SpringConfigExtensionFactory.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringMediator.java
- copied, changed from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ext/spring/SpringMediator.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringMediatorFactory.java
- copied, changed from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/SpringMediatorFactory.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/transform/TransformMediatorFactory.java
- copied, changed from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/TransformMediatorFactory.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/validate/
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/validate/ValidateMediator.java
- copied, changed from r418995, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ValidateMediator.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/validate/ValidateMediatorFactory.java
- copied, changed from r418995, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/ValidateMediatorFactory.java
Removed:
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/json/
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ValidateMediator.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ext/
Modified:
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/AbstractMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/ClassMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/Constants.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/DropMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/FaultMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/FilterMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/HeaderMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/InMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/LogMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/MediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/MediatorFactoryFinder.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/OutMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/PropertyMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SendMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SequenceMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SwitchMediatorFactory.java
incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SynapseMediatorFactory.java
incubator/synapse/trunk/java/modules/extensions/src/META-INF/services/org.apache.synapse.config.xml.ExtensionFactory
incubator/synapse/trunk/java/modules/extensions/src/META-INF/services/org.apache.synapse.config.xml.MediatorFactory
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/javascript/JavaScriptMediatorFactory.java
incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/transform/TransformMediator.java
incubator/synapse/trunk/java/modules/extensions/test/org/apache/synapse/ValidateMediatorTest.java
incubator/synapse/trunk/java/modules/extensions/test/org/apache/synapse/json/JsonMediatorTest.java
incubator/synapse/trunk/java/repository/conf/sample/synapse_spring_unittest.xml
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/AbstractMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/AbstractMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/AbstractMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/AbstractMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -22,12 +22,23 @@
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.synapse.SynapseException;
import org.apache.synapse.Util;
+import org.apache.ws.commons.schema.XmlSchema;
import org.jaxen.JaxenException;
+import javax.xml.namespace.QName;
import java.util.Iterator;
/**
* Is the abstract superclass of MediatorFactory's
*/
public abstract class AbstractMediatorFactory implements MediatorFactory {
+
+ public QName getTagSchemaType() {
+ return new QName(Constants.SYNAPSE_NAMESPACE,
+ getTagQName().getLocalPart() + "_type", "synapse");
+ }
+
+ public XmlSchema getTagSchema() {
+ return null; // not supported
+ }
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/ClassMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/ClassMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/ClassMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/ClassMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -16,6 +16,7 @@
package org.apache.synapse.config.xml;
import javax.xml.namespace.QName;
+import javax.xml.transform.stream.StreamSource;
import org.apache.synapse.config.xml.Constants;
import org.apache.synapse.SynapseException;
@@ -25,8 +26,11 @@
import org.apache.axiom.om.OMAttribute;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
import java.util.Iterator;
+import java.io.StringReader;
/**
* Creates an instance of a Class mediator using XML configuration specified
@@ -43,6 +47,19 @@
private static final QName CLASS_Q = new QName(Constants.SYNAPSE_NAMESPACE, "class");
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"class\" type=\"class_type\"/>\n" +
+ "\t<xs:complexType name=\"class_type\">\n" +
+ "\t\t<xs:sequence minOccurs=\"0\" maxOccurs=\"unbounded\">\n" +
+ "\t\t\t<xs:element name=\"property\" type=\"synapse:property_type\"/>\n" +
+ "\t\t</xs:sequence>\n" +
+ "\t\t<xs:attribute name=\"name\"/>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA = Util.getSchema(STR_SCHEMA, CLASS_Q);
+
public Mediator createMediator(OMElement elem) {
ClassMediator classMediator = new ClassMediator();
@@ -71,5 +88,9 @@
public QName getTagQName() {
return CLASS_Q;
+ }
+
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
}
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/Constants.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/Constants.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/Constants.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/Constants.java Wed Jul 5 21:51:15 2006
@@ -33,4 +33,12 @@
public static final String NULL_NAMESPACE = "";
public static final String OUTFLOW_SECURITY = "OutflowSecurity";
public static final String INFLOW_SECURITY = "InflowSecurity";
+
+ public static final String SCHEMA_PROLOG =
+ "<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" " +
+ "elementFormDefault=\"qualified\" attributeFormDefault=\"unqualified\" " +
+ "xmlns:synapse=\"http://ws.apache.org/ns/synapse\" " +
+ "targetNamespace=\"http://ws.apache.org/ns/synapse\">\n";
+
+ public static final String SCHEMA_EPILOG = "</xs:schema>\n";
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/DropMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/DropMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/DropMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/DropMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -20,8 +20,12 @@
import org.apache.synapse.api.Mediator;
import org.apache.synapse.mediators.builtin.DropMediator;
import org.apache.axiom.om.OMElement;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
import javax.xml.namespace.QName;
+import javax.xml.transform.stream.StreamSource;
+import java.io.StringReader;
/**
* This creates a drop mediator instance
@@ -34,11 +38,23 @@
private static final QName DROP_Q = new QName(Constants.SYNAPSE_NAMESPACE, "drop");
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"drop\" type=\"drop_type\"/>\n" +
+ "\t<xs:complexType name=\"drop_type\"/>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA = Util.getSchema(STR_SCHEMA, DROP_Q);
+
public Mediator createMediator(OMElement el) {
return new DropMediator();
}
public QName getTagQName() {
return DROP_Q;
+ }
+
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
}
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/FaultMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/FaultMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/FaultMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/FaultMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -27,6 +27,7 @@
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ws.commons.schema.XmlSchema;
import org.jaxen.JaxenException;
import java.net.URI;
@@ -47,13 +48,13 @@
*/
public class FaultMediatorFactory extends AbstractMediatorFactory {
- private static final QName HEADER_Q = new QName(Constants.SYNAPSE_NAMESPACE, "makefault");
+ private static final QName FAULT_Q = new QName(Constants.SYNAPSE_NAMESPACE, "makefault");
private static final QName ATT_VERSION_Q = new QName(Constants.NULL_NAMESPACE, "version");
private static final QName CODE_Q = new QName(Constants.SYNAPSE_NAMESPACE, "code");
private static final QName REASON_Q = new QName(Constants.SYNAPSE_NAMESPACE, "reason");
- private static final QName NODE_Q = new QName(Constants.SYNAPSE_NAMESPACE, "node");
- private static final QName ROLE_Q = new QName(Constants.SYNAPSE_NAMESPACE, "role");
+ private static final QName NODE_Q = new QName(Constants.SYNAPSE_NAMESPACE, "node");
+ private static final QName ROLE_Q = new QName(Constants.SYNAPSE_NAMESPACE, "role");
private static final QName DETAIL_Q = new QName(Constants.SYNAPSE_NAMESPACE, "detail");
private static final QName ATT_VALUE_Q = new QName(Constants.NULL_NAMESPACE, "value");
@@ -64,6 +65,34 @@
private static final Log log = LogFactory.getLog(FaultMediatorFactory.class);
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"makefault\" type=\"makefault_type\"/>\n" +
+ "\t<xs:complexType name=\"makefault_type\">\n" +
+ "\t\t<xs:sequence>\n" +
+ "\t\t\t<xs:element name=\"code\">\n" +
+ "\t\t\t\t<xs:complexType>\n" +
+ "\t\t\t\t\t<xs:attribute name=\"value\" type=\"xs:string\"/>\n" +
+ "\t\t\t\t\t<xs:attribute name=\"expression\" type=\"xs:string\"/>\n" +
+ "\t\t\t\t</xs:complexType>\n" +
+ "\t\t\t</xs:element>\n" +
+ "\t\t\t<xs:element name=\"reason\">\n" +
+ "\t\t\t\t<xs:complexType>\n" +
+ "\t\t\t\t\t<xs:attribute name=\"value\" type=\"xs:string\"/>\n" +
+ "\t\t\t\t\t<xs:attribute name=\"expression\" type=\"xs:string\"/>\n" +
+ "\t\t\t\t</xs:complexType>\n" +
+ "\t\t\t</xs:element>\n" +
+ "\t\t\t<xs:element name=\"node\" minOccurs=\"0\"/>\n" +
+ "\t\t\t<xs:element name=\"role\" minOccurs=\"0\"/>\n" +
+ "\t\t\t<xs:element name=\"detail\" type=\"xs:anyType\" minOccurs=\"0\"/>\n" +
+ "\t\t</xs:sequence>\n" +
+ "\t\t<xs:attribute name=\"version\" type=\"xs:string\"/>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA =
+ org.apache.synapse.config.xml.Util.getSchema(STR_SCHEMA, FAULT_Q);
+
public Mediator createMediator(OMElement elem) {
FaultMediator faultMediator = new FaultMediator();
@@ -179,7 +208,10 @@
}
public QName getTagQName() {
- return HEADER_Q;
+ return FAULT_Q;
}
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
+ }
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/FilterMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/FilterMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/FilterMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/FilterMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -25,6 +25,7 @@
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ws.commons.schema.XmlSchema;
import org.jaxen.JaxenException;
import javax.xml.namespace.QName;
@@ -47,6 +48,23 @@
private static final QName FILTER_Q = new QName(Constants.SYNAPSE_NAMESPACE, "filter");
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"filter\" type=\"filter_type\"/>\n" +
+ "\t<xs:complexType name=\"filter_type\">\n" +
+ "\t\t<xs:complexContent>\n" +
+ "\t\t\t<xs:extension base=\"synapse:mediator_type\">\n" +
+ "\t\t\t\t<xs:attribute name=\"source\"/>\n" +
+ "\t\t\t\t<xs:attribute name=\"regex\"/>\n" +
+ "\t\t\t\t<xs:attribute name=\"xpath\"/>\n" +
+ "\t\t\t</xs:extension>\n" +
+ "\t\t</xs:complexContent>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA =
+ org.apache.synapse.config.xml.Util.getSchema(STR_SCHEMA, FILTER_Q);
+
public Mediator createMediator(OMElement elem) {
FilterMediator filter = new FilterMediator();
super.addChildren(elem, filter);
@@ -111,4 +129,7 @@
return FILTER_Q;
}
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
+ }
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/HeaderMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/HeaderMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/HeaderMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/HeaderMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -27,6 +27,7 @@
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ws.commons.schema.XmlSchema;
import org.jaxen.JaxenException;
/**
@@ -48,6 +49,15 @@
private static final QName HEADER_Q = new QName(Constants.SYNAPSE_NAMESPACE, "header");
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"header\" type=\"header_type\"/>\n" +
+ "\t<xs:complexType name=\"header_type\"/>\n" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA =
+ org.apache.synapse.config.xml.Util.getSchema(STR_SCHEMA, HEADER_Q);
+
public Mediator createMediator(OMElement elem) {
HeaderMediator headerMediator = new HeaderMediator();
@@ -103,4 +113,7 @@
return HEADER_Q;
}
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
+ }
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/InMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/InMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/InMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/InMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -18,6 +18,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.synapse.api.Mediator;
import org.apache.synapse.mediators.filters.InMediator;
+import org.apache.ws.commons.schema.XmlSchema;
import javax.xml.namespace.QName;
@@ -34,6 +35,19 @@
private static final QName IN_Q = new QName(Constants.SYNAPSE_NAMESPACE, "in");
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"in\" type=\"in_type\"/>\n" +
+ "\t<xs:complexType name=\"in_type\">\n" +
+ "\t\t<xs:complexContent>\n" +
+ "\t\t\t<xs:extension base=\"synapse:mediator_type\"/>\n" +
+ "\t\t</xs:complexContent>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA =
+ org.apache.synapse.config.xml.Util.getSchema(STR_SCHEMA, IN_Q);
+
public Mediator createMediator(OMElement elem) {
InMediator filter = new InMediator();
super.addChildren(elem, filter);
@@ -44,4 +58,7 @@
return IN_Q;
}
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
+ }
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/LogMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/LogMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/LogMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/LogMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -27,6 +27,7 @@
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ws.commons.schema.XmlSchema;
import org.jaxen.JaxenException;
import java.util.Iterator;
@@ -51,6 +52,21 @@
private static final String FULL = "full";
private static final String CUSTOM = "custom";
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"log\" type=\"log_type\"/>\n" +
+ "\t<xs:complexType name=\"log_type\">\n" +
+ "\t\t<xs:sequence minOccurs=\"0\" maxOccurs=\"unbounded\">\n" +
+ "\t\t\t<xs:element name=\"property\" type=\"synapse:property_type\"/>\n" +
+ "\t\t</xs:sequence>\n" +
+ "\t\t<xs:attribute name=\"level\"/>\n" +
+ "\t\t<xs:attribute name=\"seperator\"/>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA =
+ org.apache.synapse.config.xml.Util.getSchema(STR_SCHEMA, LOG_Q);
+
public QName getTagQName() {
return LOG_Q;
}
@@ -85,4 +101,7 @@
return logMediator;
}
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
+ }
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/MediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/MediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/MediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/MediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -20,6 +20,7 @@
import org.apache.synapse.api.Mediator;
import org.apache.axiom.om.OMElement;
+import org.apache.ws.commons.schema.XmlSchema;
/**
* A mediator factory capable of creating an instance of a mediator through a given
@@ -38,4 +39,17 @@
* @return QName of the mediator element
*/
public QName getTagQName();
+
+ /**
+ * The name of the type in the schema returned by getTagSchema() which
+ * defines this element
+ * @return the QName for the type
+ */
+ public QName getTagSchemaType();
+
+ /**
+ * The schema for the mediator's XML configuration
+ * @return the schema of the mediator
+ */
+ public XmlSchema getTagSchema();
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/MediatorFactoryFinder.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/MediatorFactoryFinder.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/MediatorFactoryFinder.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/MediatorFactoryFinder.java Wed Jul 5 21:51:15 2006
@@ -20,8 +20,12 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.io.StringReader;
import javax.xml.namespace.QName;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerFactoryConfigurationError;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -31,6 +35,7 @@
import org.apache.synapse.config.xml.MediatorFactory;
import org.apache.synapse.api.Mediator;
import org.apache.axiom.om.OMElement;
+import org.apache.ws.commons.schema.*;
import sun.misc.Service;
@@ -43,7 +48,6 @@
public class MediatorFactoryFinder {
- private static Map factoryMap = new HashMap();
private static final Log log = LogFactory.getLog(MediatorFactoryFinder.class);
private static final Class[] mediatorFactories = {
@@ -63,8 +67,45 @@
OutMediatorFactory.class
};
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:complexType name=\"mediator_type\">\n" +
+ "\t\t<xs:sequence maxOccurs=\"unbounded\">\n" +
+ "\t\t\t<xs:choice>\n" +
+ "\t\t\t</xs:choice>\n" +
+ "\t\t</xs:sequence>\n" +
+ "\t</xs:complexType>\n" +
+ "\t<xs:complexType name=\"property_type\">\n" +
+ "\t\t<xs:attribute name=\"name\" type=\"xs:string\" use=\"required\"/>\n" +
+ "\t\t<xs:attribute name=\"value\" type=\"xs:string\"/>\n" +
+ "\t\t<xs:attribute name=\"expression\" type=\"xs:string\"/>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
private static MediatorFactoryFinder instance = null;
+ /**
+ * A map of mediator QNames to implementation class
+ */
+ private static Map factoryMap = new HashMap();
+
+ /**
+ * A holder to construct the Synapse.XSD for known mediators
+ */
+ private XmlSchema schema = null;
+
+ /**
+ * Used to define the "mediator_type" element for all known and
+ * dynamically registered mediators
+ */
+ private XmlSchema mediators = null;
+
+ /**
+ * Load schemas only if Xalan (a dependency for XmlSchema) is available
+ * i.e. if someone wants to access schema's this is a runtime requirement
+ */
+ private boolean loadSchemas = false;
+
public static synchronized MediatorFactoryFinder getInstance() {
if (instance == null) {
instance = new MediatorFactoryFinder();
@@ -82,17 +123,69 @@
private MediatorFactoryFinder() {
- factoryMap = new HashMap();
- for (int i = 0; i < mediatorFactories.length; i++) {
+ try {
+ TransformerFactory.newInstance();
+ loadSchemas = true;
+
+ schema = new XmlSchema(Constants.SYNAPSE_NAMESPACE, null);
+ try {
+ mediators = new XmlSchemaCollection().read(new StreamSource(
+ new StringReader(STR_SCHEMA)), null);
+ } catch (XmlSchemaException e) {
+ handleException("Error defining mediator_types " +
+ "elemement for the configuration language schema", e);
+ }
+
+ } catch(TransformerFactoryConfigurationError e) {
+ log.warn("Xalan unavailable. Mediator schemas will not be available");
+ }
+
+ factoryMap = new HashMap();
+
+ for (int i = 0; i < mediatorFactories.length; i++) {
Class c = mediatorFactories[i];
try {
- factoryMap.put(((MediatorFactory) c.newInstance()).getTagQName(), c);
- } catch (Exception e) {
+ MediatorFactory fac = (MediatorFactory) c.newInstance();
+ factoryMap.put(fac.getTagQName(), c);
+ if (loadSchemas) {
+ mergeSchema(fac.getTagSchema());
+ addMediatorType(mediators, fac);
+ }
+ } catch (Exception e) {
throw new SynapseException("Error instantiating " + c.getName(), e);
}
}
// now iterate through the available pluggable mediator factories
- registerExtensions();
+ registerExtensions(mediators);
+
+ // add registers mediators as extensions
+ if (loadSchemas) {
+ mergeSchema(mediators);
+ if (log.isDebugEnabled()) {
+ System.out.println("Mediator Schema : ");
+ schema.write(System.out);
+ }
+ }
+ }
+
+ private void handleException(String msg, Exception e) {
+ log.error(msg, e);
+ throw new SynapseException(msg, e);
+ }
+
+ /**
+ * Merge given schema into our master schema
+ * @param child the sub schema / fragment to be merged
+ */
+ private void mergeSchema(XmlSchema child) {
+ if (child != null) {
+ XmlSchemaObjectTable schemaTypes = child.getSchemaTypes();
+ Iterator iter = schemaTypes.getNames();
+ while (iter.hasNext()) {
+ QName name = (QName) iter.next();
+ schema.getItems().add(schemaTypes.getItem(name));
+ }
+ }
}
/**
@@ -101,7 +194,7 @@
* This looks for JAR files containing a META-INF/services that adheres to the following
* http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html#Service%20Provider
*/
- private void registerExtensions() {
+ private void registerExtensions(XmlSchema mediators) {
log.debug("Registering mediator extensions found in the classpath : " + System.getProperty("java.class.path"));
@@ -111,11 +204,34 @@
MediatorFactory mf = (MediatorFactory) it.next();
QName tag = mf.getTagQName();
factoryMap.put(tag, mf.getClass());
+ mergeSchema(mf.getTagSchema());
+ addMediatorType(mediators, mf);
+
log.debug("Added MediatorFactory " + mf.getClass() + " to handle " + tag);
}
}
- /**
+ /**
+ * Include the mediator type element into the available "mediator_types"
+ * @param mediators the parent schema which holds the "mediator_types"
+ * @param mf the mediator factory which will provide the QName of the type
+ */
+ private void addMediatorType(XmlSchema mediators, MediatorFactory mf) {
+
+ XmlSchemaComplexType cmplx =
+ (XmlSchemaComplexType) mediators.getItems().getItem(0);
+ XmlSchemaSequence seq = (XmlSchemaSequence) cmplx.getParticle();
+ XmlSchemaChoice choice = (XmlSchemaChoice) seq.getItems().getItem(0);
+
+ XmlSchemaElement ele = new XmlSchemaElement();
+ ele.setName(mf.getTagQName().getLocalPart());
+ if (mf.getTagSchemaType() != null && mf.getTagSchema() != null) {
+ ele.setSchemaTypeName(mf.getTagSchemaType());
+ choice.getItems().add(ele);
+ }
+ }
+
+ /**
* This method returns a Processor given an OMElement. This will be used
* recursively by the elements which contain processor elements themselves
* (e.g. rules)
@@ -155,5 +271,16 @@
*/
public Map getFactoryMap() {
return factoryMap;
+ }
+
+ /**
+ * Returns the XML schema for the known mediators if available - or null
+ * @return the XmlSchema for the mediator configuration, if avialable. This
+ * will load only if the mediator factory has properly met the requirements
+ * for this feature, and if Xalan is available to the runtime (this is a
+ * requiement for the XmlSchema package used underneath)
+ */
+ public XmlSchema getSchema() {
+ return schema;
}
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/OutMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/OutMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/OutMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/OutMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -18,6 +18,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.synapse.api.Mediator;
import org.apache.synapse.mediators.filters.OutMediator;
+import org.apache.ws.commons.schema.XmlSchema;
import javax.xml.namespace.QName;
@@ -32,7 +33,20 @@
*/
public class OutMediatorFactory extends AbstractListMediatorFactory {
- private static final QName IN_Q = new QName(Constants.SYNAPSE_NAMESPACE, "out");
+ private static final QName OUT_Q = new QName(Constants.SYNAPSE_NAMESPACE, "out");
+
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"out\" type=\"out_type\"/>\n" +
+ "\t<xs:complexType name=\"out_type\">\n" +
+ "\t\t<xs:complexContent>\n" +
+ "\t\t\t<xs:extension base=\"synapse:mediator_type\"/>\n" +
+ "\t\t</xs:complexContent>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA =
+ org.apache.synapse.config.xml.Util.getSchema(STR_SCHEMA, OUT_Q);
public Mediator createMediator(OMElement elem) {
OutMediator filter = new OutMediator();
@@ -41,7 +55,10 @@
}
public QName getTagQName() {
- return IN_Q;
+ return OUT_Q;
}
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
+ }
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/PropertyMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/PropertyMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/PropertyMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/PropertyMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -24,6 +24,7 @@
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ws.commons.schema.XmlSchema;
import org.jaxen.JaxenException;
import javax.xml.namespace.QName;
@@ -41,6 +42,19 @@
private static final QName PROP_Q = new QName(Constants.SYNAPSE_NAMESPACE, "set-property");
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"set-property\" type=\"set-property_type\"/>\n" +
+ "\t<xs:complexType name=\"set-property_type\">\n" +
+ "\t\t<xs:attribute name=\"name\"/>\n" +
+ "\t\t<xs:attribute name=\"value\"/>\n" +
+ "\t\t<xs:attribute name=\"expression\"/>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA =
+ org.apache.synapse.config.xml.Util.getSchema(STR_SCHEMA, PROP_Q);
+
public Mediator createMediator(OMElement elem) {
PropertyMediator propMediator = new PropertyMediator();
@@ -79,5 +93,9 @@
public QName getTagQName() {
return PROP_Q;
+ }
+
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
}
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SendMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SendMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SendMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SendMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -27,6 +27,7 @@
import org.apache.axiom.om.OMAttribute;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ws.commons.schema.XmlSchema;
import java.util.Iterator;
import java.net.URL;
@@ -85,6 +86,15 @@
private static final QName ATT_REF_Q = new QName(Constants.NULL_NAMESPACE, "ref");
private static final QName ATT_ADDRESS_Q = new QName(Constants.NULL_NAMESPACE, "address");
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"send\" type=\"send_type\"/>\n" +
+ "\t<xs:complexType name=\"send_type\"/>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA =
+ org.apache.synapse.config.xml.Util.getSchema(STR_SCHEMA, SEND_Q);
+
public Mediator createMediator(OMElement elem) {
SendMediator sm = new SendMediator();
@@ -124,4 +134,7 @@
return SEND_Q;
}
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
+ }
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SequenceMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SequenceMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SequenceMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SequenceMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -22,6 +22,7 @@
import org.apache.axiom.om.OMAttribute;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;
+import org.apache.ws.commons.schema.XmlSchema;
import javax.xml.namespace.QName;
@@ -46,6 +47,19 @@
private static final QName SEQUENCE_Q = new QName(Constants.SYNAPSE_NAMESPACE, "sequence");
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"sequence\" type=\"sequence_type\"/>\n" +
+ "\t<xs:complexType name=\"sequence_type\">\n" +
+ "\t\t<xs:complexContent>\n" +
+ "\t\t\t<xs:extension base=\"synapse:mediator_type\"/>\n" +
+ "\t\t</xs:complexContent>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA =
+ org.apache.synapse.config.xml.Util.getSchema(STR_SCHEMA, SEQUENCE_Q);
+
public QName getTagQName() {
return SEQUENCE_Q;
}
@@ -74,4 +88,7 @@
return seqMediator;
}
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
+ }
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SwitchMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SwitchMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SwitchMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SwitchMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -19,16 +19,19 @@
import org.apache.synapse.mediators.filters.SwitchMediator;
import org.apache.synapse.mediators.filters.SwitchCaseMediator;
import org.apache.synapse.SynapseException;
-import org.apache.synapse.Util;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
import org.jaxen.JaxenException;
import javax.xml.namespace.QName;
+import javax.xml.transform.stream.StreamSource;
import java.util.Iterator;
+import java.io.StringReader;
/**
* Constructs a Switch mediator instance from the given XML configuration
@@ -52,6 +55,29 @@
private static final QName CASE_Q = new QName(Constants.SYNAPSE_NAMESPACE, "case");
private static final QName DEFAULT_Q = new QName(Constants.SYNAPSE_NAMESPACE, "default");
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"switch\" type=\"synapse:switch_type\"/>\n" +
+ "\t<xs:complexType name=\"switch_type\">\n" +
+ "\t\t<xs:sequence>\n" +
+ "\t\t\t<xs:sequence maxOccurs=\"unbounded\">\n" +
+ "\t\t\t\t<xs:element name=\"case\" type=\"synapse:switch_case_type\"/>\n" +
+ "\t\t\t</xs:sequence>\n" +
+ "\t\t\t<xs:element name=\"default\" type=\"synapse:mediator_type\" minOccurs=\"0\"/>\n" +
+ "\t\t</xs:sequence>\n" +
+ "\t\t<xs:attribute name=\"source\"/>\n" +
+ "\t</xs:complexType>" +
+ "\t<xs:complexType name=\"switch_case_type\">\n" +
+ "\t\t<xs:complexContent>\n" +
+ "\t\t\t<xs:extension base=\"synapse:mediator_type\">\n" +
+ "\t\t\t\t<xs:attribute name=\"regex\" type=\"xs:string\"/>\n" +
+ "\t\t\t</xs:extension>\n" +
+ "\t\t</xs:complexContent>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA = Util.getSchema(STR_SCHEMA, SWITCH_Q);
+
public Mediator createMediator(OMElement elem) {
SwitchMediator switchMediator = new SwitchMediator();
@@ -64,7 +90,7 @@
} else {
try {
AXIOMXPath sourceXPath = new AXIOMXPath(source.getAttributeValue());
- Util.addNameSpaces(sourceXPath, elem, log);
+ org.apache.synapse.Util.addNameSpaces(sourceXPath, elem, log);
switchMediator.setSource(sourceXPath);
} catch (JaxenException e) {
@@ -92,5 +118,9 @@
public QName getTagQName() {
return SWITCH_Q;
+ }
+
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
}
}
Modified: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SynapseMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SynapseMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SynapseMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/SynapseMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -22,6 +22,7 @@
import org.apache.synapse.api.Mediator;
import org.apache.synapse.mediators.base.SynapseMediator;
import org.apache.axiom.om.OMElement;
+import org.apache.ws.commons.schema.XmlSchema;
/**
* Builds the main mediator (@see SynapseConfiguration) of the Synapse instance
@@ -34,10 +35,27 @@
*/
public class SynapseMediatorFactory extends AbstractListMediatorFactory {
- private final static QName tagname = new QName(Constants.SYNAPSE_NAMESPACE, "rules");
+ private final static QName RULES_Q = new QName(Constants.SYNAPSE_NAMESPACE, "rules");
+
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"rules\" type=\"rules_type\"/>\n" +
+ "\t<xs:complexType name=\"rules_type\">\n" +
+ "\t\t<xs:complexContent>\n" +
+ "\t\t\t<xs:extension base=\"synapse:mediator_type\"/>\n" +
+ "\t\t</xs:complexContent>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA =
+ org.apache.synapse.config.xml.Util.getSchema(STR_SCHEMA, RULES_Q);
public QName getTagQName() {
- return tagname;
+ return RULES_Q;
+ }
+
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
}
public Mediator createMediator(OMElement elem) {
Added: incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/Util.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/Util.java?rev=419435&view=auto
==============================================================================
--- incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/Util.java (added)
+++ incubator/synapse/trunk/java/modules/core/src/org/apache/synapse/config/xml/Util.java Wed Jul 5 21:51:15 2006
@@ -0,0 +1,42 @@
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.synapse.config.xml;
+
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.xml.sax.InputSource;
+
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.namespace.QName;
+import java.io.StringReader;
+
+public class Util {
+
+ private static final Log log = LogFactory.getLog(Util.class);
+
+ public static XmlSchema getSchema(String str, QName qName) {
+ try {
+ return new XmlSchemaCollection().read(
+ new InputSource(new StringReader(str)), null);
+ } catch (XmlSchemaException e) {
+ log.warn("Couldnt load schema for mediator with QName " + qName, e);
+ return null;
+ }
+ }
+}
Modified: incubator/synapse/trunk/java/modules/extensions/src/META-INF/services/org.apache.synapse.config.xml.ExtensionFactory
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/META-INF/services/org.apache.synapse.config.xml.ExtensionFactory?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/META-INF/services/org.apache.synapse.config.xml.ExtensionFactory (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/META-INF/services/org.apache.synapse.config.xml.ExtensionFactory Wed Jul 5 21:51:15 2006
@@ -1 +1 @@
-org.apache.synapse.config.xml.SpringConfigExtensionFactory
\ No newline at end of file
+org.apache.synapse.mediators.spring.SpringConfigExtensionFactory
\ No newline at end of file
Modified: incubator/synapse/trunk/java/modules/extensions/src/META-INF/services/org.apache.synapse.config.xml.MediatorFactory
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/META-INF/services/org.apache.synapse.config.xml.MediatorFactory?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/META-INF/services/org.apache.synapse.config.xml.MediatorFactory (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/META-INF/services/org.apache.synapse.config.xml.MediatorFactory Wed Jul 5 21:51:15 2006
@@ -1,5 +1,5 @@
-org.apache.synapse.config.xml.SpringMediatorFactory
-org.apache.synapse.config.xml.ValidateMediatorFactory
-org.apache.synapse.config.xml.TransformMediatorFactory
-org.apache.synapse.config.xml.JsonMediatorFactory
+org.apache.synapse.mediators.validate.ValidateMediatorFactory
+org.apache.synapse.mediators.transform.TransformMediatorFactory
+org.apache.synapse.mediators.spring.SpringMediatorFactory
+org.apache.synapse.mediators.json.JsonMediatorFactory
org.apache.synapse.mediators.javascript.JavaScriptMediatorFactory
Modified: incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/javascript/JavaScriptMediatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/javascript/JavaScriptMediatorFactory.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/javascript/JavaScriptMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/javascript/JavaScriptMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -22,6 +22,8 @@
import org.apache.synapse.Constants;
import org.apache.synapse.api.Mediator;
import org.apache.synapse.config.xml.MediatorFactory;
+import org.apache.synapse.config.xml.Util;
+import org.apache.ws.commons.schema.XmlSchema;
/**
* Creates an instance of a JavaScript mediator. <p/>
@@ -34,7 +36,19 @@
// private static final Log log = LogFactory.getLog(JavaScriptMediatorFactory.class);
- private static final QName TAG_NAME = new QName(Constants.SYNAPSE_NAMESPACE, "javascript");
+ private static final QName TAG_NAME = new QName(Constants.SYNAPSE_NAMESPACE + "/js", "javascript");
+
+ private static final String STR_SCHEMA =
+ org.apache.synapse.config.xml.Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"javascript\" type=\"synapse:javascript_type\"/>\n" +
+ "\t<xs:complexType name=\"javascript_type\">\n" +
+ "\t\t<xs:complexContent>\n" +
+ "\t\t\t<xs:extension base=\"xs:anyType\"/>\n" +
+ "\t\t</xs:complexContent>\n" +
+ "\t</xs:complexType>" +
+ org.apache.synapse.config.xml.Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA = Util.getSchema(STR_SCHEMA, TAG_NAME);
/**
* Create a JavaScript mediator
@@ -56,6 +70,15 @@
public QName getTagQName() {
return TAG_NAME;
+ }
+
+ public QName getTagSchemaType() {
+ return new QName(Constants.SYNAPSE_NAMESPACE,
+ getTagQName().getLocalPart() + "_type", "js");
+ }
+
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
}
}
Copied: incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JsonMediator.java (from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ext/json/JsonMediator.java)
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JsonMediator.java?p2=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JsonMediator.java&p1=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ext/json/JsonMediator.java&r1=418981&r2=419435&rev=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ext/json/JsonMediator.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JsonMediator.java Wed Jul 5 21:51:15 2006
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.apache.synapse.mediators.ext.json;
+package org.apache.synapse.mediators.json;
import org.apache.synapse.api.Mediator;
import org.apache.synapse.MessageContext;
Copied: incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JsonMediatorFactory.java (from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/JsonMediatorFactory.java)
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JsonMediatorFactory.java?p2=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JsonMediatorFactory.java&p1=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/JsonMediatorFactory.java&r1=418981&r2=419435&rev=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/JsonMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/json/JsonMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -14,15 +14,19 @@
* limitations under the License.
*/
-package org.apache.synapse.config.xml;
+package org.apache.synapse.mediators.json;
import org.apache.synapse.api.Mediator;
-import org.apache.synapse.mediators.ext.json.JsonMediator;
+import org.apache.synapse.mediators.json.JsonMediator;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.config.xml.Constants;
+import org.apache.synapse.config.xml.MediatorFactory;
+import org.apache.synapse.config.xml.Util;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMAttribute;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ws.commons.schema.XmlSchema;
import javax.xml.namespace.QName;
@@ -34,11 +38,21 @@
* JTX is Json to XML
* XTJ is XML to Json
*/
-public class JsonMediatorFactory implements MediatorFactory{
+public class JsonMediatorFactory implements MediatorFactory {
private static final Log log = LogFactory.getLog(JsonMediatorFactory.class);
- private static final QName tagName = new QName(Constants.SYNAPSE_NAMESPACE+"/json", "json");
+ private static final QName TAG_NAME = new QName(Constants.SYNAPSE_NAMESPACE+"/json", "json");
+
+ private static final String STR_SCHEMA =
+ org.apache.synapse.config.xml.Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"json\" type=\"synapse:json_type\"/>\n" +
+ "\t<xs:complexType name=\"json_type\">\n" +
+ "\t\t<xs:attribute name=\"direction\" type=\"xs:string\"/>" +
+ "\t</xs:complexType>" +
+ org.apache.synapse.config.xml.Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA = Util.getSchema(STR_SCHEMA, TAG_NAME);
public Mediator createMediator(OMElement elem) {
JsonMediator jsonMediator = new JsonMediator();
@@ -52,8 +66,18 @@
}
public QName getTagQName() {
- return tagName;
+ return TAG_NAME;
+ }
+
+ public QName getTagSchemaType() {
+ return new QName(Constants.SYNAPSE_NAMESPACE,
+ getTagQName().getLocalPart() + "_type", "json");
}
+
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
+ }
+
private void handleException(String msg) {
log.error(msg);
throw new SynapseException(msg);
Copied: incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringConfigExtension.java (from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/SpringConfigExtension.java)
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringConfigExtension.java?p2=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringConfigExtension.java&p1=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/SpringConfigExtension.java&r1=418981&r2=419435&rev=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/SpringConfigExtension.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringConfigExtension.java Wed Jul 5 21:51:15 2006
@@ -13,11 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.synapse.config;
+package org.apache.synapse.mediators.spring;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.core.io.FileSystemResource;
+import org.apache.synapse.config.Extension;
/**
* This defines an extension to Synapse to process a Spring Configuration.
Copied: incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringConfigExtensionFactory.java (from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/SpringConfigExtensionFactory.java)
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringConfigExtensionFactory.java?p2=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringConfigExtensionFactory.java&p1=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/SpringConfigExtensionFactory.java&r1=418981&r2=419435&rev=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/SpringConfigExtensionFactory.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringConfigExtensionFactory.java Wed Jul 5 21:51:15 2006
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.synapse.config.xml;
+package org.apache.synapse.mediators.spring;
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
@@ -21,7 +21,9 @@
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
import org.apache.synapse.config.Extension;
-import org.apache.synapse.config.SpringConfigExtension;
+import org.apache.synapse.mediators.spring.SpringConfigExtension;
+import org.apache.synapse.config.xml.Constants;
+import org.apache.synapse.config.xml.ExtensionFactory;
import javax.xml.namespace.QName;
Copied: incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringMediator.java (from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ext/spring/SpringMediator.java)
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringMediator.java?p2=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringMediator.java&p1=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ext/spring/SpringMediator.java&r1=418981&r2=419435&rev=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ext/spring/SpringMediator.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringMediator.java Wed Jul 5 21:51:15 2006
@@ -13,14 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.synapse.mediators.ext.spring;
+package org.apache.synapse.mediators.spring;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.MessageContext;
import org.apache.synapse.SynapseException;
import org.apache.synapse.api.Mediator;
-import org.apache.synapse.config.SpringConfigExtension;
+import org.apache.synapse.mediators.spring.SpringConfigExtension;
import org.springframework.context.ApplicationContext;
/**
Copied: incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringMediatorFactory.java (from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/SpringMediatorFactory.java)
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringMediatorFactory.java?p2=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringMediatorFactory.java&p1=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/SpringMediatorFactory.java&r1=418981&r2=419435&rev=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/SpringMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/spring/SpringMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -1,4 +1,19 @@
-package org.apache.synapse.config.xml;
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.synapse.mediators.spring;
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
@@ -6,8 +21,12 @@
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
import org.apache.synapse.api.Mediator;
-import org.apache.synapse.config.SpringConfigExtension;
-import org.apache.synapse.mediators.ext.spring.SpringMediator;
+import org.apache.synapse.mediators.spring.SpringConfigExtension;
+import org.apache.synapse.config.xml.Constants;
+import org.apache.synapse.config.xml.MediatorFactory;
+import org.apache.synapse.config.xml.Util;
+import org.apache.synapse.mediators.spring.SpringMediator;
+import org.apache.ws.commons.schema.XmlSchema;
import javax.xml.namespace.QName;
@@ -22,7 +41,19 @@
private static final Log log = LogFactory.getLog(SpringMediatorFactory.class);
- private static final QName tagName = new QName(Constants.SYNAPSE_NAMESPACE, "spring");
+ private static final QName TAG_NAME = new QName(Constants.SYNAPSE_NAMESPACE + "/spring", "spring");
+
+ private static final String STR_SCHEMA =
+ org.apache.synapse.config.xml.Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"spring\" type=\"synapse:spring_type\"/>\n" +
+ "\t<xs:complexType name=\"spring_type\">\n" +
+ "\t\t<xs:attribute name=\"bean\" type=\"xs:string\" use=\"required\"/>\n" +
+ "\t\t<xs:attribute name=\"config\" type=\"xs:string\"/>\n" +
+ "\t\t<xs:attribute name=\"src\" type=\"xs:string\"/>\n" +
+ "\t</xs:complexType>" +
+ org.apache.synapse.config.xml.Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA = Util.getSchema(STR_SCHEMA, TAG_NAME);
/**
* Create a Spring mediator instance referring to the bean and configuration given
@@ -65,7 +96,15 @@
}
public QName getTagQName() {
- return tagName;
+ return TAG_NAME;
}
+ public QName getTagSchemaType() {
+ return new QName(Constants.SYNAPSE_NAMESPACE,
+ getTagQName().getLocalPart() + "_type", "spring");
+ }
+
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
+ }
}
Modified: incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/transform/TransformMediator.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/transform/TransformMediator.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/transform/TransformMediator.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/transform/TransformMediator.java Wed Jul 5 21:51:15 2006
@@ -1,5 +1,19 @@
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package org.apache.synapse.mediators.transform;
-
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMContainer;
Copied: incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/transform/TransformMediatorFactory.java (from r418981, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/TransformMediatorFactory.java)
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/transform/TransformMediatorFactory.java?p2=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/transform/TransformMediatorFactory.java&p1=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/TransformMediatorFactory.java&r1=418981&r2=419435&rev=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/TransformMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/transform/TransformMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -13,17 +13,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.synapse.config.xml;
+package org.apache.synapse.mediators.transform;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.synapse.SynapseException;
import org.apache.synapse.Util;
+import org.apache.synapse.config.xml.Constants;
+import org.apache.synapse.config.xml.AbstractMediatorFactory;
+import org.apache.synapse.config.xml.MediatorPropertyFactory;
import org.apache.synapse.mediators.transform.TransformMediator;
import org.apache.synapse.api.Mediator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ws.commons.schema.XmlSchema;
import org.jaxen.JaxenException;
import javax.xml.namespace.QName;
@@ -42,10 +46,25 @@
public class TransformMediatorFactory extends AbstractMediatorFactory {
private static final Log log = LogFactory.getLog(TransformMediatorFactory.class);
- private static final QName LOG_Q = new QName(Constants.SYNAPSE_NAMESPACE, "transform");
+ private static final QName TAG_NAME = new QName(Constants.SYNAPSE_NAMESPACE, "transform");
+
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"transform\" type=\"transform_type\"/>\n" +
+ "\t<xs:complexType name=\"transform_type\">\n" +
+ "\t\t<xs:sequence minOccurs=\"0\" maxOccurs=\"unbounded\">\n" +
+ "\t\t\t<xs:element name=\"property\" type=\"synapse:property_type\"/>\n" +
+ "\t\t</xs:sequence>\n" +
+ "\t\t<xs:attribute name=\"xslt\" type=\"xs:string\" use=\"required\"/>\n" +
+ "\t\t<xs:attribute name=\"source\" type=\"xs:string\"/>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA =
+ org.apache.synapse.config.xml.Util.getSchema(STR_SCHEMA, TAG_NAME);
public QName getTagQName() {
- return LOG_Q;
+ return TAG_NAME;
}
public Mediator createMediator(OMElement elem) {
@@ -93,9 +112,13 @@
}
}
- transformMediator.addAllProperties(MediatorPropertyFactory.getMediatorProperties(elem));
+ transformMediator.addAllProperties(
+ MediatorPropertyFactory.getMediatorProperties(elem));
return transformMediator;
}
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
+ }
}
Copied: incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/validate/ValidateMediator.java (from r418995, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ValidateMediator.java)
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/validate/ValidateMediator.java?p2=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/validate/ValidateMediator.java&p1=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ValidateMediator.java&r1=418995&r2=419435&rev=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/ValidateMediator.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/validate/ValidateMediator.java Wed Jul 5 21:51:15 2006
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.synapse.mediators;
+package org.apache.synapse.mediators.validate;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMNamespace;
@@ -26,6 +26,7 @@
import org.apache.synapse.MessageContext;
import org.apache.synapse.SynapseException;
import org.apache.synapse.mediators.AbstractListMediator;
+import org.apache.synapse.mediators.MediatorProperty;
import org.jaxen.JaxenException;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
Copied: incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/validate/ValidateMediatorFactory.java (from r418995, incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/ValidateMediatorFactory.java)
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/validate/ValidateMediatorFactory.java?p2=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/validate/ValidateMediatorFactory.java&p1=incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/ValidateMediatorFactory.java&r1=418995&r2=419435&rev=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/config/xml/ValidateMediatorFactory.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/src/org/apache/synapse/mediators/validate/ValidateMediatorFactory.java Wed Jul 5 21:51:15 2006
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.synapse.config.xml;
+package org.apache.synapse.mediators.validate;
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
@@ -22,8 +22,12 @@
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
import org.apache.synapse.Util;
+import org.apache.synapse.config.xml.AbstractListMediatorFactory;
+import org.apache.synapse.config.xml.Constants;
+import org.apache.synapse.config.xml.MediatorPropertyFactory;
import org.apache.synapse.api.Mediator;
-import org.apache.synapse.mediators.ValidateMediator;
+import org.apache.synapse.mediators.validate.ValidateMediator;
+import org.apache.ws.commons.schema.XmlSchema;
import org.jaxen.JaxenException;
import java.util.Iterator;
@@ -41,13 +45,35 @@
*/
public class ValidateMediatorFactory extends AbstractListMediatorFactory {
- private static final Log log = LogFactory.getLog(TransformMediatorFactory.class);
+ private static final Log log = LogFactory.getLog(ValidateMediatorFactory.class);
private static final QName VALIDATE_Q = new QName(Constants.SYNAPSE_NAMESPACE, "validate");
private static final QName ON_FAIL_Q = new QName(Constants.SYNAPSE_NAMESPACE, "on-fail");
private static final QName SCHEMA_Q = new QName(Constants.NULL_NAMESPACE, "schema");
private static final QName SOURCE_Q = new QName(Constants.NULL_NAMESPACE, "source");
+ private static final String STR_SCHEMA =
+ Constants.SCHEMA_PROLOG +
+ "\t<xs:element name=\"validate\" type=\"validate_type\"/>\n" +
+ "\t<xs:complexType name=\"validate_type\">\n" +
+ "\t\t<xs:sequence minOccurs=\"0\" maxOccurs=\"unbounded\">\n" +
+ "\t\t\t<xs:element name=\"property\" type=\"synapse:property_type\"/>\n" +
+ "\t\t</xs:sequence>\n" +
+ "\t\t<xs:element name=\"on-fail\" type=\"on-fail_type\"/>" +
+ "\t\t<xs:attribute name=\"url\" type=\"xs:string\" use=\"required\"/>\n" +
+ "\t\t<xs:attribute name=\"source\" type=\"xs:string\"/>\n" +
+ "\t</xs:complexType>" +
+ "\t<xs:complexType name=\"on-fail_type\">\n" +
+ "\t\t<xs:complexContent>\n" +
+ "\t\t\t<xs:extension base=\"synapse:mediator_type\"/>\n" +
+ "\t\t</xs:complexContent>\n" +
+ "\t</xs:complexType>" +
+ Constants.SCHEMA_EPILOG;
+
+ private static final XmlSchema SCHEMA =
+ org.apache.synapse.config.xml.Util.getSchema(STR_SCHEMA, VALIDATE_Q);
+
+
public Mediator createMediator(OMElement elem) {
ValidateMediator validateMediator = new ValidateMediator();
@@ -88,12 +114,17 @@
throw new SynapseException(msg);
}
- validateMediator.addAllProperties(MediatorPropertyFactory.getMediatorProperties(elem));
+ validateMediator.addAllProperties(
+ MediatorPropertyFactory.getMediatorProperties(elem));
return validateMediator;
}
public QName getTagQName() {
return VALIDATE_Q;
+ }
+
+ public XmlSchema getTagSchema() {
+ return SCHEMA;
}
}
Modified: incubator/synapse/trunk/java/modules/extensions/test/org/apache/synapse/ValidateMediatorTest.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/test/org/apache/synapse/ValidateMediatorTest.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/test/org/apache/synapse/ValidateMediatorTest.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/test/org/apache/synapse/ValidateMediatorTest.java Wed Jul 5 21:51:15 2006
@@ -25,8 +25,8 @@
import org.apache.synapse.TestMediateHandler;
import org.apache.synapse.TestMediator;
import org.apache.synapse.mediators.TestUtils;
-import org.apache.synapse.mediators.ValidateMediator;
-import org.apache.synapse.config.xml.ValidateMediatorFactory;
+import org.apache.synapse.mediators.validate.ValidateMediator;
+import org.apache.synapse.mediators.validate.ValidateMediatorFactory;
public class ValidateMediatorTest extends TestCase {
Modified: incubator/synapse/trunk/java/modules/extensions/test/org/apache/synapse/json/JsonMediatorTest.java
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/modules/extensions/test/org/apache/synapse/json/JsonMediatorTest.java?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/modules/extensions/test/org/apache/synapse/json/JsonMediatorTest.java (original)
+++ incubator/synapse/trunk/java/modules/extensions/test/org/apache/synapse/json/JsonMediatorTest.java Wed Jul 5 21:51:15 2006
@@ -1,7 +1,7 @@
package org.apache.synapse.json;
import junit.framework.TestCase;
-import org.apache.synapse.mediators.ext.json.JsonMediator;
+import org.apache.synapse.mediators.json.JsonMediator;
import org.apache.synapse.MessageContext;
import org.apache.synapse.mediators.TestUtils;
import org.apache.synapse.core.axis2.Axis2MessageContext;
Modified: incubator/synapse/trunk/java/repository/conf/sample/synapse_spring_unittest.xml
URL: http://svn.apache.org/viewvc/incubator/synapse/trunk/java/repository/conf/sample/synapse_spring_unittest.xml?rev=419435&r1=419434&r2=419435&view=diff
==============================================================================
--- incubator/synapse/trunk/java/repository/conf/sample/synapse_spring_unittest.xml (original)
+++ incubator/synapse/trunk/java/repository/conf/sample/synapse_spring_unittest.xml Wed Jul 5 21:51:15 2006
@@ -5,8 +5,8 @@
</definitions>
<rules>
- <spring bean="springtest" config="springconfig"/>
- <spring bean="springtest" src="./../../repository/conf/sample/springsample.xml"/>
+ <spring:spring bean="springtest" config="springconfig"/>
+ <spring:spring bean="springtest" src="./../../repository/conf/sample/springsample.xml"/>
</rules>
</synapse>
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org