dims 01/04/12 05:30:36
Modified: src/org/apache/cocoon Tag: xml-cocoon2 Cocoon.java
src/org/apache/cocoon/components/language/markup Tag:
xml-cocoon2 AbstractMarkupLanguage.java
src/org/apache/cocoon/components/language/markup/xsp/java
Tag: xml-cocoon2 util.xsl
src/org/apache/cocoon/components/pipeline Tag: xml-cocoon2
AbstractEventPipeline.java
NonCachingStreamPipeline.java
src/org/apache/cocoon/generation Tag: xml-cocoon2
DirectoryGenerator.java HTMLGenerator.java
PhpGenerator.java ScriptGenerator.java
VelocityGenerator.java
src/org/apache/cocoon/reading Tag: xml-cocoon2
ResourceReader.java
src/org/apache/cocoon/sitemap Tag: xml-cocoon2 Handler.java
src/org/apache/cocoon/transformation Tag: xml-cocoon2
I18nTransformer.java XIncludeTransformer.java
XTTransformer.java
Log:
Cleaning up manager.lookup/manager.release for Components.
Revision Changes Path
No revision
No revision
1.4.2.71 +25 -17 xml-cocoon/src/org/apache/cocoon/Cocoon.java
Index: Cocoon.java
===================================================================
RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/Cocoon.java,v
retrieving revision 1.4.2.70
retrieving revision 1.4.2.71
diff -u -r1.4.2.70 -r1.4.2.71
--- Cocoon.java 2001/04/11 15:51:38 1.4.2.70
+++ Cocoon.java 2001/04/12 12:30:32 1.4.2.71
@@ -50,7 +50,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a>
(Apache Software Foundation, Exoffice Technologies)
* @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
- * @version CVS $Revision: 1.4.2.70 $ $Date: 2001/04/11 15:51:38 $
+ * @version CVS $Revision: 1.4.2.71 $ $Date: 2001/04/12 12:30:32 $
*/
public class Cocoon extends AbstractLoggable implements Component,
Initializable, Disposable, Modifiable, Processor, Contextualizable {
/** The application context */
@@ -249,14 +249,16 @@
*/
public void generateSitemap(Environment environment)
throws Exception {
- URLFactory urlFactory = (URLFactory)
this.componentManager.lookup(Roles.URL_FACTORY);
- File sourceFile = new
File(urlFactory.getURL(environment.resolveEntity(null,
sitemapFileName).getSystemId()).getFile());
- String markupLanguage = "sitemap";
- String programmingLanguage = "java";
-
- getLogger().debug("Sitemap regeneration begin:" + sitemapFileName);
+ ProgramGenerator programGenerator = null;
+ URLFactory urlFactory = null;
try {
- ProgramGenerator programGenerator = (ProgramGenerator)
this.componentManager.lookup(Roles.PROGRAM_GENERATOR);
+ programGenerator = (ProgramGenerator)
this.componentManager.lookup(Roles.PROGRAM_GENERATOR);
+ urlFactory = (URLFactory)
this.componentManager.lookup(Roles.URL_FACTORY);
+ File sourceFile = new
File(urlFactory.getURL(environment.resolveEntity(null,
sitemapFileName).getSystemId()).getFile());
+ String markupLanguage = "sitemap";
+ String programmingLanguage = "java";
+
+ getLogger().debug("Sitemap regeneration begin:" +
sitemapFileName);
CompiledComponent smap = (CompiledComponent)
programGenerator.load(sourceFile, markupLanguage, programmingLanguage,
environment);
getLogger().debug("Sitemap regeneration complete");
@@ -265,11 +267,12 @@
} else {
getLogger().debug("Main: No errors, but the sitemap has not
been set.");
}
-
- this.componentManager.release((Component) programGenerator);
} catch (Exception e) {
getLogger().error("Main: Error compiling sitemap", e);
throw e;
+ } finally {
+ if (programGenerator != null)
this.componentManager.release((Component) programGenerator);
+ if (urlFactory != null)
this.componentManager.release((Component) urlFactory);
}
}
@@ -278,15 +281,17 @@
*/
public void generateXSP(String fileName, Environment environment)
throws Exception {
- getLogger().debug("XSP generation begin:" + fileName);
+ ProgramGenerator programGenerator = null;
+ URLFactory urlFactory = null;
+ try {
+ getLogger().debug("XSP generation begin:" + fileName);
- URLFactory urlFactory = (URLFactory)
this.componentManager.lookup(Roles.URL_FACTORY);
- File sourceFile = new
File(urlFactory.getURL(environment.resolveEntity(null,
fileName).getSystemId()).getFile());
- String markupLanguage = "xsp";
- String programmingLanguage = "java";
+ programGenerator = (ProgramGenerator)
this.componentManager.lookup(Roles.PROGRAM_GENERATOR);
+ urlFactory = (URLFactory)
this.componentManager.lookup(Roles.URL_FACTORY);
+ File sourceFile = new
File(urlFactory.getURL(environment.resolveEntity(null,
fileName).getSystemId()).getFile());
+ String markupLanguage = "xsp";
+ String programmingLanguage = "java";
- try {
- ProgramGenerator programGenerator = (ProgramGenerator)
this.componentManager.lookup(Roles.PROGRAM_GENERATOR);
CompiledComponent xsp = (CompiledComponent)
programGenerator.load(sourceFile, markupLanguage, programmingLanguage,
environment);
getLogger().debug("XSP generation complete:" + xsp);
@@ -294,6 +299,9 @@
} catch (Exception e) {
getLogger().error("Main: Error compiling XSP", e);
throw e;
+ } finally {
+ if (programGenerator != null)
this.componentManager.release((Component) programGenerator);
+ if (urlFactory != null)
this.componentManager.release((Component) urlFactory);
}
}
}
No revision
No revision
1.1.2.30 +16 -9
xml-cocoon/src/org/apache/cocoon/components/language/markup/Attic/AbstractMarkupLanguage.java
Index: AbstractMarkupLanguage.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/components/language/markup/Attic/AbstractMarkupLanguage.java,v
retrieving revision 1.1.2.29
retrieving revision 1.1.2.30
diff -u -r1.1.2.29 -r1.1.2.30
--- AbstractMarkupLanguage.java 2001/04/02 20:18:45 1.1.2.29
+++ AbstractMarkupLanguage.java 2001/04/12 12:30:33 1.1.2.30
@@ -47,7 +47,7 @@
* Base implementation of <code>MarkupLanguage</code>. This class uses
* logicsheets as the only means of code generation. Code generation should
be decoupled from this context!!!
* @author <a href="mailto:[EMAIL PROTECTED]">Ricardo Rocha</a>
- * @version CVS $Revision: 1.1.2.29 $ $Date: 2001/04/02 20:18:45 $
+ * @version CVS $Revision: 1.1.2.30 $ $Date: 2001/04/12 12:30:33 $
*/
public abstract class AbstractMarkupLanguage extends AbstractLoggable
implements MarkupLanguage, Composer, Configurable {
/** The supported language table */
@@ -163,11 +163,16 @@
logicsheet.setLogger(getLogger());
}
- URLFactory urlFactory = (URLFactory)
this.manager.lookup(Roles.URL_FACTORY);
-
- logicsheetURL = urlFactory.getURL(logicsheetLocation);
-
- this.manager.release((Component) urlFactory);
+ URLFactory urlFactory = null;
+ try {
+ urlFactory = (URLFactory) this.manager.lookup(Roles.URL_FACTORY);
+ logicsheetURL = urlFactory.getURL(logicsheetLocation);
+ } catch (Exception e){
+ getLogger().warn("URL Error: " + e.getMessage(), e);
+ throw e;
+ } finally {
+ if (urlFactory!=null) this.manager.release((Component)
urlFactory);
+ }
logicsheet.setInputSource(new
InputSource(logicsheetURL.openStream()));
@@ -278,13 +283,15 @@
}
URL url = null;
+ URLFactory urlFactory = null;
try {
- Component urlFactory =
this.manager.lookup(Roles.URL_FACTORY);
- url = ((URLFactory) urlFactory).getURL(logicsheetLocation);
- this.manager.release(urlFactory);
+ urlFactory =
(URLFactory)this.manager.lookup(Roles.URL_FACTORY);
+ url = urlFactory.getURL(logicsheetLocation);
} catch (Exception e) {
getLogger().error("cannot get logicsheet at " +
logicsheetLocation);
new SAXException ("cannot get logicsheet at " +
logicsheetLocation, e);
+ } finally {
+ if(urlFactory != null)
this.manager.release((Component)urlFactory);
}
getLogger().debug("Logicsheet Used:" + url.toExternalForm());
inputSource = new InputSource(url.openStream());
No revision
No revision
1.1.2.9 +4 -4
xml-cocoon/src/org/apache/cocoon/components/language/markup/xsp/java/Attic/util.xsl
Index: util.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/components/language/markup/xsp/java/Attic/util.xsl,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -r1.1.2.8 -r1.1.2.9
--- util.xsl 2001/03/23 19:38:12 1.1.2.8
+++ util.xsl 2001/04/12 12:30:33 1.1.2.9
@@ -146,8 +146,8 @@
} catch (Exception e) {
getLogger().error("Could not include page", e);
} finally {
- this.manager.release((Component) factory);
- this.manager.release((Component) newParser);
+ if (factory != null) this.manager.release((Component) factory);
+ if (newParser != null) this.manager.release((Component)
newParser);
}
}
} </xsp:logic>
@@ -185,7 +185,7 @@
} catch (Exception e) {
getLogger().error("Could not include page", e);
} finally {
- this.manager.release((Component) newParser);
+ if (newParser != null) this.manager.release((Component)
newParser);
}
}
</xsp:logic>
@@ -219,7 +219,7 @@
} catch (Exception e) {
getLogger().error("Could not include page", e);
} finally {
- this.manager.release((Component) newParser);
+ if (newParser != null) this.manager.release((Component)
newParser);
}
}
</xsp:logic>
No revision
No revision
1.1.2.2 +5 -1
xml-cocoon/src/org/apache/cocoon/components/pipeline/Attic/AbstractEventPipeline.java
Index: AbstractEventPipeline.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/components/pipeline/Attic/AbstractEventPipeline.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- AbstractEventPipeline.java 2001/04/11 10:52:31 1.1.2.1
+++ AbstractEventPipeline.java 2001/04/12 12:30:34 1.1.2.2
@@ -37,7 +37,7 @@
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
* @author <a href="mailto:[EMAIL PROTECTED] Ziegeler">Carsten Ziegeler</a>
- * @version CVS $Revision: 1.1.2.1 $ $Date: 2001/04/11 10:52:31 $
+ * @version CVS $Revision: 1.1.2.2 $ $Date: 2001/04/12 12:30:34 $
*/
public abstract class AbstractEventPipeline
extends AbstractXMLProducer
@@ -77,6 +77,7 @@
}
ComponentSelector selector = (ComponentSelector)
this.manager.lookup(Roles.GENERATORS);
this.generator = (Generator) selector.select(role);
+ this.manager.release((Component)selector);
this.generatorSource = source;
this.generatorParam = param;
}
@@ -85,6 +86,7 @@
throws Exception {
ComponentSelector selector = (ComponentSelector)
this.manager.lookup(Roles.TRANSFORMERS);
this.transformers.add ((Transformer)selector.select(role));
+ this.manager.release((Component)selector);
this.transformerSources.add (source);
this.transformerParams.add (param);
}
@@ -240,6 +242,8 @@
while ( itt.hasNext() ) {
transformerSelector.release((Component)itt.next());
}
+ this.manager.release((Component)transformerSelector);
+
this.transformers.clear();
this.transformerParams.clear();
this.transformerSources.clear();
1.1.2.3 +4 -1
xml-cocoon/src/org/apache/cocoon/components/pipeline/Attic/NonCachingStreamPipeline.java
Index: NonCachingStreamPipeline.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/components/pipeline/Attic/NonCachingStreamPipeline.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- NonCachingStreamPipeline.java 2001/04/11 12:41:21 1.1.2.2
+++ NonCachingStreamPipeline.java 2001/04/12 12:30:34 1.1.2.3
@@ -10,6 +10,7 @@
import java.io.IOException;
import java.io.OutputStream;
+import org.apache.avalon.Component;
import org.apache.avalon.ComponentManager;
import org.apache.avalon.component.ComponentException;
import org.apache.avalon.ComponentSelector;
@@ -36,7 +37,7 @@
* resource
* </UL>
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
- * @version CVS $Revision: 1.1.2.2 $ $Date: 2001/04/11 12:41:21 $
+ * @version CVS $Revision: 1.1.2.3 $ $Date: 2001/04/12 12:30:34 $
*/
public class NonCachingStreamPipeline extends AbstractLoggable implements
StreamPipeline {
private EventPipeline eventPipeline;
@@ -102,6 +103,7 @@
this.readerParam = param;
this.readerMimeType = mimeType;
this.sitemapReaderMimeType = selector.getMimeTypeForRole(role);
+ this.manager.release((Component)selector);
}
public void setSerializer (String role, String source, Parameters param)
@@ -120,6 +122,7 @@
this.serializerParam = param;
this.serializerMimeType = mimeType;
this.sitemapSerializerMimeType = selector.getMimeTypeForRole(role);
+ this.manager.release((Component)selector);
}
public void addTransformer (String role, String source, Parameters
param) throws Exception {
No revision
No revision
1.1.2.22 +14 -9
xml-cocoon/src/org/apache/cocoon/generation/Attic/DirectoryGenerator.java
Index: DirectoryGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/generation/Attic/DirectoryGenerator.java,v
retrieving revision 1.1.2.21
retrieving revision 1.1.2.22
diff -u -r1.1.2.21 -r1.1.2.22
--- DirectoryGenerator.java 2001/03/19 21:20:32 1.1.2.21
+++ DirectoryGenerator.java 2001/04/12 12:30:34 1.1.2.22
@@ -21,6 +21,7 @@
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
+import org.apache.avalon.Component;
import org.apache.avalon.configuration.Parameters;
import org.apache.avalon.Poolable;
@@ -67,7 +68,7 @@
* (Apache Software Foundation, Exoffice Technologies)
* @author <a href="mailto:[EMAIL PROTECTED]">Conny Krappatsch</a>
* (SMB GmbH) for Virbus AG
- * @version CVS $Revision: 1.1.2.21 $ $Date: 2001/03/19 21:20:32 $ */
+ * @version CVS $Revision: 1.1.2.22 $ $Date: 2001/04/12 12:30:34 $ */
public class DirectoryGenerator extends ComposerGenerator implements
Poolable {
@@ -185,15 +186,19 @@
File path;
input = resolver.resolveEntity(null,super.source);
- try {
- url =
((URLFactory)manager.lookup(Roles.URL_FACTORY)).getURL(input.getSystemId());
- } catch (Exception e) {
- getLogger().error("cannot obtain the URLFactory");
- throw new SAXException ("cannot obtain the URLFactory", e);
- }
- path = new File(url.getFile());
+ URLFactory urlFactory = null;
+ try {
+ urlFactory = (URLFactory)manager.lookup(Roles.URL_FACTORY);
+ url = urlFactory.getURL(input.getSystemId());
+ } catch (Exception e) {
+ getLogger().error("cannot obtain the URLFactory");
+ throw new SAXException ("cannot obtain the URLFactory", e);
+ } finally {
+ if (urlFactory != null) manager.release((Component)urlFactory);
+ }
+ path = new File(url.getFile());
- if (!path.isDirectory()) {
+ if (!path.isDirectory()) {
throw new IOException("Cannot read directory from "
+ url.toString() + "\"");
}
1.1.2.16 +7 -4
xml-cocoon/src/org/apache/cocoon/generation/Attic/HTMLGenerator.java
Index: HTMLGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/generation/Attic/HTMLGenerator.java,v
retrieving revision 1.1.2.15
retrieving revision 1.1.2.16
diff -u -r1.1.2.15 -r1.1.2.16
--- HTMLGenerator.java 2001/02/27 10:29:51 1.1.2.15
+++ HTMLGenerator.java 2001/04/12 12:30:34 1.1.2.16
@@ -30,7 +30,7 @@
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
- * @version CVS $Revision: 1.1.2.15 $ $Date: 2001/02/27 10:29:51 $
+ * @version CVS $Revision: 1.1.2.16 $ $Date: 2001/04/12 12:30:34 $
*/
public class HTMLGenerator extends ComposerGenerator implements Poolable {
@@ -39,6 +39,7 @@
*/
public void generate()
throws IOException, SAXException, ProcessingException {
+ URLFactory urlFactory = null;
try
{
// Setup an instance of Tidy.
@@ -46,10 +47,10 @@
tidy.setXmlOut(true);
tidy.setXHTML(true);
+ urlFactory = (URLFactory) this.manager.lookup(Roles.URL_FACTORY);
+ URL url = urlFactory.getURL(this.source);
+
// Extract the document using JTidy and stream it.
- Component urlFactory = this.manager.lookup(Roles.URL_FACTORY);
- URL url = ((URLFactory) urlFactory).getURL(this.source);
- this.manager.release(urlFactory);
org.w3c.dom.Document doc = tidy.parseDOM(new
BufferedInputStream(url.openStream()), null);
DOMStreamer streamer = new
DOMStreamer(this.contentHandler,this.lexicalHandler);
streamer.stream(doc);
@@ -62,6 +63,8 @@
} catch (Exception e){
getLogger().error("Could not get parser", e);
throw new ProcessingException("Exception in
HTMLGenerator.generate()",e);
+ } finally {
+ this.manager.release((Component)urlFactory);
}
}
}
1.1.2.17 +6 -2
xml-cocoon/src/org/apache/cocoon/generation/Attic/PhpGenerator.java
Index: PhpGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/generation/Attic/PhpGenerator.java,v
retrieving revision 1.1.2.16
retrieving revision 1.1.2.17
diff -u -r1.1.2.16 -r1.1.2.17
--- PhpGenerator.java 2001/04/09 15:56:51 1.1.2.16
+++ PhpGenerator.java 2001/04/12 12:30:34 1.1.2.17
@@ -18,6 +18,7 @@
import org.apache.cocoon.components.parser.Parser;
import org.apache.avalon.Poolable;
+import org.apache.avalon.Component;
import org.apache.cocoon.Roles;
import org.xml.sax.InputSource;
@@ -29,7 +30,7 @@
* results into SAX events.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Sam Ruby</a>
- * @version CVS $Revision: 1.1.2.16 $ $Date: 2001/04/09 15:56:51 $
+ * @version CVS $Revision: 1.1.2.17 $ $Date: 2001/04/12 12:30:34 $
*/
public class PhpGenerator extends ServletGenerator implements Poolable {
@@ -117,6 +118,7 @@
if (!systemId.startsWith("file:/"))
throw new IOException("protocol not supported: " + systemId);
+ Parser parser = null;
try {
// construct both ends of the pipe
PipedInputStream input = new PipedInputStream();
@@ -131,7 +133,7 @@
new Thread(php).start();
// pipe the results into the parser
- Parser parser=(Parser)this.manager.lookup(Roles.PARSER);
+ parser = (Parser)this.manager.lookup(Roles.PARSER);
parser.setContentHandler(this.contentHandler);
parser.setLexicalHandler(this.lexicalHandler);
parser.parse(new InputSource(input));
@@ -147,6 +149,8 @@
} catch (Exception e) {
getLogger().debug("PhpGenerator.generate()", e);
throw new IOException(e.toString());
+ } finally {
+ if (parser != null) this.manager.release((Component)parser);
}
}
}
1.1.2.3 +6 -2
xml-cocoon/src/org/apache/cocoon/generation/Attic/ScriptGenerator.java
Index: ScriptGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/generation/Attic/ScriptGenerator.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- ScriptGenerator.java 2001/03/12 04:38:52 1.1.2.2
+++ ScriptGenerator.java 2001/04/12 12:30:34 1.1.2.3
@@ -16,6 +16,7 @@
// Avalon imports
+import org.apache.avalon.Component;
import org.apache.avalon.configuration.Configurable;
import org.apache.avalon.configuration.Configuration;
import org.apache.avalon.configuration.ConfigurationException;
@@ -43,7 +44,7 @@
* and additional interpreter (Rhino, Jython, etc.) as a Cocoon Generator
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason Foster</a>
- * @version CVS $Revision: 1.1.2.2 $ $Date: 2001/03/12 04:38:52 $
+ * @version CVS $Revision: 1.1.2.3 $ $Date: 2001/04/12 12:30:34 $
*/
public class ScriptGenerator extends ComposerGenerator {
@@ -53,6 +54,7 @@
}
public void generate() throws ProcessingException {
+ Parser parser = null;
try {
// Figure out what file to open and do so
@@ -96,7 +98,7 @@
InputSource xmlInput =
new InputSource(new StringReader(output.toString()));
- Parser parser = (Parser)(this.manager.lookup(Roles.PARSER));
+ parser = (Parser)(this.manager.lookup(Roles.PARSER));
parser.setContentHandler(this.contentHandler);
parser.setLexicalHandler(this.lexicalHandler);
parser.parse(xmlInput);
@@ -109,6 +111,8 @@
} catch (Exception e) {
throw new ProcessingException(
"Exception in ScriptGenerator.generate()", e);
+ } finally {
+ if (parser != null) this.manager.release((Component)parser);
}
}
}
1.1.2.2 +2 -2
xml-cocoon/src/org/apache/cocoon/generation/Attic/VelocityGenerator.java
Index: VelocityGenerator.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/generation/Attic/VelocityGenerator.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- VelocityGenerator.java 2001/04/11 20:08:23 1.1.2.1
+++ VelocityGenerator.java 2001/04/12 12:30:34 1.1.2.2
@@ -28,7 +28,7 @@
/**
* @author <a href="mailto:[EMAIL PROTECTED]">Davanum Srinivas</a>
- * @version CVS $Revision: 1.1.2.1 $ $Date: 2001/04/11 20:08:23 $
+ * @version CVS $Revision: 1.1.2.2 $ $Date: 2001/04/12 12:30:34 $
*/
public class VelocityGenerator extends ServletGenerator implements Poolable {
@@ -93,7 +93,7 @@
getLogger().error("Could not get parser", e);
throw new ProcessingException("Exception in
VelocityGenerator.generate()",e);
} finally {
- this.manager.release((Component) parser);
+ if (parser != null) this.manager.release((Component) parser);
}
}
}
No revision
No revision
1.1.2.26 +9 -10
xml-cocoon/src/org/apache/cocoon/reading/Attic/ResourceReader.java
Index: ResourceReader.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/reading/Attic/ResourceReader.java,v
retrieving revision 1.1.2.25
retrieving revision 1.1.2.26
diff -u -r1.1.2.25 -r1.1.2.26
--- ResourceReader.java 2001/03/30 17:14:35 1.1.2.25
+++ ResourceReader.java 2001/04/12 12:30:35 1.1.2.26
@@ -37,7 +37,7 @@
/**
*
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
- * @version CVS $Revision: 1.1.2.25 $ $Date: 2001/03/30 17:14:35 $
+ * @version CVS $Revision: 1.1.2.26 $ $Date: 2001/04/12 12:30:35 $
*
* The <code>ResourceReader</code> component is used to serve binary data
* in a sitemap pipeline. It makes use of HTTP Headers to determine if
@@ -67,14 +67,6 @@
public void generate() throws IOException, ProcessingException {
Request request = (Request)
objectModel.get(Constants.REQUEST_OBJECT);
Response response = (Response)
objectModel.get(Constants.RESPONSE_OBJECT);
- URLFactory urlFactory = null;
-
- try {
- urlFactory = (URLFactory) this.manager.lookup(Roles.URL_FACTORY);
- } catch (Exception e) {
- getLogger().error("cannot obtain the URLFactory", e);
- throw new ProcessingException ("cannot obtain the URLFactory",
e);
- }
if (response == null) {
throw new ProcessingException ("Missing a Response object in the
objectModel");
@@ -91,7 +83,14 @@
InputStream is = null;
long len = 0;
+ URLFactory urlFactory = null;
try {
+ try {
+ urlFactory = (URLFactory)
this.manager.lookup(Roles.URL_FACTORY);
+ } catch (Exception e) {
+ getLogger().error("cannot obtain the URLFactory", e);
+ throw new ProcessingException ("cannot obtain the
URLFactory", e);
+ }
if(this.source.indexOf(":/") != -1) {
src = this.source;
url = urlFactory.getURL (src);
@@ -124,7 +123,7 @@
throw new ResourceNotFoundException ("ResourceReader: malformed
source \""
+src+"\". ", mue);
} finally {
- this.manager.release((Component) urlFactory);
+ if(urlFactory != null) this.manager.release((Component)
urlFactory);
}
try {
No revision
No revision
1.1.2.21 +4 -4
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/Handler.java
Index: Handler.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/Handler.java,v
retrieving revision 1.1.2.20
retrieving revision 1.1.2.21
diff -u -r1.1.2.20 -r1.1.2.21
--- Handler.java 2001/03/12 05:55:23 1.1.2.20
+++ Handler.java 2001/04/12 12:30:35 1.1.2.21
@@ -40,7 +40,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
- * @version CVS $Revision: 1.1.2.20 $ $Date: 2001/03/12 05:55:23 $
+ * @version CVS $Revision: 1.1.2.21 $ $Date: 2001/04/12 12:30:35 $
*/
public class Handler extends AbstractLoggable implements Runnable,
Configurable, Composer, Contextualizable, Processor {
private Context context;
@@ -168,8 +168,9 @@
String markupLanguage = "sitemap";
String programmingLanguage = "java";
+ ProgramGenerator programGenerator = null;
try {
- ProgramGenerator programGenerator = (ProgramGenerator)
this.manager.lookup(Roles.PROGRAM_GENERATOR);
+ programGenerator = (ProgramGenerator)
this.manager.lookup(Roles.PROGRAM_GENERATOR);
smap = (Sitemap) programGenerator.load(this.sourceFile,
markupLanguage, programmingLanguage, environment);
if (this.sitemap != null) {
@@ -184,8 +185,6 @@
} else {
getLogger().debug("No errors, but the sitemap has not been
set.");
}
-
- this.manager.release((Component) programGenerator);
} catch (Throwable t) {
getLogger().error("Error compiling sitemap", t);
@@ -193,6 +192,7 @@
this.exception = (Exception) t;
}
} finally {
+ if(programGenerator != null) this.manager.release((Component)
programGenerator);
this.regeneration = null;
this.environment = null;
this.isRegenerationRunning = false;
No revision
No revision
1.1.2.12 +39 -27
xml-cocoon/src/org/apache/cocoon/transformation/Attic/I18nTransformer.java
Index: I18nTransformer.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/transformation/Attic/I18nTransformer.java,v
retrieving revision 1.1.2.11
retrieving revision 1.1.2.12
diff -u -r1.1.2.11 -r1.1.2.12
--- I18nTransformer.java 2001/03/19 21:20:46 1.1.2.11
+++ I18nTransformer.java 2001/04/12 12:30:36 1.1.2.12
@@ -17,6 +17,7 @@
import org.apache.avalon.Poolable;
import org.apache.avalon.ComponentManager;
+import org.apache.avalon.ComponentManagerException;
import org.apache.avalon.Composer;
import org.apache.avalon.Component;
import org.apache.avalon.configuration.Parameters;
@@ -147,14 +148,15 @@
String translations_file = parameters.getParameter("src", null);
URL tr = null;
+ URLFactory urlFactory = null;
try {
- Component urlFactory = this.manager.lookup(Roles.URL_FACTORY);
- tr = ((URLFactory) urlFactory)
- .getURL(resolver.resolveEntity(null,
translations_file).getSystemId());
- this.manager.release(urlFactory);
+ urlFactory = (URLFactory) this.manager.lookup(Roles.URL_FACTORY);
+ tr = urlFactory.getURL(resolver.resolveEntity(null,
translations_file).getSystemId());
} catch (Exception e) {
getLogger().error("cannot obtain the URLFactory", e);
throw new SAXException("cannot obtain the URLFactory", e);
+ } finally {
+ if (urlFactory != null)
this.manager.release((Component)urlFactory);
}
initialiseDictionary(tr);
}
@@ -308,31 +310,41 @@
Object object = url.getContent();
Parser parser = null;
- try {
+
+ try
+ {
parser = (Parser)(manager.lookup(Roles.PARSER));
+ InputSource input;
+ if (object instanceof Loggable) {
+ ((Loggable)object).setLogger(getLogger());
+ }
+ if (object instanceof Reader) {
+ input = new InputSource(new
BufferedReader((Reader)(object)));
+ } else if (object instanceof InputStream) {
+ input = new InputSource(new
BufferedInputStream((InputStream)(object)));
+ } else {
+ throw new SAXException("Unknown object type: " + object);
+ }
- } catch (Exception e) {
- getLogger().error("Could not find component", e);
- return;
+ // How this could be cached?
+ dictionary = new Hashtable();
+ I18nContentHandler i18n_handler = new I18nContentHandler();
+ parser.setContentHandler(i18n_handler);
+ parser.parse(input);
+ } catch(SAXException e) {
+ getLogger().error("Error in initialiseDictionary", e);
+ throw e;
+ } catch(MalformedURLException e) {
+ getLogger().error("Error in initialiseDictionary", e);
+ throw e;
+ } catch(IOException e) {
+ getLogger().error("Error in initialiseDictionary", e);
+ throw e;
+ } catch(ComponentManagerException e) {
+ getLogger().error("Error in initialiseDictionary", e);
+ throw new SAXException("ComponentManagerException in
initialiseDictionary");
+ } finally {
+ if(parser != null) this.manager.release((Component) parser);
}
- InputSource input;
- if (object instanceof Loggable) {
- ((Loggable)object).setLogger(getLogger());
- }
- if (object instanceof Reader) {
- input = new InputSource(new BufferedReader((Reader)(object)));
- } else if (object instanceof InputStream) {
- input = new InputSource(new
BufferedInputStream((InputStream)(object)));
- } else {
- throw new SAXException("Unknown object type: " + object);
- }
-
- // How this could be cached?
- dictionary = new Hashtable();
- I18nContentHandler i18n_handler = new I18nContentHandler();
- parser.setContentHandler(i18n_handler);
- parser.parse(input);
-
- this.manager.release((Component) parser);
}
}
1.1.2.25 +55 -43
xml-cocoon/src/org/apache/cocoon/transformation/Attic/XIncludeTransformer.java
Index: XIncludeTransformer.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/transformation/Attic/XIncludeTransformer.java,v
retrieving revision 1.1.2.24
retrieving revision 1.1.2.25
diff -u -r1.1.2.24 -r1.1.2.25
--- XIncludeTransformer.java 2001/04/02 20:18:38 1.1.2.24
+++ XIncludeTransformer.java 2001/04/12 12:30:36 1.1.2.25
@@ -29,6 +29,7 @@
import org.w3c.dom.Document;
import org.apache.avalon.configuration.Parameters;
import org.apache.avalon.ComponentManager;
+import org.apache.avalon.ComponentManagerException;
import org.apache.avalon.Composer;
import org.apache.avalon.Loggable;
import org.apache.avalon.AbstractLoggable;
@@ -51,7 +52,7 @@
* by the SAX event FSM yet.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Donald Ball</a>
- * @version CVS $Revision: 1.1.2.24 $ $Date: 2001/04/02 20:18:38 $ $Author:
giacomo $
+ * @version CVS $Revision: 1.1.2.25 $ $Date: 2001/04/12 12:30:36 $ $Author:
dims $
*/
public class XIncludeTransformer extends AbstractTransformer implements
Composer, Poolable {
@@ -224,53 +225,64 @@
} else if (parse.equals("xml")) {
getLogger().debug("Parse type is XML");
Parser parser = null;
- try {
+ try
+ {
getLogger().debug("Looking up " + Roles.PARSER);
parser = (Parser)manager.lookup(Roles.PARSER);
- } catch (Exception e) {
- getLogger().error("Could not find component", e);
- return;
- }
- InputSource input;
- if (object instanceof Loggable) {
- ((Loggable)object).setLogger(getLogger());
- }
- if (object instanceof Reader) {
- input = new InputSource(new BufferedReader((Reader)object));
- } else if (object instanceof InputStream) {
- input = new InputSource(new
BufferedInputStream((InputStream)object));
- } else {
- throw new SAXException("Unknown object type: "+object);
- }
- if (suffix.startsWith("xpointer(") && suffix.endsWith(")")) {
- String xpath = suffix.substring(9,suffix.length()-1);
- getLogger().debug("XPath is "+xpath);
- DOMBuilder builder = new DOMBuilder(parser);
- parser.setContentHandler(builder);
- parser.setLexicalHandler(builder);
- parser.parse(input);
-
- Document document = builder.getDocument();
- try {
- NodeList list = XPathAPI.selectNodeList(document,xpath);
- DOMStreamer streamer = new
DOMStreamer(super.contentHandler,super.lexicalHandler);
- int length = list.getLength();
- for (int i=0; i<length; i++) {
- streamer.stream(list.item(i));
+
+ InputSource input;
+ if (object instanceof Loggable) {
+ ((Loggable)object).setLogger(getLogger());
+ }
+ if (object instanceof Reader) {
+ input = new InputSource(new
BufferedReader((Reader)object));
+ } else if (object instanceof InputStream) {
+ input = new InputSource(new
BufferedInputStream((InputStream)object));
+ } else {
+ throw new SAXException("Unknown object type: "+object);
+ }
+ if (suffix.startsWith("xpointer(") && suffix.endsWith(")")) {
+ String xpath = suffix.substring(9,suffix.length()-1);
+ getLogger().debug("XPath is "+xpath);
+ DOMBuilder builder = new DOMBuilder(parser);
+ parser.setContentHandler(builder);
+ parser.setLexicalHandler(builder);
+ parser.parse(input);
+
+ Document document = builder.getDocument();
+ try {
+ NodeList list =
XPathAPI.selectNodeList(document,xpath);
+ DOMStreamer streamer = new
DOMStreamer(super.contentHandler,super.lexicalHandler);
+ int length = list.getLength();
+ for (int i=0; i<length; i++) {
+ streamer.stream(list.item(i));
+ }
+ } catch (TransformerException e){
+ getLogger().error("TransformerException", e);
+ return;
}
- } catch (TransformerException e){
- getLogger().error("TransformerException", e);
- return;
+ } else {
+ XIncludeContentHandler xinclude_handler = new
XIncludeContentHandler(super.contentHandler,super.lexicalHandler);
+ xinclude_handler.setLogger(getLogger());
+ parser.setContentHandler(xinclude_handler);
+ parser.setLexicalHandler(xinclude_handler);
+ parser.parse(input);
}
- } else {
- XIncludeContentHandler xinclude_handler = new
XIncludeContentHandler(super.contentHandler,super.lexicalHandler);
- xinclude_handler.setLogger(getLogger());
- parser.setContentHandler(xinclude_handler);
- parser.setLexicalHandler(xinclude_handler);
- parser.parse(input);
+ } catch(SAXException e) {
+ getLogger().error("Error in processXIncludeElement", e);
+ throw e;
+ } catch(MalformedURLException e) {
+ getLogger().error("Error in processXIncludeElement", e);
+ throw e;
+ } catch(IOException e) {
+ getLogger().error("Error in processXIncludeElement", e);
+ throw e;
+ } catch(ComponentManagerException e) {
+ getLogger().error("Error in processXIncludeElement", e);
+ throw new SAXException("ComponentManagerException in
processXIncludeElement");
+ } finally {
+ if(parser != null) this.manager.release((Component) parser);
}
-
- this.manager.release((Component) parser);
}
}
1.1.2.19 +6 -4
xml-cocoon/src/org/apache/cocoon/transformation/Attic/XTTransformer.java
Index: XTTransformer.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/transformation/Attic/XTTransformer.java,v
retrieving revision 1.1.2.18
retrieving revision 1.1.2.19
diff -u -r1.1.2.18 -r1.1.2.19
--- XTTransformer.java 2001/03/30 17:14:40 1.1.2.18
+++ XTTransformer.java 2001/04/12 12:30:36 1.1.2.19
@@ -71,7 +71,7 @@
* This Transformer use the XT processor.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Sahuc Sebastien</a>
- * @version CVS $Revision: 1.1.2.18 $ $Date: 2001/03/30 17:14:40 $
+ * @version CVS $Revision: 1.1.2.19 $ $Date: 2001/04/12 12:30:36 $
*/
public class XTTransformer extends DocumentHandlerWrapper
implements Transformer, Composer, Loggable, Poolable {
@@ -343,13 +343,15 @@
public void loadStylesheet(InputSource sheetSource) throws SAXException,
IOException {
// Set the xslFile for the caching mechanism
URL url = null;
+ URLFactory urlFactory = null;
try {
- Component urlFactory = this.manager.lookup(Roles.URL_FACTORY);
- url = ((URLFactory)
urlFactory).getURL(sheetSource.getSystemId());
- this.manager.release(urlFactory);
+ urlFactory = (URLFactory)this.manager.lookup(Roles.URL_FACTORY);
+ url = urlFactory.getURL(sheetSource.getSystemId());
} catch (Exception e) {
log.error("cannot obtain the URLFactory", e);
throw new SAXException ("cannot obtain the URLFactory", e);
+ } finally {
+ if(urlFactory != null)
this.manager.release((Component)urlFactory);
}
this.xslFile = new File(url.getFile());
lastModified = xslFile.lastModified();
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]