This is an automated email from the ASF dual-hosted git repository.
simonetripodi pushed a commit to branch apisjar_sources
in repository
https://gitbox.apache.org/repos/asf/sling-slingfeature-maven-plugin.git
The following commit(s) were added to refs/heads/apisjar_sources by this push:
new 4696e59 SLING-8273 - APIs jar MOJO doesn't produce Javadoc if sources
contain non-ascii chars
4696e59 is described below
commit 4696e595f3fb96119347182140de73ea54f573af
Author: Simo Tripodi <[email protected]>
AuthorDate: Mon Feb 11 17:50:01 2019 +0100
SLING-8273 - APIs jar MOJO doesn't produce Javadoc if sources contain
non-ascii chars
---
.../apache/sling/feature/maven/mojos/ApisJarMojo.java | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git
a/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
b/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
index 0d99902..9f0ce8e 100644
--- a/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
+++ b/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
@@ -106,7 +106,11 @@ public class ApisJarMojo extends
AbstractIncludingFeatureMojo {
private static final String JAVADOC = "javadoc";
- private static final String CLASS_EXTENSION = ".class";
+ private static final String JAVA_EXTENSION = ".java";
+
+ private static final String NON_ASCII_PATTERN = "[^\\p{ASCII}]";
+
+ private static final String EMPTY_STRING = "";
@Parameter
private FeatureSelectionConfig selection;
@@ -495,10 +499,15 @@ public class ApisJarMojo extends
AbstractIncludingFeatureMojo {
target.getParentFile().mkdirs();
try {
- if (includedFile.endsWith(CLASS_EXTENSION)) {
- FileUtils.copyFile(new File(deflatedDir, includedFile),
target);
+ File source = new File(deflatedDir, includedFile);
+
+ // this to prevent 'unmappable character for encoding UTF8'
error
+ if (includedFile.endsWith(JAVA_EXTENSION)) {
+ String javaSource = FileUtils.fileRead(source,
StandardCharsets.UTF_8.name())
+
.replaceAll(NON_ASCII_PATTERN, EMPTY_STRING);
+ FileUtils.fileWrite(target, StandardCharsets.UTF_8.name(),
javaSource);
} else {
- FileUtils.copyFile(new File(deflatedDir, includedFile),
target, StandardCharsets.UTF_8.name());
+ FileUtils.copyFile(source, target);
}
} catch (IOException e) {
throw new MojoExecutionException("An error occurred while
copying file "