You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2016/12/16 20:09:58 UTC

svn commit: r1774658 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java

Author: schor
Date: Fri Dec 16 20:09:58 2016
New Revision: 1774658

URL: http://svn.apache.org/viewvc?rev=1774658&view=rev
Log:
[UIMA-5208] merge from trunk

Modified:
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java   (contents, props changed)

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java?rev=1774658&r1=1774657&r2=1774658&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java Fri Dec 16 20:09:58 2016
@@ -19,10 +19,13 @@
 package org.apache.uima.util.impl;
 
 import java.io.BufferedReader;
+import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.net.URL;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
@@ -31,6 +34,7 @@ import java.util.regex.Pattern;
 
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.resource.ResourceConfigurationException;
+import org.apache.uima.resource.impl.RelativePathResolver_impl;
 import org.apache.uima.util.Level;
 import org.apache.uima.util.Settings;
 
@@ -128,20 +132,35 @@ public class Settings_impl implements Se
   /**
    * Load properties from the comma-separated list of files specified in the system property 
    *   UimaExternalOverrides
-   * Files are loaded in order --- so in descending priority.
-   * Any existing entries are removed first.
+   * Files are loaded in list order.  Duplicate properties are ignored so entries in a file override any in following files.
+   * The filesystem is searched first, and if not found and a relative name the datapath and classpath are searched.
    * 
    * @throws ResourceConfigurationException wraps IOException
    */
   public void loadSystemDefaults() throws ResourceConfigurationException {
     String fnames = System.getProperty("UimaExternalOverrides");
     if (fnames != null) {
+      RelativePathResolver_impl relativePathResolver = new RelativePathResolver_impl();
       for (String fname : fnames.split(",")) {
         UIMAFramework.getLogger(this.getClass()).logrb(Level.CONFIG, this.getClass().getName(), "loadSystemDefaults",
                 LOG_RESOURCE_BUNDLE, "UIMA_external_overrides_load__CONFIG",
                 new Object[] { fname });
+        File f = new File(fname);
         try {
-          FileInputStream is = new FileInputStream(fname);
+          InputStream is = null; 
+          if (f.exists()) {
+            is = new FileInputStream(fname);
+          } else if (f.isAbsolute()) {
+            throw new FileNotFoundException(fname + " - not in filesystem.");
+          } else {  // Look in datapath & classpath if a relative entry not in the filesystem
+            URL relativeUrl = new URL("file", "", fname);
+            URL relPath = relativePathResolver.resolveRelativePath(relativeUrl);
+            if (relPath != null) {
+              is = relPath.openStream();
+            } else {
+              throw new FileNotFoundException(fname + " - not found in directory " + System.getProperty("user.dir") + " or in the datapath or classpath.");
+            }
+          }
           try {
             load(is);
           } finally {

Propchange: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Dec 16 20:09:58 2016
@@ -0,0 +1,8 @@
+/incubator/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java:932400-933272
+/uima/uimaj/branches/2.6.0-json/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java:1616936-1617592
+/uima/uimaj/branches/depend-on-july-9-build-tools/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java:963167-964468
+/uima/uimaj/branches/depend-on-parent-pom-4/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java:961329-961745
+/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java:1436573-1462257
+/uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java:933273-944396
+/uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java:1024030
+/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/Settings_impl.java:1690273-1774657