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