You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/01/16 08:48:31 UTC
[camel] 02/02: CAMEL-13067: The maven plugin no longer needs to
enrich with class javatype as the apt plugin does that correctly again.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit a270d7d96236716b25643dbdd7e5d3aa1fed9167
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Jan 16 09:40:08 2019 +0100
CAMEL-13067: The maven plugin no longer needs to enrich with class javatype as the apt plugin does that correctly again.
---
.../maven/packaging/PackageComponentMojo.java | 64 ++++++++--------------
1 file changed, 24 insertions(+), 40 deletions(-)
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageComponentMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageComponentMojo.java
index de29a45..84278d5 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageComponentMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageComponentMojo.java
@@ -22,8 +22,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
+import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
@@ -107,8 +106,7 @@ public class PackageComponentMojo extends AbstractMojo {
StringBuilder buffer = new StringBuilder();
int count = 0;
- Map<String, String> components = new LinkedHashMap<>();
-
+ Set<String> components = new HashSet<>();
File f = new File(project.getBasedir(), "target/classes");
f = new File(f, "META-INF/services/org/apache/camel/component");
if (f.exists() && f.isDirectory()) {
@@ -126,20 +124,7 @@ public class PackageComponentMojo extends AbstractMojo {
buffer.append(" ");
}
buffer.append(name);
- }
-
- // grab the java class name for the discovered component
- try {
- Properties prop = new Properties();
- prop.load(new FileInputStream(file));
-
- String javaType = prop.getProperty("class");
-
- components.put(name, javaType);
- log.debug("Discovered component: " + name + " with class: " + javaType);
-
- } catch (IOException e) {
- throw new MojoExecutionException("Failed to load file " + file + ". Reason: " + e, e);
+ components.add(file.getName());
}
}
}
@@ -204,33 +189,32 @@ public class PackageComponentMojo extends AbstractMojo {
return count;
}
- private static void enrichComponentJsonFiles(Log log, MavenProject project, File buildDir, Map<String, String> components) throws MojoExecutionException {
+ private static void enrichComponentJsonFiles(Log log, MavenProject project, File buildDir, Set<String> components) throws MojoExecutionException {
final Set<File> files = PackageHelper.findJsonFiles(buildDir, p -> p.isDirectory() || p.getName().endsWith(".json"));
for (File file : files) {
- // name without .json
- String shortName = file.getName().substring(0, file.getName().length() - 5);
- String javaType = components.getOrDefault(shortName, "");
- log.debug("Enriching file: " + file);
+ // clip the .json suffix
+ String name = file.getName().substring(0, file.getName().length() - 5);
+ if (components.contains(name)) {
+ log.debug("Enriching component: " + name);
+ try {
+ String text = loadText(new FileInputStream(file));
+ text = text.replace("@@@DESCRIPTION@@@", project.getDescription());
+ text = text.replace("@@@GROUPID@@@", project.getGroupId());
+ text = text.replace("@@@ARTIFACTID@@@", project.getArtifactId());
+ text = text.replace("@@@VERSIONID@@@", project.getVersion());
+
+ // special for deprecated where you can quickly specify that in the pom.xml name
+ boolean deprecated = project.getName().contains("(deprecated)");
+ if (deprecated) {
+ // must start with 4 leading spaces as we want to replace the marker in the top of the file
+ text = text.replaceFirst(" {4}\"deprecated\": false,", " \"deprecated\": true,");
+ }
- try {
- String text = loadText(new FileInputStream(file));
- text = text.replace("@@@JAVATYPE@@@", javaType);
- text = text.replace("@@@DESCRIPTION@@@", project.getDescription());
- text = text.replace("@@@GROUPID@@@", project.getGroupId());
- text = text.replace("@@@ARTIFACTID@@@", project.getArtifactId());
- text = text.replace("@@@VERSIONID@@@", project.getVersion());
-
- // special for deprecated where you can quickly specify that in the pom.xml name
- boolean deprecated = project.getName().contains("(deprecated)");
- if (deprecated) {
- // must start with 4 leading spaces as we want to replace the marker in the top of the file
- text = text.replaceFirst(" {4}\"deprecated\": false,", " \"deprecated\": true,");
+ writeText(file, text);
+ } catch (IOException e) {
+ throw new MojoExecutionException("Failed to update file " + file + ". Reason: " + e, e);
}
-
- writeText(file, text);
- } catch (IOException e) {
- throw new MojoExecutionException("Failed to update file " + file + ". Reason: " + e, e);
}
}
}