Update of
/var/cvs/applications/crontab/src/org/mmbase/applications/crontab/builders
In directory james.mmbase.org:/tmp/cvs-serv7169/builders
Modified Files:
Tag: MMBase-1_8
CronJobs.java
Added Files:
Tag: MMBase-1_8
NodeCronEntry.java
Log Message:
MMB-1677
See also:
http://cvs.mmbase.org/viewcvs/applications/crontab/src/org/mmbase/applications/crontab/builders
See also: http://www.mmbase.org/jira/browse/MMB-1677
NodeCronEntry.java is new
Index: CronJobs.java
===================================================================
RCS file:
/var/cvs/applications/crontab/src/org/mmbase/applications/crontab/builders/CronJobs.java,v
retrieving revision 1.2.2.2
retrieving revision 1.2.2.3
diff -u -b -r1.2.2.2 -r1.2.2.3
--- CronJobs.java 17 Nov 2006 13:06:59 -0000 1.2.2.2
+++ CronJobs.java 14 Jul 2008 13:43:54 -0000 1.2.2.3
@@ -7,6 +7,7 @@
*/
package org.mmbase.applications.crontab.builders;
+import java.util.*;
import org.mmbase.applications.crontab.*;
import org.mmbase.bridge.*;
import org.mmbase.module.core.*;
@@ -49,7 +50,7 @@
Node node = nodeIterator.nextNode();
CronEntry entry = null;
try {
- entry = createCronEntry(node);
+ entry = new NodeCronEntry(node);
NodeList servers = node.getRelatedNodes("mmservers");
if (servers.size() > 0) {
String machineName = MMBase.getMMBase().getMachineName();
@@ -74,7 +75,7 @@
cronDaemon.add(entry);
}
} catch (Exception e) {
- log.warn("did not add cronjob with id " + node.getNumber() + "
because of error " + e.getMessage());
+ log.warn("did not add cronjob with id " + node.getNumber() + "
because of error " + e.getMessage(), e);
}
}
}
@@ -87,7 +88,7 @@
try {
if (cronDaemon != null) {
Node node = getCloud().getNode(number);
- cronDaemon.add(createCronEntry(node));
+ cronDaemon.add(new NodeCronEntry(node));
}
} catch (Exception e) {
throw new RuntimeException("error while creating cron entry with
id " + number + " error " + e.getMessage(), e);
@@ -99,17 +100,32 @@
* Commits a cronjob to the database.
* On commit of a cronjob, the job is first removed from the cronDeamon
and a new cronEntry is created and added to the CronDaemon.
*/
- public boolean commit(MMObjectNode objectNodenode) {
- boolean retval = super.commit(objectNodenode);
- Node node = getCloud().getNode(objectNodenode.getNumber());
+ public boolean commit(MMObjectNode node) {
+ Set changed = node.getChanged();
+ boolean retval = super.commit(node);
CronEntry entry = cronDaemon.getCronEntry("" + node.getNumber());
if (entry == null) {
log.warn("cron entry with ID " + node.getNumber() + " was not
found. this usualy means it was invalid");
} else {
+ if (entry instanceof NodeCronEntry) {
+ if (changed.contains("classfile") ||
+ changed.contains("name") ||
+ changed.contains("type")) {
+ log.warn("Changed fields " + changed);
cronDaemon.remove(entry);
+ } else {
+ log.warn("Ignored " + node);
+ return retval;
+ }
+ } else {
+ log.warn("How come, " + entry + " is not a node-entry");
+ cronDaemon.remove(entry);
+ }
}
try {
- cronDaemon.add(createCronEntry(node));
+ log.info("Replacing cronentry " + entry);
+ Node n = getCloud().getNode(node.getNumber());
+ cronDaemon.add(new NodeCronEntry(n));
} catch (Exception e) {
throw new RuntimeException("error while creating cron entry with
id " + node.getNumber() + " error " + e.getMessage());
}
@@ -128,9 +144,7 @@
}
}
- private CronEntry createCronEntry(Node node) throws Exception {
- return new CronEntry("" + node.getNumber(),
node.getStringValue("crontime"), node.getStringValue("name"),
node.getStringValue("classfile"),
node.getStringValue("config"),node.getIntValue("type"));
- }
+
private Cloud getCloud() {
return LocalContext.getCloudContext().getCloud("mmbase");
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs