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 2021/02/06 12:04:58 UTC

[camel] 05/18: CAMEL-16102: Source code generate @InvokeOnHeader for reflection free

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 <cl...@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