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 2023/03/06 05:44:11 UTC

[camel] 01/02: CAMEL-19117: camel-catalog - Remove archetypeAsXml from CamelCatalog

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 5a5de86ec15e32dc1a1445878e675d5b98a7ad38
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Mar 5 21:44:41 2023 +0100

    CAMEL-19117: camel-catalog - Remove archetypeAsXml from CamelCatalog
---
 .../camel/catalog/archetypes/archetype-catalog.xml | 41 ----------------------
 .../org/apache/camel/catalog/CamelCatalog.java     |  7 ----
 .../apache/camel/catalog/DefaultCamelCatalog.java  | 36 ++-----------------
 .../org/apache/camel/catalog/CamelCatalogTest.java |  6 ----
 .../ROOT/pages/camel-4-migration-guide.adoc        |  1 +
 .../camel/maven/packaging/PrepareCatalogMojo.java  | 23 ------------
 6 files changed, 3 insertions(+), 111 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/archetypes/archetype-catalog.xml b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/archetypes/archetype-catalog.xml
deleted file mode 100644
index b68f1eb6904..00000000000
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/archetypes/archetype-catalog.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archetype-catalog>
-  <archetypes>
-    <archetype>
-      <groupId>org.apache.camel.archetypes</groupId>
-      <artifactId>camel-archetype-api-component</artifactId>
-      <version>4.0.0-SNAPSHOT</version>
-      <description>Creates a new Camel component that wraps one or more API proxies.</description>
-    </archetype>
-    <archetype>
-      <groupId>org.apache.camel.archetypes</groupId>
-      <artifactId>camel-archetype-component</artifactId>
-      <version>4.0.0-SNAPSHOT</version>
-      <description>Creates a new Camel component.</description>
-    </archetype>
-    <archetype>
-      <groupId>org.apache.camel.archetypes</groupId>
-      <artifactId>camel-archetype-dataformat</artifactId>
-      <version>4.0.0-SNAPSHOT</version>
-      <description>Creates a new Camel data format.</description>
-    </archetype>
-    <archetype>
-      <groupId>org.apache.camel.archetypes</groupId>
-      <artifactId>camel-archetype-java</artifactId>
-      <version>4.0.0-SNAPSHOT</version>
-      <description>Creates a new Camel project using Java DSL.</description>
-    </archetype>
-    <archetype>
-      <groupId>org.apache.camel.archetypes</groupId>
-      <artifactId>camel-archetype-main</artifactId>
-      <version>4.0.0-SNAPSHOT</version>
-      <description>Creates a new Camel project using standalone Camel Main.</description>
-    </archetype>
-    <archetype>
-      <groupId>org.apache.camel.archetypes</groupId>
-      <artifactId>camel-archetype-spring</artifactId>
-      <version>4.0.0-SNAPSHOT</version>
-      <description>Creates a new Camel project with added Spring DSL support.</description>
-    </archetype>
-  </archetypes>
-</archetype-catalog>
diff --git a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
index ff9bcf1d13c..bd09766368c 100644
--- a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
+++ b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/CamelCatalog.java
@@ -321,13 +321,6 @@ public interface CamelCatalog {
      */
     Set<String> findOtherLabels();
 
-    /**
-     * Returns the Apache Camel Maven Archetype catalog in XML format.
-     *
-     * @return the catalog in XML
-     */
-    String archetypeCatalogAsXml();
-
     /**
      * Returns the Camel Spring XML schema
      *
diff --git a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
index 5f6c2078446..f093d8c75e4 100644
--- a/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
+++ b/catalog/camel-catalog/src/main/java/org/apache/camel/catalog/DefaultCamelCatalog.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.catalog;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
@@ -34,13 +33,6 @@ import java.util.regex.PatternSyntaxException;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import javax.xml.XMLConstants;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathFactory;
-
-import org.w3c.dom.Document;
-
 import org.apache.camel.catalog.impl.AbstractCamelCatalog;
 import org.apache.camel.catalog.impl.CatalogHelper;
 import org.apache.camel.tooling.model.ArtifactModel;
@@ -60,7 +52,6 @@ import org.apache.camel.util.json.JsonObject;
 public class DefaultCamelCatalog extends AbstractCamelCatalog implements CamelCatalog {
 
     private static final String MODELS_CATALOG = "org/apache/camel/catalog/models.properties";
-    private static final String ARCHETYPES_CATALOG = "org/apache/camel/catalog/archetypes/archetype-catalog.xml";
     private static final String SCHEMAS_XML = "org/apache/camel/catalog/schemas";
     private static final String MAIN_DIR = "org/apache/camel/catalog/main";
 
@@ -392,11 +383,6 @@ public class DefaultCamelCatalog extends AbstractCamelCatalog implements CamelCa
         return answer;
     }
 
-    @Override
-    public String archetypeCatalogAsXml() {
-        return cache(ARCHETYPES_CATALOG, this::loadResource);
-    }
-
     @Override
     public String springSchemaAsXml() {
         return cache(SCHEMAS_XML + "/camel-spring.xsd", this::loadResource);
@@ -457,11 +443,11 @@ public class DefaultCamelCatalog extends AbstractCamelCatalog implements CamelCa
         return cache("summaryAsJson", () -> {
             Map<String, Object> obj = new JsonObject();
             obj.put("version", getCatalogVersion());
-            obj.put("eips", findModelNames().size());
+            obj.put("models", findModelNames().size());
             obj.put("components", findComponentNames().size());
             obj.put("dataformats", findDataFormatNames().size());
             obj.put("languages", findLanguageNames().size());
-            obj.put("archetypes", getArchetypesCount());
+            obj.put("others", findOtherNames().size());
             return JsonMapper.serialize(obj);
         });
     }
@@ -503,24 +489,6 @@ public class DefaultCamelCatalog extends AbstractCamelCatalog implements CamelCa
                 && (version == null || version.isBlank() || version.equals(am.getVersion()));
     }
 
-    private int getArchetypesCount() {
-        int archetypes = 0;
-        try {
-            String xml = archetypeCatalogAsXml();
-            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-            dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, Boolean.TRUE);
-            dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", Boolean.TRUE);
-            Document dom = dbf.newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));
-            Object val = XPathFactory.newInstance().newXPath().evaluate("count(/archetype-catalog/archetypes/archetype)", dom,
-                    XPathConstants.NUMBER);
-            double num = (double) val;
-            archetypes = (int) num;
-        } catch (Exception e) {
-            // ignore
-        }
-        return archetypes;
-    }
-
     @SuppressWarnings("unchecked")
     private <T> T cache(String name, Supplier<T> loader) {
         if (caching) {
diff --git a/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java b/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
index efed7c1c2d1..f7656d10b7b 100644
--- a/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
+++ b/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
@@ -164,12 +164,6 @@ public class CamelCatalogTest {
         assertNotNull(schema);
     }
 
-    @Test
-    public void testArchetypeCatalog() {
-        String schema = catalog.archetypeCatalogAsXml();
-        assertNotNull(schema);
-    }
-
     @Test
     public void testMain() {
         String schema = catalog.mainJsonSchema();
diff --git a/docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc b/docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc
index 98ac18aa79b..595012659e9 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4-migration-guide.adoc
@@ -80,6 +80,7 @@ We have removed deprecated APIs such as the following:
 - Removed `Discard` and `DiscardOldest` from `org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy`.
 - Removed `org.apache.camel.builder.SimpleBuilder`. Was mostly used internally in Camel with the Java DSL in some situations.
 - Moved `org.apache.camel.support.IntrospectionSupport` to `camel-core-engine` for internal use only. End users should use `org.apache.camel.spi.BeanInspection` instead.
+- Removed `archetypeCatalogAsXml` method from `org.apache.camel.catalog.CamelCatalog`.
 
 == EIP Changes
 
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
index 62f4e283a2d..15ed57e98ae 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
@@ -111,12 +111,6 @@ public class PrepareCatalogMojo extends AbstractMojo {
     @Parameter(defaultValue = "${project.basedir}/src/generated/resources/org/apache/camel/catalog/models")
     protected File modelsOutDir;
 
-    /**
-     * The output directory for archetypes catalog
-     */
-    @Parameter(defaultValue = "${project.basedir}/src/generated/resources/org/apache/camel/catalog/archetypes")
-    protected File archetypesOutDir;
-
     /**
      * The output directory for XML schemas catalog
      */
@@ -165,12 +159,6 @@ public class PrepareCatalogMojo extends AbstractMojo {
     @Parameter(defaultValue = "${project.build.directory}/../../../components/camel-spring-xml")
     protected File springDir;
 
-    /**
-     * The archetypes directory where all the Apache Camel Maven archetypes are
-     */
-    @Parameter(defaultValue = "${project.build.directory}/../../../archetypes")
-    protected File archetypesDir;
-
     /**
      * The directory where the camel-spring XML schema are
      */
@@ -290,7 +278,6 @@ public class PrepareCatalogMojo extends AbstractMojo {
             Set<String> languages = executeLanguages();
             Set<String> others = executeOthers();
             executeDocuments(components, dataformats, languages, others);
-            executeArchetypes();
             executeXmlSchemas();
             executeMain();
         } catch (Exception e) {
@@ -705,16 +692,6 @@ public class PrepareCatalogMojo extends AbstractMojo {
         return otherNames;
     }
 
-    protected void executeArchetypes() throws Exception {
-        Path archetypesDir = this.archetypesDir.toPath();
-        Path archetypesOutDir = this.archetypesOutDir.toPath();
-
-        getLog().info("Copying Archetype Catalog");
-
-        // find the generate catalog
-        copyFile(archetypesDir.resolve("target/classes/archetype-catalog.xml"), archetypesOutDir);
-    }
-
     protected void executeXmlSchemas() throws Exception {
         Path schemasOutDir = this.schemasOutDir.toPath();
         Path springSchemaDir = this.springSchemaDir.toPath();