You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by se...@apache.org on 2016/12/19 16:48:54 UTC

svn commit: r1775134 - in /ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core: pipeline/PipelineBuilder.java pipeline/PiperFileReader.java util/PropertyAeFactory.java

Author: seanfinan
Date: Mon Dec 19 16:48:53 2016
New Revision: 1775134

URL: http://svn.apache.org/viewvc?rev=1775134&view=rev
Log:
PiperFileReader: For quoted parameters, do not attempt to create an Array or convert to a Number
Removed "loadParameters" / "loadPropertyFile" in favor of using "load" of a piper with "set" commands
Removed "addParameters" in favor of "set"

Modified:
    ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PipelineBuilder.java
    ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java
    ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/PropertyAeFactory.java

Modified: ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PipelineBuilder.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PipelineBuilder.java?rev=1775134&r1=1775133&r2=1775134&view=diff
==============================================================================
--- ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PipelineBuilder.java (original)
+++ ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PipelineBuilder.java Mon Dec 19 16:48:53 2016
@@ -47,21 +47,10 @@ final public class PipelineBuilder {
    /**
     * Use of this method is order-specific
     *
-    * @param filePath path to .properties file with ae parameter name value pairs
-    * @return this PipelineBuilder
-    */
-   public PipelineBuilder loadParameters( final String filePath ) {
-      PropertyAeFactory.getInstance().loadPropertyFile( filePath );
-      return this;
-   }
-
-   /**
-    * Use of this method is order-specific
-    *
     * @param parameters add ae parameter name value pairs
     * @return this PipelineBuilder
     */
-   public PipelineBuilder addParameters( final Object... parameters ) {
+   public PipelineBuilder set( final Object... parameters ) {
       PropertyAeFactory.getInstance().addParameters( parameters );
       return this;
    }

Modified: ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java?rev=1775134&r1=1775133&r2=1775134&view=diff
==============================================================================
--- ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java (original)
+++ ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java Mon Dec 19 16:48:53 2016
@@ -83,6 +83,7 @@ final public class PiperFileReader {
    static private final Pattern SPACE_PATTERN = Pattern.compile( "\\s+" );
    static private final Pattern KEY_VALUE_PATTERN = Pattern.compile( "=" );
    static private final Pattern COMMA_ARRAY_PATTERN = Pattern.compile( "," );
+   static private final Pattern QUOTE_PATTERN = Pattern.compile( "\"" );
    static private final Pattern QUOTE_VALUE_PATTERN = Pattern.compile( "(?:[^\"=\\s]+)|(?:\"[^\"=\\r\\n]+\")" );
    static private final Pattern NAME_VALUE_PATTERN = Pattern
          .compile( "[^\"\\s=]+=(?:(?:[^\"=\\s]+)|(?:\"[^\"=\\r\\n]+\"))" );
@@ -161,14 +162,8 @@ final public class PiperFileReader {
          case "addPackage":
             _userPackages.add( parameter );
             break;
-         case "loadParameters":
-            _builder.loadParameters( parameter );
-            break;
-         case "addParameters":
-            _builder.addParameters( splitParameters( parameter ) );
-            break;
          case "set":
-            _builder.addParameters( splitParameters( parameter ) );
+            _builder.set( splitParameters( parameter ) );
             break;
          case "reader":
             _builder.reader( createReader( parameter ) );
@@ -510,15 +505,18 @@ final public class PiperFileReader {
    }
 
    static private Object getValueObject( final String value ) {
-      final String unquotedValue = value.replace( "\"", "" );
-      if ( isCommaArray( unquotedValue ) ) {
-         return attemptParseArray( unquotedValue );
+      if ( value.indexOf( '\"' ) >= 0 ) {
+         // Quoted values should be returned outright - no array splitting, no integer conversion, etc.
+         return QUOTE_PATTERN.matcher( value ).replaceAll( "" );
+      }
+      if ( isCommaArray( value ) ) {
+         return attemptParseArray( value );
       }
-      final Object returner = attemptParseBoolean( unquotedValue );
-      if ( !unquotedValue.equals( returner ) ) {
+      final Object returner = attemptParseBoolean( value );
+      if ( !value.equals( returner ) ) {
          return returner;
       }
-      return attemptParseInt( unquotedValue );
+      return attemptParseInt( value );
    }
 
    /**

Modified: ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/PropertyAeFactory.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/PropertyAeFactory.java?rev=1775134&r1=1775133&r2=1775134&view=diff
==============================================================================
--- ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/PropertyAeFactory.java (original)
+++ ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/PropertyAeFactory.java Mon Dec 19 16:48:53 2016
@@ -1,7 +1,6 @@
 package org.apache.ctakes.core.util;
 
 import org.apache.ctakes.core.ae.StartFinishLogger;
-import org.apache.ctakes.core.resource.FileLocator;
 import org.apache.log4j.Logger;
 import org.apache.uima.analysis_component.AnalysisComponent;
 import org.apache.uima.analysis_engine.AnalysisEngine;
@@ -9,11 +8,8 @@ import org.apache.uima.analysis_engine.A
 import org.apache.uima.fit.factory.AnalysisEngineFactory;
 import org.apache.uima.resource.ResourceInitializationException;
 
-import java.io.IOException;
-import java.io.InputStream;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Properties;
 
 /**
  * This factory can load plain old java .properties files and pass the specified properties as parameters for AE creation.
@@ -36,20 +32,6 @@ public enum PropertyAeFactory {
    // Use a single hashmap so that multiple properties files can be used
    final private Map<String, Object> _properties = new HashMap<>();
 
-   /**
-    * Load a .properties file with key value pairs
-    *
-    * @param filePath -
-    */
-   synchronized public void loadPropertyFile( final String filePath ) {
-      try ( InputStream stream = FileLocator.getAsStream( filePath ) ) {
-         final Properties properties = new Properties();
-         properties.load( stream );
-         properties.entrySet().forEach( e -> _properties.put( e.getKey().toString(), e.getValue() ) );
-      } catch ( IOException ioE ) {
-         LOGGER.error( "Property File not found: " + filePath );
-      }
-   }
 
    /**
     * Add key value pairs to the stored properties