Author: thorsten
Date: Wed Sep 10 06:10:42 2008
New Revision: 693830
URL: http://svn.apache.org/viewvc?rev=693830&view=rev
Log:
Adding downward compatibility properties to the API
Modified:
forrest/trunk/whiteboard/dispatcher/java/org/apache/forrest/dispatcher/api/Contract.java
Modified:
forrest/trunk/whiteboard/dispatcher/java/org/apache/forrest/dispatcher/api/Contract.java
URL:
http://svn.apache.org/viewvc/forrest/trunk/whiteboard/dispatcher/java/org/apache/forrest/dispatcher/api/Contract.java?rev=693830&r1=693829&r2=693830&view=diff
==============================================================================
---
forrest/trunk/whiteboard/dispatcher/java/org/apache/forrest/dispatcher/api/Contract.java
(original)
+++
forrest/trunk/whiteboard/dispatcher/java/org/apache/forrest/dispatcher/api/Contract.java
Wed Sep 10 06:10:42 2008
@@ -20,16 +20,49 @@
import java.io.OutputStream;
import java.util.HashMap;
+import org.apache.forrest.dispatcher.DispatcherException;
+
public interface Contract {
+
+ /**
+ * To maintain downwards compatibility with former version of the dispatcher,
+ * you can allow xml in the properties. However be aware that setting this
+ * properties to true will have negative influence on performance since this
+ * feature needs to use DOM parsing!
+ *
+ * We strongly recommend to rewrite your contracts and structurer to use
+ * simple string for the properties.
+ *
+ * @return whether we allow xml in the properties configuration of the
+ * contract.
+ */
+ boolean isAllowXmlProperties();
+
+ /**
+ * To maintain downwards compatibility with former version of the dispatcher,
+ * you can allow xml in the properties. However be aware that setting this
+ * properties to true will have negative influence on performance since this
+ * feature needs to use DOM parsing!
+ *
+ * We strongly recommend to rewrite your contracts and structurer to use
+ * simple string for the properties and set this properties to false.
+ *
+ * @param allowXmlProperties
+ * whether we allow xml in the properties configuration of the
+ * contract.
+ */
+ void setAllowXmlProperties(boolean allowXmlProperties);
+
/**
* Some contracts are based on text based files. Best known example are the
- * xsl contracts as the first implementation.
+ * xsl contracts as the first implementation. This method sets the xslSource,
+ * name, destribition and usage information of the contract.
*
* @param stream
* that contains all information of the contract as description,
* name, usage, ...
*/
- void initializeFromStream(InputStream stream);
+ void initializeFromStream(InputStream stream) throws DispatcherException;
/**
* Execute the contract with the given DataStream. The dataStream serves as
@@ -42,8 +75,10 @@
* the parameter that configure the contract (customizing it)
* @return the resulting transformation of the dataStream with the given
* properties.
+ * @throws DispatcherException
*/
- OutputStream execute(InputStream dataStream, HashMap properties);
+ OutputStream execute(InputStream dataStream, HashMap properties)
+ throws DispatcherException;
/**
* @return the name of the contract