El vie, 11-08-2006 a las 09:42 +0200, Cyriaque Dupoirieux escribió: > Excellent, >
jeje, I knew you would like it. ;) > These kind of improvement are very important. Very much agree. > We need to have an overview of what is done by each component to be able > to improve the code quality and the performance. > (Actually, we need a design dossier ;-) ) Agree, I have not looked at the code for a while and spotted this one because I debugged the ModuleGenerator. Can you start something? salu2 > > Salutations, > Cyriaque, > > le 11/08/2006 09:10 [EMAIL PROTECTED] a écrit : > > 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" > > > > > > > > -- Thorsten Scherler COO Spain Wyona Inc. - Open Source Content Management - Apache Lenya http://www.wyona.com http://lenya.apache.org [EMAIL PROTECTED] [EMAIL PROTECTED]
