This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch camel-main
in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git
The following commit(s) were added to refs/heads/camel-main by this push:
new fa8a0a3 Allow excluding components from the catalog.
fa8a0a3 is described below
commit fa8a0a3765773fcfe0fa17a06a25a4ca4033fd43
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Wed May 26 10:48:03 2021 +0200
Allow excluding components from the catalog.
Work-around #677 by excluding certain components from the catalog until
apache/camel-quarkus#2661 is implemented
---
support/camel-k-catalog/pom.xml | 4 ++++
.../src/it/generate-catalog/pom.xml | 1 +
.../camel/k/tooling/maven/GenerateCatalogMojo.java | 18 +++++++++++++++++-
.../k/tooling/maven/processors/CatalogProcessor3x.java | 9 ++++++---
.../k/tooling/maven/support/CatalogProcessor.java | 5 ++++-
.../maven/processors/CatalogProcessor3Test.java | 5 +++--
6 files changed, 35 insertions(+), 7 deletions(-)
diff --git a/support/camel-k-catalog/pom.xml b/support/camel-k-catalog/pom.xml
index 1104543..e6fa5f4 100644
--- a/support/camel-k-catalog/pom.xml
+++ b/support/camel-k-catalog/pom.xml
@@ -26,6 +26,10 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>camel-k-catalog</artifactId>
+ <properties>
+ <exclusion.list>qute</exclusion.list>
+ </properties>
+
<build>
<defaultGoal>generate-resources</defaultGoal>
<plugins>
diff --git a/support/camel-k-maven-plugin/src/it/generate-catalog/pom.xml
b/support/camel-k-maven-plugin/src/it/generate-catalog/pom.xml
index 6d804cc..55d0792 100644
--- a/support/camel-k-maven-plugin/src/it/generate-catalog/pom.xml
+++ b/support/camel-k-maven-plugin/src/it/generate-catalog/pom.xml
@@ -32,6 +32,7 @@
<catalog.path>${project.basedir}</catalog.path>
<catalog.runtime>quarkus</catalog.runtime>
<catalog.file>catalog.yaml</catalog.file>
+ <exclusion.list>qute</exclusion.list>
</properties>
<build>
diff --git
a/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateCatalogMojo.java
b/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateCatalogMojo.java
index 286ab1f..02c562d 100644
---
a/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateCatalogMojo.java
+++
b/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateCatalogMojo.java
@@ -22,7 +22,10 @@ import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.Comparator;
+import java.util.List;
import java.util.Locale;
import java.util.ServiceLoader;
import java.util.stream.StreamSupport;
@@ -69,6 +72,9 @@ public class GenerateCatalogMojo extends AbstractMojo {
@Parameter(property = "catalog.file", defaultValue =
"camel-catalog-${runtime.version}.yaml")
private String outputFile;
+ @Parameter(property = "exclusion.list")
+ private String exclusionList;
+
// ********************
//
// ********************
@@ -148,10 +154,12 @@ public class GenerateCatalogMojo extends AbstractMojo {
CamelCatalogSpec.Builder catalogSpec = new
CamelCatalogSpec.Builder()
.runtime(runtimeSpec.build());
+ List<String> exclusions = createExclusionList();
+
StreamSupport.stream(ServiceLoader.load(CatalogProcessor.class).spliterator(),
false)
.sorted(Comparator.comparingInt(CatalogProcessor::getOrder))
.filter(p -> p.accepts(catalog))
- .forEach(p -> p.process(project, catalog, catalogSpec));
+ .forEach(p -> p.process(project, catalog, catalogSpec,
exclusions));
ObjectMeta.Builder metadata = new ObjectMeta.Builder()
.name(catalogName)
@@ -208,4 +216,12 @@ public class GenerateCatalogMojo extends AbstractMojo {
throw new MojoExecutionException("Exception while generating
catalog", e);
}
}
+
+ private List<String> createExclusionList() {
+ if (exclusionList != null) {
+ return Arrays.asList(exclusionList.split(","));
+ }
+
+ return Collections.emptyList();
+ }
}
diff --git
a/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/processors/CatalogProcessor3x.java
b/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/processors/CatalogProcessor3x.java
index 4aae669..68d996d 100644
---
a/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/processors/CatalogProcessor3x.java
+++
b/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/processors/CatalogProcessor3x.java
@@ -94,10 +94,11 @@ public class CatalogProcessor3x implements CatalogProcessor
{
}
@Override
- public void process(MavenProject project, CamelCatalog catalog,
CamelCatalogSpec.Builder specBuilder) {
+ public void process(MavenProject project, CamelCatalog catalog,
CamelCatalogSpec.Builder specBuilder,
+ List<String> exclusions) {
Map<String, CamelArtifact> artifacts = new TreeMap<>();
- processComponents(catalog, artifacts);
+ processComponents(catalog, artifacts, exclusions);
processLanguages(catalog, artifacts);
processDataFormats(catalog, artifacts);
processLoaders(specBuilder);
@@ -200,9 +201,11 @@ public class CatalogProcessor3x implements
CatalogProcessor {
);
}
- private static void processComponents(CamelCatalog catalog, Map<String,
CamelArtifact> artifacts) {
+ private static void processComponents(CamelCatalog catalog, Map<String,
CamelArtifact> artifacts, List<String> exclusions) {
final Set<String> elements = new
TreeSet<>(catalog.findComponentNames());
+ elements.removeAll(exclusions);
+
for (String name : elements) {
String json = catalog.componentJSonSchema(name);
CatalogComponentDefinition definition =
CatalogSupport.unmarshallComponent(json);
diff --git
a/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/support/CatalogProcessor.java
b/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/support/CatalogProcessor.java
index f9571df..b7d908e 100644
---
a/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/support/CatalogProcessor.java
+++
b/support/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/support/CatalogProcessor.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.k.tooling.maven.support;
+import java.util.List;
+
import org.apache.camel.catalog.CamelCatalog;
import org.apache.camel.k.catalog.model.k8s.crd.CamelCatalogSpec;
import org.apache.maven.project.MavenProject;
@@ -33,7 +35,8 @@ public interface CatalogProcessor {
boolean accepts(CamelCatalog catalog);
- void process(MavenProject project, CamelCatalog catalog,
CamelCatalogSpec.Builder specBuilder);
+ void process(MavenProject project, CamelCatalog catalog,
CamelCatalogSpec.Builder specBuilder,
+ List<String> exclusions);
default int getOrder() {
return LOWEST;
diff --git
a/support/camel-k-maven-plugin/src/test/java/org/apache/camel/k/tooling/maven/processors/CatalogProcessor3Test.java
b/support/camel-k-maven-plugin/src/test/java/org/apache/camel/k/tooling/maven/processors/CatalogProcessor3Test.java
index 608508c..96ac3bb 100644
---
a/support/camel-k-maven-plugin/src/test/java/org/apache/camel/k/tooling/maven/processors/CatalogProcessor3Test.java
+++
b/support/camel-k-maven-plugin/src/test/java/org/apache/camel/k/tooling/maven/processors/CatalogProcessor3Test.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.k.tooling.maven.processors;
+import java.util.Collections;
import java.util.Map;
import org.apache.camel.catalog.CamelCatalog;
@@ -74,7 +75,7 @@ public class CatalogProcessor3Test extends
AbstractCatalogProcessorTest {
CamelCatalogSpec.Builder builder = new
CamelCatalogSpec.Builder().runtime(runtime);
assertThat(processor.accepts(catalog)).isTrue();
- processor.process(new MavenProject(), catalog, builder);
+ processor.process(new MavenProject(), catalog, builder,
Collections.emptyList());
CamelCatalogSpec spec = builder.build();
Map<String, CamelArtifact> artifactMap = spec.getArtifacts();
@@ -96,7 +97,7 @@ public class CatalogProcessor3Test extends
AbstractCatalogProcessorTest {
CamelCatalogSpec.Builder builder = new
CamelCatalogSpec.Builder().runtime(runtime);
assertThat(processor.accepts(catalog)).isTrue();
- processor.process(new MavenProject(), catalog, builder);
+ processor.process(new MavenProject(), catalog, builder,
Collections.emptyList());
CamelCatalogSpec spec = builder.build();
Map<String, CamelArtifact> artifactMap = spec.getArtifacts();