You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2002/06/07 12:22:44 UTC
cvs commit: xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/sitemap SitemapLanguage.java
cziegeler 2002/06/07 03:22:43
Modified: src/java/org/apache/cocoon/components Tag:
cocoon_2_0_3_branch CocoonComponentManager.java
src/java/org/apache/cocoon/components/treeprocessor Tag:
cocoon_2_0_3_branch DefaultTreeBuilder.java
TreeProcessor.java
src/java/org/apache/cocoon/components/treeprocessor/sitemap
Tag: cocoon_2_0_3_branch SitemapLanguage.java
Log:
Fixing doc build
Revision Changes Path
No revision
No revision
1.13.2.2 +12 -9 xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java
Index: CocoonComponentManager.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java,v
retrieving revision 1.13.2.1
retrieving revision 1.13.2.2
diff -u -r1.13.2.1 -r1.13.2.2
--- CocoonComponentManager.java 7 Jun 2002 09:34:23 -0000 1.13.2.1
+++ CocoonComponentManager.java 7 Jun 2002 10:22:42 -0000 1.13.2.2
@@ -72,7 +72,7 @@
* by a special lifecycle handling for a RequestLifecycleComponent
*
* @author <a href="mailto:cziegeler@org.com">Carsten Ziegeler</a>
- * @version CVS $Id: CocoonComponentManager.java,v 1.13.2.1 2002/06/07 09:34:23 cziegeler Exp $
+ * @version CVS $Id: CocoonComponentManager.java,v 1.13.2.2 2002/06/07 10:22:42 cziegeler Exp $
*/
public final class CocoonComponentManager
extends ExcaliburComponentManager
@@ -171,16 +171,19 @@
}
final Object[] objects = (Object[]) stack.peek();
final Map components = (Map)objects[2];
- try {
- if (component instanceof Recomposable) {
- ((Recomposable) component).recompose(this);
- }
- ((RequestLifecycleComponent) component).setup((org.apache.cocoon.environment.SourceResolver)objects[0],
+ // first test if the parent CM has already initialized this component
+ if (components.containsKey( role ) == false) {
+ try {
+ if (component instanceof Recomposable) {
+ ((Recomposable) component).recompose(this);
+ }
+ ((RequestLifecycleComponent) component).setup((org.apache.cocoon.environment.SourceResolver)objects[0],
(Map)objects[1]);
- } catch (Exception local) {
- throw new ComponentException("Exception during setup of RequestLifecycleComponent with role '"+role+"'", local);
+ } catch (Exception local) {
+ throw new ComponentException("Exception during setup of RequestLifecycleComponent with role '"+role+"'", local);
+ }
+ components.put(role, new Object[] {component, this});
}
- components.put(role, new Object[] {component, this});
}
return component;
}
No revision
No revision
1.3.2.3 +27 -26 xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java
Index: DefaultTreeBuilder.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java,v
retrieving revision 1.3.2.2
retrieving revision 1.3.2.3
diff -u -r1.3.2.2 -r1.3.2.3
--- DefaultTreeBuilder.java 21 Apr 2002 17:38:47 -0000 1.3.2.2
+++ DefaultTreeBuilder.java 7 Jun 2002 10:22:43 -0000 1.3.2.3
@@ -93,7 +93,7 @@
/**
*
* @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a>
- * @version CVS $Id: DefaultTreeBuilder.java,v 1.3.2.2 2002/04/21 17:38:47 vgritsenko Exp $
+ * @version CVS $Id: DefaultTreeBuilder.java,v 1.3.2.3 2002/06/07 10:22:43 cziegeler Exp $
*/
public class DefaultTreeBuilder extends AbstractLoggable implements TreeBuilder,
@@ -525,37 +525,38 @@
String type = statement.getAttribute("type", null);
- ComponentSelector selector;
+ ComponentSelector selector = null;
try {
- selector = (ComponentSelector)this.manager.lookup(role);
- } catch(ComponentException ce) {
- String msg = "Cannot get component selector for '" + statement.getName() + "' at " +
- statement.getLocation();
- getLogger().error(msg, ce);
- throw new ConfigurationException(msg, ce);
- }
+ try {
+ selector = (ComponentSelector)this.manager.lookup(role);
+ } catch(ComponentException ce) {
+ String msg = "Cannot get component selector for '" + statement.getName() + "' at " +
+ statement.getLocation();
+ getLogger().error(msg, ce);
+ throw new ConfigurationException(msg, ce);
+ }
- if (type == null && selector instanceof ExtendedComponentSelector) {
- type = ((ExtendedComponentSelector)selector).getDefaultHint();
- }
+ if (type == null && selector instanceof ExtendedComponentSelector) {
+ type = ((ExtendedComponentSelector)selector).getDefaultHint();
+ }
- if (type == null) {
- String msg = "No default type exists for '" + statement.getName() + "' at " +
- statement.getLocation();
- getLogger().error(msg);
- throw new ConfigurationException(msg);
- }
+ if (type == null) {
+ String msg = "No default type exists for '" + statement.getName() + "' at " +
+ statement.getLocation();
+ getLogger().error(msg);
+ throw new ConfigurationException(msg);
+ }
- if (!selector.hasComponent(type)) {
- String msg = "Type '" + type + "' is not defined for '" + statement.getName() + "' at " +
- statement.getLocation();
- getLogger().error(msg);
- throw new ConfigurationException(msg);
+ if (!selector.hasComponent(type)) {
+ String msg = "Type '" + type + "' is not defined for '" + statement.getName() + "' at " +
+ statement.getLocation();
+ getLogger().error(msg);
+ throw new ConfigurationException(msg);
+ }
+ } finally {
+ this.manager.release(selector);
}
-
- this.manager.release(selector);
-
return type;
}
1.4.2.1 +13 -8 xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java
Index: TreeProcessor.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -r1.4 -r1.4.2.1
--- TreeProcessor.java 31 Mar 2002 21:48:15 -0000 1.4
+++ TreeProcessor.java 7 Jun 2002 10:22:43 -0000 1.4.2.1
@@ -99,14 +99,14 @@
* Interpreted tree-traversal implementation of a pipeline assembly language.
*
* @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a>
- * @version CVS $Id: TreeProcessor.java,v 1.4 2002/03/31 21:48:15 sylvain Exp $
+ * @version CVS $Id: TreeProcessor.java,v 1.4.2.1 2002/06/07 10:22:43 cziegeler Exp $
*/
public class TreeProcessor extends AbstractLoggable implements ThreadSafe, Processor,
Composable, Configurable, LogKitManageable, RoleManageable, Initializable, Contextualizable, Disposable {
private static final String XCONF_URL =
- "resource://org/apache/cocoon/components/treeprocessor/treeprocessor-builtins.xml";
+ "resource://org/apache/cocoon/components/treeprocessor/treeprocessor-builtins.xml";
/** The parent TreeProcessor, if any */
protected TreeProcessor parent;
@@ -187,7 +187,7 @@
String language,
Source source)
throws Exception {
-
+
TreeProcessor child = new TreeProcessor(this, manager, language);
child.setLogger(getLogger());
child.initialize();
@@ -255,7 +255,7 @@
getLogger().error(msg, e);
throw new ConfigurationException(msg, e);
}
-
+
// Create a selector for tree builders of all languages
this.builderSelector = new ExtendedComponentSelector(Thread.currentThread().getContextClassLoader());
try {
@@ -302,9 +302,14 @@
context.setLogger(getLogger());
+ SourceHandler oldSourceHandler = environment.getSourceHandler();
+ CocoonComponentManager.enterEnvironment(environment, environment.getObjectModel());
try {
+ environment.setSourceHandler(this.sourceHandler);
return process(environment, context);
} finally {
+ CocoonComponentManager.leaveEnvironment();
+ environment.setSourceHandler(oldSourceHandler);
context.dispose();
}
}
@@ -340,7 +345,7 @@
// Dispose the previous tree, if any
disposeTree();
-
+
// Get a builder
TreeBuilder builder = (TreeBuilder)this.builderSelector.select(this.language);
ProcessingNode root;
@@ -349,7 +354,7 @@
((Recomposable)builder).recompose(this.manager);
}
builder.setProcessor(this);
-
+
if (this.source == null) {
// FIXME : make the delay configurable
this.source = new DelayedRefreshSourceWrapper(env.resolve(builder.getFileName()), 1000L);
@@ -357,8 +362,8 @@
root = builder.build(this.source);
this.disposableNodes = builder.getDisposableNodes();
-
- } finally {
+
+ } finally {
this.builderSelector.release(builder);
}
No revision
No revision
1.4.2.1 +11 -4 xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
Index: SitemapLanguage.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -r1.4 -r1.4.2.1
--- SitemapLanguage.java 26 Mar 2002 10:57:02 -0000 1.4
+++ SitemapLanguage.java 7 Jun 2002 10:22:43 -0000 1.4.2.1
@@ -82,7 +82,7 @@
* The tree builder for the sitemap language.
*
* @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a>
- * @version CVS $Id: SitemapLanguage.java,v 1.4 2002/03/26 10:57:02 sylvain Exp $
+ * @version CVS $Id: SitemapLanguage.java,v 1.4.2.1 2002/06/07 10:22:43 cziegeler Exp $
*/
public class SitemapLanguage extends DefaultTreeBuilder {
@@ -201,8 +201,8 @@
* Add a view for a label. This is used to register all views that start from
* a given label.
*
- * @parameter label the label (or pseudo-label) for the view
- * @parameter view the view name
+ * @param label the label (or pseudo-label) for the view
+ * @param view the view name
*/
public void addViewForLabel(String label, String view) {
getLogger().debug("views:addViewForLabel(" + label + ", " + view + ")");
@@ -226,6 +226,10 @@
*/
public Collection getViewsForStatement(String role, String hint, Configuration statement) throws Exception {
+ if ( role == null || role.trim().equals("") ) {
+ // FIXME !!
+ return null;
+ }
String statementLabels = statement.getAttribute("label", null);
if (this.isBuildingView) {
@@ -247,8 +251,9 @@
Set labels = new HashSet();
// 1 - labels defined on the component
+ SitemapComponentSelector selector = null;
try {
- SitemapComponentSelector selector = (SitemapComponentSelector)this.manager.lookup(role + "Selector");
+ selector = (SitemapComponentSelector)this.manager.lookup(role + "Selector");
String[] compLabels = selector.getLabels(hint);
if (compLabels != null) {
for (int i = 0; i < compLabels.length; i++) {
@@ -258,6 +263,8 @@
} catch(Exception e) {
// Ignore (no selector for this role)
getLogger().debug("No selector for role " + role);
+ } finally {
+ this.manager.release( selector );
}
// 2 - labels defined on this statement
----------------------------------------------------------------------
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