You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by rw...@apache.org on 2014/01/07 10:18:45 UTC
svn commit: r1556153 -
/stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java
Author: rwesten
Date: Tue Jan 7 09:18:45 2014
New Revision: 1556153
URL: http://svn.apache.org/r1556153
Log:
merged implementation for STANBOL-1250 from 0.12 to trunk
Modified:
stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java
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=1556153&r1=1556152&r2=1556153&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 Tue Jan 7 09:18:45 2014
@@ -18,6 +18,10 @@ package org.apache.stanbol.enhancer.jobm
import static org.apache.stanbol.enhancer.jobmanager.event.Constants.TOPIC_JOB_MANAGER;
+import java.io.ByteArrayOutputStream;
+import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
+import java.lang.Character.UnicodeScript;
import java.util.Dictionary;
import java.util.Hashtable;
import java.util.Iterator;
@@ -26,12 +30,16 @@ import java.util.Map.Entry;
import org.apache.clerezza.rdf.core.Graph;
import org.apache.clerezza.rdf.core.Triple;
+import org.apache.clerezza.rdf.core.serializedform.Serializer;
+import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
+import org.apache.clerezza.rdf.core.serializedform.UnsupportedFormatException;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Properties;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.Service;
import org.apache.stanbol.enhancer.jobmanager.event.impl.EnhancementJobHandler.EnhancementJobObserver;
import org.apache.stanbol.enhancer.servicesapi.Chain;
@@ -80,6 +88,13 @@ public class EventJobManagerImpl impleme
@Reference
protected EventAdmin eventAdmin;
+ /**
+ * If available it is used for logging ExecutionMetadata of failed or
+ * timed out Enhancement Requests (OPTIONAL)
+ */
+ @Reference(cardinality=ReferenceCardinality.OPTIONAL_UNARY)
+ protected Serializer serializer;
+
private ServiceRegistration jobHandlerRegistration;
private EnhancementJobHandler jobHandler;
private int maxEnhancementJobWaitTime = DEFAULT_MAX_ENHANCEMENT_JOB_WAIT_TIME;
@@ -173,6 +188,12 @@ public class EventJobManagerImpl impleme
//ci.getMetadata().addAll(job.getExecutionMetadata());
if(job.isFailed()){
Exception e = job.getError();
+ EnhancementJobHandler.logJobInfo(log, job, null, true);
+ logExecutionMetadata(job);
+ log.warn("ExecutionMetadata: ");
+ for(Iterator<Triple> it = job.getExecutionMetadata().iterator();
+ it.hasNext();
+ log.warn(it.next().toString()));
if (e instanceof SecurityException) {
throw (SecurityException)e;
} else {
@@ -182,15 +203,39 @@ public class EventJobManagerImpl impleme
if(!job.isFinished()){
log.warn("Execution finished, but Job is not finished!");
EnhancementJobHandler.logJobInfo(log, job, null, true);
- log.warn("ExecutionMetadata: ");
- for(Iterator<Triple> it = job.getExecutionMetadata().iterator();
- it.hasNext();
- log.warn(it.next().toString()));
+ logExecutionMetadata(job);
throw new ChainException("EnhancementJobManager was deactivated while" +
" enhancing the passed ContentItem "+job.getContentItem()+
" (EnhancementJobManager type: "+getClass()+")");
}
}
+ /**
+ * Logs the ExecutionMetadata
+ * @param job
+ */
+ protected void logExecutionMetadata(EnhancementJob job) {
+ if(log.isDebugEnabled()){
+ if(serializer != null){
+ log.debug("ExecutionMetadata: ");
+ ByteArrayOutputStream bout = new ByteArrayOutputStream();
+ try {
+ serializer.serialize(bout, job.getExecutionMetadata(), SupportedFormat.TURTLE);
+ log.debug(bout.toString("utf-8"));
+ return; //serialized
+ } catch (RuntimeException e){
+ log.warn(" ... unable to serialize Execution Metadata | {}: {}",
+ e.getClass(), e.getMessage());
+ } catch (UnsupportedEncodingException e) {
+ log.warn(" ... unable to serialize Execution Metadata | {}: {}",
+ e.getClass(), e.getMessage());
+ }
+ }
+ //No serializer for TURTLE ... use the toString method of triple
+ for(Triple t : job.getExecutionMetadata()){
+ log.debug(t.toString());
+ }
+ }
+ }
@Override
public List<EnhancementEngine> getActiveEngines() {