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());
+            }
                }
        }
 


Reply via email to