This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch on-header in repository https://gitbox.apache.org/repos/asf/camel.git
commit 3be7f1b3f22f41af615b8caa030732c892a5f903 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Thu Feb 4 14:07:30 2021 +0100 CAMEL-16102: Source code generate @InvokeOnHeader for reflection free --- .../component/infinispan/InfinispanProducer.java | 16 --------- .../java/org/apache/camel/spi/InvokeOnHeader.java | 2 -- .../apache/camel/spi/InvokeOnHeaderStrategy.java | 2 +- .../java/org/apache/camel/spi/InvokeOnHeaders.java | 41 ---------------------- .../camel/support/HeaderSelectorProducer.java | 10 +----- .../packaging/GenerateInvokeOnHeaderMojo.java | 3 +- 6 files changed, 3 insertions(+), 71 deletions(-) diff --git a/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java b/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java index 1ad9dca..27131db 100644 --- a/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java +++ b/components/camel-infinispan/camel-infinispan-common/src/main/java/org/apache/camel/component/infinispan/InfinispanProducer.java @@ -16,14 +16,12 @@ */ package org.apache.camel.component.infinispan; -import java.lang.reflect.Method; import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import org.apache.camel.Message; import org.apache.camel.spi.InvokeOnHeader; -import org.apache.camel.spi.InvokeOnHeaders; import org.apache.camel.support.HeaderSelectorProducer; import org.apache.camel.util.ObjectHelper; import org.infinispan.commons.api.BasicCache; @@ -55,20 +53,6 @@ public abstract class InfinispanProducer<M extends InfinispanManager, C extends return manager; } - @Override - protected void bind() { - for (final Method method : getClass().getMethods()) { - InvokeOnHeaders annotation = method.getAnnotation(InvokeOnHeaders.class); - if (annotation != null) { - for (InvokeOnHeader processor : annotation.value()) { - bind(processor, method); - } - } else { - bind(method.getAnnotation(InvokeOnHeader.class), method); - } - } - } - // ************************************ // Operations // ************************************ diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeader.java b/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeader.java index bae2c71..3a3441c 100644 --- a/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeader.java +++ b/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeader.java @@ -17,7 +17,6 @@ package org.apache.camel.spi; import java.lang.annotation.ElementType; -import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @@ -31,7 +30,6 @@ import org.apache.camel.Message; * * @see Message#getHeader(String) */ -@Repeatable(InvokeOnHeaders.class) @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface InvokeOnHeader { diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaderStrategy.java b/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaderStrategy.java index 1c1965f..57edc45 100644 --- a/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaderStrategy.java +++ b/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaderStrategy.java @@ -19,7 +19,7 @@ package org.apache.camel.spi; import org.apache.camel.Exchange; /** - * Pluggable strategy for invoking {@link InvokeOnHeader} or {@link InvokeOnHeaders}. + * Pluggable strategy for invoking {@link InvokeOnHeader}. * <p> * Camel provides source code generated strategies via the camel maven tooling. */ diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaders.java b/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaders.java deleted file mode 100644 index f6edfc3..0000000 --- a/core/camel-api/src/main/java/org/apache/camel/spi/InvokeOnHeaders.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.apache.camel.Message; - -/** - * Marks a method as being invoked for a specific header value. - * <p/> - * This can be used by Component implementations that uses org.apache.camel.support.HeaderSelectorProducer. - * - * @see Message#getHeader(String) - */ -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.METHOD) -public @interface InvokeOnHeaders { - - /** - * Name of headers. - */ - InvokeOnHeader[] value(); -} diff --git a/core/camel-support/src/main/java/org/apache/camel/support/HeaderSelectorProducer.java b/core/camel-support/src/main/java/org/apache/camel/support/HeaderSelectorProducer.java index e651c52..96a9ebf 100644 --- a/core/camel-support/src/main/java/org/apache/camel/support/HeaderSelectorProducer.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/HeaderSelectorProducer.java @@ -29,7 +29,6 @@ import org.apache.camel.Message; import org.apache.camel.NoSuchHeaderException; import org.apache.camel.Processor; import org.apache.camel.spi.InvokeOnHeader; -import org.apache.camel.spi.InvokeOnHeaders; import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -162,14 +161,7 @@ public abstract class HeaderSelectorProducer extends BaseSelectorProducer { protected void bind() { for (final Method method : getTarget().getClass().getDeclaredMethods()) { - InvokeOnHeaders annotation = method.getAnnotation(InvokeOnHeaders.class); - if (annotation != null) { - for (InvokeOnHeader processor : annotation.value()) { - bind(processor, method); - } - } else { - bind(method.getAnnotation(InvokeOnHeader.class), method); - } + bind(method.getAnnotation(InvokeOnHeader.class), method); } } diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateInvokeOnHeaderMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateInvokeOnHeaderMojo.java index bfb9909..93431ba 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateInvokeOnHeaderMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/GenerateInvokeOnHeaderMojo.java @@ -44,7 +44,7 @@ import org.jboss.jandex.IndexReader; import org.jboss.jandex.Type; /** - * Abstract class for @InvokeOnHeader/@InvokeOnHeaders factory generator. + * Abstract class for @InvokeOnHeader factory generator. */ @Mojo(name = "generate-invoke-on-header", threadSafe = true, defaultPhase = LifecyclePhase.PROCESS_CLASSES, requiresDependencyCollection = ResolutionScope.COMPILE, @@ -52,7 +52,6 @@ import org.jboss.jandex.Type; public class GenerateInvokeOnHeaderMojo extends AbstractGeneratorMojo { public static final DotName HEADER_ANNOTATION = DotName.createSimple("org.apache.camel.spi.InvokeOnHeader"); - public static final DotName HEADERS_ANNOTATION = DotName.createSimple("org.apache.camel.spi.InvokeOnHeaders"); /** * The project build directory