bloritsch 01/02/17 11:55:42
Modified: src/org/apache/cocoon/sitemap Tag: xml-cocoon2
AbstractSitemap.java SitemapComponentManager.java
Log:
Fix for XSP!
Revision Changes Path
No revision
No revision
1.1.2.22 +3 -2
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/AbstractSitemap.java
Index: AbstractSitemap.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/AbstractSitemap.java,v
retrieving revision 1.1.2.21
retrieving revision 1.1.2.22
diff -u -r1.1.2.21 -r1.1.2.22
--- AbstractSitemap.java 2001/02/16 22:07:44 1.1.2.21
+++ AbstractSitemap.java 2001/02/17 19:55:41 1.1.2.22
@@ -42,7 +42,7 @@
* Base class for generated <code>Sitemap</code> classes
*
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
- * @version CVS $Revision: 1.1.2.21 $ $Date: 2001/02/16 22:07:44 $
+ * @version CVS $Revision: 1.1.2.22 $ $Date: 2001/02/17 19:55:41 $
*/
public abstract class AbstractSitemap extends AbstractCompiledComponent
implements Sitemap {
private Context context;
@@ -72,7 +72,7 @@
this.sitemapComponentManager = new SitemapComponentManager
(parentSitemapComponentManager);
this.sitemapComponentManager.contextualize(this.context);
this.sitemapComponentManager.setLogger(getLogger());
- this.sitemapComponentManager.addComponentInstance(Roles.URL_FACTORY,
this.urlFactory);
+ this.sitemapComponentManager.compose(this.manager);
}
/**
@@ -140,6 +140,7 @@
this.sitemapComponentManager = new SitemapComponentManager();
this.sitemapComponentManager.contextualize(this.context);
this.sitemapComponentManager.setLogger(getLogger());
+ this.sitemapComponentManager.compose(this.manager);
}
this.sitemapComponentManager.addSitemapComponent(type, clazz,
configuration, mime_type);
1.1.2.3 +37 -10
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/SitemapComponentManager.java
Index: SitemapComponentManager.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/SitemapComponentManager.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- SitemapComponentManager.java 2001/02/16 22:07:48 1.1.2.2
+++ SitemapComponentManager.java 2001/02/17 19:55:42 1.1.2.3
@@ -10,22 +10,25 @@
import java.util.HashMap;
+import org.apache.avalon.Composer;
import org.apache.avalon.ComponentManager;
import org.apache.avalon.Configuration;
import org.apache.avalon.ConfigurationException;
import org.apache.avalon.Component;
import org.apache.avalon.ComponentManagerException;
+import org.apache.avalon.ComponentNotFoundException;
import org.apache.cocoon.DefaultComponentManager;
import org.apache.cocoon.components.url.URLFactory;
/** Default component manager for Cocoon's sitemap components.
* @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
- * @version CVS $Id: SitemapComponentManager.java,v 1.1.2.2 2001/02/16
22:07:48 bloritsch Exp $
+ * @version CVS $Id: SitemapComponentManager.java,v 1.1.2.3 2001/02/17
19:55:42 bloritsch Exp $
*/
-public class SitemapComponentManager extends DefaultComponentManager {
+public class SitemapComponentManager extends DefaultComponentManager
implements Composer {
ComponentManager manager;
HashMap mime_types;
+ ComponentManager sideManager;
/** The conctructors (same as the Avalon DefaultComponentManager)
*/
@@ -39,18 +42,42 @@
this.manager = parent;
}
- public Component lookup(String role) throws ComponentManagerException {
+ public void compose(ComponentManager manager) {
+ this.sideManager = manager;
+ }
+
+ /** Return an instance of a component.
+ */
+ public Component lookup( String role )
+ throws ComponentManagerException {
+
+ Component component = null;
+
+ try {
+ // Retrieve the instance of the requested component
+ component = this.sideManager.lookup(role);
+ } catch (ComponentManagerException cme) {/* ignore */}
+
+ if ( component != null ) {
+ return component;
+ }
+
try {
- Component comp = super.lookup(role);
- return comp;
- } catch (ComponentManagerException cme) {
- if (this.manager != null) {
- return this.manager.lookup(role);
- }
+ // Retrieve the instance of the requested component
+ component = super.lookup(role);
+ } catch (ComponentManagerException cme) {/* ignore */}
- throw cme;
+ if ( component != null ) {
+ return component;
}
+
+ if (this.manager != null) {
+ return this.manager.lookup(role);
+ } else {
+ throw new ComponentNotFoundException("I could not locate the
component for role " + role);
+ }
}
+
protected String getMimeTypeForRole(String role) {
return (String) this.mime_types.get(role);