Author: thorsten
Date: Fri Aug 11 00:10:20 2006
New Revision: 430701

URL: http://svn.apache.org/viewvc?rev=430701&view=rev
Log:
Moving the request/generation of the properties out of the contract 
implementation bean since it will not change for one structurer file. The 
properties will be now generated once per structurer instead of x times for x 
contracts. This reduces the processing load quite a bit.

Modified:
    
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/ContractBeanDOMImpl.java
    
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java

Modified: 
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/ContractBeanDOMImpl.java
URL: 
http://svn.apache.org/viewvc/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/ContractBeanDOMImpl.java?rev=430701&r1=430700&r2=430701&view=diff
==============================================================================
--- 
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/ContractBeanDOMImpl.java
 (original)
+++ 
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/ContractBeanDOMImpl.java
 Fri Aug 11 00:10:20 2006
@@ -115,6 +115,8 @@
 
     private URIResolver m_uriResolver;
 
+    private Object defaultVariables;
+
     /**
      * The ContractBean contains all fields to work with contracts. It is a
      * helper bean.
@@ -126,14 +128,16 @@
      * 
      * @param manager
      * @param parameterHelper
+     * @param defaultProperties 
      * @throws ParserConfigurationException
      */
-    public ContractBeanDOMImpl(ServiceManager manager, HashMap 
parameterHelper,URIResolver uriResolver)
+    public ContractBeanDOMImpl(ServiceManager manager, HashMap 
parameterHelper,Document defaultProperties, URIResolver uriResolver)
             throws ParserConfigurationException {
         m_uriResolver=uriResolver;
         this.manager = manager;
         dispatcherHelper = new DispatcherHelper(manager);
         this.parameterHelper = parameterHelper;
+        this.defaultVariables=defaultProperties;
     }
 
     /*
@@ -252,12 +256,8 @@
                      */
                     // default forrest properties
                     Transformer transformer = cachedXSLT.newTransformer();
-                    String request= (String) 
parameterHelper.get(DispatcherTransformer.DISPATCHER_REQUEST_ATTRIBUTE);
-                    String propertyURI= "cocoon://"+request+".props";
-                    Node defaultVariables = 
org.apache.forrest.dispatcher.util.SourceUtil
-                            .readDOM(propertyURI, this.manager);
                     transformer.setParameter("defaultVariables",
-                            defaultVariables);
+                            this.defaultVariables);
                     transformer.setOutputProperty(
                             OutputKeys.OMIT_XML_DECLARATION, "yes");
                     transformer.setOutputProperty(OutputKeys.INDENT, "yes");

Modified: 
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java
URL: 
http://svn.apache.org/viewvc/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java?rev=430701&r1=430700&r2=430701&view=diff
==============================================================================
--- 
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java
 (original)
+++ 
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/transformation/DispatcherTransformer.java
 Fri Aug 11 00:10:20 2006
@@ -23,6 +23,7 @@
 import java.util.Iterator;
 import java.util.Map;
 
+import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.URIResolver;
@@ -193,6 +194,8 @@
 
     private String requestId;
 
+    private Document defaultProperties;
+
     public static final String HOOKS_TRANSFORMER_PARAMETER = 
"hooksTransformer";
 
     public static final String PATH_PARAMETER = "path";
@@ -292,6 +295,16 @@
             getLogger().error(error);
             throw new ProcessingException(error);
         }
+        String propertyURI= "cocoon://"+requestId+".props";
+        try {
+            this.defaultProperties = 
org.apache.forrest.dispatcher.util.SourceUtil
+            .readDOM(propertyURI, this.manager);
+        } catch (Exception e1) {
+            String error = "dispatcherError:\n"
+                + "Could not get the properties for "+propertyURI;
+        getLogger().error(error);
+        throw new ProcessingException(error);
+        }
         parameterHelper.put(DISPATCHER_REQUEST_ATTRIBUTE, requestId);
         this.requestedFormat = parameters.getParameter(
                 STRUCTURER_FORMAT_ATTRIBUTE, null);
@@ -620,9 +633,10 @@
         try {
             if (contract == null)
                 contract = new ContractBeanDOMImpl(this.manager,
-                        parameterHelper,(URIResolver)this);
-            else
-                contract.initialize();
+                        parameterHelper,defaultProperties,(URIResolver)this);
+            // This is not needed since the manager did not change.
+            //else
+              //  contract.initialize();
         } catch (Exception e) {
             String error = DispatcherException.ERROR_500 + "\n"
                     + "component: ContractBean" + "\n"