Author: seanfinan
Date: Wed Oct 26 16:21:54 2022
New Revision: 1904854
URL: http://svn.apache.org/viewvc?rev=1904854&view=rev
Log:
Added build information to ctakes jar files.
Added code to fetch build information in core.util.log.FinishedLogger
Added a call to get Build information in core.util.BannerWriter
Added "set WriteBanner=yes" to default fast pipeline.
Modified:
ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/BannerWriter.java
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/log/FinishedLogger.java
ctakes/trunk/pom.xml
Modified:
ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
URL:
http://svn.apache.org/viewvc/ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper?rev=1904854&r1=1904853&r2=1904854&view=diff
==============================================================================
---
ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
(original)
+++
ctakes/trunk/ctakes-clinical-pipeline-res/src/main/resources/org/apache/ctakes/clinical/pipeline/DefaultFastPipeline.piper
Wed Oct 26 16:21:54 2022
@@ -1,5 +1,8 @@
// Commands and parameters to create a default plaintext document processing
pipeline with UMLS lookup
+// Write nice big banners when ctakes starts and finishes.
+set WriteBanner=yes
+
// Load a simple token processing pipeline from another pipeline file
load DefaultTokenizerPipeline
Modified:
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/BannerWriter.java
URL:
http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/BannerWriter.java?rev=1904854&r1=1904853&r2=1904854&view=diff
==============================================================================
---
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/BannerWriter.java
(original)
+++
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/BannerWriter.java
Wed Oct 26 16:21:54 2022
@@ -1,5 +1,6 @@
package org.apache.ctakes.core.util;
+import org.apache.ctakes.core.util.log.FinishedLogger;
import org.apache.log4j.Logger;
/**
@@ -32,6 +33,7 @@ final public class BannerWriter {
EOL_LOGGER.info( " _/ _/ _/ _/ _/ _/
_/ _/" );
EOL_LOGGER.info( " _/_/_/ _/ _/ _/ _/ _/
_/_/_/_/ _/_/_/" );
EOL_LOGGER.info( "\n" );
+ EOL_LOGGER.info( FinishedLogger.getBuildInfo() );
}
static public void writeInitialize() {
Modified:
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/log/FinishedLogger.java
URL:
http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/log/FinishedLogger.java?rev=1904854&r1=1904853&r2=1904854&view=diff
==============================================================================
---
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/log/FinishedLogger.java
(original)
+++
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/log/FinishedLogger.java
Wed Oct 26 16:21:54 2022
@@ -2,6 +2,7 @@ package org.apache.ctakes.core.util.log;
import org.apache.ctakes.core.pipeline.PipeBitInfo;
import org.apache.ctakes.core.pipeline.ProgressManager;
+import org.apache.ctakes.core.resource.FileLocator;
import org.apache.log4j.Logger;
import org.apache.uima.UimaContext;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
@@ -9,8 +10,13 @@ import org.apache.uima.fit.component.JCa
import org.apache.uima.jcas.JCas;
import org.apache.uima.resource.ResourceInitializationException;
+import java.io.File;
+import java.io.IOException;
import java.lang.management.ManagementFactory;
import java.util.Date;
+import java.util.jar.Attributes;
+import java.util.jar.JarFile;
+import java.util.jar.Manifest;
/**
* @author SPF , chip-nlp
@@ -81,14 +87,57 @@ static private final Logger LOGGER = Log
sb.append( days ).append( " days, " );
}
if ( days > 0 || hours > 0 ) {
- sb.append( hours ).append( " hours, " );
+ sb.append( hours )
+ .append( " hours, " );
}
if ( days > 0 || hours > 0 || minutes > 0 ) {
- sb.append( minutes ).append( " minutes, " );
+ sb.append( minutes )
+ .append( " minutes, " );
}
- sb.append( seconds ).append( " seconds" );
+ sb.append( seconds )
+ .append( " seconds" );
return sb.toString();
}
+ /**
+ * Example:
+ * Build Version: 4.0.1-SNAPSHOT
+ * Build Date: 2022-10-26 15:59
+ *
+ * @return build information or an empty if none is found.
+ */
+ static public String getBuildInfo() {
+ final File libDir = FileLocator.getFileQuiet( "lib" );
+ if ( libDir == null || !libDir.isDirectory() ) {
+ return "";
+ }
+ final File[] files = libDir.listFiles();
+ if ( files == null ) {
+ return "";
+ }
+ for ( File jar : files ) {
+ final String name = jar.getName();
+ if ( name.contains( "ctakes-core" )
+ && !name.contains( "coreference" )
+ && !name.contains( "ctakes-core-res" ) ) {
+ try ( JarFile jf = new JarFile( jar ) ) {
+ final Manifest manifest = jf.getManifest();
+ final Attributes attributes = manifest.getMainAttributes();
+ return getAttribute( attributes, "Build Version",
"Implementation-Version" )
+ + getAttribute( attributes, "Build Date",
"Implementation-Build-Date" );
+ } catch ( IOException ioE ) {
+ return "";
+ }
+ }
+ }
+ return "";
+ }
+
+ static private String getAttribute( final Attributes attributes, final
String name, final String attributeName ) {
+ final String value = attributes.getValue( attributeName );
+ return value == null ? "" : name + ": " + value + "\n";
+ }
+
+
}