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/08/27 18:24:10 UTC
svn commit: r689512 - in
/incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event:
EventUtil.java impl/AbstractRepositoryEventHandler.java
impl/JobEventHandler.java
Author: cziegeler
Date: Wed Aug 27 09:24:09 2008
New Revision: 689512
URL: http://svn.apache.org/viewvc?rev=689512&view=rev
Log:
SLING-339 : Add wait time before startup to give handlers time to register. Correctly handle application id property.
Modified:
incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/EventUtil.java
incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/AbstractRepositoryEventHandler.java
incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
Modified: incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/EventUtil.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/EventUtil.java?rev=689512&r1=689511&r2=689512&view=diff
==============================================================================
--- incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/EventUtil.java (original)
+++ incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/EventUtil.java Wed Aug 27 09:24:09 2008
@@ -44,6 +44,7 @@
import org.apache.jackrabbit.util.ISO9075;
import org.apache.sling.event.EventUtil.JobStatusNotifier.NotifierContext;
+import org.apache.sling.event.impl.AbstractRepositoryEventHandler;
import org.apache.sling.event.impl.JobEventHandler;
import org.osgi.service.event.Event;
import org.slf4j.LoggerFactory;
@@ -166,7 +167,8 @@
* @return <code>true</code> if this is a local event
*/
public static boolean isLocal(Event event) {
- return getApplicationId(event) == null;
+ final String appId = getApplicationId(event);
+ return appId == null || appId.equals(AbstractRepositoryEventHandler.APPLICATION_ID);
}
/**
Modified: incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/AbstractRepositoryEventHandler.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/AbstractRepositoryEventHandler.java?rev=689512&r1=689511&r2=689512&view=diff
==============================================================================
--- incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/AbstractRepositoryEventHandler.java (original)
+++ incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/AbstractRepositoryEventHandler.java Wed Aug 27 09:24:09 2008
@@ -98,6 +98,8 @@
* Sling settings service. */
protected SlingSettingsService settingsService;
+ public static String APPLICATION_ID;
+
/** List of ignored properties to write to the repository. */
private static final String[] IGNORE_PROPERTIES = new String[] {
EventUtil.PROPERTY_DISTRIBUTE,
@@ -118,6 +120,7 @@
protected void activate(final ComponentContext context)
throws Exception {
this.applicationId = this.settingsService.getSlingId();
+ APPLICATION_ID = this.applicationId;
this.repositoryPath = OsgiUtil.toString(context.getProperties().get(
CONFIG_PROPERTY_REPO_PATH), DEFAULT_PROPERTY_REPO_PATH);
@@ -287,10 +290,6 @@
eventNode.setProperty(EventHelper.NODE_PROPERTY_TOPIC, e.getTopic());
eventNode.setProperty(EventHelper.NODE_PROPERTY_APPLICATION, this.applicationId);
- // if the application property is available, we will override it
- // if it is not available we will add it
- eventNode.setProperty(EventUtil.PROPERTY_APPLICATION, this.applicationId);
-
EventUtil.addProperties(eventNode,
new EventPropertiesMap(e),
IGNORE_PROPERTIES,
Modified: incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java?rev=689512&r1=689511&r2=689512&view=diff
==============================================================================
--- incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java (original)
+++ incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java Wed Aug 27 09:24:09 2008
@@ -323,6 +323,12 @@
null,
new String[] {this.getEventNodeType()},
true);
+ // give the system some time to start
+ try {
+ Thread.sleep(1000 * 60 * 2); // 2min
+ } catch (InterruptedException e) {
+ this.ignoreException(e);
+ }
// load unprocessed jobs from repository
this.loadJobs();
while ( this.running ) {
@@ -338,8 +344,9 @@
if ( info != null && this.running ) {
// check for local only jobs and remove them from the queue if they're meant
// for another application node
+ final String appId = (String)info.event.getProperty(EventUtil.PROPERTY_APPLICATION);
if ( info.event.getProperty(EventUtil.PROPERTY_JOB_RUN_LOCAL) != null
- && !this.applicationId.equals(EventUtil.PROPERTY_APPLICATION) ) {
+ && appId != null && !this.applicationId.equals(appId) ) {
info = null;
}
@@ -819,6 +826,8 @@
if ( properties.get(EventUtil.PROPERTY_JOB_RETRY_COUNT) != null ) {
properties.put(EventUtil.PROPERTY_JOB_RETRY_COUNT, Integer.valueOf(properties.get(EventUtil.PROPERTY_JOB_RETRY_COUNT).toString()));
}
+ // add application id
+ properties.put(EventUtil.PROPERTY_APPLICATION, eventNode.getProperty(EventHelper.NODE_PROPERTY_APPLICATION).getString());
}
/**