Skip to content

Commit 8b08d4b

Browse files
authored
Merge pull request #666 from jonbullock/revert/640-apache-configurations
Revert upgrade to Apache Configurations2
2 parents aac70f9 + 1451a64 commit 8b08d4b

40 files changed

+96
-280
lines changed

appveyor.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ install:
2020
- gradlew.bat --version
2121
- file C:\projects\jbake\jbake-core\src\test\resources\fixture\jbake.properties
2222
build_script:
23-
- gradlew.bat -Dfile.encoding=UTF-8 -i assemble
23+
- gradlew.bat -i assemble
2424
test_script:
25-
- gradlew.bat -Dfile.encoding=UTF-8 -i -S check
25+
- gradlew.bat -i -S check

gradle.properties

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ asciidoctorjVersion = 2.4.3
1111
asciidoctorjDiagramVersion = 2.1.0
1212
args4jVersion = 2.33
1313
commonsIoVersion = 2.8.0
14-
commonsConfigurationVersion = 2.7
15-
commonsBeanutilsVersion = 1.9.4
14+
commonsConfigurationVersion = 1.10
1615
commonsLangVersion = 3.12.0
1716
commonsVfs2Version = 2.7.0
1817
freemarkerVersion = 2.3.31
@@ -40,7 +39,6 @@ mockitoVersion = 3.8.0
4039
jacocoVersion = 0.8.6
4140
grgitVersion = 1.6.0
4241

43-
4442
bintrayDryRun = false
4543
bintrayOrg = jbake
4644
bintrayRepo = maven

jbake-core/build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ description = "The core library of JBake"
88

99
dependencies {
1010
implementation "commons-io:commons-io:$commonsIoVersion"
11-
implementation "org.apache.commons:commons-configuration2:$commonsConfigurationVersion"
12-
implementation "commons-beanutils:commons-beanutils:$commonsBeanutilsVersion"
11+
implementation "commons-configuration:commons-configuration:$commonsConfigurationVersion"
1312
implementation "org.apache.commons:commons-vfs2:$commonsVfs2Version", optional
1413
implementation "org.apache.commons:commons-lang3:$commonsLangVersion"
1514
implementation("com.googlecode.json-simple:json-simple:$jsonSimpleVersion") {

jbake-core/src/main/java/org/jbake/app/Asset.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.jbake.app;
22

3-
import org.apache.commons.configuration2.CompositeConfiguration;
3+
import org.apache.commons.configuration.CompositeConfiguration;
44
import org.apache.commons.io.FileUtils;
55
import org.jbake.app.configuration.JBakeConfiguration;
66
import org.jbake.app.configuration.JBakeConfigurationFactory;
@@ -24,7 +24,7 @@ public class Asset {
2424

2525
private static final Logger LOGGER = LoggerFactory.getLogger(Asset.class);
2626
private final List<Throwable> errors = new LinkedList<>();
27-
private final JBakeConfiguration config;
27+
private JBakeConfiguration config;
2828

2929
/**
3030
* @param source Source file for the asset

jbake-core/src/main/java/org/jbake/app/Crawler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.jbake.app;
22

33
import com.orientechnologies.orient.core.record.impl.ODocument;
4-
import org.apache.commons.configuration2.CompositeConfiguration;
4+
import org.apache.commons.configuration.CompositeConfiguration;
55
import org.apache.commons.io.FilenameUtils;
66
import org.jbake.app.Crawler.Attributes.Status;
77
import org.jbake.app.configuration.JBakeConfiguration;
@@ -30,8 +30,8 @@ public class Crawler {
3030

3131
private static final Logger LOGGER = LoggerFactory.getLogger(Crawler.class);
3232
private final ContentStore db;
33-
private final JBakeConfiguration config;
34-
private final Parser parser;
33+
private JBakeConfiguration config;
34+
private Parser parser;
3535

3636
/**
3737
* @param db Database instance for content
@@ -142,7 +142,7 @@ private String buildURI(final File sourceFile) {
142142

143143
// strip off leading / to enable generating non-root based sites
144144
if (uri.startsWith(FileUtil.URI_SEPARATOR_CHAR)) {
145-
uri = uri.substring(1);
145+
uri = uri.substring(1, uri.length());
146146
}
147147

148148
return uri;

jbake-core/src/main/java/org/jbake/app/Oven.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.jbake.app;
22

3-
import org.apache.commons.configuration2.CompositeConfiguration;
3+
import org.apache.commons.configuration.CompositeConfiguration;
44
import org.jbake.app.configuration.DefaultJBakeConfiguration;
55
import org.jbake.app.configuration.JBakeConfiguration;
66
import org.jbake.app.configuration.JBakeConfigurationFactory;
@@ -29,8 +29,8 @@ public class Oven {
2929

3030
private static final Logger LOGGER = LoggerFactory.getLogger(Oven.class);
3131

32-
private final Utensils utensils;
33-
private final List<Throwable> errors = new LinkedList<>();
32+
private Utensils utensils;
33+
private List<Throwable> errors = new LinkedList<>();
3434
private int renderedCount = 0;
3535

3636
/**

jbake-core/src/main/java/org/jbake/app/Renderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.jbake.app;
22

3-
import org.apache.commons.configuration2.CompositeConfiguration;
3+
import org.apache.commons.configuration.CompositeConfiguration;
44
import org.jbake.app.Crawler.Attributes;
55
import org.jbake.app.configuration.DefaultJBakeConfiguration;
66
import org.jbake.app.configuration.JBakeConfiguration;
Lines changed: 13 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
package org.jbake.app.configuration;
22

3-
import org.apache.commons.configuration2.CompositeConfiguration;
4-
import org.apache.commons.configuration2.PropertiesConfiguration;
5-
import org.apache.commons.configuration2.SystemConfiguration;
6-
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
7-
import org.apache.commons.configuration2.builder.fluent.Parameters;
8-
import org.apache.commons.configuration2.convert.DefaultListDelimiterHandler;
9-
import org.apache.commons.configuration2.ex.ConfigurationException;
3+
import org.apache.commons.configuration.CompositeConfiguration;
4+
import org.apache.commons.configuration.ConfigurationException;
5+
import org.apache.commons.configuration.PropertiesConfiguration;
6+
import org.apache.commons.configuration.SystemConfiguration;
107
import org.jbake.app.JBakeException;
118
import org.slf4j.Logger;
129
import org.slf4j.LoggerFactory;
1310

1411
import java.io.File;
1512
import java.net.URL;
13+
import java.nio.file.Path;
14+
import java.nio.file.Paths;
1615
import java.nio.charset.Charset;
1716

1817
/**
@@ -22,13 +21,10 @@
2221
*/
2322
public class ConfigUtil {
2423

25-
public static final char LIST_DELIMITER = ',';
26-
public static final String DEFAULT_ENCODING = "UTF-8";
2724
private static final Logger LOGGER = LoggerFactory.getLogger(ConfigUtil.class);
2825
private static final String LEGACY_CONFIG_FILE = "custom.properties";
2926
private static final String CONFIG_FILE = "jbake.properties";
3027
private static final String DEFAULT_CONFIG_FILE = "default.properties";
31-
private String encoding = DEFAULT_ENCODING;
3228

3329
private CompositeConfiguration load(File source) throws ConfigurationException {
3430

@@ -38,53 +34,23 @@ private CompositeConfiguration load(File source) throws ConfigurationException {
3834
if (!source.isDirectory()) {
3935
throw new JBakeException("The given source folder is not a directory.");
4036
}
41-
42-
File legacyConfigFile = new File(source, LEGACY_CONFIG_FILE);
43-
File customConfigFile = new File(source, CONFIG_FILE);
44-
4537
CompositeConfiguration config = new CompositeConfiguration();
46-
config.setListDelimiterHandler(new DefaultListDelimiterHandler(LIST_DELIMITER));
47-
48-
if (legacyConfigFile.exists()) {
38+
config.setListDelimiter(',');
39+
File customConfigFile = new File(source, LEGACY_CONFIG_FILE);
40+
if (customConfigFile.exists()) {
4941
displayLegacyConfigFileWarningIfRequired();
50-
config.addConfiguration(getFileBasedPropertiesConfiguration(legacyConfigFile));
42+
config.addConfiguration(new PropertiesConfiguration(customConfigFile));
5143
}
44+
customConfigFile = new File(source, CONFIG_FILE);
5245
if (customConfigFile.exists()) {
53-
config.addConfiguration(getFileBasedPropertiesConfiguration(customConfigFile));
46+
config.addConfiguration(new PropertiesConfiguration(customConfigFile));
5447
}
5548
URL defaultPropertiesLocation = this.getClass().getClassLoader().getResource(DEFAULT_CONFIG_FILE);
56-
if (defaultPropertiesLocation != null) {
57-
config.addConfiguration(getFileBasedPropertiesConfiguration(defaultPropertiesLocation));
58-
}
59-
49+
config.addConfiguration(new PropertiesConfiguration(defaultPropertiesLocation));
6050
config.addConfiguration(new SystemConfiguration());
6151
return config;
6252
}
6353

64-
private PropertiesConfiguration getFileBasedPropertiesConfiguration(File propertiesFile) throws ConfigurationException {
65-
FileBasedConfigurationBuilder<PropertiesConfiguration> builder =
66-
new FileBasedConfigurationBuilder<>(PropertiesConfiguration.class)
67-
.configure(new Parameters().properties()
68-
.setFile(propertiesFile)
69-
.setEncoding(encoding)
70-
.setThrowExceptionOnMissing(true)
71-
.setListDelimiterHandler(new DefaultListDelimiterHandler(LIST_DELIMITER))
72-
.setIncludesAllowed(false));
73-
return builder.getConfiguration();
74-
}
75-
76-
private PropertiesConfiguration getFileBasedPropertiesConfiguration(URL propertiesFile) throws ConfigurationException {
77-
FileBasedConfigurationBuilder<PropertiesConfiguration> builder =
78-
new FileBasedConfigurationBuilder<>(PropertiesConfiguration.class)
79-
.configure(new Parameters().properties()
80-
.setURL(propertiesFile)
81-
.setEncoding(encoding)
82-
.setThrowExceptionOnMissing(true)
83-
.setListDelimiterHandler(new DefaultListDelimiterHandler(LIST_DELIMITER))
84-
.setIncludesAllowed(false));
85-
return builder.getConfiguration();
86-
}
87-
8854
private void displayLegacyConfigFileWarningIfRequired() {
8955
LOGGER.warn("You have defined a part of your JBake configuration in {}", LEGACY_CONFIG_FILE);
9056
LOGGER.warn("Usage of this file is being deprecated, please rename this file to: {} to remove this warning", CONFIG_FILE);
@@ -95,17 +61,4 @@ public JBakeConfiguration loadConfig(File source) throws ConfigurationException
9561
return new DefaultJBakeConfiguration(source, configuration);
9662
}
9763

98-
public String getEncoding() {
99-
return this.encoding;
100-
}
101-
102-
public ConfigUtil setEncoding(String encoding) {
103-
if (Charset.isSupported(encoding)) {
104-
this.encoding = encoding;
105-
} else {
106-
this.encoding = DEFAULT_ENCODING;
107-
LOGGER.warn("Unsupported encoding '{}'. Using default encoding '{}'", encoding, this.encoding);
108-
}
109-
return this;
110-
}
11164
}

jbake-core/src/main/java/org/jbake/app/configuration/DefaultJBakeConfiguration.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.jbake.app.configuration;
22

3-
import org.apache.commons.configuration2.CompositeConfiguration;
4-
import org.apache.commons.configuration2.Configuration;
3+
import org.apache.commons.configuration.CompositeConfiguration;
4+
import org.apache.commons.configuration.Configuration;
55
import org.apache.commons.lang3.StringUtils;
66
import org.slf4j.Logger;
77
import org.slf4j.LoggerFactory;
@@ -10,7 +10,7 @@
1010
import java.nio.file.Path;
1111
import java.nio.file.Paths;
1212
import java.util.ArrayList;
13-
import java.util.Collections;
13+
import java.util.Arrays;
1414
import java.util.Iterator;
1515
import java.util.List;
1616
import java.util.regex.Matcher;
@@ -74,7 +74,7 @@ private int getAsInt(String key, int defaultValue) {
7474
}
7575

7676
private List<String> getAsList(String key) {
77-
return compositeConfiguration.getList(String.class, key);
77+
return Arrays.asList(compositeConfiguration.getStringArray(key));
7878
}
7979

8080
private String getAsString(String key) {
@@ -90,15 +90,15 @@ public List<String> getAsciidoctorAttributes() {
9090
return getAsList(JBakeProperty.ASCIIDOCTOR_ATTRIBUTES);
9191
}
9292

93-
public List<String> getAsciidoctorOption(String optionKey) {
93+
public Object getAsciidoctorOption(String optionKey) {
9494
Configuration subConfig = compositeConfiguration.subset(JBakeProperty.ASCIIDOCTOR_OPTION);
95+
Object value = subConfig.getProperty(optionKey);
9596

96-
if (subConfig.containsKey(optionKey)) {
97-
return subConfig.getList(String.class, optionKey);
98-
} else {
97+
if (value == null) {
9998
logger.warn("Cannot find asciidoctor option '{}.{}'", JBakeProperty.ASCIIDOCTOR_OPTION, optionKey);
100-
return Collections.emptyList();
99+
return "";
101100
}
101+
return value;
102102
}
103103

104104
@Override
@@ -477,7 +477,6 @@ public void setExampleProject(String type, String fileName) {
477477

478478
@Override
479479
public void setProperty(String key, Object value) {
480-
481480
compositeConfiguration.setProperty(key, value);
482481
}
483482

jbake-core/src/main/java/org/jbake/app/configuration/JBakeConfigurationFactory.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package org.jbake.app.configuration;
22

3-
4-
import org.apache.commons.configuration2.CompositeConfiguration;
5-
import org.apache.commons.configuration2.ex.ConfigurationException;
3+
import org.apache.commons.configuration.CompositeConfiguration;
4+
import org.apache.commons.configuration.ConfigurationException;
65

76
import java.io.File;
87

@@ -106,9 +105,4 @@ public ConfigUtil getConfigUtil() {
106105
public void setConfigUtil(ConfigUtil configUtil) {
107106
this.configUtil = configUtil;
108107
}
109-
110-
public JBakeConfigurationFactory setEncoding(String charset) {
111-
this.configUtil.setEncoding(charset);
112-
return this;
113-
}
114108
}

jbake-core/src/main/java/org/jbake/launcher/BakeWatcher.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.jbake.launcher;
22

3-
import org.apache.commons.configuration2.CompositeConfiguration;
3+
import org.apache.commons.configuration.CompositeConfiguration;
44
import org.apache.commons.vfs2.FileObject;
55
import org.apache.commons.vfs2.FileSystemException;
66
import org.apache.commons.vfs2.FileSystemManager;
@@ -18,7 +18,7 @@
1818
*/
1919
public class BakeWatcher {
2020

21-
private final Logger logger = LoggerFactory.getLogger(BakeWatcher.class);
21+
private Logger logger = LoggerFactory.getLogger(BakeWatcher.class);
2222

2323
/**
2424
* Starts watching the file system for changes to trigger a bake.

jbake-core/src/main/java/org/jbake/launcher/Baker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.jbake.launcher;
22

3-
import org.apache.commons.configuration2.CompositeConfiguration;
3+
import org.apache.commons.configuration.CompositeConfiguration;
44
import org.jbake.app.JBakeException;
55
import org.jbake.app.Oven;
66
import org.jbake.app.configuration.JBakeConfiguration;

jbake-core/src/main/java/org/jbake/launcher/Init.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.jbake.launcher;
22

3-
import org.apache.commons.configuration2.CompositeConfiguration;
3+
import org.apache.commons.configuration.CompositeConfiguration;
44
import org.jbake.app.ZipUtil;
55
import org.jbake.app.configuration.DefaultJBakeConfiguration;
66
import org.jbake.app.configuration.JBakeConfiguration;
@@ -16,7 +16,7 @@
1616
*/
1717
public class Init {
1818

19-
private final JBakeConfiguration config;
19+
private JBakeConfiguration config;
2020

2121
/**
2222
* @param config The project configuration

jbake-core/src/main/java/org/jbake/launcher/LaunchOptions.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,6 @@ public class LaunchOptions {
3030
@Option(name = "--reset", usage = "clears the local cache, enforcing rendering from scratch")
3131
private boolean clearCache;
3232

33-
@Option(name = "--prop-encoding", usage = "use given encoding to load properties file. default: utf-8")
34-
private String propertiesEncoding = "utf-8";
35-
3633
public String getTemplate() {
3734
if (template != null) {
3835
return template;
@@ -84,8 +81,4 @@ public boolean isClearCache() {
8481
public boolean isBake() {
8582
return bake || (source != null && destination != null);
8683
}
87-
88-
public String getPropertiesEncoding() {
89-
return propertiesEncoding;
90-
}
9184
}

jbake-core/src/main/java/org/jbake/launcher/Main.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.jbake.launcher;
22

3-
import org.apache.commons.configuration2.ex.ConfigurationException;
3+
import org.apache.commons.configuration.ConfigurationException;
44
import org.jbake.app.FileUtil;
55
import org.jbake.app.JBakeException;
66
import org.jbake.app.configuration.JBakeConfiguration;
@@ -77,9 +77,9 @@ protected void run(String[] args) {
7777
try {
7878
LaunchOptions res = parseArguments(args);
7979
if (res.isRunServer()) {
80-
config = getJBakeConfigurationFactory().setEncoding(res.getPropertiesEncoding()).createJettyJbakeConfiguration(res.getSource(), res.getDestination(), res.isClearCache());
80+
config = getJBakeConfigurationFactory().createJettyJbakeConfiguration(res.getSource(), res.getDestination(), res.isClearCache());
8181
} else {
82-
config = getJBakeConfigurationFactory().setEncoding(res.getPropertiesEncoding()).createDefaultJbakeConfiguration(res.getSource(), res.getDestination(), res.isClearCache());
82+
config = getJBakeConfigurationFactory().createDefaultJbakeConfiguration(res.getSource(), res.getDestination(), res.isClearCache());
8383
}
8484
run(res, config);
8585
} catch (final ConfigurationException e) {

jbake-core/src/main/java/org/jbake/parser/MarkupEngine.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.jbake.parser;
22

3-
import org.apache.commons.configuration2.CompositeConfiguration;
4-
import org.apache.commons.configuration2.Configuration;
3+
import org.apache.commons.configuration.CompositeConfiguration;
4+
import org.apache.commons.configuration.Configuration;
55
import org.apache.commons.io.IOUtils;
66
import org.jbake.app.Crawler;
77
import org.jbake.app.configuration.DefaultJBakeConfiguration;

0 commit comments

Comments
 (0)