This project adds support for FasterXML's Jackson to Apache Commons Configuration 2.
Add the library as a dependency to your project. In Gradle, add to your dependencies
block
implementation 'com.virtlink.commons:commons-configuration2-jackson:1.3.5'
Or in Gradle Kotlin DSL, add to your dependencies
block
implementation("com.virtlink.commons:commons-configuration2-jackson:1.3.5")
In Maven, add to your <dependencies>
tag
<dependency>
<groupId>com.virtlink.commons</groupId>
<artifactId>commons-configuration2-jackson</artifactId>
<version>1.3.5</version>
</dependency>
Otherwise download the latest release and add the .jar
to your project's classpath.
Import the project's namespace.
import com.virtlink.commons.configuration2.jackson.JsonConfiguration;
Instantiate the configuration class directly
JsonConfiguration config = new JsonConfiguration();
or create a new configuration through the configuration builder,
import org.apache.commons.beanutils.PropertyUtils;
Parameters params = new Parameters();
FileBasedConfigurationBuilder<JsonConfiguration> builder
= new FileBasedConfigurationBuilder<>(JsonConfiguration.class);
JsonConfiguration config = builder.configure(params
.fileBased()
.setFileName("example.json")).getConfiguration();
Note: You need to add
commons-beanutils
as a dependency and importorg.apache.commons.beanutils.PropertyUtils
to make builders work, otherwise you get aClassNotFoundException: org.apache.commons.beanutils.PropertyUtils
when creating the builder parameters.
You can use the configuration to read from a Reader
try (Reader reader = new BufferedReader(new FileReader("settings.json"))) {
config.read(reader);
}
or write to a Writer
try (Writer writer = new PrintWriter("settings.json", "UTF-8")) {
config.write(writer);
}
Also refer to the API documentation.
If you have a question, ask it on Stack Overflow under the apache-commons-config
tag.
If you have an issue or found a bug, please search the list of reported issues for a solution or workaround, or create a new issue.
Copyright © 2015-2023 - Daniel A. A. Pelsmaeker
The code and files in this project are licensed under the Apache License, Version 2.0. You may use the files in this project in compliance with the license.