Replaced getProjectDir() with getPropertiesFile().
This commit is contained in:
parent
486ed17317
commit
d689ade3a1
1 changed files with 26 additions and 33 deletions
|
@ -86,19 +86,18 @@ public class VersionProcessor extends AbstractProcessor {
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressFBWarnings({"PATH_TRAVERSAL_IN", "UAC_UNNECESSARY_API_CONVERSION_FILE_TO_PATH"})
|
@SuppressFBWarnings({"PATH_TRAVERSAL_IN", "UAC_UNNECESSARY_API_CONVERSION_FILE_TO_PATH"})
|
||||||
private VersionInfo findValues(final Version version)
|
private VersionInfo findValues(final Version version) throws IOException {
|
||||||
throws IOException {
|
|
||||||
final VersionInfo versionInfo = new VersionInfo(version);
|
final VersionInfo versionInfo = new VersionInfo(version);
|
||||||
|
|
||||||
if (version.properties().length() > 0) {
|
if (version.properties().length() > 0) {
|
||||||
final File propsFile = new File(getProjectDir(version.properties()));
|
final File propsFile = getPropertiesFile(version.properties());
|
||||||
if (propsFile.isFile() && propsFile.canRead()) {
|
if (propsFile.isFile() && propsFile.canRead()) {
|
||||||
note("Found properties: " + propsFile + " (" + propsFile.getAbsoluteFile().getParent() + ')');
|
note("Found properties: " + propsFile + " (" + propsFile.getAbsoluteFile().getParent() + ')');
|
||||||
|
|
||||||
final Properties p = new Properties();
|
final Properties p = new Properties();
|
||||||
|
|
||||||
try (final InputStreamReader reader =
|
try (final InputStreamReader reader = new InputStreamReader(Files.newInputStream(propsFile.toPath()),
|
||||||
new InputStreamReader(Files.newInputStream(propsFile.toPath()), StandardCharsets.UTF_8)) {
|
StandardCharsets.UTF_8)) {
|
||||||
p.load(reader);
|
p.load(reader);
|
||||||
|
|
||||||
versionInfo.setProject(
|
versionInfo.setProject(
|
||||||
|
@ -112,12 +111,10 @@ public class VersionProcessor extends AbstractProcessor {
|
||||||
versionInfo.setBuildMeta(
|
versionInfo.setBuildMeta(
|
||||||
p.getProperty(version.keysPrefix() + version.buildMetaKey(), version.buildMeta()));
|
p.getProperty(version.keysPrefix() + version.buildMetaKey(), version.buildMeta()));
|
||||||
versionInfo.setBuildMetaPrefix(
|
versionInfo.setBuildMetaPrefix(
|
||||||
p.getProperty(version.keysPrefix() + version.buildMetaPrefixKey(),
|
p.getProperty(version.keysPrefix() + version.buildMetaPrefixKey(), version.buildMetaPrefix()));
|
||||||
version.buildMetaPrefix()));
|
|
||||||
versionInfo.setPreRelease(
|
versionInfo.setPreRelease(
|
||||||
p.getProperty(version.keysPrefix() + version.preReleaseKey(), version.preRelease()));
|
p.getProperty(version.keysPrefix() + version.preReleaseKey(), version.preRelease()));
|
||||||
versionInfo.setPreReleasePrefix(
|
versionInfo.setPreReleasePrefix(p.getProperty(version.keysPrefix() + version.preReleasePrefixKey(),
|
||||||
p.getProperty(version.keysPrefix() + version.preReleasePrefixKey(),
|
|
||||||
version.preReleasePrefix()));
|
version.preReleasePrefix()));
|
||||||
versionInfo.setSeparator(
|
versionInfo.setSeparator(
|
||||||
p.getProperty(version.keysPrefix() + version.separatorKey(), version.separator()));
|
p.getProperty(version.keysPrefix() + version.separatorKey(), version.separator()));
|
||||||
|
@ -130,25 +127,25 @@ public class VersionProcessor extends AbstractProcessor {
|
||||||
findOrRead = "read";
|
findOrRead = "read";
|
||||||
}
|
}
|
||||||
error("Could not " + findOrRead + ": " + propsFile);
|
error("Could not " + findOrRead + ": " + propsFile);
|
||||||
throw new FileNotFoundException("Could not " + findOrRead + " the specified file: `"
|
throw new FileNotFoundException(
|
||||||
+ propsFile.getAbsolutePath() + '`');
|
"Could not " + findOrRead + " the specified file: `" + propsFile.getAbsolutePath() + '`');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return versionInfo;
|
return versionInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getProjectDir(final String fileName) {
|
@SuppressFBWarnings("PATH_TRAVERSAL_IN")
|
||||||
|
private File getPropertiesFile(final String fileName) {
|
||||||
if (processingEnv != null) { // null when testing.
|
if (processingEnv != null) { // null when testing.
|
||||||
final String prop = processingEnv.getOptions().get(Constants.SEMVER_PROJECT_DIR_ARG);
|
final String prop = processingEnv.getOptions().get(Constants.SEMVER_PROJECT_DIR_ARG);
|
||||||
if (prop != null) {
|
if (prop != null) {
|
||||||
return prop + File.separator + fileName;
|
return new File(prop, fileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return fileName;
|
return new File(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
@ -199,8 +196,8 @@ public class VersionProcessor extends AbstractProcessor {
|
||||||
final String template;
|
final String template;
|
||||||
if (isLocalTemplate && Constants.DEFAULT_JAVA_TEMPLATE.equals(version.template())) {
|
if (isLocalTemplate && Constants.DEFAULT_JAVA_TEMPLATE.equals(version.template())) {
|
||||||
template = Constants.DEFAULT_TEMPLATE_NAME;
|
template = Constants.DEFAULT_TEMPLATE_NAME;
|
||||||
} else if (Constants.DEFAULT_JAVA_TEMPLATE.equals(version.template())
|
} else if (Constants.DEFAULT_JAVA_TEMPLATE.equals(version.template()) && Constants.KOTLIN_TYPE
|
||||||
&& Constants.KOTLIN_TYPE.equals(version.type())) {
|
.equals(version.type())) {
|
||||||
template = Constants.DEFAULT_KOTLIN_TEMPLATE;
|
template = Constants.DEFAULT_KOTLIN_TEMPLATE;
|
||||||
} else {
|
} else {
|
||||||
template = version.template();
|
template = version.template();
|
||||||
|
@ -218,8 +215,8 @@ public class VersionProcessor extends AbstractProcessor {
|
||||||
|
|
||||||
private void log(final Diagnostic.Kind kind, final String s) {
|
private void log(final Diagnostic.Kind kind, final String s) {
|
||||||
if (messager != null) {
|
if (messager != null) {
|
||||||
messager.printMessage(kind, '[' + VersionProcessor.class.getSimpleName() + "] " + s
|
messager.printMessage(kind,
|
||||||
+ System.lineSeparator());
|
'[' + VersionProcessor.class.getSimpleName() + "] " + s + System.lineSeparator());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,11 +224,11 @@ public class VersionProcessor extends AbstractProcessor {
|
||||||
log(Diagnostic.Kind.NOTE, s);
|
log(Diagnostic.Kind.NOTE, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int parseIntProperty(final Properties p, final String property, final int defaultValue) {
|
private int parseIntProperty(final Properties p, final String key, final int defaultValue) {
|
||||||
try {
|
try {
|
||||||
return Math.abs(Integer.parseInt(p.getProperty(property, Integer.toString(defaultValue)).trim()));
|
return Math.abs(Integer.parseInt(p.getProperty(key, Integer.toString(defaultValue)).trim()));
|
||||||
} catch (NumberFormatException ignore) {
|
} catch (NumberFormatException ignore) {
|
||||||
warn("Invalid property value: " + property);
|
warn("Invalid property value: " + key);
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -241,12 +238,9 @@ public class VersionProcessor extends AbstractProcessor {
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressFBWarnings({"PATH_TRAVERSAL_IN", "UAC_UNNECESSARY_API_CONVERSION_FILE_TO_PATH"})
|
@SuppressFBWarnings({"PATH_TRAVERSAL_IN", "UAC_UNNECESSARY_API_CONVERSION_FILE_TO_PATH"})
|
||||||
private void writeTemplate(final String type,
|
private void writeTemplate(final String type, final VersionInfo versionInfo, final String template)
|
||||||
final VersionInfo versionInfo,
|
|
||||||
final String template)
|
|
||||||
throws IOException {
|
throws IOException {
|
||||||
final MustacheFactory mf = new DefaultMustacheFactory(
|
final MustacheFactory mf = new DefaultMustacheFactory(getPropertiesFile("."));
|
||||||
new File(getProjectDir(".")));
|
|
||||||
final Mustache mustache = mf.compile(template);
|
final Mustache mustache = mf.compile(template);
|
||||||
|
|
||||||
final String templateName;
|
final String templateName;
|
||||||
|
@ -279,13 +273,12 @@ public class VersionProcessor extends AbstractProcessor {
|
||||||
}
|
}
|
||||||
note("Generated source: " + fileName + " (" + ktFile.getParentFile().getAbsolutePath() + ')');
|
note("Generated source: " + fileName + " (" + ktFile.getParentFile().getAbsolutePath() + ')');
|
||||||
} else {
|
} else {
|
||||||
final FileObject jfo = filer.createSourceFile(versionInfo.getPackageName() + '.'
|
final FileObject jfo = filer.createSourceFile(
|
||||||
+ versionInfo.getClassName());
|
versionInfo.getPackageName() + '.' + versionInfo.getClassName());
|
||||||
try (final Writer writer = jfo.openWriter()) {
|
try (final Writer writer = jfo.openWriter()) {
|
||||||
mustache.execute(writer, versionInfo).flush();
|
mustache.execute(writer, versionInfo).flush();
|
||||||
}
|
}
|
||||||
note("Generated source: " + fileName + " ("
|
note("Generated source: " + fileName + " (" + new File(jfo.getName()).getAbsoluteFile().getParent() + ')');
|
||||||
+ new File(jfo.getName()).getAbsoluteFile().getParent() + ')');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue