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 2020/02/10 16:41:10 UTC
[camel] branch master updated: Ensure spi-annotations are in
camel-api before compilation as shade plugin is too late.
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
The following commit(s) were added to refs/heads/master by this push:
new d0be6d4 Ensure spi-annotations are in camel-api before compilation as shade plugin is too late.
d0be6d4 is described below
commit d0be6d4fa4c4a016dcfa838d257f771046660e4c
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Feb 10 17:39:46 2020 +0100
Ensure spi-annotations are in camel-api before compilation as shade plugin is too late.
---
core/camel-api/pom.xml | 34 ++---
.../java/org/apache/camel/spi/AsEndpointUri.java | 34 +++++
.../java/org/apache/camel/spi/AsPredicate.java | 39 +++++
.../java/org/apache/camel/spi/Metadata.java | 108 ++++++++++++++
.../java/org/apache/camel/spi/UriEndpoint.java | 166 +++++++++++++++++++++
.../java/org/apache/camel/spi/UriParam.java | 118 +++++++++++++++
.../java/org/apache/camel/spi/UriParams.java | 39 +++++
.../java/org/apache/camel/spi/UriPath.java | 101 +++++++++++++
.../camel/spi/annotations/CloudServiceFactory.java | 33 ++++
.../apache/camel/spi/annotations/Component.java | 33 ++++
.../camel/spi/annotations/ConstantProvider.java | 32 ++++
.../apache/camel/spi/annotations/Dataformat.java | 33 ++++
.../apache/camel/spi/annotations/JdkService.java | 33 ++++
.../org/apache/camel/spi/annotations/Language.java | 33 ++++
.../apache/camel/spi/annotations/SendDynamic.java | 33 ++++
.../camel/spi/annotations/ServiceFactory.java | 34 +++++
.../camel/spi/annotations/SubServiceFactory.java | 32 ++++
17 files changed, 917 insertions(+), 18 deletions(-)
diff --git a/core/camel-api/pom.xml b/core/camel-api/pom.xml
index d496b63..301b8e2 100644
--- a/core/camel-api/pom.xml
+++ b/core/camel-api/pom.xml
@@ -17,7 +17,8 @@
limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
@@ -34,18 +35,14 @@
<description>The Camel API</description>
<properties>
- <camel.osgi.export.pkg>$${replace;{local-packages};;;\;},org.apache.camel.spi.annotations</camel.osgi.export.pkg>
+ <camel.osgi.export.pkg>$${replace;{local-packages};;;\;},org.apache.camel.spi.annotations
+ </camel.osgi.export.pkg>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
- <artifactId>spi-annotations</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.camel</groupId>
<artifactId>camel-util</artifactId>
</dependency>
@@ -58,24 +55,25 @@
<build>
<plugins>
+
+ <!-- we want to embed spi-annotations directly in camel-api so they are always there -->
<plugin>
- <!-- shade spi-annotations into camel-api -->
- <!-- so we these annotations embedded in camel-api -->
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
+ <artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
- <phase>package</phase>
+ <id>copy-spi-annotations</id>
+ <phase>validate</phase>
<goals>
- <goal>shade</goal>
+ <goal>copy-resources</goal>
</goals>
<configuration>
- <artifactSet>
- <includes>
- <include>org.apache.camel:spi-annotations</include>
- </includes>
- </artifactSet>
- <createDependencyReducedPom>true</createDependencyReducedPom>
+ <outputDirectory>${basedir}/src/generated/java</outputDirectory>
+ <resources>
+ <resource>
+ <directory>../../tooling/spi-annotations/src/main/java</directory>
+ </resource>
+ </resources>
</configuration>
</execution>
</executions>
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/AsEndpointUri.java b/core/camel-api/src/generated/java/org/apache/camel/spi/AsEndpointUri.java
new file mode 100644
index 0000000..86a6039
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/AsEndpointUri.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Indicates that the Camel string/expression should be used as an endpoint uri.
+ * <p/>
+ * For example the EIPs which accepts uris as string/expression parameters.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
+public @interface AsEndpointUri {
+}
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/AsPredicate.java b/core/camel-api/src/generated/java/org/apache/camel/spi/AsPredicate.java
new file mode 100644
index 0000000..2f1a71a
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/AsPredicate.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Indicates that the Camel language/expression should be used as predicate.
+ * <p/>
+ * For example the EIPs which accepts expression/languages may used them as either expression or predicate.
+ * This annotation is used to mark situation where they should be used as predicate. As by default they
+ * are used as expression. And example would be the Filter EIP which uses predicate. And the transform EIP
+ * uses an expression.
+ * <br/>
+ * Being able to distinguish between these two situations can be of importance to tooling.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
+public @interface AsPredicate {
+}
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/Metadata.java b/core/camel-api/src/generated/java/org/apache/camel/spi/Metadata.java
new file mode 100644
index 0000000..873952d
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/Metadata.java
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Meta data for EIPs, components, data formats and other Camel concepts
+ * <p/>
+ * For example to associate labels to Camel components
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
+public @interface Metadata {
+
+ /**
+ * A human display name of the parameter.
+ * <p/>
+ * This is used for documentation and tooling only.
+ */
+ String displayName() default "";
+
+ /**
+ * To define one or more labels.
+ * <p/>
+ * Multiple labels can be defined as a comma separated value.
+ */
+ String label() default "";
+
+ /**
+ * To define a default value.
+ */
+ String defaultValue() default "";
+
+ /**
+ * To define that this entity is required.
+ */
+ boolean required() default false;
+
+ /**
+ * An optional human readable title of this entity, to be used instead of a computed title.
+ */
+ String title() default "";
+
+ /**
+ * Returns a description of this entity.
+ * <p/>
+ * This is used for documentation and tooling only.
+ */
+ String description() default "";
+
+ /**
+ * Allows to define enums this options accepts.
+ * <p/>
+ * If the type is already an enum, then this option should not be used; instead you can use
+ * this option when the type is a String that only accept certain values.
+ * <p/>
+ * Multiple values is separated by comma.
+ */
+ String enums() default "";
+
+ /**
+ * Whether the option is secret/sensitive information such as a password.
+ */
+ boolean secret() default false;
+
+ /**
+ * To re-associate the preferred Java type of this parameter.
+ * <p/>
+ * This is used for parameters which are of a specialized type but can be configured by another Java type, such as from a String.
+ */
+ String javaType() default "";
+
+ /**
+ * The first version this functionality was added to Apache Camel.
+ */
+ String firstVersion() default "";
+
+ /**
+ * Additional description that can explain the user about the deprecation and give reference to what to use instead.
+ */
+ String deprecationNote() default "";
+
+ /**
+ * Whether to skip this option
+ */
+ boolean skip() default false;
+
+}
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/UriEndpoint.java b/core/camel-api/src/generated/java/org/apache/camel/spi/UriEndpoint.java
new file mode 100644
index 0000000..8e770b2
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/UriEndpoint.java
@@ -0,0 +1,166 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Represents an annotated Camel <a href="http://camel.apache.org/endpoint.html">Endpoint</a>
+ * which can have its properties (and the properties on its consumer) injected from the
+ * Camel URI path and its query parameters
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE})
+public @interface UriEndpoint {
+
+ /**
+ * The first version this endpoint was added to Apache Camel.
+ */
+ String firstVersion() default "";
+
+ /**
+ * Represents the URI scheme name of this endpoint.
+ * <p/>
+ * Multiple scheme names can be defined as a comma separated value.
+ * For example to associate <tt>http</tt> and <tt>https</tt> to the same endpoint implementation.
+ * <p/>
+ * The order of the scheme names here should be the same order as in {@link #extendsScheme()} so their are paired.
+ * <p/>
+ * The schema name must be lowercase, it may contain dashes as well. For example: robot-framework.
+ */
+ String scheme();
+
+ /**
+ * Used when an endpoint is extending another endpoint
+ * <p/>
+ * Multiple scheme names can be defined as a comma separated value.
+ * For example to associate <tt>ftp</tt> and <tt>ftps</tt> to the same endpoint implementation.
+ * The order of the scheme names here should be the same order as in {@link #scheme()} so their are paired.
+ */
+ String extendsScheme() default "";
+
+ /**
+ * Represent the URI syntax the endpoint must use.
+ * <p/>
+ * The syntax follows the patterns such as:
+ * <ul>
+ * <li>scheme:host:port</li>
+ * <li>scheme:host:port/path</li>
+ * <li>scheme:path</li>
+ * <li>scheme:path/path2</li>
+ * </ul>
+ * Where each path maps to the name of the endpoint {@link org.apache.camel.spi.UriPath} option.
+ * The query parameters is implied and should not be included in the syntax.
+ * <p/>
+ * Some examples:
+ * <ul>
+ * <li>file:directoryName</li>
+ * <li>ftp:host:port/directoryName</li>
+ * <li>jms:destinationType:destinationName</li>
+ * </ul>
+ */
+ String syntax();
+
+ /**
+ * If the endpoint supports specifying username and/or password in the UserInfo part of the URI, then the
+ * alternative syntax can represent this such as:
+ * <ul>
+ * <li>ftp:userName:password@host:port/directoryName</li>
+ * <li>ssh:username:password@host:port</li>
+ * </ul>
+ */
+ String alternativeSyntax() default "";
+
+ /**
+ * Represents the consumer class which is injected and created by consumers
+ */
+ @Deprecated
+ Class<?> consumerClass() default Object.class;
+
+ /**
+ * The configuration parameter name prefix used on parameter names to separate the endpoint
+ * properties from the consumer properties
+ */
+ String consumerPrefix() default "";
+
+ /**
+ * A human readable title of this entity, such as the component name of the this endpoint.
+ * <p/>
+ * For example: JMS, MQTT, Netty HTTP, SAP NetWeaver
+ */
+ String title();
+
+ /**
+ * To associate this endpoint with label(s).
+ * <p/>
+ * Multiple labels can be defined as a comma separated value.
+ * <p/>
+ * The labels is intended for grouping the endpoints, such as <tt>core</tt>, <tt>file</tt>, <tt>messaging</tt>, <tt>database</tt>, etc.
+ */
+ String label() default "";
+
+ /**
+ * Whether this endpoint can only be used as a producer.
+ * <p/>
+ * By default its assumed the endpoint can be used as both consumer and producer.
+ */
+ boolean producerOnly() default false;
+
+ /**
+ * Whether this endpoint can only be used as a consumer.
+ * <p/>
+ * By default its assumed the endpoint can be used as both consumer and producer.
+ */
+ boolean consumerOnly() default false;
+
+ /**
+ * Should all properties be known or does the endpoint allow unknown options?
+ * <p/>
+ * <tt>lenient = false</tt> means that the endpoint should validate that all
+ * given options is known and configured properly.
+ * <tt>lenient = true</tt> means that the endpoint allows additional unknown options to
+ * be passed to it but does not throw a ResolveEndpointFailedException when creating
+ * the endpoint.
+ * <p/>
+ * This options is used by a few components for instance the HTTP based that can have
+ * dynamic URI options appended that is targeted for an external system.
+ * <p/>
+ * Most endpoints is configured to be <b>not</b> lenient.
+ */
+ boolean lenientProperties() default false;
+
+ /**
+ * To exclude one or more properties in this endpoint.
+ * <p/>
+ * This is used when a Camel component extend another component, and then may need to not use some of the properties from
+ * the parent component. Multiple properties can be separated by comma.
+ */
+ String excludeProperties() default "";
+
+ /**
+ * Generates source code for fast configuring of the endpoint properties which
+ * uses direct method invocation of getter/setters.
+ * Setting this to false will fallback to use reflection based introspection as Camel does in Camel 2.x.
+ */
+ boolean generateConfigurer() default true;
+
+}
\ No newline at end of file
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/UriParam.java b/core/camel-api/src/generated/java/org/apache/camel/spi/UriParam.java
new file mode 100644
index 0000000..be6610a
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/UriParam.java
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Represents an injection point of a Camel Uri parameter value on an Endpoint or Consumer, usually configured via a URI style query parameter in a URI
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.FIELD })
+public @interface UriParam {
+
+ /**
+ * Returns the name of the parameter.
+ * <p/>
+ * If this is not specified then the name of the field or property which has this annotation is used.
+ */
+ String name() default "";
+
+ /**
+ * A human display name of the parameter.
+ * <p/>
+ * This is used for documentation and tooling only.
+ */
+ String displayName() default "";
+
+ /**
+ * The default value of the parameter.
+ * <p/>
+ * Note that this attribute is only for documentation purpose. The default value in use at runtime is the value the Java field was assigned.
+ */
+ String defaultValue() default "";
+
+ /**
+ * A special note about the default value.
+ * <p/>
+ * This can be used to document special cases about the default value.
+ */
+ String defaultValueNote() default "";
+
+ /**
+ * Returns a description of this parameter.
+ * <p/>
+ * This is used for documentation and tooling only.
+ */
+ String description() default "";
+
+ /**
+ * Allows to define enums this options accepts.
+ * <p/>
+ * If the type is already an enum, then this option should not be used; instead you can use
+ * this option when the type is a String that only accept certain values.
+ * <p/>
+ * Multiple values is separated by comma.
+ */
+ String enums() default "";
+
+ /**
+ * To associate this parameter with label(s).
+ * <p/>
+ * Multiple labels can be defined as a comma separated value.
+ * <p/>
+ * The labels is intended for grouping the parameters, such as <tt>consumer</tt>, <tt>producer</tt>, <tt>common</tt>, <tt>security</tt>, etc.
+ */
+ String label() default "";
+
+ /**
+ * Whether the option is secret/sensitive information such as a password.
+ */
+ boolean secret() default false;
+
+ /**
+ * To re-associate the preferred Java type of this parameter.
+ * <p/>
+ * This is used for parameters which are of a specialized type but can be configured by another Java type, such as from a String.
+ */
+ String javaType() default "";
+
+ /**
+ * If the parameter can be configured multiple times, such as configuring options to a <tt>Map</tt> type.
+ */
+ boolean multiValue() default false;
+
+ /**
+ * If the parameter must be configured with a prefix.
+ * <p/>
+ * For example to configure scheduler options, the parameters is prefixed with <tt>scheduler.foo=bar</tt>
+ */
+ String prefix() default "";
+
+ /**
+ * If the parameter can be configured with an optional prefix.
+ * <p/>
+ * For example to configure consumer options, the parameters can be prefixed with <tt>consumer.</tt>, eg <tt>consumer.delay=5000</tt>
+ */
+ String optionalPrefix() default "";
+
+}
\ No newline at end of file
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/UriParams.java b/core/camel-api/src/generated/java/org/apache/camel/spi/UriParams.java
new file mode 100644
index 0000000..48f56729
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/UriParams.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Used to annotate a nested configuration parameter type (such as a nested Configuration object) which can then be used on a
+ * Component, Endpoint and/or Consumer and then be configured via Camel URI query arguments.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE })
+public @interface UriParams {
+
+ /**
+ * Returns the prefix used to access nested properties of this configuration object
+ */
+ String prefix() default "";
+
+}
\ No newline at end of file
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/UriPath.java b/core/camel-api/src/generated/java/org/apache/camel/spi/UriPath.java
new file mode 100644
index 0000000..2bcdfc9
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/UriPath.java
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Represents an injection point of a Camel Uri path value (the remaining part of a Camel URI without any query arguments)
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.FIELD })
+public @interface UriPath {
+
+ /**
+ * Returns the name of the uri path.
+ * <p/>
+ * This can be used to name the uri path something meaningful, such as a <tt>directory</tt>, <tt>queueName</tt> etc.
+ * <p/>
+ * If this is not specified then the name of the field or property which has this annotation is used.
+ */
+ String name() default "";
+
+ /**
+ * A human display name of the parameter.
+ * <p/>
+ * This is used for documentation and tooling only.
+ */
+ String displayName() default "";
+
+ /**
+ * The default value of the parameter.
+ * <p/>
+ * Note that this attribute is only for documentation purpose. The default value in use at runtime is the value the Java field was assigned.
+ */
+ String defaultValue() default "";
+
+ /**
+ * A special note about the default value.
+ * <p/>
+ * This can be used to document special cases about the default value.
+ */
+ String defaultValueNote() default "";
+
+ /**
+ * Returns a description of this uri path
+ * <p/>
+ * This is used for documentation and tooling only.
+ */
+ String description() default "";
+
+ /**
+ * Allows to define enums this options accepts.
+ * <p/>
+ * If the type is already an enum, then this option should not be used; instead you can use
+ * this option when the type is a String that only accept certain values.
+ * <p/>
+ * Multiple values is separated by comma.
+ */
+ String enums() default "";
+
+ /**
+ * To associate this path value with label(s).
+ * <p/>
+ * Multiple labels can be defined as a comma separated value.
+ * <p/>
+ * The labels is intended for grouping the parameters, such as <tt>consumer</tt>, <tt>producer</tt>, <tt>common</tt>, <tt>security</tt>, etc.
+ */
+ String label() default "";
+
+ /**
+ * Whether the option is secret/sensitive information such as a password.
+ */
+ boolean secret() default false;
+
+ /**
+ * To re-associate the preferred Java type of this parameter.
+ * <p/>
+ * This is used for parameters which are of a specialized type but can be configured by another Java type, such as from a String.
+ */
+ String javaType() default "";
+
+}
\ No newline at end of file
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/CloudServiceFactory.java b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/CloudServiceFactory.java
new file mode 100644
index 0000000..e6e4b79
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/CloudServiceFactory.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE })
+@ServiceFactory("cloud")
+public @interface CloudServiceFactory {
+
+ String value();
+
+}
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/Component.java b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/Component.java
new file mode 100644
index 0000000..42a774f
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/Component.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE })
+@ServiceFactory("component")
+public @interface Component {
+
+ String value();
+
+}
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/ConstantProvider.java b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/ConstantProvider.java
new file mode 100644
index 0000000..1a93df6
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/ConstantProvider.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE })
+public @interface ConstantProvider {
+
+ String value();
+
+}
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/Dataformat.java b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/Dataformat.java
new file mode 100644
index 0000000..ac3b915
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/Dataformat.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE })
+@ServiceFactory("dataformat")
+public @interface Dataformat {
+
+ String value();
+
+}
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/JdkService.java b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/JdkService.java
new file mode 100644
index 0000000..35f9489
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/JdkService.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE })
+@ServiceFactory(ServiceFactory.JDK_SERVICE)
+public @interface JdkService {
+
+ Class value();
+
+}
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/Language.java b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/Language.java
new file mode 100644
index 0000000..2988513
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/Language.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE })
+@ServiceFactory("language")
+public @interface Language {
+
+ String value();
+
+}
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/SendDynamic.java b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/SendDynamic.java
new file mode 100644
index 0000000..d4aadd2
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/SendDynamic.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE })
+@ServiceFactory("send-dynamic")
+public @interface SendDynamic {
+
+ String value();
+
+}
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/ServiceFactory.java b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/ServiceFactory.java
new file mode 100644
index 0000000..3afc2fa
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/ServiceFactory.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE })
+public @interface ServiceFactory {
+
+ String JDK_SERVICE = "#jdk#";
+
+ String value();
+
+}
diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/SubServiceFactory.java b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/SubServiceFactory.java
new file mode 100644
index 0000000..ec16498
--- /dev/null
+++ b/core/camel-api/src/generated/java/org/apache/camel/spi/annotations/SubServiceFactory.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE })
+public @interface SubServiceFactory {
+
+ String value();
+
+}