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 2020/06/10 08:35:38 UTC
[camel] branch master updated (770bcbd -> 54f0adb)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git.
from 770bcbd CAMEL-15096: Upgrade to Jetty 9.4.29
new d1e325f Polished
new 54f0adb CAMEL-15143: Remove some duplicate code and enable tests for swagger and openapi.
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
components/camel-openapi-java/pom.xml | 5 +++
.../apache/camel/openapi/RestOpenApiReader.java | 5 +--
.../apache/camel/openapi/RestOpenApiSupport.java | 36 ++++++-------------
.../RestOpenApiReaderPropertyPlaceholderTest.java | 3 +-
components/camel-swagger-java/pom.xml | 5 +++
.../apache/camel/swagger/RestSwaggerSupport.java | 41 +++++-----------------
.../RestSwaggerReaderPropertyPlaceholderTest.java | 3 +-
.../in/ModelParserXMLRoutesDefinitionLoader.java | 2 +-
8 files changed, 35 insertions(+), 65 deletions(-)
[camel] 02/02: CAMEL-15143: Remove some duplicate code and enable
tests for swagger and openapi.
Posted by da...@apache.org.
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
commit 54f0adb4a6fa0580d39216d8d01354b5478ca148
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Jun 10 10:35:11 2020 +0200
CAMEL-15143: Remove some duplicate code and enable tests for swagger and openapi.
---
components/camel-openapi-java/pom.xml | 5 +++
.../apache/camel/openapi/RestOpenApiReader.java | 5 +--
.../apache/camel/openapi/RestOpenApiSupport.java | 36 ++++++-------------
.../RestOpenApiReaderPropertyPlaceholderTest.java | 3 +-
components/camel-swagger-java/pom.xml | 5 +++
.../apache/camel/swagger/RestSwaggerSupport.java | 41 +++++-----------------
.../RestSwaggerReaderPropertyPlaceholderTest.java | 3 +-
7 files changed, 34 insertions(+), 64 deletions(-)
diff --git a/components/camel-openapi-java/pom.xml b/components/camel-openapi-java/pom.xml
index 6408fcc..bf1355f 100644
--- a/components/camel-openapi-java/pom.xml
+++ b/components/camel-openapi-java/pom.xml
@@ -101,6 +101,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-undertow</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
diff --git a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
index faf9e67..a58105e 100644
--- a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
+++ b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiReader.java
@@ -98,14 +98,15 @@ public class RestOpenApiReader {
public OasDocument read(List<RestDefinition> rests, String route, BeanConfig config,
String camelContextId, ClassResolver classResolver)
throws ClassNotFoundException {
- OasDocument openApi = null;
+
+ OasDocument openApi;
if (config.isOpenApi3()) {
openApi = new Oas30Document();
} else {
openApi = new Oas20Document();
}
- for (RestDefinition rest : rests) {
+ for (RestDefinition rest : rests) {
if (org.apache.camel.util.ObjectHelper.isNotEmpty(route) && !route.equals("/")) {
// filter by route
if (!rest.getPath().equals(route)) {
diff --git a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiSupport.java b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiSupport.java
index f07bb8d..f1d70bd 100644
--- a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiSupport.java
+++ b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/RestOpenApiSupport.java
@@ -27,6 +27,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.regex.Matcher;
@@ -202,34 +203,17 @@ public class RestOpenApiSupport {
// use a routes definition to dump the rests
RestsDefinition def = new RestsDefinition();
def.setRests(rests);
+
ExtendedCamelContext ecc = camelContext.adapt(ExtendedCamelContext.class);
- String xml = ecc.getModelToXMLDumper().dumpModelAsXml(camelContext, def);
-
- // if resolving placeholders we parse the xml, and resolve the property placeholders during parsing
- final AtomicBoolean changed = new AtomicBoolean();
- InputStream is = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8));
- Document dom = XmlLineNumberParser.parseXml(is, new XmlLineNumberParser.XmlTextTransformer() {
- @Override
- public String transform(String text) {
- try {
- String after = camelContext.resolvePropertyPlaceholders(text);
- if (!changed.get()) {
- changed.set(!text.equals(after));
- }
- return after;
- } catch (Exception e) {
- // ignore
- return text;
- }
- }
- });
- // okay there were some property placeholder replaced so re-create the model
- if (changed.get()) {
- xml = camelContext.getTypeConverter().mandatoryConvertTo(String.class, dom);
- InputStream xmlis = camelContext.getTypeConverter().convertTo(InputStream.class, xml);
- def = (RestsDefinition) ecc.getXMLRoutesDefinitionLoader().loadRestsDefinition(camelContext, xmlis);
+ String originalXml = ecc.getModelToXMLDumper().dumpModelAsXml(camelContext, def);
+ String changedXml = ecc.getModelToXMLDumper().dumpModelAsXml(camelContext, def, true, true);
+ if (!Objects.equals(originalXml, changedXml)) {
+ // okay so the model had property placeholders which we needed to resolve and output their actual values
+ // and therefore regenerate the model classes
+ InputStream isxml = camelContext.getTypeConverter().convertTo(InputStream.class, changedXml);
+ def = (RestsDefinition) ecc.getXMLRoutesDefinitionLoader().loadRestsDefinition(camelContext, isxml);
if (def != null) {
- return def.getRests();
+ rests = def.getRests();
}
}
diff --git a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderPropertyPlaceholderTest.java b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderPropertyPlaceholderTest.java
index f500bd1..8ce3ffa 100644
--- a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderPropertyPlaceholderTest.java
+++ b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/RestOpenApiReaderPropertyPlaceholderTest.java
@@ -34,7 +34,6 @@ import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Ignore;
import org.junit.Test;
-@Ignore("Does not run well on CI due test uses JMX mbeans")
public class RestOpenApiReaderPropertyPlaceholderTest extends CamelTestSupport {
@BindToRegistry("dummy-rest")
@@ -77,7 +76,7 @@ public class RestOpenApiReaderPropertyPlaceholderTest extends CamelTestSupport {
RestOpenApiReader reader = new RestOpenApiReader();
RestOpenApiSupport support = new RestOpenApiSupport();
- List<RestDefinition> rests = support.getRestDefinitions(context, context.getName());
+ List<RestDefinition> rests = support.getRestDefinitions(context);
OasDocument openApi = reader.read(rests, null, config, context.getName(), new DefaultClassResolver());
assertNotNull(openApi);
diff --git a/components/camel-swagger-java/pom.xml b/components/camel-swagger-java/pom.xml
index b3dcc3a..7713cc4 100644
--- a/components/camel-swagger-java/pom.xml
+++ b/components/camel-swagger-java/pom.xml
@@ -134,6 +134,11 @@
<!-- testing -->
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-undertow</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-test-spring-junit5</artifactId>
<scope>test</scope>
</dependency>
diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
index 6373a90..e3a86f7 100644
--- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
+++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
@@ -16,24 +16,19 @@
*/
package org.apache.camel.swagger;
-import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.lang.management.ManagementFactory;
-import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
-import javax.management.AttributeNotFoundException;
import javax.management.MBeanServer;
import javax.management.ObjectName;
-import org.w3c.dom.Document;
-
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -57,7 +52,6 @@ import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.support.PatternHelper;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.URISupport;
-import org.apache.camel.util.xml.XmlLineNumberParser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -154,34 +148,17 @@ public class RestSwaggerSupport {
// use a routes definition to dump the rests
RestsDefinition def = new RestsDefinition();
def.setRests(rests);
+
ExtendedCamelContext ecc = camelContext.adapt(ExtendedCamelContext.class);
- String xml = ecc.getModelToXMLDumper().dumpModelAsXml(camelContext, def);
-
- // if resolving placeholders we parse the xml, and resolve the property placeholders during parsing
- final AtomicBoolean changed = new AtomicBoolean();
- InputStream is = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8));
- Document dom = XmlLineNumberParser.parseXml(is, new XmlLineNumberParser.XmlTextTransformer() {
- @Override
- public String transform(String text) {
- try {
- String after = camelContext.resolvePropertyPlaceholders(text);
- if (!changed.get()) {
- changed.set(!text.equals(after));
- }
- return after;
- } catch (Exception e) {
- // ignore
- return text;
- }
- }
- });
- // okay there were some property placeholder replaced so re-create the model
- if (changed.get()) {
- xml = camelContext.getTypeConverter().mandatoryConvertTo(String.class, dom);
- InputStream isxml = camelContext.getTypeConverter().convertTo(InputStream.class, xml);
+ String originalXml = ecc.getModelToXMLDumper().dumpModelAsXml(camelContext, def);
+ String changedXml = ecc.getModelToXMLDumper().dumpModelAsXml(camelContext, def, true, true);
+ if (!Objects.equals(originalXml, changedXml)) {
+ // okay so the model had property placeholders which we needed to resolve and output their actual values
+ // and therefore regenerate the model classes
+ InputStream isxml = camelContext.getTypeConverter().convertTo(InputStream.class, changedXml);
def = (RestsDefinition) ecc.getXMLRoutesDefinitionLoader().loadRestsDefinition(camelContext, isxml);
if (def != null) {
- return def.getRests();
+ rests = def.getRests();
}
}
diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderPropertyPlaceholderTest.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderPropertyPlaceholderTest.java
index f4b8be2..c660b66 100644
--- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderPropertyPlaceholderTest.java
+++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderPropertyPlaceholderTest.java
@@ -40,7 +40,6 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
-@Disabled("Does not run well on CI due test uses JMX mbeans")
public class RestSwaggerReaderPropertyPlaceholderTest extends CamelTestSupport {
private static final Logger LOG = LoggerFactory.getLogger(RestSwaggerReaderPropertyPlaceholderTest.class);
@@ -84,7 +83,7 @@ public class RestSwaggerReaderPropertyPlaceholderTest extends CamelTestSupport {
RestSwaggerReader reader = new RestSwaggerReader();
RestSwaggerSupport support = new RestSwaggerSupport();
- List<RestDefinition> rests = support.getRestDefinitions(context, context.getName());
+ List<RestDefinition> rests = support.getRestDefinitions(context);
Swagger swagger = reader.read(rests, null, config, context.getName(), new DefaultClassResolver());
assertNotNull(swagger);
[camel] 01/02: Polished
Posted by da...@apache.org.
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
commit d1e325f43c9488b3ba237efbb4ab2496c24ceef8
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Jun 10 10:30:49 2020 +0200
Polished
---
.../org/apache/camel/xml/in/ModelParserXMLRoutesDefinitionLoader.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/ModelParserXMLRoutesDefinitionLoader.java b/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/ModelParserXMLRoutesDefinitionLoader.java
index 037300c..669928e 100644
--- a/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/ModelParserXMLRoutesDefinitionLoader.java
+++ b/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/ModelParserXMLRoutesDefinitionLoader.java
@@ -46,7 +46,7 @@ public class ModelParserXMLRoutesDefinitionLoader implements XMLRoutesDefinition
@Override
public <T extends NamedNode> T createModelFromXml(CamelContext context, String xml, Class<T> type) throws Exception {
- throw new UnsupportedOperationException("Not support use camel-xml-jaxb instead");
+ throw new UnsupportedOperationException("Not supported use camel-xml-jaxb instead");
}
@Override