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 349bc97 CAMEL-12558: camel-catalog - Transacted and Policy should not
have outputs
349bc97 is described below
commit 349bc97e69fa849217d7b813562d3205c6482833
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Jun 8 08:28:05 2018 +0200
CAMEL-12558: camel-catalog - Transacted and Policy should not have outputs
---
.../main/java/org/apache/camel/model/PolicyDefinition.java | 1 +
.../java/org/apache/camel/model/TransactedDefinition.java | 1 +
.../java/org/apache/camel/catalog/CamelCatalogTest.java | 13 +++++++++++++
.../apache/camel/tools/apt/CoreEipAnnotationProcessor.java | 13 +++++++++++++
4 files changed, 28 insertions(+)
diff --git
a/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java
b/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java
index e05c537..925b78e 100644
--- a/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/PolicyDefinition.java
@@ -42,6 +42,7 @@ import org.apache.camel.util.ObjectHelper;
public class PolicyDefinition extends OutputDefinition<PolicyDefinition> {
// TODO: Align this code with TransactedDefinition
+ // TODO: Camel 3 should be NoOutputDefinition
@XmlTransient
protected Class<? extends Policy> type;
diff --git
a/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java
b/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java
index eb80758..bf8b7bd 100644
--- a/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/TransactedDefinition.java
@@ -49,6 +49,7 @@ import org.slf4j.LoggerFactory;
public class TransactedDefinition extends
OutputDefinition<TransactedDefinition> {
// TODO: Align this code with PolicyDefinition
+ // TODO: Camel 3 should be NoOutputDefinition
// JAXB does not support changing the ref attribute from required to
optional
// if we extend PolicyDefinition so we must make a copy of the class
diff --git
a/platforms/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
b/platforms/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
index 23b91a1..b5eb00a 100644
---
a/platforms/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
+++
b/platforms/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
@@ -1094,6 +1094,19 @@ public class CamelCatalogTest {
}
@Test
+ public void testTransactedAndPolicyNoOutputs() throws Exception {
+ String json = catalog.modelJSonSchema("transacted");
+ assertNotNull(json);
+ assertTrue(json.contains("\"output\": false"));
+ assertFalse(json.contains("\"outputs\":"));
+
+ json = catalog.modelJSonSchema("policy");
+ assertNotNull(json);
+ assertTrue(json.contains("\"output\": false"));
+ assertFalse(json.contains("\"outputs\":"));
+ }
+
+ @Test
public void testDataFormatAsciiDoc() throws Exception {
String doc = catalog.dataFormatAsciiDoc("json-jackson");
assertNotNull(doc);
diff --git
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessor.java
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessor.java
index 35e26fe..4b66859 100644
---
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessor.java
+++
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessor.java
@@ -23,6 +23,7 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
+import java.util.stream.Collectors;
import javax.annotation.processing.ProcessingEnvironment;
import javax.annotation.processing.RoundEnvironment;
import javax.lang.model.element.ElementKind;
@@ -183,6 +184,12 @@ public class CoreEipAnnotationProcessor {
buffer.append("\n \"properties\": {");
boolean first = true;
+
+ if ("false".equals(eipModel.getOutput())) {
+ // filter out outputs if we do not support it (and preserve order
so we need to use linked hash-set)
+ options = options.stream().filter(o ->
!"outputs".equals(o.getName())).collect(Collectors.toCollection(LinkedHashSet::new));
+ }
+
for (EipOption entry : options) {
if (first) {
first = false;
@@ -190,6 +197,7 @@ public class CoreEipAnnotationProcessor {
buffer.append(",");
}
buffer.append("\n ");
+
// as its json we need to sanitize the docs
String doc = entry.getDocumentation();
doc = sanitizeDescription(doc, false);
@@ -1053,6 +1061,11 @@ public class CoreEipAnnotationProcessor {
return true;
}
+ // special for transacted/policy which should not have output
+ if ("policy".equals(model.getName()) ||
"transacted".equals(model.getName())) {
+ return false;
+ }
+
for (EipOption option : options) {
if ("outputs".equals(option.getName())) {
return true;
--
To stop receiving notification emails like this one, please contact
[email protected].