You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2008/01/17 17:44:42 UTC
svn commit: r612861 - in
/incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl:
DistributingEventHandler.java JobEventHandler.java TimedEventHandler.java
Author: cziegeler
Date: Thu Jan 17 08:44:40 2008
New Revision: 612861
URL: http://svn.apache.org/viewvc?rev=612861&view=rev
Log:
Fix bugs in cleanup tasks (query was wrong) and TimedEventHandler is invoked either by a timed event or periodically.
Modified:
incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/DistributingEventHandler.java
incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/TimedEventHandler.java
Modified: incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/DistributingEventHandler.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/DistributingEventHandler.java?rev=612861&r1=612860&r2=612861&view=diff
==============================================================================
--- incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/DistributingEventHandler.java (original)
+++ incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/DistributingEventHandler.java Thu Jan 17 08:44:40 2008
@@ -61,18 +61,22 @@
buffer.append(this.repositoryPath);
buffer.append("//element(*, ");
buffer.append(getEventNodeType());
- buffer.append(") [");
+ buffer.append(")[@");
buffer.append(EventHelper.NODE_PROPERTY_CREATED);
- buffer.append(" < '");
+ buffer.append(" < xs:dateTime('");
buffer.append(dateString);
- buffer.append("']");
+ buffer.append("')]");
+ this.logger.debug("Executing query {}", buffer);
final Query q = qManager.createQuery(buffer.toString(), Query.XPATH);
final NodeIterator iter = q.execute().getNodes();
+ int count = 0;
while ( iter.hasNext() ) {
final Node eventNode = iter.nextNode();
eventNode.remove();
+ count++;
}
+ this.logger.debug("Removed {} event nodes from the repository.", count);
parentNode.save();
} catch (RepositoryException e) {
// in the case of an error, we just log this as a warning
Modified: incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java?rev=612861&r1=612860&r2=612861&view=diff
==============================================================================
--- incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java (original)
+++ incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java Thu Jan 17 08:44:40 2008
@@ -98,13 +98,13 @@
buffer.append(JobEventHandler.this.repositoryPath);
buffer.append("//element(*, ");
buffer.append(JobEventHandler.this.getEventNodeType());
- buffer.append(") [");
+ buffer.append(") [@");
buffer.append(EventHelper.NODE_PROPERTY_ACTIVE);
- buffer.append(" = 'false' and ");
+ buffer.append(" = 'false' and @");
buffer.append(EventHelper.NODE_PROPERTY_FINISHED);
- buffer.append(" < '");
+ buffer.append(" < xs:dateTime('");
buffer.append(dateString);
- buffer.append("']");
+ buffer.append("')]");
final Query q = qManager.createQuery(buffer.toString(), Query.XPATH);
final NodeIterator iter = q.execute().getNodes();
Modified: incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/TimedEventHandler.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/TimedEventHandler.java?rev=612861&r1=612860&r2=612861&view=diff
==============================================================================
--- incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/TimedEventHandler.java (original)
+++ incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/TimedEventHandler.java Thu Jan 17 08:44:40 2008
@@ -355,6 +355,13 @@
* @see org.apache.sling.scheduler.Job#execute(org.apache.sling.scheduler.JobContext)
*/
public void execute(JobContext context) {
+ // as we are called periodically as well, we have to check the configuration first
+ if ( context.getConfiguration() == null ) {
+ // period call, just invoke run
+ this.run();
+ return;
+ }
+
final String topic = (String) context.getConfiguration().get(JOB_TOPIC);
@SuppressWarnings("unchecked")
final Dictionary<Object, Object> properties = (Dictionary<Object, Object>) context.getConfiguration().get(JOB_CONFIG);