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 2021/12/22 08:36:27 UTC
[camel] 03/04: CAMEL-17194: endpointdsl - Prepare for generate only once during project build.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 2f6bdfd24f496afa8ae9f2877533c64c84bfd28e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Dec 22 09:28:51 2021 +0100
CAMEL-17194: endpointdsl - Prepare for generate only once during project build.
---
.../apache/camel/maven/packaging/ComponentDslMojo.java | 15 +++------------
.../apache/camel/maven/packaging/EndpointDslMojo.java | 17 ++++++++++++++---
2 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ComponentDslMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ComponentDslMojo.java
index 33e9ce8..761c415a 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ComponentDslMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/ComponentDslMojo.java
@@ -22,10 +22,8 @@ import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
-import java.util.stream.Collectors;
import org.apache.camel.maven.packaging.dsl.component.ComponentDslBuilderFactoryGenerator;
import org.apache.camel.maven.packaging.dsl.component.ComponentsBuilderFactoryGenerator;
@@ -142,14 +140,10 @@ public class ComponentDslMojo extends AbstractGeneratorMojo {
executeComponent(models);
}
- private void executeComponent(List<ComponentModel> allModels) throws MojoExecutionException, MojoFailureException {
+ private void executeComponent(List<ComponentModel> allModels) throws MojoFailureException {
if (!allModels.isEmpty()) {
getLog().debug("Found " + allModels.size() + " components");
- // Group the models by implementing classes
- Map<String, List<ComponentModel>> grModels
- = allModels.stream().collect(Collectors.groupingBy(ComponentModel::getJavaType));
-
// load license header
try (InputStream is = getClass().getClassLoader().getResourceAsStream("license-header-java.txt")) {
this.licenseHeader = loadText(is);
@@ -157,11 +151,8 @@ public class ComponentDslMojo extends AbstractGeneratorMojo {
throw new MojoFailureException("Error loading license-header-java.txt file", e);
}
- for (List<ComponentModel> compModels : grModels.values()) {
- for (ComponentModel model : compModels) {
- // if more than one, we have a component class with multiple components aliases
- createComponentDsl(model);
- }
+ for (ComponentModel model : allModels) {
+ createComponentDsl(model);
}
}
}
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java
index 4f6da63..1fb1a0e 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java
@@ -150,7 +150,6 @@ public class EndpointDslMojo extends AbstractGeneratorMojo {
BaseModel<?> model = JsonMapper.generateModel(file.toPath());
models.add((ComponentModel) model);
}
- models.sort((o1, o2) -> o1.getScheme().compareToIgnoreCase(o2.getScheme()));
// generate component endpoint DSL files and write them
executeComponent(models);
@@ -172,8 +171,20 @@ public class EndpointDslMojo extends AbstractGeneratorMojo {
}
for (List<ComponentModel> compModels : grModels.values()) {
- ComponentModel model = compModels.get(0); // They should be equivalent
- List<String> aliases = compModels.stream().map(ComponentModel::getScheme).sorted().collect(Collectors.toList());
+ // if there are alias then we need to sort scheme according to the alternative schemes position
+ if (compModels.size() > 1) {
+ compModels.sort((o1, o2) -> {
+ String s1 = o1.getScheme();
+ String s2 = o2.getScheme();
+ String as = o1.getAlternativeSchemes();
+ int i1 = as.indexOf(s1);
+ int i2 = as.indexOf(s2);
+ return Integer.compare(i1, i2);
+ });
+ }
+
+ ComponentModel model = compModels.get(0); // master component
+ List<String> aliases = compModels.stream().map(ComponentModel::getScheme).collect(Collectors.toList());
String overrideComponentName = null;
if (aliases.size() > 1) {