You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by ov...@apache.org on 2001/10/29 22:53:58 UTC
cvs commit: xml-cocoon2/src/org/apache/cocoon/components/xscript XScriptManager.java XScriptManagerImpl.java XScriptObject.java XScriptObjectFromURL.java
ovidiu 01/10/29 13:53:58
Modified: src/org/apache/cocoon/components/xscript XScriptManager.java
XScriptManagerImpl.java XScriptObject.java
XScriptObjectFromURL.java
Log:
Don't expose the ComponentManager from XScriptManagerImpl to the
XScript object. Have instead XScriptObject implement Composable so it
can receive the ComponentManager from its container.
Revision Changes Path
1.3 +0 -7 xml-cocoon2/src/org/apache/cocoon/components/xscript/XScriptManager.java
Index: XScriptManager.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/xscript/XScriptManager.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- XScriptManager.java 2001/10/26 11:29:52 1.2
+++ XScriptManager.java 2001/10/29 21:53:58 1.3
@@ -150,11 +150,4 @@
*/
void removeFirst(String name, String sessionContext, String pageContext)
throws IllegalArgumentException;
-
- /**
- * Return the <code>ComponentManager</code> managing this instance.
- *
- * @return a <code>ComponentManager</code> value
- */
- ComponentManager getComponentManager();
}
1.3 +9 -5 xml-cocoon2/src/org/apache/cocoon/components/xscript/XScriptManagerImpl.java
Index: XScriptManagerImpl.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/xscript/XScriptManagerImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- XScriptManagerImpl.java 2001/10/25 19:32:59 1.2
+++ XScriptManagerImpl.java 2001/10/29 21:53:58 1.3
@@ -73,6 +73,15 @@
getLogger().debug("XScriptManager component initialized.");
}
+ public void register(XScriptObject object)
+ {
+ try {
+ object.compose(manager);
+ }
+ catch (ComponentException ex) {
+ }
+ }
+
public void configure(Configuration conf)
throws ConfigurationException
{
@@ -251,10 +260,5 @@
// No variable `name' found, throw an exception.
throw new IllegalArgumentException("removeFirst: no variable '" + name
+ "' accessible from this scope!");
- }
-
- public ComponentManager getComponentManager()
- {
- return manager;
}
}
1.2 +15 -7 xml-cocoon2/src/org/apache/cocoon/components/xscript/XScriptObject.java
Index: XScriptObject.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/xscript/XScriptObject.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XScriptObject.java 2001/10/10 20:53:56 1.1
+++ XScriptObject.java 2001/10/29 21:53:58 1.2
@@ -24,6 +24,7 @@
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.framework.component.Composable;
/**
* <code>XScriptObject</code> is the root class implemented by all the
@@ -33,7 +34,7 @@
* @author <a href="mailto:ovidiu@cup.hp.com">Ovidiu Predescu</a>
* @since August 4, 2001
*/
-public abstract class XScriptObject implements Source
+public abstract class XScriptObject implements Source, Composable
{
/**
* The creation date of this <code>XScriptObject</code>.
@@ -46,6 +47,8 @@
*/
XScriptManager xscriptManager;
+ protected ComponentManager componentManager;
+
/**
* Creates a new <code>XScriptObject</code> instance.
*
@@ -54,6 +57,13 @@
public XScriptObject(XScriptManager manager)
{
this.xscriptManager = manager;
+ ((XScriptManagerImpl)this.xscriptManager).register(this);
+ }
+
+ public void compose(ComponentManager manager)
+ throws ComponentException
+ {
+ this.componentManager = manager;
}
/**
@@ -77,13 +87,12 @@
CharArrayWriter writer = new CharArrayWriter();
StreamResult result = new StreamResult(writer);
- ComponentManager manager = xscriptManager.getComponentManager();
XSLTProcessor transformer
- = (XSLTProcessor)manager.lookup(XSLTProcessor.ROLE);
+ = (XSLTProcessor)componentManager.lookup(XSLTProcessor.ROLE);
transformer.transform(this, stylesheet, params, result);
- manager.release((Component)transformer);
+ componentManager.release((Component)transformer);
return new XScriptObjectResult(xscriptManager, writer.toString());
}
@@ -98,14 +107,13 @@
try {
EmbeddedXMLPipe newHandler = new EmbeddedXMLPipe(handler);
- ComponentManager manager = xscriptManager.getComponentManager();
- Parser parser = (Parser)manager.lookup(Parser.ROLE);
+ Parser parser = (Parser)componentManager.lookup(Parser.ROLE);
parser.setContentHandler(newHandler);
InputSource source = getInputSource();
parser.parse(source);
- manager.release(parser);
+ componentManager.release(parser);
}
catch (Exception ex) {
throw new SAXException(ex);
1.3 +5 -5 xml-cocoon2/src/org/apache/cocoon/components/xscript/XScriptObjectFromURL.java
Index: XScriptObjectFromURL.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/xscript/XScriptObjectFromURL.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- XScriptObjectFromURL.java 2001/10/25 19:32:59 1.2
+++ XScriptObjectFromURL.java 2001/10/29 21:53:58 1.3
@@ -28,7 +28,8 @@
public class XScriptObjectFromURL extends XScriptObject
{
/**
- * The URL containing to obtain the source from.
+ * The content obtained from this URL becomes the content of this
+ * instance.
*/
String systemId;
@@ -38,7 +39,7 @@
int contentLength;
/**
- * When the content of the URL was last modified.
+ * When was the content of the URL last modified.
*/
long lastModified;
@@ -52,13 +53,12 @@
throws ProcessingException, IOException
{
try {
- ComponentManager manager = xscriptManager.getComponentManager();
- URLFactory urlFactory = (URLFactory)manager.lookup(URLFactory.ROLE);
+ URLFactory urlFactory = (URLFactory)componentManager.lookup(URLFactory.ROLE);
URL url = urlFactory.getURL(systemId);
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
contentLength = conn.getContentLength();
- manager.release((Component)urlFactory);
+ componentManager.release((Component)urlFactory);
return is;
}
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org