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 2015/10/28 08:38:36 UTC

svn commit: r1710953 - in /stanbol/trunk: enhancement-engines/lucenefstlinking/src/main/java/org/apache/stanbol/enhancer/engines/lucenefstlinking/ enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/

Author: rwesten
Date: Wed Oct 28 07:38:36 2015
New Revision: 1710953

URL: http://svn.apache.org/viewvc?rev=1710953&view=rev
Log:
merged r1710951 from 0.12 to trunk (STANBOL-1442 related fix and Event Jobmanager log improvemens)

Modified:
    stanbol/trunk/enhancement-engines/lucenefstlinking/src/main/java/org/apache/stanbol/enhancer/engines/lucenefstlinking/FstLinkingEngineComponent.java
    stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java
    stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EventJobManagerImpl.java

Modified: stanbol/trunk/enhancement-engines/lucenefstlinking/src/main/java/org/apache/stanbol/enhancer/engines/lucenefstlinking/FstLinkingEngineComponent.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancement-engines/lucenefstlinking/src/main/java/org/apache/stanbol/enhancer/engines/lucenefstlinking/FstLinkingEngineComponent.java?rev=1710953&r1=1710952&r2=1710953&view=diff
==============================================================================
--- stanbol/trunk/enhancement-engines/lucenefstlinking/src/main/java/org/apache/stanbol/enhancer/engines/lucenefstlinking/FstLinkingEngineComponent.java (original)
+++ stanbol/trunk/enhancement-engines/lucenefstlinking/src/main/java/org/apache/stanbol/enhancer/engines/lucenefstlinking/FstLinkingEngineComponent.java Wed Oct 28 07:38:36 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/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java
URL: http://svn.apache.org/viewvc/stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java?rev=1710953&r1=1710952&r2=1710953&view=diff
==============================================================================
--- stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java (original)
+++ stanbol/trunk/enhancer/jobmanager/event/src/main/java/org/apache/stanbol/enhancer/jobmanager/event/impl/EnhancementJobHandler.java Wed Oct 28 07:38:36 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/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=1710953&r1=1710952&r2=1710953&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 Wed Oct 28 07:38:36 2015
@@ -72,7 +72,7 @@ public class EventJobManagerImpl impleme
      * Logger for the {@link EnhancementJobManager} interface. This is used
      * to log statistics about execution times for enhancement jobs
      */
-    private final Logger enhancementJobManager = LoggerFactory.getLogger(EnhancementJobManager.class);
+    private final Logger enhancementJobManagerLog = LoggerFactory.getLogger(EnhancementJobManager.class);
     
     public static final int DEFAULT_SERVICE_RANKING = 0;
 
@@ -97,6 +97,7 @@ public class EventJobManagerImpl impleme
     @Reference(cardinality=ReferenceCardinality.OPTIONAL_UNARY)
     protected Serializer serializer;
     
+    @SuppressWarnings("rawtypes")
     private ServiceRegistration jobHandlerRegistration;
     private EnhancementJobHandler jobHandler;
     private int maxEnhancementJobWaitTime = DEFAULT_MAX_ENHANCEMENT_JOB_WAIT_TIME;
@@ -160,6 +161,7 @@ public class EventJobManagerImpl impleme
                 "' because NULL was passed as enhancement chain");
         }
         long start = System.currentTimeMillis();
+        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
@@ -191,7 +193,7 @@ public class EventJobManagerImpl impleme
         if(job.isFailed()){
         	Exception e = job.getError();
             EnhancementJobHandler.logJobInfo(log, job, null, true);
-            logExecutionMetadata(job);
+            logExecutionMetadata(enhancementJobManagerLog, job, true);
             log.warn("ExecutionMetadata: ");
             for(Iterator<Triple> it = job.getExecutionMetadata().iterator();
                     it.hasNext();
@@ -207,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(enhancementJobManager, job);
+        	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());
@@ -237,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());
+            }
 		}
 	}