You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by og...@apache.org on 2012/11/16 18:08:37 UTC
svn commit: r1410475 - in /stanbol/trunk/enhancer/jobmanager/event/src/main:
java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java
resources/OSGI-INF/metatype/metatype.properties
Author: ogrisel
Date: Fri Nov 16 17:08:37 2012
New Revision: 1410475
URL: http://svn.apache.org/viewvc?rev=1410475&view=rev
Log:
STANBOL-808: Make it possible configure the EventJobManagerImpl enhancement job timeout
Modified:
stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java
stanbol/trunk/enhancer/jobmanager/event/src/main/resources/OSGI-INF/metatype/metatype.properties
Modified: stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java?rev=1410475&r1=1410474&r2=1410475&view=diff
==============================================================================
--- stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java (original)
+++ stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java Fri Nov 16 17:08:37 2012
@@ -53,7 +53,8 @@ import org.slf4j.LoggerFactory;
@Service
@Properties(value={
//register with a ranking lower than 0 to allow easy overriding by specific
- @Property(name=Constants.SERVICE_RANKING,intValue=EventJobManagerImpl.DEFAULT_SERVICE_RANKING)
+ @Property(name=Constants.SERVICE_RANKING,intValue=EventJobManagerImpl.DEFAULT_SERVICE_RANKING),
+ @Property(name=EventJobManagerImpl.MAX_ENHANCEMENT_JOB_WAIT_TIME,intValue=EventJobManagerImpl.DEFAULT_MAX_ENHANCEMENT_JOB_WAIT_TIME)
})
public class EventJobManagerImpl implements EnhancementJobManager {
@@ -61,7 +62,9 @@ public class EventJobManagerImpl impleme
public static final int DEFAULT_SERVICE_RANKING = 0;
- private static final int MAX_ENHANCEMENT_JOB_WAIT_TIME = 10*1000;
+ public static final String MAX_ENHANCEMENT_JOB_WAIT_TIME = "stanbol.maxEnhancementJobWaitTime";
+
+ public static final int DEFAULT_MAX_ENHANCEMENT_JOB_WAIT_TIME = 10 * 1000;
@Reference
protected ChainManager chainManager;
@@ -72,6 +75,7 @@ public class EventJobManagerImpl impleme
private ServiceRegistration jobHandlerRegistration;
private EnhancementJobHandler jobHandler;
+ private int maxEnhancementJobWaitTime = DEFAULT_MAX_ENHANCEMENT_JOB_WAIT_TIME;
/**
@@ -88,6 +92,11 @@ public class EventJobManagerImpl impleme
properties.put(org.osgi.service.event.EventConstants.EVENT_TOPIC, TOPIC_JOB_MANAGER);
jobHandlerRegistration = ctx.getBundleContext().registerService(
EventHandler.class.getName(), jobHandler, properties);
+
+ Object maxWaitTime = ctx.getProperties().get(MAX_ENHANCEMENT_JOB_WAIT_TIME);
+ if (maxWaitTime instanceof Integer) {
+ this.maxEnhancementJobWaitTime = (Integer) maxWaitTime;
+ }
}
/**
* Unregisters the {@link EnhancementJobHandler}
@@ -124,7 +133,7 @@ public class EventJobManagerImpl impleme
}
if(chain == null){
throw new IllegalArgumentException("Unable to enhance ContentItem '"+ci.getUri()+
- "' because NULL was parsed as enhancement chain");
+ "' because NULL was passed as enhancement chain");
}
long start = System.currentTimeMillis();
boolean isDefaultChain = chain.equals(chainManager.getDefault());
@@ -134,7 +143,7 @@ public class EventJobManagerImpl impleme
EnhancementJobObserver observer = jobHandler.register(job);
//TODO: allow configuring a max completion time (e.g. 1min)
while(!observer.hasCompleted() & jobHandler != null){
- observer.waitForCompletion(MAX_ENHANCEMENT_JOB_WAIT_TIME);
+ observer.waitForCompletion(maxEnhancementJobWaitTime);
}
log.info("{} EnhancementJob for ContentItem {} after {}ms",
new Object[]{ job.isFailed() ? "Failed" : "Finished",
@@ -155,8 +164,8 @@ public class EventJobManagerImpl impleme
}
if(!job.isFinished()){
throw new ChainException("EnhancementJobManager was deactivated while" +
- "enhancing the parsed ContentItem "+job.getContentItem()+
- "(EnhancementJobManager type: "+getClass()+")!");
+ " enhancing the passed ContentItem "+job.getContentItem()+
+ " (EnhancementJobManager type: "+getClass()+")");
}
}
Modified: stanbol/trunk/enhancer/jobmanager/event/src/main/resources/OSGI-INF/metatype/metatype.properties
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/jobmanager/event/src/main/resources/OSGI-INF/metatype/metatype.properties?rev=1410475&r1=1410474&r2=1410475&view=diff
==============================================================================
--- stanbol/trunk/enhancer/jobmanager/event/src/main/resources/OSGI-INF/metatype/metatype.properties (original)
+++ stanbol/trunk/enhancer/jobmanager/event/src/main/resources/OSGI-INF/metatype/metatype.properties Fri Nov 16 17:08:37 2012
@@ -21,8 +21,12 @@ org.apache.stanbol.enhancer.jobmanager.e
org.apache.stanbol.enhancer.jobmanager.event.impl.EventJobManagerImpl.description=EnhancementJobManager \
implementation that used the org.osgi.service.event framework for asynchronously enhancing \
content items.
+stanbol.maxEnhancementJobWaitTime.name=Job timeout (ms)
+stanbol.maxEnhancementJobWaitTime.description=Maximum time in milliseconds to wait for job completion \
+before aborting.
service.ranking.name=Ranking
service.ranking.description=The service.ranking for this EnhancementJobManager implementation. \
If different enhancement job manager are active the one with the highest rank will be used to \
enhance content parsed to the Stanbol Enhancer RESTful interface.
+