You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gg...@apache.org on 2023/03/14 13:24:14 UTC

[camel] 02/04: [CAMEL-11767] Fix dummy-component used in @Disabled tests

This is an automated email from the ASF dual-hosted git repository.

ggrzybek pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 8ed744ebad80c1250f63612f78eb9c6fc1d5f091
Author: Grzegorz Grzybek <gr...@gmail.com>
AuthorDate: Tue Mar 7 13:39:24 2023 +0100

    [CAMEL-11767] Fix dummy-component used in @Disabled tests
---
 bom/camel-bom/pom.xml                              |  5 ++
 catalog/dummy-component/pom.xml                    | 45 ++++++++++++--
 .../component/dummy/DummyComponentConfigurer.java  | 55 +++++++++++++++++
 .../component/dummy/DummyEndpointConfigurer.java   | 55 +++++++++++++++++
 .../component/dummy/DummyEndpointUriFactory.java   | 71 ++++++++++++++++++++++
 .../services/org/apache/camel/component.properties |  7 +++
 .../services/org/apache/camel/component/dummy      |  2 +
 .../org/apache/camel/configurer/dummy-component    |  2 +
 .../org/apache/camel/configurer/dummy-endpoint     |  2 +
 .../org/apache/camel/urifactory/dummy-endpoint     |  2 +
 .../org/apache/camel/component/dummy/dummy.json    | 34 +++++++++++
 .../src/main/docs/dummy-component.adoc             | 29 +++++++++
 .../camel/component/dummy/DummyEndpoint.java       |  4 +-
 parent/pom.xml                                     |  5 ++
 14 files changed, 312 insertions(+), 6 deletions(-)

diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index 64d72e213f5..448af304d5a 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -2102,6 +2102,11 @@
         <artifactId>camel-zookeeper-master</artifactId>
         <version>${project.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>dummy-component</artifactId>
+        <version>${project.version}</version>
+      </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
         <artifactId>spi-annotations</artifactId>
diff --git a/catalog/dummy-component/pom.xml b/catalog/dummy-component/pom.xml
index fcfd4e37e34..c80134e194e 100644
--- a/catalog/dummy-component/pom.xml
+++ b/catalog/dummy-component/pom.xml
@@ -33,6 +33,10 @@
     <description>Camel Dummy Component</description>
     <packaging>jar</packaging>
 
+    <properties>
+        <camel-prepare-component>true</camel-prepare-component>
+    </properties>
+
     <dependencies>
 
         <dependency>
@@ -66,20 +70,51 @@
                 <version>${project.version}</version>
                 <executions>
                     <execution>
-                        <id>prepare</id>
+                        <id>generate</id>
                         <goals>
-                            <goal>prepare-components</goal>
+                            <goal>generate</goal>
                         </goals>
-                        <phase>generate-resources</phase>
+                        <phase>process-classes</phase>
                     </execution>
                     <execution>
-                        <id>validate</id>
+                        <id>generate-postcompile</id>
                         <goals>
-                            <goal>validate-components</goal>
+                            <goal>generate-postcompile</goal>
                         </goals>
                         <phase>prepare-package</phase>
                     </execution>
                 </executions>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.apache.camel</groupId>
+                        <artifactId>camel-core-model</artifactId>
+                        <version>${project.version}</version>
+                        <scope>compile</scope>
+                    </dependency>
+                </dependencies>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>initialize</phase>
+                        <goals>
+                            <goal>add-source</goal>
+                            <goal>add-resource</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>src/generated/java</source>
+                            </sources>
+                            <resources>
+                                <resource>
+                                    <directory>src/generated/resources</directory>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
             </plugin>
         </plugins>
     </build>
diff --git a/catalog/dummy-component/src/generated/java/org/apache/camel/component/dummy/DummyComponentConfigurer.java b/catalog/dummy-component/src/generated/java/org/apache/camel/component/dummy/DummyComponentConfigurer.java
new file mode 100644
index 00000000000..de8e5cbf248
--- /dev/null
+++ b/catalog/dummy-component/src/generated/java/org/apache/camel/component/dummy/DummyComponentConfigurer.java
@@ -0,0 +1,55 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.dummy;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class DummyComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        DummyComponent target = (DummyComponent) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "autowiredenabled":
+        case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true;
+        case "lazystartproducer":
+        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "autowiredenabled":
+        case "autowiredEnabled": return boolean.class;
+        case "lazystartproducer":
+        case "lazyStartProducer": return boolean.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        DummyComponent target = (DummyComponent) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "autowiredenabled":
+        case "autowiredEnabled": return target.isAutowiredEnabled();
+        case "lazystartproducer":
+        case "lazyStartProducer": return target.isLazyStartProducer();
+        default: return null;
+        }
+    }
+}
+
diff --git a/catalog/dummy-component/src/generated/java/org/apache/camel/component/dummy/DummyEndpointConfigurer.java b/catalog/dummy-component/src/generated/java/org/apache/camel/component/dummy/DummyEndpointConfigurer.java
new file mode 100644
index 00000000000..a067999a698
--- /dev/null
+++ b/catalog/dummy-component/src/generated/java/org/apache/camel/component/dummy/DummyEndpointConfigurer.java
@@ -0,0 +1,55 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.dummy;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class DummyEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        DummyEndpoint target = (DummyEndpoint) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "amount": target.setAmount(property(camelContext, int.class, value)); return true;
+        case "celebrity": target.setCelebrity(property(camelContext, boolean.class, value)); return true;
+        case "lazystartproducer":
+        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "amount": return int.class;
+        case "celebrity": return boolean.class;
+        case "lazystartproducer":
+        case "lazyStartProducer": return boolean.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        DummyEndpoint target = (DummyEndpoint) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "amount": return target.getAmount();
+        case "celebrity": return target.isCelebrity();
+        case "lazystartproducer":
+        case "lazyStartProducer": return target.isLazyStartProducer();
+        default: return null;
+        }
+    }
+}
+
diff --git a/catalog/dummy-component/src/generated/java/org/apache/camel/component/dummy/DummyEndpointUriFactory.java b/catalog/dummy-component/src/generated/java/org/apache/camel/component/dummy/DummyEndpointUriFactory.java
new file mode 100644
index 00000000000..221f5b34569
--- /dev/null
+++ b/catalog/dummy-component/src/generated/java/org/apache/camel/component/dummy/DummyEndpointUriFactory.java
@@ -0,0 +1,71 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.dummy;
+
+import java.net.URISyntaxException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.camel.spi.EndpointUriFactory;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+public class DummyEndpointUriFactory extends org.apache.camel.support.component.EndpointUriFactorySupport implements EndpointUriFactory {
+
+    private static final String BASE = ":drink";
+
+    private static final Set<String> PROPERTY_NAMES;
+    private static final Set<String> SECRET_PROPERTY_NAMES;
+    private static final Set<String> MULTI_VALUE_PREFIXES;
+    static {
+        Set<String> props = new HashSet<>(4);
+        props.add("amount");
+        props.add("celebrity");
+        props.add("drink");
+        props.add("lazyStartProducer");
+        PROPERTY_NAMES = Collections.unmodifiableSet(props);
+        SECRET_PROPERTY_NAMES = Collections.emptySet();
+        MULTI_VALUE_PREFIXES = Collections.emptySet();
+    }
+
+    @Override
+    public boolean isEnabled(String scheme) {
+        return "dummy".equals(scheme);
+    }
+
+    @Override
+    public String buildUri(String scheme, Map<String, Object> properties, boolean encode) throws URISyntaxException {
+        String syntax = scheme + BASE;
+        String uri = syntax;
+
+        Map<String, Object> copy = new HashMap<>(properties);
+
+        uri = buildPathParameter(syntax, uri, "drink", null, true, copy);
+        uri = buildQueryParameters(uri, copy, encode);
+        return uri;
+    }
+
+    @Override
+    public Set<String> propertyNames() {
+        return PROPERTY_NAMES;
+    }
+
+    @Override
+    public Set<String> secretPropertyNames() {
+        return SECRET_PROPERTY_NAMES;
+    }
+
+    @Override
+    public Set<String> multiValuePrefixes() {
+        return MULTI_VALUE_PREFIXES;
+    }
+
+    @Override
+    public boolean isLenientProperties() {
+        return false;
+    }
+}
+
diff --git a/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/component.properties b/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/component.properties
new file mode 100644
index 00000000000..e315dbeb69f
--- /dev/null
+++ b/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+components=dummy
+groupId=org.apache.camel
+artifactId=dummy-component
+version=4.0.0-SNAPSHOT
+projectName=Camel :: Catalog :: Dummy Component
+projectDescription=Camel Dummy Component
diff --git a/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/component/dummy b/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/component/dummy
new file mode 100644
index 00000000000..51937e75f91
--- /dev/null
+++ b/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/component/dummy
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.dummy.DummyComponent
diff --git a/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/configurer/dummy-component b/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/configurer/dummy-component
new file mode 100644
index 00000000000..0ed3c4a9a1e
--- /dev/null
+++ b/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/configurer/dummy-component
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.dummy.DummyComponentConfigurer
diff --git a/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/configurer/dummy-endpoint b/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/configurer/dummy-endpoint
new file mode 100644
index 00000000000..9989d45ef0d
--- /dev/null
+++ b/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/configurer/dummy-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.dummy.DummyEndpointConfigurer
diff --git a/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/urifactory/dummy-endpoint b/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/urifactory/dummy-endpoint
new file mode 100644
index 00000000000..a4e9e676409
--- /dev/null
+++ b/catalog/dummy-component/src/generated/resources/META-INF/services/org/apache/camel/urifactory/dummy-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.dummy.DummyEndpointUriFactory
diff --git a/catalog/dummy-component/src/generated/resources/org/apache/camel/component/dummy/dummy.json b/catalog/dummy-component/src/generated/resources/org/apache/camel/component/dummy/dummy.json
new file mode 100644
index 00000000000..d0959ae2db2
--- /dev/null
+++ b/catalog/dummy-component/src/generated/resources/org/apache/camel/component/dummy/dummy.json
@@ -0,0 +1,34 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "dummy",
+    "title": "Dummy",
+    "description": "Camel Dummy Component",
+    "deprecated": false,
+    "firstVersion": "2.19.0",
+    "label": "testing",
+    "javaType": "org.apache.camel.component.dummy.DummyComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "dummy-component",
+    "version": "4.0.0-SNAPSHOT",
+    "scheme": "dummy",
+    "extendsScheme": "",
+    "syntax": "dummy:drink",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "drink": { "kind": "path", "displayName": "Drink", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.dummy.Drinks", "enum": [ "Beer", "GinTonic", "Wine" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "What drink to order" },
+    "amount": { "kind": "parameter", "displayName": "Amount", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "description": "Number of drinks in the order" },
+    "celebrity": { "kind": "parameter", "displayName": "Celebrity", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Is this a famous person ordering" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may other [...]
+  }
+}
diff --git a/catalog/dummy-component/src/main/docs/dummy-component.adoc b/catalog/dummy-component/src/main/docs/dummy-component.adoc
new file mode 100644
index 00000000000..582e2ac687a
--- /dev/null
+++ b/catalog/dummy-component/src/main/docs/dummy-component.adoc
@@ -0,0 +1,29 @@
+= Dummy Component
+:doctitle: Dummy
+:shortname: dummy
+:artifactid: dummy-component
+:description: Camel Dummy Component
+:since: 2.19
+:supportlevel: Stable
+:component-header: Only producer is supported
+
+*Since Camel {since}*
+
+*{component-header}*
+
+*Dummy-Component* is an http://camel.apache.org/[Apache Camel] component that is used for
+various internal tests.
+
+// component-configure options: START
+// component-configure options: END
+
+// component options: START
+include::partial$component-configure-options.adoc[]
+include::partial$component-endpoint-options.adoc[]
+// component options: END
+
+// endpoint options: START
+// endpoint options: END
+
+// component headers: START
+// component headers: END
diff --git a/catalog/dummy-component/src/main/java/org/apache/camel/component/dummy/DummyEndpoint.java b/catalog/dummy-component/src/main/java/org/apache/camel/component/dummy/DummyEndpoint.java
index 80789a50e6b..51050e21e03 100644
--- a/catalog/dummy-component/src/main/java/org/apache/camel/component/dummy/DummyEndpoint.java
+++ b/catalog/dummy-component/src/main/java/org/apache/camel/component/dummy/DummyEndpoint.java
@@ -27,7 +27,9 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.support.DefaultEndpoint;
 
-@UriEndpoint(scheme = "dummy", syntax = "dummy:drink", title = "Dummy", category = { Category.TESTING }, producerOnly = true)
+@UriEndpoint(firstVersion = "2.19.0", scheme = "dummy", syntax = "dummy:drink", title = "Dummy",
+             category = { Category.TESTING },
+             producerOnly = true)
 public class DummyEndpoint extends DefaultEndpoint {
 
     @UriPath
diff --git a/parent/pom.xml b/parent/pom.xml
index 622874e3a2b..5161c91ea93 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -2438,6 +2438,11 @@
                 <artifactId>camel-zookeeper-master</artifactId>
                 <version>${project.version}</version>
             </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
+                <artifactId>dummy-component</artifactId>
+                <version>${project.version}</version>
+            </dependency>
             <dependency>
                 <groupId>org.apache.camel.maven</groupId>
                 <artifactId>camel-debezium-maven-plugin</artifactId>