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 2004/04/29 10:23:23 UTC
cvs commit: cocoon-2.1/src/blocks/cron/java/org/apache/cocoon/components/cron TestCronJob.java
cziegeler 2004/04/29 01:23:23
Modified: src/blocks/cron/java/org/apache/cocoon/components/cron
TestCronJob.java
Log:
Proper releasing of resources, clean up code
Revision Changes Path
1.7 +31 -30 cocoon-2.1/src/blocks/cron/java/org/apache/cocoon/components/cron/TestCronJob.java
Index: TestCronJob.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/cron/java/org/apache/cocoon/components/cron/TestCronJob.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TestCronJob.java 11 Mar 2004 15:38:31 -0000 1.6
+++ TestCronJob.java 29 Apr 2004 08:23:23 -0000 1.7
@@ -25,8 +25,6 @@
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceResolver;
@@ -41,7 +39,7 @@
* @since 2.1.1
*/
public class TestCronJob extends ServiceableCronJob
- implements CronJob, Configurable, ConfigurableCronJob, Serviceable {
+ implements Configurable, ConfigurableCronJob {
/** Parameter key for the message */
public static final String PARAMETER_MESSAGE = "TestCronJob.Parameter.Message";
@@ -59,11 +57,8 @@
private int m_sleep;
/** The pipeline to be called */
- private String pipeline = null;
+ private String pipeline;
- /** The service manager */
- private ServiceManager manager;
-
/* (non-Javadoc)
* @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
*/
@@ -74,17 +69,18 @@
pipeline = config.getChild("pipeline").getValue("samples/hello-world/hello.xhtml");
}
- public void service(ServiceManager manager) {
- this.manager = manager;
- }
-
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.components.cron.CronJob#execute(java.lang.String)
+ */
public void execute(String name) {
getLogger().info("CronJob " + name + " launched at " + new Date() + " with message '" + m_msg +
"' and sleep timeout of " + m_sleep + "ms");
- try {
- SourceResolver resolver = (SourceResolver)this.manager.lookup(SourceResolver.ROLE);
- Source src = resolver.resolveURI("cocoon://" + pipeline);
+ SourceResolver resolver = null;
+ Source src = null;
+ try {
+ resolver = (SourceResolver)this.manager.lookup(SourceResolver.ROLE);
+ src = resolver.resolveURI("cocoon://" + pipeline);
InputStream is = src.getInputStream();
InputStreamReader reader = new InputStreamReader(is);
@@ -97,24 +93,29 @@
}
reader.close();
- resolver.release(src);
- manager.release(resolver);
-
- getLogger().info("Cronjob " + name + " called pipeline " + pipeline +
- " and received following content:\n" + sb.toString() );
+
+ getLogger().info("Cronjob " + name + " called pipeline " + pipeline +
+ " and received following content:\n" + sb.toString() );
+ } catch(Exception e) {
+ throw new CascadingRuntimeException("CronJob " + name + " raised an exception", e);
+ } finally {
+ if ( resolver != null ) {
+ resolver.release(src);
+ this.manager.release(resolver);
+ resolver = null;
+ src = null;
+ }
+ }
- try {
- Thread.sleep(m_sleep);
- } catch (final InterruptedException ie) {
- //getLogger().error("CronJob " + name + " interrupted", ie);
- }
+ try {
+ Thread.sleep(m_sleep);
+ } catch (final InterruptedException ie) {
+ //getLogger().error("CronJob " + name + " interrupted", ie);
+ }
- getLogger().info("CronJob " + name + " finished at " + new Date() + " with message '" + m_msg +
- "' and sleep timeout of " + m_sleep + "ms");
+ getLogger().info("CronJob " + name + " finished at " + new Date() + " with message '" + m_msg +
+ "' and sleep timeout of " + m_sleep + "ms");
- } catch(Exception e) {
- throw new CascadingRuntimeException("CronJob " + name + " raised an exception", e);
- }
}
/* (non-Javadoc)