You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2020/01/15 13:51:57 UTC
[camel] 04/05: CAMEL-14389: fix findings
This is an automated email from the ASF dual-hosted git repository.
lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 73506e65fe1f9c439db8639024b64ae3b0ce6ab2
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Wed Jan 15 13:56:18 2020 +0100
CAMEL-14389: fix findings
---
.../org/apache/camel/EndpointConsumerResolver.java | 4 ++
.../org/apache/camel/EndpointProducerResolver.java | 4 ++
.../builder/endpoint/EndpointBuilderFactory.java | 18 ++++++++-
.../builder/endpoint/EndpointBuilderSupport.java | 44 ----------------------
.../camel/builder/endpoint/EndpointBuilders.java | 1 +
.../camel/maven/packaging/EndpointDslMojo.java | 30 ++++++++++++++-
6 files changed, 55 insertions(+), 46 deletions(-)
diff --git a/core/camel-api/src/main/java/org/apache/camel/EndpointConsumerResolver.java b/core/camel-api/src/main/java/org/apache/camel/EndpointConsumerResolver.java
index 8786d9e..9ce2c22 100644
--- a/core/camel-api/src/main/java/org/apache/camel/EndpointConsumerResolver.java
+++ b/core/camel-api/src/main/java/org/apache/camel/EndpointConsumerResolver.java
@@ -16,6 +16,10 @@
*/
package org.apache.camel;
+/**
+ * An interface to represent an object that can be resolved as a consumer {@link Endpoint}
+ */
+@FunctionalInterface
public interface EndpointConsumerResolver {
/**
* Resolves this object as an endpoint.
diff --git a/core/camel-api/src/main/java/org/apache/camel/EndpointProducerResolver.java b/core/camel-api/src/main/java/org/apache/camel/EndpointProducerResolver.java
index 669c218..7e55401 100644
--- a/core/camel-api/src/main/java/org/apache/camel/EndpointProducerResolver.java
+++ b/core/camel-api/src/main/java/org/apache/camel/EndpointProducerResolver.java
@@ -16,6 +16,10 @@
*/
package org.apache.camel;
+/**
+ * An interface to represent an object that can be resolved as a producer {@link Endpoint}
+ */
+@FunctionalInterface
public interface EndpointProducerResolver {
/**
* Resolves this object as an endpoint.
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
index a922368..e08bd65 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
@@ -16,6 +16,13 @@
*/
package org.apache.camel.builder.endpoint;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.apache.camel.Exchange;
+import org.apache.camel.Expression;
+import org.apache.camel.builder.EndpointProducerBuilder;
+import org.apache.camel.support.ExpressionAdapter;
import javax.annotation.Generated;
/**
@@ -25,7 +32,15 @@ import javax.annotation.Generated;
public interface EndpointBuilderFactory {
default org.apache.camel.Expression endpoints(org.apache.camel.builder.EndpointProducerBuilder... endpoints) {
- return EndpointBuilderSupport.endpoints(endpoints);
+ return new ExpressionAdapter() {
+
+ List<Expression> expressions = Stream.of(endpoints).map(EndpointProducerBuilder::expr).collect(Collectors.toList());
+
+ @Override
+ public Object evaluate(Exchange exchange) {
+ return expressions.stream().map(e -> e.evaluate(exchange, Object.class)).collect(Collectors.toList());
+ }
+ };
}
/**
@@ -989,6 +1004,7 @@ public interface EndpointBuilderFactory {
* different signer/verifier/encryptor/decryptor endpoints within the camel
* context.
*/
+ @Deprecated
default org.apache.camel.builder.endpoint.dsl.CryptoCmsEndpointBuilderFactory.CryptoCmsEndpointBuilder cryptoCms(String path) {
return org.apache.camel.builder.endpoint.dsl.CryptoCmsEndpointBuilderFactory.cryptoCms(path);
}
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointBuilderSupport.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointBuilderSupport.java
deleted file mode 100644
index 14bf45f..0000000
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointBuilderSupport.java
+++ /dev/null
@@ -1,44 +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.builder.endpoint;
-
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Expression;
-import org.apache.camel.builder.EndpointProducerBuilder;
-import org.apache.camel.support.ExpressionAdapter;
-
-public final class EndpointBuilderSupport {
- private EndpointBuilderSupport() {
- }
-
- public static Expression endpoints(EndpointProducerBuilder... endpoints) {
- return new ExpressionAdapter() {
- List<Expression> expressions = Stream.of(endpoints)
- .map(EndpointProducerBuilder::expr).collect(Collectors.toList());
-
- @Override
- public Object evaluate(Exchange exchange) {
- return expressions.stream().map(e -> e.evaluate(exchange, Object.class))
- .collect(Collectors.toList());
- }
- };
- }
-}
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointBuilders.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
index e489317..a769f85 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
@@ -985,6 +985,7 @@ public interface EndpointBuilders {
* different signer/verifier/encryptor/decryptor endpoints within the camel
* context.
*/
+ @Deprecated
static org.apache.camel.builder.endpoint.dsl.CryptoCmsEndpointBuilderFactory.CryptoCmsEndpointBuilder cryptoCms(String path) {
return org.apache.camel.builder.endpoint.dsl.CryptoCmsEndpointBuilderFactory.cryptoCms(path);
}
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java
index 060cfaa..88c1574 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointDslMojo.java
@@ -36,6 +36,7 @@ import java.util.TreeSet;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
import javax.annotation.Generated;
@@ -486,6 +487,13 @@ public class EndpointDslMojo extends AbstractMojo {
CompilationUnit endpointBuilderUnit = new CompilationUnit();
endpointBuilderUnit.setPackageDeclaration(StringHelper.before(packageName, ".dsl"));
+ endpointBuilderUnit.addImport("java.util.List");
+ endpointBuilderUnit.addImport("java.util.stream.Collectors");
+ endpointBuilderUnit.addImport("java.util.stream.Stream");
+ endpointBuilderUnit.addImport("org.apache.camel.Exchange");
+ endpointBuilderUnit.addImport("org.apache.camel.Expression");
+ endpointBuilderUnit.addImport("org.apache.camel.builder.EndpointProducerBuilder");
+ endpointBuilderUnit.addImport("org.apache.camel.support.ExpressionAdapter");
// EndpointBuilderFactory
ClassOrInterfaceDeclaration endpointBuilderClass = endpointBuilderUnit.addClass("EndpointBuilderFactory");
@@ -498,7 +506,16 @@ public class EndpointDslMojo extends AbstractMojo {
MethodDeclaration endpoints = endpointBuilderClass.addMethod("endpoints");
endpoints.setDefault(true);
endpoints.addAndGetParameter("org.apache.camel.builder.EndpointProducerBuilder", "endpoints").setVarArgs(true);
- endpoints.setBody(new BlockStmt().addStatement("return EndpointBuilderSupport.endpoints(endpoints);"));
+ endpoints.setBody(block(
+ "return new ExpressionAdapter() {",
+ " List<Expression> expressions = Stream.of(endpoints).map(EndpointProducerBuilder::expr).collect(Collectors.toList());",
+ " @Override",
+ " public Object evaluate(Exchange exchange) {",
+ " return expressions.stream().map(e -> e.evaluate(exchange, Object.class)).collect(Collectors.toList());",
+ " }",
+ "};")
+ );
+
endpoints.setType("org.apache.camel.Expression");
// Copy entry points from builder factories
@@ -521,6 +538,9 @@ public class EndpointDslMojo extends AbstractMojo {
method.setDefault(true);
method.setParameters(declaration.getParameters());
+ // copy annotations from the source method
+ declaration.getAnnotations().forEach(method::addAnnotation);
+
method.setBody(
new BlockStmt().addStatement(
String.format("return %s.%s.%s(%s);",
@@ -584,6 +604,9 @@ public class EndpointDslMojo extends AbstractMojo {
method.setStatic(true);
method.setParameters(declaration.getParameters());
+ // copy annotations from the source method
+ declaration.getAnnotations().forEach(method::addAnnotation);
+
method.setBody(
new BlockStmt().addStatement(
String.format("return %s.%s.%s(%s);",
@@ -1016,4 +1039,9 @@ public class EndpointDslMojo extends AbstractMojo {
}
}
+ private static BlockStmt block(String... statements) {
+ return StaticJavaParser.parseBlock(
+ "{" + Stream.of(statements).collect(Collectors.joining("\n")) + "}"
+ );
+ }
}