Author: rwesten
Date: Wed Oct 28 07:32:30 2015
New Revision: 1710951
URL: http://svn.apache.org/viewvc?rev=1710951&view=rev
Log:
minor fix to the FstLinkingEngineComponent related to STANBOL-1442; improved
logging for the EventJobManager (enhancement statitics are now a single line,
Enhancement Metadata are now logged as text/turtle in WARN in case of an error
and on DEBUG level for every request);
Modified:
stanbol/branches/release-0.12/enhancement-engines/lucenefstlinking/src/main/java/org/apache/stanbol/enhancer/engines/lucenefstlinking/FstLinkingEngineComponent.java
stanbol/branches/release-0.12/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java
stanbol/branches/release-0.12/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java
Modified:
stanbol/branches/release-0.12/enhancement-engines/lucenefstlinking/src/main/java/org/apache/stanbol/enhancer/engines/lucenefstlinking/FstLinkingEngineComponent.java
URL:
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/enhancement-engines/lucenefstlinking/src/main/java/org/apache/stanbol/enhancer/engines/lucenefstlinking/FstLinkingEngineComponent.java?rev=1710951&r1=1710950&r2=1710951&view=diff
==============================================================================
---
stanbol/branches/release-0.12/enhancement-engines/lucenefstlinking/src/main/java/org/apache/stanbol/enhancer/engines/lucenefstlinking/FstLinkingEngineComponent.java
(original)
+++
stanbol/branches/release-0.12/enhancement-engines/lucenefstlinking/src/main/java/org/apache/stanbol/enhancer/engines/lucenefstlinking/FstLinkingEngineComponent.java
Wed Oct 28 07:32:30 2015
@@ -741,12 +741,17 @@ public class FstLinkingEngineComponent {
IndexConfiguration indexConfig; // the indexConfig build by this call
synchronized (this) { //init one after the other in case of multiple
calls
try { //try to init - finally unregisterEngine
+ //reset the old field values
+ this.engineRegistration = null;
+ this.indexConfig = null;
+ this.solrCore = null;
+ //now we can update the engines configuration
if(bundleContext == null){ //already deactivated
return; //NOTE: unregistering is done in finally block
}
core = getSolrCore(server);
if(core == null){ //no SolrCore
- log.info(" - SolrCore {} present", this.solrCore == null
?
+ log.info(" - SolrCore {} present", oldSolrCore == null ?
"not yet" : "no longer");
return; //NOTE: unregistering is done in finally block
} else { //- we do have a SolrCore
Modified:
stanbol/branches/release-0.12/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java
URL:
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java?rev=1710951&r1=1710950&r2=1710951&view=diff
==============================================================================
---
stanbol/branches/release-0.12/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java
(original)
+++
stanbol/branches/release-0.12/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java
Wed Oct 28 07:32:30 2015
@@ -38,6 +38,7 @@ import java.util.concurrent.locks.Reentr
import org.apache.clerezza.rdf.core.MGraph;
import org.apache.clerezza.rdf.core.NonLiteral;
+import org.apache.stanbol.enhancer.servicesapi.ContentItem;
import org.apache.stanbol.enhancer.servicesapi.EngineException;
import org.apache.stanbol.enhancer.servicesapi.EnhancementEngine;
import org.apache.stanbol.enhancer.servicesapi.EnhancementEngineManager;
@@ -371,9 +372,9 @@ public class EnhancementJobHandler imple
job.getExecutionMetadata(),job.getContentItem().getUri());
ChainExecution ce = em.getChainExecution();
long cd = ce.getDuration();
- logger.info("Executed Chain {} in {}ms",
ce.getChainName(),
- ce.getDuration());
- logger.info(" > ContentItem: {}",
job.getContentItem().getUri().getUnicodeString());
+ StringBuilder message = new StringBuilder("> processed
ContentItem ")
+ .append(job.getContentItem().getUri()).append(" with Chain '")
+ .append(ce.getChainName()).append("' in
").append(ce.getDuration()).append("ms | ");
List<Execution> ees = new
ArrayList<Execution>(em.getEngineExecutions().values());
//sort by start date (execution order)
Collections.sort(ees, new Comparator<Execution>() {
@@ -382,23 +383,30 @@ public class EnhancementJobHandler imple
return
e1.getStarted().compareTo(e2.getStarted());
}
});
+ message.append("chain:[");
long eds = 0;
+ boolean first = true;
for(Execution ee : ees){
+ if(first){
+ first = false;
+ } else {
+ message.append(", ");
+ }
long ed = ee.getDuration();
eds = eds + ed;
int edp = Math.round(ed*100/(float)cd);
- logger.info(" - {} in {}ms ({}%)", new Object[]{
-
ee.getExecutionNode().getEngineName(), ed, edp});
+
message.append(ee.getExecutionNode().getEngineName())
+ .append(": ").append(ed).append("ms
(").append(edp).append("%)");
}
float cf = eds/cd;
int cfp = Math.round((cf-1)*100);
- logger.info(" > concurrency: {} ({}%)",cf, cfp);
+ message.append("], concurrency: ").append(cf).append("
(").append(cfp).append("%)");
+ logger.info(message.toString());
} catch (RuntimeException e) {
log.warn("Exception while logging ExecutionTimes for
Chain: '" +
job.getChainName() + " and ContentItem
"+
job.getContentItem().getUri() +" to
Logger " +
logger.getName(),e);
-
}
}
}
Modified:
stanbol/branches/release-0.12/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java
URL:
http://svn.apache.org/viewvc/stanbol/branches/release-0.12/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java?rev=1710951&r1=1710950&r2=1710951&view=diff
==============================================================================
---
stanbol/branches/release-0.12/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java
(original)
+++
stanbol/branches/release-0.12/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java
Wed Oct 28 07:32:30 2015
@@ -160,7 +160,7 @@ public class EventJobManagerImpl impleme
"' because NULL was passed as enhancement chain");
}
long start = System.currentTimeMillis();
- enhancementJobManagerLog.info(">> enhance {} with chain {}",
ci.getUri(), chain.getName());
+ enhancementJobManagerLog.debug(">> enhance {} with chain {}",
ci.getUri(), chain.getName());
boolean isDefaultChain = chain.equals(chainManager.getDefault());
EnhancementJob job = new EnhancementJob(ci, chain.getName(),
chain.getExecutionPlan(),isDefaultChain);
//start the execution
@@ -193,7 +193,7 @@ public class EventJobManagerImpl impleme
Exception e = job.getError();
EnhancementJobHandler.logJobInfo(enhancementJobManagerLog, job,
"-- log information about failed EnhancementJob --",
true);
- logExecutionMetadata(job);
+ logExecutionMetadata(enhancementJobManagerLog, job, true);
log.warn("ExecutionMetadata: ");
for(Iterator<Triple> it = job.getExecutionMetadata().iterator();
it.hasNext();
@@ -209,28 +209,35 @@ public class EventJobManagerImpl impleme
if(!job.isFinished()){
log.warn("Execution finished, but Job is not finished!");
EnhancementJobHandler.logJobInfo(log, job, null, true);
- logExecutionMetadata(job);
+ logExecutionMetadata(log, job, true);
throw new ChainException("EnhancementJobManager was deactivated
while" +
" enhancing the passed ContentItem
"+job.getContentItem()+
" (EnhancementJobManager type: "+getClass()+")");
} else {
//log infos about the execution times to the
enhancementJobManager
EnhancementJobHandler.logExecutionTimes(enhancementJobManagerLog, job);
+ logExecutionMetadata(enhancementJobManagerLog, job, false);
}
}
- /**
- * Logs the ExecutionMetadata
- * @param job
- */
- protected void logExecutionMetadata(EnhancementJob job) {
- if(log.isDebugEnabled()){
+ /**
+ * Logs the ExecutionMetadata
+ * @param logger the logger to log the execution metadata to
+ * @param job the enhancement job to log the execution metadata for
+ * @param isWarn if <code>true</code> the data are logged with
<code>WARN</code> level.
+ * If <code>false</code> the <code>DEBUG</code> level is used
+ */
+ protected void logExecutionMetadata(Logger logger, EnhancementJob job,
boolean isWarn) {
+ if(log.isDebugEnabled() || (isWarn && log.isWarnEnabled())){
+ StringBuilder message = new StringBuilder(1024);
+ message.append("ExecutionMetadata for ContentItem
").append(job.getContentItem().getUri())
+ .append(" and Chain
").append(job.getChainName()).append(": \n");
+ boolean serialized = false;
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
+ message.append(bout.toString("utf-8"));
+ serialized = true;
} catch (RuntimeException e){
log.warn(" ... unable to serialize
Execution Metadata | {}: {}",
e.getClass(),
e.getMessage());
@@ -239,10 +246,18 @@ public class EventJobManagerImpl impleme
e.getClass(),
e.getMessage());
}
}
- //No serializer for TURTLE ... use the toString method
of triple
- for(Triple t : job.getExecutionMetadata()){
- log.debug(t.toString());
+ if(!serialized){
+ //TURTLE serialization not possible ... use the
toString method of triple
+ for(Triple t : job.getExecutionMetadata()){
+ message.append(t.toString()).append('\n');
+ }
}
+ //finally write the serialized graph to the logger
+ if(isWarn){
+ logger.warn(message.toString());
+ } else {
+ logger.debug(message.toString());
+ }
}
}