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