vgritsenko 2002/09/20 19:13:21 Modified: src/java/org/apache/cocoon/components/language/generator Tag: cocoon_2_0_3_branch ProgramGenerator.java ProgramGeneratorImpl.java Log: Load programs from the Source, not from the 'File' (it's not file really, it's a source). Deprecate previous method. Revision Changes Path No revision No revision 1.7.2.1 +33 -3 xml-cocoon2/src/java/org/apache/cocoon/components/language/generator/ProgramGenerator.java Index: ProgramGenerator.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/generator/ProgramGenerator.java,v retrieving revision 1.7 retrieving revision 1.7.2.1 diff -u -r1.7 -r1.7.2.1 --- ProgramGenerator.java 22 Feb 2002 07:00:07 -0000 1.7 +++ ProgramGenerator.java 21 Sep 2002 02:13:20 -0000 1.7.2.1 @@ -54,6 +54,7 @@ import org.apache.avalon.framework.component.ComponentManager; import org.apache.cocoon.environment.SourceResolver; +import org.apache.cocoon.environment.Source; /** * This interface defines a loader for programs automatically built from XML @@ -78,6 +79,7 @@ * the program must be written * @return The loaded object * @exception Exception If an error occurs during generation or loading + * @deprecated Pass Source object instead of file name. */ CompiledComponent load( ComponentManager newManager, @@ -87,10 +89,38 @@ SourceResolver resolver) throws Exception; /** - * Release a program built from an XML document written in a + * Load a program built from an XML document written in a + * <code>MarkupLanguage</code> + * + * @param newManager The ComponentManager that it will be loaded with + * @param source The input document's <code>File</code> name + * @param markupLanguage The <code>MarkupLanguage</code> in which the input + * document is written + * @param programmingLanguage The <code>ProgrammingLanguage</code> in which + * the program must be written + * @return The loaded object + * @exception Exception If an error occurs during generation or loading + */ + CompiledComponent load( + ComponentManager newManager, + Source source, + String markupLanguage, + String programmingLanguage, + SourceResolver resolver) throws Exception; + + /** + * Release a program instance built from an XML document written in a * <code>MarkupLanguage</code>. * - * @param CompiledSheet + * @param component to be released. */ void release(CompiledComponent component); + + /** + * Remove a program from the generator's cache and dipose all + * instances of this program. + * + * @param source of the program to be removed. + */ + void remove(Source source); } 1.15.2.4 +35 -3 xml-cocoon2/src/java/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java Index: ProgramGeneratorImpl.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java,v retrieving revision 1.15.2.3 retrieving revision 1.15.2.4 diff -u -r1.15.2.3 -r1.15.2.4 --- ProgramGeneratorImpl.java 11 Sep 2002 12:43:58 -0000 1.15.2.3 +++ ProgramGeneratorImpl.java 21 Sep 2002 02:13:20 -0000 1.15.2.4 @@ -195,8 +195,7 @@ // VG: File is located outside of contextDir, using systemId contextFilename.append(systemId); } - String normalizedName = IOUtils.normalizedFilename(contextFilename.toString()); - return normalizedName; + return IOUtils.normalizedFilename(contextFilename.toString()); } /** @@ -216,6 +215,25 @@ throws Exception { final Source source = resolver.resolve(fileName); + return load(newManager, source, markupLanguageName, programmingLanguageName, resolver); + } + + /** + * Load a program built from an XML document written in a <code>MarkupLanguage</code> + * + * @param source The input document's <code>File</code> + * @param markupLanguageName The <code>MarkupLanguage</code> in which the input document is written + * @param programmingLanguageName The <code>ProgrammingLanguage</code> in which the program must be written + * @return The loaded program instance + * @exception Exception If an error occurs during generation or loading + */ + public CompiledComponent load(ComponentManager newManager, + Source source, + String markupLanguageName, + String programmingLanguageName, + SourceResolver resolver) + throws Exception { + final String id = source.getSystemId(); ProgrammingLanguage programmingLanguage = null; @@ -402,8 +420,22 @@ return program; } + /** + * Releases the program instance. + * @param component program instance to be released + */ public void release(CompiledComponent component) { this.cache.release(component); + } + + /** + * Removes named program from the program generator's cache. + * Disposes all created instances of the program. + * @param source of the program to be removed + */ + public void remove(Source source) { + final String normalizedName = getNormalizedName(source.getSystemId()); + this.cache.removeGenerator(normalizedName); } /**
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]