cziegeler 02/01/14 08:18:56
Modified: src/java/org/apache/cocoon/components/parser JaxpParser.java
XercesParser.java
src/java/org/apache/cocoon/components/xslt
XSLTProcessorImpl.java
Log:
Making usage of resolver 'more' optional
Revision Changes Path
1.3 +14 -7
xml-cocoon2/src/java/org/apache/cocoon/components/parser/JaxpParser.java
Index: JaxpParser.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/parser/JaxpParser.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JaxpParser.java 10 Jan 2002 15:32:24 -0000 1.2
+++ JaxpParser.java 14 Jan 2002 16:18:55 -0000 1.3
@@ -8,6 +8,7 @@
package org.apache.cocoon.components.parser;
import org.apache.avalon.excalibur.pool.Poolable;
+import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.Composable;
@@ -58,10 +59,10 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Sylvain Wallez</a>
- * @version CVS $Revision: 1.2 $ $Date: 2002/01/10 15:32:24 $
+ * @version CVS $Revision: 1.3 $ $Date: 2002/01/14 16:18:55 $
*/
public class JaxpParser extends AbstractXMLProducer
-implements Parser, ErrorHandler, Composable, Parameterizable, Poolable {
+implements Parser, ErrorHandler, Composable, Parameterizable, Disposable, Poolable {
/** the SAX Parser factory */
protected SAXParserFactory factory;
@@ -94,13 +95,19 @@
*/
public void compose(ComponentManager manager)
throws ComponentException {
- try {
- this.manager = manager;
+ this.manager = manager;
+ if ( manager.hasComponent( Resolver.ROLE ) ) {
getLogger().debug("Looking up " + Resolver.ROLE);
this.resolver = (Resolver)manager.lookup(Resolver.ROLE);
- } catch(ComponentException e) {
- // This exception is ok during initialization/startup.
- getLogger().debug("JaxpParser: Could not yet find " + Resolver.ROLE);
+ }
+ }
+
+ /**
+ * Dispose
+ */
+ public void dispose() {
+ if (this.manager != null) {
+ this.manager.release( this.resolver );
}
}
1.2 +15 -8
xml-cocoon2/src/java/org/apache/cocoon/components/parser/XercesParser.java
Index: XercesParser.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/parser/XercesParser.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XercesParser.java 3 Jan 2002 12:31:12 -0000 1.1
+++ XercesParser.java 14 Jan 2002 16:18:55 -0000 1.2
@@ -7,6 +7,7 @@
*****************************************************************************/
package org.apache.cocoon.components.parser;
+import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.Composable;
@@ -29,10 +30,10 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Pierpaolo Fumagalli</a>
* (Apache Software Foundation, Exoffice Technologies)
- * @version CVS $Revision: 1.1 $ $Date: 2002/01/03 12:31:12 $
+ * @version CVS $Revision: 1.2 $ $Date: 2002/01/14 16:18:55 $
*/
public class XercesParser extends AbstractXMLProducer
-implements Parser, ErrorHandler, Composable, SingleThreaded {
+implements Parser, ErrorHandler, Composable, Disposable, SingleThreaded {
/** the SAX Parser */
final SAXParser parser;
@@ -55,14 +56,20 @@
* Get the Entity Resolver from the component manager
*/
public void compose(ComponentManager manager) throws ComponentException {
- try {
this.manager = manager;
getLogger().debug("Looking up " + Resolver.ROLE);
- this.resolver = (Resolver)manager.lookup(Resolver.ROLE);
- } catch(ComponentException e) {
- // This exception is ok during initialization/startup.
- getLogger().debug("XercesParser: Could not yet find " + Resolver.ROLE);
- }
+ if ( manager.hasComponent( Resolver.ROLE ) ) {
+ this.resolver = (Resolver)manager.lookup(Resolver.ROLE);
+ }
+ }
+
+ /**
+ * Dispose
+ */
+ public void dispose() {
+ if (this.manager != null) {
+ this.manager.release( this.resolver );
+ }
}
public void parse(InputSource in)
1.3 +30 -20
xml-cocoon2/src/java/org/apache/cocoon/components/xslt/XSLTProcessorImpl.java
Index: XSLTProcessorImpl.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/xslt/XSLTProcessorImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- XSLTProcessorImpl.java 3 Jan 2002 14:56:56 -0000 1.2
+++ XSLTProcessorImpl.java 14 Jan 2002 16:18:56 -0000 1.3
@@ -87,7 +87,7 @@
/** The trax TransformerFactory */
SAXTransformerFactory tfactory;
-
+
/** The factory class used to create tfactory */
Class tfactoryClass;
@@ -101,37 +101,47 @@
/** the Entity Resolver */
protected Resolver entityResolver;
- public void compose(ComponentManager manager)
- throws ComponentException
- {
- this.manager = manager;
- getLogger().debug("XSLTProcessorImpl component initialized.");
- store = (Store)manager.lookup(Store.ROLE);
- getLogger().debug("Looking up " + Resolver.ROLE);
- this.entityResolver = (Resolver)manager.lookup(Resolver.ROLE);
- }
+ /**
+ * Compose.
+ * Try to get the store and the entity resolver (optional)
+ */
+ public void compose(ComponentManager manager)
+ throws ComponentException {
+ this.manager = manager;
+ getLogger().debug("XSLTProcessorImpl component initialized.");
+ store = (Store)manager.lookup(Store.ROLE);
+ if ( manager.hasComponent( Resolver.ROLE ) ) {
+ getLogger().debug("Looking up " + Resolver.ROLE);
+ this.entityResolver = (Resolver)manager.lookup(Resolver.ROLE);
+ }
+ }
- public void dispose()
- {
- if (this.manager != null) {
- this.manager.release((Component)store);
- this.manager.release((Component)entityResolver);
+ /**
+ * Dispose
+ */
+ public void dispose() {
+ if (this.manager != null) {
+ this.manager.release((Component)store);
+ this.manager.release((Component)entityResolver);
+ }
}
- }
+ /**
+ * Configure the component
+ */
public void configure(Configuration conf)
throws ConfigurationException
{
Parameters params = Parameters.fromConfiguration(conf);
useStore = params.getParameterAsBoolean("use-store", true);
incrementalProcessing = params.getParameterAsBoolean("incremental-processing",
false);
-
+
String factoryName = params.getParameter("transformer-factory", null);
-
+
if (factoryName == null) {
// Will use default TRAX mechanism
this.tfactoryClass = null;
-
+
} else {
// Will use specific class
getLogger().debug("Using factory " + factoryName);
@@ -140,7 +150,7 @@
} catch(ClassNotFoundException cnfe) {
throw new ConfigurationException("Cannot load TransformerFactory class",
cnfe);
}
-
+
if (! TransformerFactory.class.isAssignableFrom(tfactoryClass)) {
throw new ConfigurationException("Class " + factoryName + " isn't a
TransformerFactory");
}
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]