You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2006/10/08 16:24:27 UTC
svn commit: r454150 - in
/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor:
./ sitemap/
Author: vgritsenko
Date: Sun Oct 8 07:24:25 2006
New Revision: 454150
URL: http://svn.apache.org/viewvc?view=rev&rev=454150
Log:
improving cocoon stack traces
Modified:
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/CategoryNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ContainerNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ProcessingNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActSetNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActTypeNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActionSetNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/AggregateNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/CallFunctionNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/CallNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/FlowNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/GenerateNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/HandleErrorsNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MatchNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelineNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelinesNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PreparableMatchNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ReadNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/RedirectToURINode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SelectNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SerializeNode.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/TransformNode.java
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/AbstractProcessingNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,25 +22,24 @@
import org.apache.cocoon.util.location.Location;
/**
- *
* @version $Id$
*/
-public abstract class AbstractProcessingNode
- extends AbstractLogEnabled
- implements ProcessingNode, ExecutionContext {
+public abstract class AbstractProcessingNode extends AbstractLogEnabled
+ implements ProcessingNode, ExecutionContext {
protected Location location = Location.UNKNOWN;
/** The type of the component */
protected String componentName;
-
+
/** The sitemap executor */
protected SitemapExecutor executor;
-
+
+
public AbstractProcessingNode(String type) {
this.componentName = type;
}
-
+
public AbstractProcessingNode() {
this(null);
}
@@ -58,15 +57,14 @@
public void setLocation(Location location) {
this.location = location;
}
-
+
/**
* Set the sitemap executor
*/
public void setSitemapExecutor(SitemapExecutor executor) {
this.executor = executor;
}
-
-
+
/* (non-Javadoc)
* @see org.apache.cocoon.sitemap.ExecutionContext#getType()
*/
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/CategoryNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/CategoryNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/CategoryNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/CategoryNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -29,38 +29,38 @@
*/
public final class CategoryNode extends AbstractParentProcessingNode {
- public CategoryNode(String type) {
- super(type);
- }
-
/** The name of this category */
private String categoryName;
/** The Map of named nodes in this category */
private Map nodes;
+
+ public CategoryNode(String type) {
+ super(type);
+ }
+
public void setCategory(String categoryName, Map nodes) {
this.categoryName = categoryName;
- this.nodes = (nodes != null) ? nodes : new HashMap(0);
+ this.nodes = nodes != null ? nodes : new HashMap(0);
}
- public final boolean invoke(Environment env, InvokeContext context) throws Exception {
- String msg = "Cannot invoke " + this.categoryName + " at " + getLocation();
- throw new ProcessingException(msg);
+ public boolean invoke(Environment env, InvokeContext context) throws Exception {
+ throw new ProcessingException("Cannot invoke " + this.categoryName, getLocation());
}
- public final ProcessingNode getNodeByName(String name) throws Exception {
+ public ProcessingNode getNodeByName(String name) throws Exception {
ProcessingNode node = (ProcessingNode)nodes.get(name);
if (node == null) {
- String msg = "Unknown " + this.categoryName + " named '" + name + "' at " + getLocation();
- throw new ProcessingException(msg);
+ throw new ProcessingException("Unknown " + this.categoryName + " named '" + name + "'",
+ getLocation());
}
return node;
}
- public final boolean invokeByName(String name, Environment env, InvokeContext context)
- throws Exception {
+ public boolean invokeByName(String name, Environment env, InvokeContext context)
+ throws Exception {
return getNodeByName(name).invoke(env, context);
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ConcreteTreeProcessor.java Sun Oct 8 07:24:25 2006
@@ -72,7 +72,10 @@
/** Root node of the processing tree */
private ProcessingNode rootNode;
- /** Number of simultaneous uses of this processor (either by concurrent request or by internal requests) */
+ /**
+ * Number of simultaneous uses of this processor (either by concurrent
+ * request or by internal requests)
+ */
private int requestCount;
/** The sitemap executor */
@@ -233,8 +236,7 @@
context.setLastProcessor(this);
try {
- final boolean success = this.rootNode.invoke(environment, context);
- return success;
+ return this.rootNode.invoke(environment, context);
} finally {
EnvironmentHelper.leaveProcessor();
// Restore old redirector
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ContainerNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ContainerNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ContainerNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ContainerNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -28,9 +28,9 @@
public ContainerNode(String type) {
super(type);
}
-
+
/* (non-Javadoc)
- * @see org.apache.cocoon.components.treeprocessor.ProcessingNode#invoke(org.apache.cocoon.environment.Environment, org.apache.cocoon.components.treeprocessor.InvokeContext)
+ * @see ProcessingNode#invoke(Environment, InvokeContext)
*/
public final boolean invoke(Environment env, InvokeContext context) throws Exception {
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ProcessingNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ProcessingNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ProcessingNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/ProcessingNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -23,7 +23,6 @@
import org.apache.cocoon.util.location.Location;
/**
- *
* @version $Id$
*/
public interface ProcessingNode extends ThreadSafe, Locatable {
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActSetNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActSetNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActSetNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActSetNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,6 +22,7 @@
import org.apache.cocoon.components.treeprocessor.SimpleParentProcessingNode;
import org.apache.cocoon.components.treeprocessor.variables.VariableResolver;
import org.apache.cocoon.environment.Environment;
+import org.apache.cocoon.ProcessingException;
import java.util.Map;
@@ -31,7 +32,7 @@
* @version $Id$
*/
public class ActSetNode extends SimpleParentProcessingNode
- implements ParameterizableProcessingNode {
+ implements ParameterizableProcessingNode {
/** The parameters of this node */
private Map parameters;
@@ -39,10 +40,11 @@
/** The action set to call */
private ActionSetNode actionSet;
+
public ActSetNode() {
super(null);
}
-
+
public void setParameters(Map parameterMap) {
this.parameters = parameterMap;
}
@@ -52,9 +54,9 @@
}
public final boolean invoke(Environment env, InvokeContext context)
- throws Exception {
+ throws Exception {
- // Perform any common invoke functionality
+ // Perform any common invoke functionality
super.invoke(env, context);
Parameters resolvedParams = VariableResolver.buildParameters(
@@ -63,19 +65,23 @@
env.getObjectModel()
);
- Map result = this.actionSet.call(env, context, resolvedParams);
-
- if (context.getRedirector().hasRedirected()) {
- return true;
+ try {
+ Map result = this.actionSet.call(env, context, resolvedParams);
- } else if (result == null) {
- return false;
+ if (context.getRedirector().hasRedirected()) {
+ return true;
- } else if (this.children == null) {
- return true;
+ } else if (result == null) {
+ return false;
- } else {
- return this.invokeNodes(this.children, env, context, null, result);
+ } else if (this.children == null) {
+ return true;
+
+ } else {
+ return this.invokeNodes(this.children, env, context, null, result);
+ }
+ } catch (Exception e) {
+ throw ProcessingException.throwLocated("Sitemap: error invoking action set", e, getLocation());
}
}
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActTypeNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActTypeNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActTypeNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActTypeNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,6 +20,8 @@
import java.util.Map;
import org.apache.avalon.framework.parameters.Parameters;
+
+import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.acting.Action;
import org.apache.cocoon.components.treeprocessor.InvokeContext;
import org.apache.cocoon.components.treeprocessor.ParameterizableProcessingNode;
@@ -36,7 +38,7 @@
* @version $Id$
*/
public class ActTypeNode extends SimpleSelectorProcessingNode
- implements ParameterizableProcessingNode {
+ implements ParameterizableProcessingNode {
/** The parameters of this node */
private Map parameters;
@@ -49,8 +51,9 @@
protected boolean inActionSet;
- public ActTypeNode(String type,
- VariableResolver source,
+
+ public ActTypeNode(String type,
+ VariableResolver source,
String name,
boolean inActionSet) {
super(Action.ROLE + "Selector", type);
@@ -64,26 +67,21 @@
}
public final boolean invoke(Environment env, InvokeContext context)
- throws Exception {
+ throws Exception {
- // Perform any common invoke functionality
+ // Perform any common invoke functionality
super.invoke(env, context);
// Prepare data needed by the action
Map objectModel = env.getObjectModel();
- Redirector redirector = context.getRedirector();
- SourceResolver resolver = EnvironmentHelper.getCurrentProcessor().getSourceResolver();
String resolvedSource = source.resolve(context, objectModel);
Parameters resolvedParams =
- VariableResolver.buildParameters(this.parameters,
- context, objectModel);
-
- Map actionResult;
+ VariableResolver.buildParameters(this.parameters, context, objectModel);
// If in action set, merge parameters
if (inActionSet) {
Parameters callerParams =
- (Parameters)env.getAttribute(ActionSetNode.CALLER_PARAMETERS);
+ (Parameters) env.getAttribute(ActionSetNode.CALLER_PARAMETERS);
if (resolvedParams == Parameters.EMPTY_PARAMETERS) {
// Just swap
resolvedParams = callerParams;
@@ -97,46 +95,52 @@
}
}
- Action action = (Action)getComponent();
+ Redirector redirector = context.getRedirector();
+ SourceResolver resolver = EnvironmentHelper.getCurrentProcessor().getSourceResolver();
+
try {
- actionResult = this.executor.invokeAction(this,
- objectModel,
- action,
- redirector,
- resolver,
- resolvedSource,
- resolvedParams);
- } finally {
- releaseComponent(action);
- }
+ Action action = (Action) getComponent();
+ Map actionResult;
+ try {
+ actionResult = this.executor.invokeAction(this,
+ objectModel,
+ action,
+ redirector,
+ resolver,
+ resolvedSource,
+ resolvedParams);
+ } finally {
+ releaseComponent(action);
+ }
- if (redirector.hasRedirected()) {
- return true;
- }
+ if (redirector.hasRedirected()) {
+ return true;
+ }
- if (actionResult != null) {
- // Action succeeded : process children if there are some, with the action result
- if (this.children != null) {
- boolean result = this.invokeNodes(this.children, env, context, name, actionResult);
-
- if (inActionSet) {
- // Merge child action results, if any
- Map childMap = (Map)env.getAttribute(ActionSetNode.ACTION_RESULTS);
- if (childMap != null) {
- Map newResults = new HashMap(childMap);
- newResults.putAll(actionResult);
- env.setAttribute(ActionSetNode.ACTION_RESULTS, newResults);
- } else {
- // No previous results
- env.setAttribute(ActionSetNode.ACTION_RESULTS, actionResult);
+ if (actionResult != null) {
+ // Action succeeded : process children if there are some, with the action result
+ if (this.children != null) {
+ boolean result = invokeNodes(this.children, env, context, name, actionResult);
+
+ if (inActionSet) {
+ // Merge child action results, if any
+ Map childMap = (Map) env.getAttribute(ActionSetNode.ACTION_RESULTS);
+ if (childMap != null) {
+ Map newResults = new HashMap(childMap);
+ newResults.putAll(actionResult);
+ env.setAttribute(ActionSetNode.ACTION_RESULTS, newResults);
+ } else {
+ // No previous results
+ env.setAttribute(ActionSetNode.ACTION_RESULTS, actionResult);
+ }
}
+ return result;
}
- return result;
- }// else {
- // return false; // Return false to continue sitemap invocation
- //}
- }// else {
- return false; // Action failed
- //}
+ }
+ } catch (Exception e) {
+ throw ProcessingException.throwLocated("Sitemap: error invoking action", e, getLocation());
+ }
+
+ return false; // Action failed
}
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActionSetNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActionSetNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActionSetNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ActionSetNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,6 +20,8 @@
import java.util.Map;
import org.apache.avalon.framework.parameters.Parameters;
+
+import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.components.treeprocessor.AbstractProcessingNode;
import org.apache.cocoon.components.treeprocessor.InvokeContext;
import org.apache.cocoon.components.treeprocessor.NamedProcessingNode;
@@ -27,14 +29,13 @@
import org.apache.cocoon.environment.Environment;
/**
- *
* @version $Id$
*/
public class ActionSetNode extends AbstractProcessingNode
- implements NamedProcessingNode {
-
+ implements NamedProcessingNode {
+
public static final String CALLER_PARAMETERS = ActionSetNode.class.getName() + "/CallerParameters";
- public static final String ACTION_RESULTS = ActionSetNode.class.getName() + "/ActionResults";
+ public static final String ACTION_RESULTS = ActionSetNode.class.getName() + "/ActionResults";
/** The action nodes */
private ProcessingNode[] nodes;
@@ -42,65 +43,62 @@
/** The 'action' attribute for each action */
private String[] actionNames;
- public ActionSetNode(
- String name, ProcessingNode[] nodes, String[] actionNames) {
+
+ public ActionSetNode(String name, ProcessingNode[] nodes, String[] actionNames) {
super(name);
this.nodes = nodes;
this.actionNames = actionNames;
}
public final boolean invoke(Environment env, InvokeContext context)
- throws Exception {
-
- // Perform any common invoke functionalty
- // super.invoke(env, context);
- String msg = "An action-set cannot be invoked, at " + this.getLocation();
- throw new UnsupportedOperationException(msg);
+ throws Exception {
+ throw new ProcessingException("An action-set cannot be invoked", getLocation());
}
/**
* Call the actions composing the action-set and return the combined result of
* these actions.
*/
- public final Map call(Environment env, InvokeContext context, Parameters params) throws Exception {
+ public final Map call(Environment env, InvokeContext context, Parameters params)
+ throws Exception {
String cocoonAction = env.getAction();
// Store the parameters from the caller into the environment so that they can be merged with
// each action's parameters.
-
-
- Map result = null;
-
- // Call each action that either has no cocoonAction, or whose cocoonAction equals
- // the one from the environment.
env.setAttribute(CALLER_PARAMETERS, params);
- for (int i = 0; i < nodes.length; i++) {
-
+ Map result = null;
- String actionName = actionNames[i];
- if (actionName == null || actionName.equals(cocoonAction)) {
-
- this.nodes[i].invoke(env, context);
-
- // Get action results. They're passed back through the environment since action-sets
- // "violate" the tree hierarchy (the returned Map is visible outside of the node)
- Map actionResult = (Map)env.getAttribute(ACTION_RESULTS);
- // Don't forget to clear it
- env.removeAttribute(ACTION_RESULTS);
-
- if (actionResult != null) {
- // Merge the result in the global result, creating it if necessary.
- if (result == null) {
- result = new HashMap(actionResult);
- } else {
- result.putAll(actionResult);
+ try {
+ // Call each action that either has no cocoonAction, or whose cocoonAction equals
+ // the one from the environment.
+ for (int i = 0; i < nodes.length; i++) {
+
+ String actionName = actionNames[i];
+ if (actionName == null || actionName.equals(cocoonAction)) {
+
+ this.nodes[i].invoke(env, context);
+
+ // Get action results. They're passed back through the environment since action-sets
+ // "violate" the tree hierarchy (the returned Map is visible outside of the node)
+ Map actionResult = (Map) env.getAttribute(ACTION_RESULTS);
+ // Don't forget to clear it
+ env.removeAttribute(ACTION_RESULTS);
+
+ if (actionResult != null) {
+ // Merge the result in the global result, creating it if necessary.
+ if (result == null) {
+ result = new HashMap(actionResult);
+ } else {
+ result.putAll(actionResult);
+ }
}
}
-
- } // if (actionName...
- } // for (int i...
+ }
+ } catch (Exception e) {
+ throw ProcessingException.throwLocated("Sitemap: error invoking action set", e, getLocation());
+ }
return result;
}
@@ -108,7 +106,6 @@
/**
* Implementation of <code>NamedProcessingNode</code>.
*/
-
public String getName() {
return this.componentName;
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/AggregateNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/AggregateNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/AggregateNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/AggregateNode.java Sun Oct 8 07:24:25 2006
@@ -62,6 +62,7 @@
/** View nodes to jump to */
private Map viewNodes;
+
public AggregateNode(VariableResolver element, VariableResolver nsURI, VariableResolver nsPrefix) {
super(null);
this.element = element;
@@ -103,7 +104,7 @@
} else {
// Are there some parts that match this view ?
- actualParts = (Part[])this.viewParts.get(cocoonView);
+ actualParts = (Part[]) this.viewParts.get(cocoonView);
// If not, keep all parts
if (actualParts == null) {
@@ -138,7 +139,7 @@
// Check aggregate-level view
if (cocoonView != null && this.viewNodes != null) {
- ProcessingNode viewNode = (ProcessingNode)this.viewNodes.get(cocoonView);
+ ProcessingNode viewNode = (ProcessingNode) this.viewNodes.get(cocoonView);
if (viewNode != null) {
if (infoEnabled) {
getLogger().info("Jumping to view '" + cocoonView + "' from aggregate at " + this.getLocation());
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/CallFunctionNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/CallFunctionNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/CallFunctionNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/CallFunctionNode.java Sun Oct 8 07:24:25 2006
@@ -68,17 +68,12 @@
Map objectModel = env.getObjectModel();
- // Resolve parameters
- Parameters params = VariableResolver.buildParameters(this.parameters, context, objectModel);
-
- // Build the list of positional arguments
- //TODO (SW): Deprecate this in the future.
- // It has be found to be bad practice to pass sitemap parameters
- // as function arguments, as these are name-value pairs in the sitemap
- // and positional arguments in the flowscript. If the user doesn't respect
- // the argument order, this leads to difficult to solve bugs.
+ // Build the list of arguments
List args;
if (argumentNames.length != 0) {
+ // Resolve parameters
+ Parameters params = VariableResolver.buildParameters(this.parameters, context, objectModel);
+
args = new ArrayList(argumentNames.length);
for (int i = 0; i < argumentNames.length; i++) {
String name = argumentNames[i];
@@ -97,11 +92,11 @@
if (continuation != null && continuation.length() > 0) {
try {
interpreter.handleContinuation(continuation, args, redirector);
- } catch(Exception e) {
+ } catch (Exception e) {
throw ProcessingException.throwLocated("Sitemap: error calling continuation", e, getLocation());
}
if (!redirector.hasRedirected()) {
- throw new ProcessingException("Sitemap: <map:call continuation> did not send a response", getLocation());
+ throw new ProcessingException("Sitemap: continuation did not send a response", getLocation());
}
return true;
}
@@ -112,11 +107,11 @@
if (name != null && name.length() > 0) {
try {
interpreter.callFunction(name, args, redirector);
- } catch(Exception e) {
+ } catch (Exception e) {
throw ProcessingException.throwLocated("Sitemap: error calling function '" + name + "'", e, getLocation());
}
if (!redirector.hasRedirected()) {
- throw new ProcessingException("Sitemap: <map:call function> did not send a response", getLocation());
+ throw new ProcessingException("Sitemap: function '" + name + "' did not send a response", getLocation());
}
return true;
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/CallNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/CallNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/CallNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/CallNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -24,13 +24,14 @@
import org.apache.cocoon.components.treeprocessor.ParameterizableProcessingNode;
import org.apache.cocoon.components.treeprocessor.variables.VariableResolver;
import org.apache.cocoon.environment.Environment;
+import org.apache.cocoon.ProcessingException;
/**
*
* @version $Id$
*/
public class CallNode extends AbstractProcessingNode
- implements ParameterizableProcessingNode {
+ implements ParameterizableProcessingNode {
/** The parameters of this node */
private Map parameters;
@@ -41,13 +42,14 @@
/** The category node */
private CategoryNode resources;
+
public CallNode() {
super(null);
}
-
+
/* (non-Javadoc)
- * @see org.apache.cocoon.components.treeprocessor.ParameterizableProcessingNode#setParameters(java.util.Map)
- */
+ * @see ParameterizableProcessingNode#setParameters(java.util.Map)
+ */
public void setParameters(Map parameterMap) {
this.parameters = parameterMap;
}
@@ -58,28 +60,29 @@
}
/* (non-Javadoc)
- * @see org.apache.cocoon.components.treeprocessor.ProcessingNode#invoke(org.apache.cocoon.environment.Environment, org.apache.cocoon.components.treeprocessor.InvokeContext)
+ * @see ProcessingNode#invoke(Environment, InvokeContext)
*/
public final boolean invoke(Environment env, InvokeContext context)
- throws Exception {
+ throws Exception {
Map objectModel = env.getObjectModel();
- // Resolve parameters, but push them only once the resource name has been
- // resolved, otherwise it adds an unwanted nesting level
- Map params = VariableResolver.buildMap(this.parameters, context, objectModel);
// Resolved resource name
String name = this.resourceName.resolve(context, objectModel);
if (getLogger().isDebugEnabled()) {
- getLogger().debug("Calling resource " + name);
+ getLogger().debug("Calling resource '" + name + "'");
}
-
- // and only now push the parameters
+
+ // Resolve and push parameters after resource name has been
+ // resolved, otherwise it adds an unwanted nesting level
+ Map params = VariableResolver.buildMap(this.parameters, context, objectModel);
params = this.executor.pushVariables(this, objectModel, null, params);
- context.pushMap(null,params);
-
+ context.pushMap(null, params);
+
try {
return this.resources.invokeByName(name, env, context);
+ } catch (Exception e) {
+ throw ProcessingException.throwLocated("Sitemap: error calling resource '" + name + "'", e, getLocation());
} finally {
this.executor.popVariables(this, objectModel);
context.popMap();
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/FlowNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/FlowNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/FlowNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/FlowNode.java Sun Oct 8 07:24:25 2006
@@ -39,6 +39,7 @@
private ServiceManager manager;
private Interpreter interpreter;
+
public FlowNode(String language) {
this.language = language;
}
@@ -51,8 +52,8 @@
* @param manager a <code>ServiceManager</code> value
* @exception ServiceException if no flow interpreter could be obtained
*/
- public void service(ServiceManager aManager) throws ServiceException {
- this.manager = aManager;
+ public void service(ServiceManager manager) throws ServiceException {
+ this.manager = manager;
try {
// Obtain the Interpreter instance for this language
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/GenerateNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/GenerateNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/GenerateNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/GenerateNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -28,10 +28,10 @@
import org.apache.cocoon.sitemap.SitemapExecutor;
/**
- *
* @version $Id$
*/
-public class GenerateNode extends PipelineEventComponentProcessingNode implements ParameterizableProcessingNode {
+public class GenerateNode extends PipelineEventComponentProcessingNode
+ implements ParameterizableProcessingNode {
private String generatorName;
@@ -50,13 +50,13 @@
}
/* (non-Javadoc)
- * @see org.apache.cocoon.components.treeprocessor.ProcessingNode#invoke(org.apache.cocoon.environment.Environment, org.apache.cocoon.components.treeprocessor.InvokeContext)
+ * @see ProcessingNode#invoke(Environment, InvokeContext)
*/
public final boolean invoke(Environment env, InvokeContext context)
throws Exception {
final Map objectModel = env.getObjectModel();
-
+
SitemapExecutor.PipelineComponentDescription desc = new SitemapExecutor.PipelineComponentDescription();
desc.type = this.generatorName;
desc.source = source.resolve(context, objectModel);
@@ -64,20 +64,16 @@
desc.hintParameters = this.pipelineHints == null
? Parameters.EMPTY_PARAMETERS
: VariableResolver.buildParameters(this.pipelineHints, context, objectModel);
-
+
desc = this.executor.addGenerator(this, objectModel, desc);
-
- context.getProcessingPipeline().setGenerator(
- desc.type,
- desc.source,
- desc.parameters,
- desc.hintParameters
- );
+ context.getProcessingPipeline().setGenerator(desc.type,
+ desc.source,
+ desc.parameters,
+ desc.hintParameters);
// Check view
if (this.views != null) {
-
//inform the pipeline that we have a branch point
context.getProcessingPipeline().informBranchPoint();
@@ -85,7 +81,7 @@
if (cocoonView != null) {
// Get view node
- ProcessingNode viewNode = (ProcessingNode)this.views.get(cocoonView);
+ ProcessingNode viewNode = (ProcessingNode) this.views.get(cocoonView);
if (viewNode != null) {
if (getLogger().isInfoEnabled()) {
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/HandleErrorsNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/HandleErrorsNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/HandleErrorsNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/HandleErrorsNode.java Sun Oct 8 07:24:25 2006
@@ -94,9 +94,9 @@
env.getObjectModel().remove(Constants.NOTIFYING_OBJECT);
throw new ProcessingException(
- "Incomplete pipeline: 'handle-error' without a 'type' must include a generator, at " +
- getLocation() + SystemUtils.LINE_SEPARATOR +
- "Either add a generator (preferred) or a type='500' attribute (deprecated) on 'handle-errors'");
+ "Incomplete pipeline: 'handle-error' without a 'type' must include a generator." +
+ SystemUtils.LINE_SEPARATOR +
+ "Either add a generator (preferred) or a type='500' attribute (deprecated) on 'handle-errors'", getLocation());
}
// Rethrow the exception
@@ -113,9 +113,9 @@
env.getObjectModel().remove(Constants.NOTIFYING_OBJECT);
throw new ProcessingException(
- "Error: 'handle-error' with a 'type' attribute has an implicit generator, at " +
- getLocation() + SystemUtils.LINE_SEPARATOR +
- "Please remove the 'type' attribute on 'handle-error'");
+ "Error: 'handle-error' with a 'type' attribute has an implicit generator." +
+ SystemUtils.LINE_SEPARATOR +
+ "Please remove the 'type' attribute on 'handle-error'", getLocation());
}
// Rethrow the exception
throw e;
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MatchNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MatchNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MatchNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MatchNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -19,6 +19,8 @@
import java.util.Map;
import org.apache.avalon.framework.parameters.Parameters;
+
+import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.components.treeprocessor.InvokeContext;
import org.apache.cocoon.components.treeprocessor.ParameterizableProcessingNode;
import org.apache.cocoon.components.treeprocessor.SimpleSelectorProcessingNode;
@@ -27,11 +29,10 @@
import org.apache.cocoon.matching.Matcher;
/**
- *
* @version $Id$
*/
public class MatchNode extends SimpleSelectorProcessingNode
- implements ParameterizableProcessingNode {
+ implements ParameterizableProcessingNode {
/** The 'pattern' attribute */
private VariableResolver pattern;
@@ -41,6 +42,7 @@
private Map parameters;
+
public MatchNode(String type, VariableResolver pattern, String name) {
super(Matcher.ROLE + "Selector", type);
this.pattern = pattern;
@@ -52,9 +54,9 @@
}
public final boolean invoke(Environment env, InvokeContext context)
- throws Exception {
-
- // Perform any common invoke functionality
+ throws Exception {
+
+ // Perform any common invoke functionality
super.invoke(env, context);
Map objectModel = env.getObjectModel();
@@ -62,28 +64,32 @@
String resolvedPattern = pattern.resolve(context, objectModel);
Parameters resolvedParams = VariableResolver.buildParameters(this.parameters, context, objectModel);
- Map result = null;
-
- Matcher matcher = (Matcher)getComponent();
try {
- result = this.executor.invokeMatcher(this,
- objectModel,
- matcher,
- resolvedPattern,
- resolvedParams);
- } finally {
- releaseComponent(matcher);
- }
-
- if (result != null) {
- if (getLogger().isDebugEnabled()) {
- getLogger().debug("Matcher '" + this.componentName + "' matched pattern '" + this.pattern +
- "' at " + this.getLocation());
+ Map result = null;
+ Matcher matcher = (Matcher) getComponent();
+ try {
+ result = this.executor.invokeMatcher(this,
+ objectModel,
+ matcher,
+ resolvedPattern,
+ resolvedParams);
+ } finally {
+ releaseComponent(matcher);
}
- // Invoke children with the matcher results
- return this.invokeNodes(children, env, context, name, result);
+ if (result != null) {
+ if (getLogger().isDebugEnabled()) {
+ getLogger().debug("Matcher '" + this.componentName + "' matched pattern '" + this.pattern +
+ "' at " + getLocation());
+ }
+
+ // Invoke children with the matcher results
+ return invokeNodes(children, env, context, name, result);
+ }
+ } catch (Exception e) {
+ throw ProcessingException.throwLocated("Sitemap: error invoking matcher", e, getLocation());
}
+
// Matcher failed
return false;
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/MountNode.java Sun Oct 8 07:24:25 2006
@@ -32,7 +32,6 @@
import org.apache.commons.lang.BooleanUtils;
/**
- *
* @version $Id$
*/
public class MountNode extends AbstractProcessingNode
@@ -60,6 +59,7 @@
/** The value of the 'pass-through' attribute */
private final Boolean passThrough;
+
public MountNode(VariableResolver prefix,
VariableResolver source,
TreeProcessor parentProcessor,
@@ -73,7 +73,7 @@
}
/**
- * @see org.apache.cocoon.components.treeprocessor.ProcessingNode#invoke(org.apache.cocoon.environment.Environment, org.apache.cocoon.components.treeprocessor.InvokeContext)
+ * @see org.apache.cocoon.components.treeprocessor.ProcessingNode#invoke(Environment, InvokeContext)
*/
public final boolean invoke(Environment env, InvokeContext context)
throws Exception {
@@ -85,6 +85,7 @@
if (resolvedSource.length() == 0) {
throw new ProcessingException("Source of mount statement is empty");
}
+
// Handle directory mounts
if (resolvedSource.charAt(resolvedSource.length() - 1) == '/') {
resolvedSource = resolvedSource + "sitemap.xmap";
@@ -137,7 +138,6 @@
TreeProcessor processor = (TreeProcessor) processors.get(source);
if (processor == null) {
-
processor = this.parentProcessor.createChildProcessor(source, this.checkReload, prefix);
// Associate to the original source
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelineNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelineNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelineNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelineNode.java Sun Oct 8 07:24:25 2006
@@ -60,6 +60,7 @@
/** Optional sitemap parameters */
protected Map parameters;
+
/**
* A constructor to receive the optional expires parameter
* and optional parameters for the processing pipeline
@@ -107,6 +108,7 @@
public final boolean invoke(Environment env, InvokeContext context)
throws Exception {
+
boolean passThrough;
Object passThroughRaw = env.getAttribute(MountNode.COCOON_PASS_THROUGH);
if (passThroughRaw == null) {
@@ -128,13 +130,12 @@
}
Parameters params = VariableResolver.buildParameters(this.parameters,
- context,
- env.getObjectModel());
+ context,
+ env.getObjectModel());
SitemapExecutor.PipelineComponentDescription desc = new SitemapExecutor.PipelineComponentDescription();
desc.type = this.processingPipeline;
desc.parameters = params;
-
desc = this.executor.enteringPipeline(this, env.getObjectModel(), desc);
context.inform(desc.type, desc.parameters, env.getObjectModel());
@@ -144,7 +145,7 @@
context.setErrorHandler(
new SitemapErrorHandler(this.errorHandlerHelper, env, context));
} else {
- // Reset internal error handler (previous pipeline might had set it)
+ // Reset internal error handler (previous pipeline might had set it)
context.setErrorHandler(null);
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelinesNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelinesNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelinesNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelinesNode.java Sun Oct 8 07:24:25 2006
@@ -39,6 +39,7 @@
private ErrorHandlerHelper errorHandlerHelper;
+
/**
* Constructor
*/
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PreparableMatchNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PreparableMatchNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PreparableMatchNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PreparableMatchNode.java Sun Oct 8 07:24:25 2006
@@ -29,13 +29,13 @@
import org.apache.cocoon.matching.Matcher;
import org.apache.cocoon.matching.PreparableMatcher;
import org.apache.cocoon.sitemap.PatternException;
+import org.apache.cocoon.ProcessingException;
/**
- *
* @version $Id$
*/
public class PreparableMatchNode extends SimpleSelectorProcessingNode
- implements ParameterizableProcessingNode, Initializable {
+ implements ParameterizableProcessingNode, Initializable {
/** The 'pattern' attribute */
private String pattern;
@@ -43,9 +43,10 @@
/** The 'name' for the variable anchor */
private String name;
+ private Map parameters;
+
private Object preparedPattern;
- private Map parameters;
public PreparableMatchNode(String type, String pattern, String name) {
super(Matcher.ROLE + "Selector", type);
@@ -54,7 +55,7 @@
}
/* (non-Javadoc)
- * @see org.apache.cocoon.components.treeprocessor.ParameterizableProcessingNode#setParameters(java.util.Map)
+ * @see ParameterizableProcessingNode#setParameters(java.util.Map)
*/
public void setParameters(Map parameterMap) {
this.parameters = parameterMap;
@@ -71,7 +72,7 @@
try {
this.preparedPattern = matcher.preparePattern(this.pattern);
} catch(PatternException pe) {
- String msg = "Invalid pattern '" + this.pattern + "' for matcher at " + this.getLocation();
+ String msg = "Invalid pattern '" + this.pattern + "' for matcher at " + getLocation();
throw new ConfigurationException(msg, pe);
} finally {
releaseComponent(matcher);
@@ -84,8 +85,8 @@
public final boolean invoke(Environment env, InvokeContext context)
throws Exception {
- // Perform any common invoke functionality
- super.invoke(env, context);
+ // Perform any common invoke functionality
+ super.invoke(env, context);
Map objectModel = env.getObjectModel();
Parameters resolvedParams = VariableResolver.buildParameters(
@@ -94,28 +95,33 @@
Map result = null;
- PreparableMatcher matcher = (PreparableMatcher)getComponent();
try {
- result = this.executor.invokePreparableMatcher(this,
- objectModel,
- matcher,
- this.pattern,
- preparedPattern,
- resolvedParams);
- } finally {
- releaseComponent(matcher);
- }
-
- if (result != null) {
- if (getLogger().isDebugEnabled()) {
- getLogger().debug("Matcher '" + this.componentName + "' matched prepared pattern '" +
- this.pattern + "' at " + this.getLocation());
+ PreparableMatcher matcher = (PreparableMatcher)getComponent();
+ try {
+ result = this.executor.invokePreparableMatcher(this,
+ objectModel,
+ matcher,
+ this.pattern,
+ preparedPattern,
+ resolvedParams);
+ } finally {
+ releaseComponent(matcher);
}
- // Invoke children with the matcher results
- return this.invokeNodes(children, env, context, name, result);
+ if (result != null) {
+ if (getLogger().isDebugEnabled()) {
+ getLogger().debug("Matcher '" + this.componentName + "' matched prepared pattern '" +
+ this.pattern + "' at " + this.getLocation());
+ }
+
+ // Invoke children with the matcher results
+ return this.invokeNodes(children, env, context, name, result);
+ }
+ } catch (Exception e) {
+ throw ProcessingException.throwLocated("Sitemap: error invoking matcher", e, getLocation());
}
+
// Matcher failed
return false;
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ReadNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ReadNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ReadNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/ReadNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -23,14 +23,15 @@
import org.apache.cocoon.components.treeprocessor.variables.VariableResolver;
import org.apache.cocoon.environment.Environment;
import org.apache.cocoon.sitemap.SitemapExecutor;
+import org.apache.cocoon.ProcessingException;
import java.util.Map;
/**
- *
* @version $Id$
*/
-public class ReadNode extends AbstractProcessingNode implements ParameterizableProcessingNode {
+public class ReadNode extends AbstractProcessingNode
+ implements ParameterizableProcessingNode {
private String readerName;
@@ -42,6 +43,7 @@
private Map parameters;
+
/**
* Build a <code>SerializerNode</code> having a name, a mime-type and a status code (HTTP codes).
*
@@ -61,7 +63,7 @@
}
/* (non-Javadoc)
- * @see org.apache.cocoon.components.treeprocessor.ProcessingNode#invoke(org.apache.cocoon.environment.Environment, org.apache.cocoon.components.treeprocessor.InvokeContext)
+ * @see org.apache.cocoon.components.treeprocessor.ProcessingNode#invoke(Environment, InvokeContext)
*/
public final boolean invoke(Environment env, InvokeContext context)
throws Exception {
@@ -75,26 +77,24 @@
desc.source = source.resolve(context, objectModel);
desc.parameters = VariableResolver.buildParameters(this.parameters, context, objectModel);
desc.mimeType = this.mimeType.resolve(context, objectModel);
-
+
desc = this.executor.addReader(this, objectModel, desc);
- pipeline.setReader(
- desc.type,
- desc.source,
- desc.parameters,
- desc.mimeType
- );
+ pipeline.setReader(desc.type,
+ desc.source,
+ desc.parameters,
+ desc.mimeType);
// Set status code if there is one
if (this.statusCode >= 0) {
env.setStatus(this.statusCode);
}
- if (! context.isBuildingPipelineOnly()) {
+ if (!context.isBuildingPipelineOnly()) {
// Process pipeline
return pipeline.process(env);
-
}
+
// Return true : pipeline is finished.
return true;
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/RedirectToURINode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/RedirectToURINode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/RedirectToURINode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/RedirectToURINode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -31,7 +31,7 @@
// TODO: It can implement ParameterizableProcessingNode to pass redirect parameters
// Those parameters will be URL-encoded and appended to the redirect URI
-
+
/** The 'uri' attribute */
private VariableResolver uri;
@@ -41,9 +41,10 @@
private boolean permanent;
- public RedirectToURINode(VariableResolver uri,
- boolean createSession,
- boolean global,
+
+ public RedirectToURINode(VariableResolver uri,
+ boolean createSession,
+ boolean global,
boolean permanent ) {
this.global = global;
this.uri = uri;
@@ -52,7 +53,7 @@
}
public final boolean invoke(Environment env, InvokeContext context)
- throws Exception {
+ throws Exception {
String resolvedURI = uri.resolve(context, env.getObjectModel());
if (getLogger().isInfoEnabled()) {
@@ -67,10 +68,10 @@
this.permanent);
final Redirector redirector = context.getRedirector();
- if( this.global ) {
+ if (this.global) {
redirector.globalRedirect(this.createSession, resolvedURI);
} else if (this.permanent && redirector instanceof PermanentRedirector) {
- ((PermanentRedirector)redirector).permanentRedirect(this.createSession, resolvedURI);
+ ((PermanentRedirector) redirector).permanentRedirect(this.createSession, resolvedURI);
} else {
redirector.redirect(this.createSession, resolvedURI);
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SelectNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SelectNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SelectNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SelectNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -19,6 +19,8 @@
import java.util.Map;
import org.apache.avalon.framework.parameters.Parameters;
+
+import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.components.treeprocessor.InvokeContext;
import org.apache.cocoon.components.treeprocessor.ParameterizableProcessingNode;
import org.apache.cocoon.components.treeprocessor.ProcessingNode;
@@ -28,11 +30,10 @@
import org.apache.cocoon.selection.Selector;
/**
- *
* @version $Id$
*/
public class SelectNode extends SimpleSelectorProcessingNode
- implements ParameterizableProcessingNode {
+ implements ParameterizableProcessingNode {
/** The parameters of this node */
private Map parameters;
@@ -43,6 +44,7 @@
private ProcessingNode[] otherwhiseNodes;
+
public SelectNode(String name) {
super(Selector.ROLE + "Selector", name);
}
@@ -58,12 +60,12 @@
}
/* (non-Javadoc)
- * @see org.apache.cocoon.components.treeprocessor.ProcessingNode#invoke(org.apache.cocoon.environment.Environment, org.apache.cocoon.components.treeprocessor.InvokeContext)
+ * @see org.apache.cocoon.components.treeprocessor.ProcessingNode#invoke(Environment, InvokeContext)
*/
public final boolean invoke(Environment env, InvokeContext context)
throws Exception {
- // Perform any common invoke functionality
+ // Perform any common invoke functionality
super.invoke(env, context);
// Prepare data needed by the action
@@ -72,9 +74,8 @@
final Selector selector = (Selector)getComponent();
try {
-
for (int i = 0; i < this.whenTests.length; i++) {
- if ( this.executor.invokeSelector(this, objectModel,
+ if (this.executor.invokeSelector(this, objectModel,
selector,
whenTests[i].resolve(context, objectModel),
resolvedParams)) {
@@ -87,6 +88,8 @@
}
return false;
+ } catch (Exception e) {
+ throw ProcessingException.throwLocated("Sitemap: error processing select", e, getLocation());
} finally {
releaseComponent(selector);
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SerializeNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SerializeNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SerializeNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SerializeNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -30,10 +30,10 @@
import org.apache.cocoon.sitemap.SitemapExecutor;
/**
- *
* @version $Id$
*/
-public class SerializeNode extends PipelineEventComponentProcessingNode implements ParameterizableProcessingNode {
+public class SerializeNode extends PipelineEventComponentProcessingNode
+ implements ParameterizableProcessingNode {
private String serializerName;
@@ -54,8 +54,8 @@
* @param statusCode the HTTP response status code, or <code>-1</code> if not specified.
*/
public SerializeNode(String name,
- VariableResolver source,
- VariableResolver mimeType,
+ VariableResolver source,
+ VariableResolver mimeType,
int statusCode) {
this.serializerName = name;
this.source = source;
@@ -75,7 +75,7 @@
// Check view
if (this.views != null) {
-
+
//inform the pipeline that we have a branch point
context.getProcessingPipeline().informBranchPoint();
@@ -93,7 +93,7 @@
}
}
}
-
+
final Map objectModel = env.getObjectModel();
final ProcessingPipeline pipeline = context.getProcessingPipeline();
@@ -101,7 +101,7 @@
if (objectModel.containsKey(Constants.LINK_OBJECT)) {
pipeline.addTransformer("<translator>", null, Parameters.EMPTY_PARAMETERS, Parameters.EMPTY_PARAMETERS);
}
-
+
if (objectModel.containsKey(Constants.LINK_COLLECTION_OBJECT) && env.isExternal()) {
pipeline.addTransformer("<gatherer>", null, Parameters.EMPTY_PARAMETERS, Parameters.EMPTY_PARAMETERS);
}
@@ -117,21 +117,19 @@
// inform executor
desc = this.executor.addSerializer(this, objectModel, desc);
-
- pipeline.setSerializer(
- desc.type,
- desc.source,
- desc.parameters,
- desc.hintParameters,
- desc.mimeType
- );
+
+ pipeline.setSerializer(desc.type,
+ desc.source,
+ desc.parameters,
+ desc.hintParameters,
+ desc.mimeType);
// Set status code if there is one
if (this.statusCode >= 0) {
env.setStatus(this.statusCode);
}
- if (! context.isBuildingPipelineOnly()) {
+ if (!context.isBuildingPipelineOnly()) {
// Process pipeline
return pipeline.process(env);
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java Sun Oct 8 07:24:25 2006
@@ -80,7 +80,7 @@
/**
* The tree builder for the sitemap language.
- *
+ *
* @version $Id$
*/
public class SitemapLanguage
@@ -119,8 +119,7 @@
protected String itsNamespace;
/**
- * The service manager for the processor that we are building. It is created
- * by {@link #createServiceManager(ClassLoader, Context, Configuration)}.
+ * The service manager for the processor that we are building.
*/
private ServiceManager itsManager;
@@ -186,7 +185,7 @@
/**
* Get the location of the treebuilder config file. Can be overridden for
* other versions.
- *
+ *
* @return The location of the treebuilder config file
*/
protected String getBuilderConfigURL() {
@@ -460,7 +459,7 @@
// public
String namespace = null;
try {
- namespace = ((AbstractConfiguration) config).getNamespace();
+ namespace = config.getNamespace();
} catch (ConfigurationException e) {
// ignore
}
@@ -475,6 +474,7 @@
} else {
desc.append(config.getName());
}
+
String type = config.getAttribute("type", null);
if (type != null) {
desc.append(" type=\"").append(type).append('"');
@@ -482,14 +482,16 @@
desc.append('>');
Location rawLoc = LocationUtils.getLocation(config);
- return new LocationImpl(desc.toString(), rawLoc.getURI(), rawLoc.getLineNumber(), rawLoc
- .getColumnNumber());
+ return new LocationImpl(desc.toString(),
+ rawLoc.getURI(),
+ rawLoc.getLineNumber(),
+ rawLoc.getColumnNumber());
}
/**
* Get <xxx:parameter> elements as a <code>Map</code> of </code>ListOfMapResolver</code>s,
* that can be turned into parameters using <code>ListOfMapResolver.buildParameters()</code>.
- *
+ *
* @return the Map of ListOfMapResolver, or <code>null</code> if there are
* no parameters.
*/
@@ -526,7 +528,7 @@
* Get the type for a statement : it returns the 'type' attribute if
* present, and otherwhise the default type defined for this role in the
* components declarations.
- *
+ *
* @throws ConfigurationException
* if the type could not be found.
*/
@@ -603,7 +605,7 @@
if ( beans != null ) {
final Iterator i = beans.values().iterator();
while ( i.hasNext() ) {
- this.enterSitemapEventListeners.add(i.next());
+ this.enterSitemapEventListeners.add(i.next());
}
}
beans = listableFactory.getBeansOfType(LeaveSitemapEventListener.class);
@@ -675,7 +677,7 @@
/**
* Add a view for a label. This is used to register all views that start
* from a given label.
- *
+ *
* @param label
* the label (or pseudo-label) for the view
* @param view
@@ -698,7 +700,7 @@
* Get the names of views for a given statement. If the cocoon view exists
* in the returned collection, the statement can directly branch to the
* view-handling node.
- *
+ *
* @param role
* the component role (e.g. <code>Generator.ROLE</code>)
* @param hint
@@ -725,7 +727,7 @@
}
// Compute the views attached to this component
- Set views = null;
+ Set views;
// Build the set for all labels for this statement
Set labels = new HashSet();
@@ -799,7 +801,7 @@
/**
* Get the {view name, view node} map for a collection of view names. This
* allows to resolve view nodes at build time, thus avoiding runtime lookup.
- *
+ *
* @param viewNames
* the view names
* @return association of names to views
@@ -826,7 +828,7 @@
/**
* Extract pipeline-hints from the given statement (if any exist)
- *
+ *
* @param role
* the component role (e.g. <code>Generator.ROLE</code>)
* @param hint
@@ -851,15 +853,14 @@
// the hint.
String statementHintParams = statement.getAttribute("pipeline-hints", null);
- String componentHintParams = null;
- String hintParams = null;
// firstly, determine if any pipeline-hints are defined at the component
// level
// if so, inherit these pipeline-hints (these hints can be overriden by
// local pipeline-hints)
- componentHintParams = this.itsComponentInfo.getPipelineHint(role, hint);
+ String componentHintParams = this.itsComponentInfo.getPipelineHint(role, hint);
+ String hintParams;
if (componentHintParams != null) {
hintParams = componentHintParams;
@@ -934,7 +935,7 @@
*
* @return the collection of labels (may be empty, nut never null)
*/
- private static final Collection splitLabels(String labels) {
+ private static Collection splitLabels(String labels) {
if (labels == null) {
return Collections.EMPTY_SET;
}
Modified: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/TransformNode.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/TransformNode.java?view=diff&rev=454150&r1=454149&r2=454150
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/TransformNode.java (original)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/TransformNode.java Sun Oct 8 07:24:25 2006
@@ -5,9 +5,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -29,10 +29,10 @@
import java.util.Map;
/**
- *
* @version $Id$
*/
-public class TransformNode extends PipelineEventComponentProcessingNode implements ParameterizableProcessingNode {
+public class TransformNode extends PipelineEventComponentProcessingNode
+ implements ParameterizableProcessingNode {
private String transformerName;
@@ -50,9 +50,8 @@
this.parameters = parameterMap;
}
-
/* (non-Javadoc)
- * @see org.apache.cocoon.components.treeprocessor.ProcessingNode#invoke(org.apache.cocoon.environment.Environment, org.apache.cocoon.components.treeprocessor.InvokeContext)
+ * @see org.apache.cocoon.components.treeprocessor.ProcessingNode#invoke(Environment, InvokeContext)
*/
public final boolean invoke(Environment env, InvokeContext context)
throws Exception {
@@ -60,7 +59,7 @@
final Map objectModel = env.getObjectModel();
final ProcessingPipeline pipeline = context.getProcessingPipeline();
-
+
SitemapExecutor.PipelineComponentDescription desc = new SitemapExecutor.PipelineComponentDescription();
desc.type = this.transformerName;
desc.source = source.resolve(context, objectModel);
@@ -72,19 +71,17 @@
// inform executor
desc = this.executor.addTransformer(this, objectModel, desc);
- pipeline.addTransformer(
- desc.type,
- desc.source,
- desc.parameters,
- desc.hintParameters
- );
+ pipeline.addTransformer(desc.type,
+ desc.source,
+ desc.parameters,
+ desc.hintParameters);
// Check view
if (this.views != null) {
-
+
//inform the pipeline that we have a branch point
pipeline.informBranchPoint();
-
+
String cocoonView = env.getView();
if (cocoonView != null) {