Class AbstractFileLocationStrategy
- All Implemented Interfaces:
FileLocationStrategy
- Direct Known Subclasses:
AbsoluteNameLocationStrategy,BasePathLocationStrategy,ClasspathLocationStrategy,CombinedLocationStrategy,FileSystemLocationStrategy,HomeDirectoryLocationStrategy,ProvidedURLLocationStrategy
Note that some FileLocationStrategy implementation use URLs internally to encode file locations.
As of version 2.15.0, by default, the only URL schemes allowed are file and jar. To override this default, you can either use the system
property org.apache.commons.configuration2.io.FileLocationStrategy.schemes or build a subclass of AbstractFileLocationStrategy.
The system property org.apache.commons.configuration2.io.FileLocationStrategy.schemes String value must be a comma-separated list of schemes,
where the default is "file,jar", and the complete list is "file,http,https,jar".
The root builder for AbstractFileLocationStrategy is AbstractFileLocationStrategy.AbstractBuilder where you define allowed schemes and hosts through its setter
methods.
For example, to programatically enable the shemes "file", "http", "https", and "jar" for all strategies, you write:
final PropertiesConfiguration pc = new PropertiesConfiguration();
pc.setIncludeListener(PropertiesConfiguration.NOOP_INCLUDE_LISTENER);
final FileHandler handler = new FileHandler(pc);
final CombinedLocationStrategy.Builder builder = new CombinedLocationStrategy.Builder()
.setSchemes(new TreeSet<>(Arrays.asList("file", "http", "https", "jar")));
// @formatter:off
handler.setLocationStrategy(builder.setSubStrategies(Arrays.asList(
new ProvidedURLLocationStrategy(builder),
new FileSystemLocationStrategy(builder),
new AbsoluteNameLocationStrategy(builder),
new BasePathLocationStrategy(builder),
new HomeDirectoryLocationStrategy.Builder().setEvaluateBasePath(true).getUnchecked(),
new HomeDirectoryLocationStrategy.Builder().setEvaluateBasePath(false).getUnchecked(),
new ClasspathLocationStrategy(builder)))
.get());
// @formatter:on
handler.setBasePath(TEST_BASE_PATH);
handler.setFileName("include-load-url-host-unknown-exception.properties");
handler.load();
- Since:
- 2.15.0
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAbstractFileLocationStrategy.AbstractBuilder<T extends FileLocationStrategy,B extends AbstractFileLocationStrategy.AbstractBuilder<T, B>> Builds new instances for subclasses.static classBuilds new instances of T. -
Method Summary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.commons.configuration2.io.FileLocationStrategy
locate