You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2005/09/26 18:05:10 UTC
svn commit: r291647 - in
/cocoon/blocks/cron/trunk/java/org/apache/cocoon/components/cron:
CocoonPipelineCronJob.java CocoonQuartzJobExecutor.java
Author: sylvain
Date: Mon Sep 26 09:05:06 2005
New Revision: 291647
URL: http://svn.apache.org/viewcvs?rev=291647&view=rev
Log:
Propagate parameters and objectmap passed to FireJob as request parameters in the job environment
Modified:
cocoon/blocks/cron/trunk/java/org/apache/cocoon/components/cron/CocoonPipelineCronJob.java
cocoon/blocks/cron/trunk/java/org/apache/cocoon/components/cron/CocoonQuartzJobExecutor.java
Modified: cocoon/blocks/cron/trunk/java/org/apache/cocoon/components/cron/CocoonPipelineCronJob.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/cron/trunk/java/org/apache/cocoon/components/cron/CocoonPipelineCronJob.java?rev=291647&r1=291646&r2=291647&view=diff
==============================================================================
--- cocoon/blocks/cron/trunk/java/org/apache/cocoon/components/cron/CocoonPipelineCronJob.java (original)
+++ cocoon/blocks/cron/trunk/java/org/apache/cocoon/components/cron/CocoonPipelineCronJob.java Mon Sep 26 09:05:06 2005
@@ -45,11 +45,13 @@
public class CocoonPipelineCronJob extends ServiceableCronJob
implements Configurable, ConfigurableCronJob {
- public static final String PIPELINE_PARAM = "pipeline";
+ public static final String PIPELINE_PARAM = "pipeline";
- private String pipeline;
+ private String configuredPipeline;
+ private String pipeline;
public void execute(String name) {
+
if (getLogger ().isDebugEnabled ()) {
getLogger().debug ("CocoonPipelineCronJob: " + name + ", calling pipeline: " + pipeline);
}
@@ -86,7 +88,7 @@
}
public void configure(final Configuration config) throws ConfigurationException {
- this.pipeline = config.getChild(PIPELINE_PARAM).getValue("samples/hello-world/hello.xhtml");
+ this.configuredPipeline = config.getChild(PIPELINE_PARAM).getValue(null);
}
/* (non-Javadoc)
@@ -94,7 +96,9 @@
*/
public void setup(Parameters params, Map objects) {
if (null != params) {
- pipeline = params.getParameter(PIPELINE_PARAM, pipeline);
- }
+ pipeline = params.getParameter(PIPELINE_PARAM, configuredPipeline);
+ } else {
+ pipeline = configuredPipeline;
+ }
}
}
Modified: cocoon/blocks/cron/trunk/java/org/apache/cocoon/components/cron/CocoonQuartzJobExecutor.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/cron/trunk/java/org/apache/cocoon/components/cron/CocoonQuartzJobExecutor.java?rev=291647&r1=291646&r2=291647&view=diff
==============================================================================
--- cocoon/blocks/cron/trunk/java/org/apache/cocoon/components/cron/CocoonQuartzJobExecutor.java (original)
+++ cocoon/blocks/cron/trunk/java/org/apache/cocoon/components/cron/CocoonQuartzJobExecutor.java Mon Sep 26 09:05:06 2005
@@ -15,19 +15,32 @@
*/
package org.apache.cocoon.components.cron;
+import java.util.Map;
+
import org.apache.avalon.framework.context.ContextException;
+import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.cocoon.Constants;
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.Processor;
import org.apache.cocoon.environment.Context;
+import org.apache.cocoon.environment.ObjectModelHelper;
+import org.apache.cocoon.environment.Request;
import org.apache.cocoon.environment.background.BackgroundEnvironment;
import org.apache.cocoon.environment.internal.EnvironmentHelper;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionException;
/**
- * This component is resposible to launch a {@link CronJob}s in a Quart Scheduler.
+ * This component is resposible to launch a {@link CronJob}s in a Quartz Scheduler.
+ * <p>
+ * Jobs started with this executor have a {@link BackgroundEnvironment} already set up,
+ * meaning they can use the SourceResolver to access "cocoon:" pipelines.
+ * <p>
+ * Also, these pipelines will be able to access the job's parameters and objectmap defined
+ * by the various {@link org.apache.cocoon.components.cron.JobScheduler#fireJob(String, Parameters, Map)}
+ * methods using the "<code>cron-parameters</code>" and "<code>cron-objectmap</code>" request
+ * attributes, respectively.
*
* @author <a href="mailto:giacomo@apache.org">Giacomo Pati</a>
* @version CVS $Id$
@@ -50,6 +63,17 @@
}
m_env = new BackgroundEnvironment(m_logger, envContext);
+
+ Request req = ObjectModelHelper.getRequest(m_env.getObjectModel());
+ Map objects = (Map)data.get(QuartzJobScheduler.DATA_MAP_OBJECTMAP);
+ if (objects != null) {
+ req.setAttribute("cron-objectmap", objects);
+ }
+
+ Parameters params = (Parameters)data.get(QuartzJobScheduler.DATA_MAP_PARAMETERS);
+ if (params != null) {
+ req.setAttribute("cron-parameters", params);
+ }
try {
m_processor = (Processor) m_manager.lookup(Processor.ROLE);