You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by cz...@apache.org on 2003/03/17 12:52:37 UTC
cvs commit: avalon-excalibur/xmlutil/src/java/org/apache/excalibur/xml/xslt XSLTProcessorImpl.java
cziegeler 2003/03/17 03:52:36
Modified: xmlutil/src/java/org/apache/excalibur/xml/xslt
XSLTProcessorImpl.java
Log:
Making XSLTProcessorImpl recyclable and fixing
component releasing (which was removed by someone..sigh)
Revision Changes Path
1.27 +31 -5 avalon-excalibur/xmlutil/src/java/org/apache/excalibur/xml/xslt/XSLTProcessorImpl.java
Index: XSLTProcessorImpl.java
===================================================================
RCS file: /home/cvs/avalon-excalibur/xmlutil/src/java/org/apache/excalibur/xml/xslt/XSLTProcessorImpl.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- XSLTProcessorImpl.java 27 Feb 2003 09:24:47 -0000 1.26
+++ XSLTProcessorImpl.java 17 Mar 2003 11:52:36 -0000 1.27
@@ -73,6 +73,7 @@
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.stream.StreamSource;
+import org.apache.avalon.excalibur.pool.Recyclable;
import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.activity.Initializable;
import org.apache.avalon.framework.component.ComponentException;
@@ -124,6 +125,7 @@
Initializable,
Disposable,
Parameterizable,
+ Recyclable,
URIResolver
{
/** The store service instance */
@@ -150,6 +152,9 @@
private XMLizer m_xmlizer;
+ /** The ServiceManager */
+ private ServiceManager m_manager;
+
/**
* Compose. Try to get the store
*
@@ -160,12 +165,13 @@
public void service( final ServiceManager manager )
throws ServiceException
{
- m_xmlizer = (XMLizer)manager.lookup( XMLizer.ROLE );
- m_resolver = (SourceResolver)manager.lookup( SourceResolver.ROLE );
+ m_manager = manager;
+ m_xmlizer = (XMLizer)m_manager.lookup( XMLizer.ROLE );
+ m_resolver = (SourceResolver)m_manager.lookup( SourceResolver.ROLE );
- if( manager.hasService( Store.TRANSIENT_STORE ) )
+ if( m_manager.hasService( Store.TRANSIENT_STORE ) )
{
- m_store = (Store)manager.lookup( Store.TRANSIENT_STORE );
+ m_store = (Store)m_manager.lookup( Store.TRANSIENT_STORE );
}
}
@@ -178,6 +184,14 @@
public void dispose()
{
+ if ( null != m_manager)
+ {
+ m_manager.release( m_store );
+ m_manager.release( m_resolver );
+ m_manager.release( m_xmlizer );
+ m_manager = null;
+ }
+ m_xmlizer = null;
m_store = null;
m_resolver = null;
m_errorHandler = null;
@@ -194,6 +208,8 @@
m_transformerFactory = params.getParameter( "transformer-factory", null );
if( !m_useStore )
{
+ // release the store, if we don't need it anymore
+ m_manager.release( m_store );
m_store = null;
}
else if( null == m_store )
@@ -746,4 +762,14 @@
newObject.setSystemId( source.getURI() );
return newObject;
}
+
+ /**
+ * Recycle the component
+ */
+ public void recycle()
+ {
+ m_includesMap.clear();
+ m_factory = getTransformerFactory( m_transformerFactory );
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org