In UIMA 2.10.0 support was added for loading external override settings from the classpath or datapath, but the approach chosen introduced an ambiguity by looking first in the filesystem and then in the class path or datapath. A better approach would be to use a syntax that clearly indicates whether to search the filesystem, or to search the classpath & datapath.
We could represent path resources using the Java-style dotted name syntax as is used for UIMA imports by name. The dots would be replaced by file path separators and the suffix ".settings" appended before searching the paths. Ideally the presence of a slash would indicate a file resource, but in case existing applications are using a simple relative filename we could also check for the presence of a ".settings" suffix. Another approach would be to copy the import convention and also allow a name or location attribute. So the comma-separated elements could be a filename, or location=filename, or name=dotted-name. The documentation could be: The value of the property must be a list of resource names, each separated by a single comma. The name can be a filename, or a Java-style dotted name loaded from the class path or data path. Dots are replaced by file path separators and the suffix ".settings" is appended. Note that if that suffix is already present the resource is assumed to be a file. e.g. -DUimaExternalOverrides=/data/file1.settings,org.foo.bar.file2.settings or The value of the property must be a list of resources, each separated by a single comma. The resource can be specified as a filename, or as name=dotted-name, or as location=filename. The dotted-name resources are loaded from the class path or data path after replacing dots by file path separators and appending the suffix ".settings". e.g. -DUimaExternalOverrides=/data/file1.settings,name=org.foo.bar,location=file2.settings Comments and better/different suggestions welcome! ~Burn
