This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/2_1_X by this push:
new 866ed65 Consolidating Jackson config for Core and Client into Common
+ ditching Joda for JavaTimeModule + enabling AfterburnerModule
866ed65 is described below
commit 866ed655d3853ed948aaa333899efb7ef316477e
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Wed Jun 17 09:00:50 2020 +0200
Consolidating Jackson config for Core and Client into Common + ditching
Joda for JavaTimeModule + enabling AfterburnerModule
---
client/lib/pom.xml | 9 -------
.../client/lib/SyncopeClientFactoryBean.java | 20 +++++----------
common/lib/pom.xml | 20 ++++++++-------
.../common/lib/jackson}/SyncopeObjectMapper.java | 9 ++++---
.../common/lib/jackson}/SyncopeYAMLMapper.java | 9 ++++---
core/provisioning-api/pom.xml | 4 ---
core/rest-cxf/pom.xml | 13 ----------
.../rest-cxf/src/main/resources/restCXFContext.xml | 4 +--
core/rest-cxf/src/test/resources/restCXFTest.xml | 6 ++---
ext/elasticsearch/client-elasticsearch/pom.xml | 9 -------
ext/scimv2/scim-rest-cxf/pom.xml | 13 ----------
ext/swagger-ui/pom.xml | 9 -------
.../src/main/resources/jboss/restCXFContext.xml | 4 +--
.../META-INF/MANIFEST.MF | 2 --
.../build.properties | 2 --
pom.xml | 29 ++++++----------------
16 files changed, 43 insertions(+), 119 deletions(-)
diff --git a/client/lib/pom.xml b/client/lib/pom.xml
index 659f783..bd47e40 100644
--- a/client/lib/pom.xml
+++ b/client/lib/pom.xml
@@ -48,10 +48,6 @@ under the License.
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.datatype</groupId>
- <artifactId>jackson-datatype-joda</artifactId>
- </dependency>
- <dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
</dependency>
@@ -61,11 +57,6 @@ under the License.
</dependency>
<dependency>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- </dependency>
-
- <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
diff --git
a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
index 8d9286f..99a922e 100644
---
a/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
+++
b/client/lib/src/main/java/org/apache/syncope/client/lib/SyncopeClientFactoryBean.java
@@ -18,16 +18,12 @@
*/
package org.apache.syncope.client.lib;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
-import com.fasterxml.jackson.datatype.joda.JodaModule;
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
import com.fasterxml.jackson.jaxrs.yaml.JacksonJaxbYAMLProvider;
import java.util.Arrays;
import java.util.Collections;
-import java.util.HashMap;
import java.util.Map;
+import java.util.HashMap;
import javax.ws.rs.core.MediaType;
import javax.xml.bind.Marshaller;
import org.apache.commons.lang3.StringUtils;
@@ -37,6 +33,8 @@ import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean;
import org.apache.cxf.jaxrs.provider.JAXBElementProvider;
import org.apache.cxf.staxutils.DocumentDepthProperties;
import org.apache.syncope.common.lib.policy.PolicyTO;
+import org.apache.syncope.common.lib.jackson.SyncopeObjectMapper;
+import org.apache.syncope.common.lib.jackson.SyncopeYAMLMapper;
import org.apache.syncope.common.rest.api.DateParamConverterProvider;
import org.apache.syncope.common.rest.api.RESTHeaders;
@@ -91,11 +89,8 @@ public class SyncopeClientFactoryBean {
private JAXRSClientFactoryBean restClientFactoryBean;
- protected JacksonJaxbJsonProvider defaultJsonProvider() {
- ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.registerModule(new JodaModule());
- objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,
false);
- return new JacksonJaxbJsonProvider(objectMapper,
JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS);
+ protected static JacksonJaxbJsonProvider defaultJsonProvider() {
+ return new JacksonJaxbJsonProvider(new SyncopeObjectMapper(),
JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS);
}
@SuppressWarnings({ "rawtypes" })
@@ -118,10 +113,7 @@ public class SyncopeClientFactoryBean {
}
protected JacksonJaxbYAMLProvider defaultYamlProvider() {
- YAMLMapper yamlMapper = new YAMLMapper();
- yamlMapper.registerModule(new JodaModule());
- yamlMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,
false);
- return new JacksonJaxbYAMLProvider(yamlMapper,
JacksonJaxbJsonProvider.DEFAULT_ANNOTATIONS);
+ return new JacksonJaxbYAMLProvider(new SyncopeYAMLMapper(),
JacksonJaxbYAMLProvider.DEFAULT_ANNOTATIONS);
}
protected RestClientExceptionMapper defaultExceptionMapper() {
diff --git a/common/lib/pom.xml b/common/lib/pom.xml
index 07033bd..26cbd20 100644
--- a/common/lib/pom.xml
+++ b/common/lib/pom.xml
@@ -50,13 +50,20 @@ under the License.
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
- </dependency>
-
+ <artifactId>jackson-databind</artifactId>
+ </dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
- <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-jsr310</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.fasterxml.jackson.module</groupId>
+ <artifactId>jackson-module-afterburner</artifactId>
</dependency>
<dependency>
@@ -78,11 +85,6 @@ under the License.
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
diff --git
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeObjectMapper.java
b/common/lib/src/main/java/org/apache/syncope/common/lib/jackson/SyncopeObjectMapper.java
similarity index 91%
rename from
core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeObjectMapper.java
rename to
common/lib/src/main/java/org/apache/syncope/common/lib/jackson/SyncopeObjectMapper.java
index 42d121d..9daa360 100644
---
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeObjectMapper.java
+++
b/common/lib/src/main/java/org/apache/syncope/common/lib/jackson/SyncopeObjectMapper.java
@@ -16,13 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.syncope.core.rest.cxf;
+package org.apache.syncope.common.lib.jackson;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.datatype.joda.JodaModule;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.fasterxml.jackson.module.afterburner.AfterburnerModule;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
@@ -40,7 +41,9 @@ public class SyncopeObjectMapper extends ObjectMapper {
public SyncopeObjectMapper() {
super();
- registerModule(new JodaModule());
+ registerModule(new AfterburnerModule());
+
+ registerModule(new JavaTimeModule());
configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
}
diff --git
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeYAMLMapper.java
b/common/lib/src/main/java/org/apache/syncope/common/lib/jackson/SyncopeYAMLMapper.java
similarity index 81%
rename from
core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeYAMLMapper.java
rename to
common/lib/src/main/java/org/apache/syncope/common/lib/jackson/SyncopeYAMLMapper.java
index b9f2ba3..b13e0a6 100644
---
a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/SyncopeYAMLMapper.java
+++
b/common/lib/src/main/java/org/apache/syncope/common/lib/jackson/SyncopeYAMLMapper.java
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.syncope.core.rest.cxf;
+package org.apache.syncope.common.lib.jackson;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
-import com.fasterxml.jackson.datatype.joda.JodaModule;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.fasterxml.jackson.module.afterburner.AfterburnerModule;
public class SyncopeYAMLMapper extends YAMLMapper {
@@ -29,7 +30,9 @@ public class SyncopeYAMLMapper extends YAMLMapper {
public SyncopeYAMLMapper() {
super();
- registerModule(new JodaModule());
+ registerModule(new AfterburnerModule());
+
+ registerModule(new JavaTimeModule());
configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
}
}
diff --git a/core/provisioning-api/pom.xml b/core/provisioning-api/pom.xml
index 632f4d1..05c4915 100644
--- a/core/provisioning-api/pom.xml
+++ b/core/provisioning-api/pom.xml
@@ -48,10 +48,6 @@ under the License.
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </dependency>
- <dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-afterburner</artifactId>
</dependency>
diff --git a/core/rest-cxf/pom.xml b/core/rest-cxf/pom.xml
index 724e28d..dfe75fc 100644
--- a/core/rest-cxf/pom.xml
+++ b/core/rest-cxf/pom.xml
@@ -71,10 +71,6 @@ under the License.
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.datatype</groupId>
- <artifactId>jackson-datatype-joda</artifactId>
- </dependency>
- <dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
</dependency>
@@ -82,17 +78,8 @@ under the License.
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-yaml-provider</artifactId>
</dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.module</groupId>
- <artifactId>jackson-module-afterburner</artifactId>
- </dependency>
<dependency>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- </dependency>
-
- <dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
</dependency>
diff --git a/core/rest-cxf/src/main/resources/restCXFContext.xml
b/core/rest-cxf/src/main/resources/restCXFContext.xml
index 8522d8b..03b8171 100644
--- a/core/rest-cxf/src/main/resources/restCXFContext.xml
+++ b/core/rest-cxf/src/main/resources/restCXFContext.xml
@@ -65,12 +65,12 @@ under the License.
<bean id="dateParamConverterProvider"
class="org.apache.syncope.common.rest.api.DateParamConverterProvider"/>
- <bean id="syncopeObjectMapper"
class="org.apache.syncope.core.rest.cxf.SyncopeObjectMapper"/>
+ <bean id="syncopeObjectMapper"
class="org.apache.syncope.common.lib.jackson.SyncopeObjectMapper"/>
<bean id="jsonProvider"
class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
<property name="mapper" ref="syncopeObjectMapper"/>
</bean>
- <bean id="syncopeYAMLMapper"
class="org.apache.syncope.core.rest.cxf.SyncopeYAMLMapper"/>
+ <bean id="syncopeYAMLMapper"
class="org.apache.syncope.common.lib.jackson.SyncopeYAMLMapper"/>
<bean id="yamlProvider"
class="com.fasterxml.jackson.jaxrs.yaml.JacksonJaxbYAMLProvider">
<property name="mapper" ref="syncopeYAMLMapper"/>
</bean>
diff --git a/core/rest-cxf/src/test/resources/restCXFTest.xml
b/core/rest-cxf/src/test/resources/restCXFTest.xml
index 675dcbd..6f68491 100644
--- a/core/rest-cxf/src/test/resources/restCXFTest.xml
+++ b/core/rest-cxf/src/test/resources/restCXFTest.xml
@@ -52,12 +52,12 @@ under the License.
<bean id="dateParamConverterProvider"
class="org.apache.syncope.common.rest.api.DateParamConverterProvider"/>
- <bean id="jacksonObjectMapper"
class="org.apache.syncope.core.rest.cxf.SyncopeObjectMapper"/>
+ <bean id="syncopeObjectMapper"
class="org.apache.syncope.common.lib.jackson.SyncopeObjectMapper"/>
<bean id="jsonProvider"
class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
- <property name="mapper" ref="jacksonObjectMapper"/>
+ <property name="mapper" ref="syncopeObjectMapper"/>
</bean>
- <bean id="syncopeYAMLMapper"
class="org.apache.syncope.core.rest.cxf.SyncopeYAMLMapper"/>
+ <bean id="syncopeYAMLMapper"
class="org.apache.syncope.common.lib.jackson.SyncopeYAMLMapper"/>
<bean id="yamlProvider"
class="com.fasterxml.jackson.jaxrs.yaml.JacksonJaxbYAMLProvider">
<property name="mapper" ref="syncopeYAMLMapper"/>
</bean>
diff --git a/ext/elasticsearch/client-elasticsearch/pom.xml
b/ext/elasticsearch/client-elasticsearch/pom.xml
index 9414a4a..4253b6b 100644
--- a/ext/elasticsearch/client-elasticsearch/pom.xml
+++ b/ext/elasticsearch/client-elasticsearch/pom.xml
@@ -65,15 +65,6 @@ under the License.
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-cbor</artifactId>
</dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.datatype</groupId>
- <artifactId>jackson-datatype-joda</artifactId>
- </dependency>
-
- <dependency>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- </dependency>
</dependencies>
<build>
diff --git a/ext/scimv2/scim-rest-cxf/pom.xml b/ext/scimv2/scim-rest-cxf/pom.xml
index bab952b..35506cd 100644
--- a/ext/scimv2/scim-rest-cxf/pom.xml
+++ b/ext/scimv2/scim-rest-cxf/pom.xml
@@ -67,22 +67,9 @@ under the License.
</dependency>
<dependency>
- <groupId>com.fasterxml.jackson.datatype</groupId>
- <artifactId>jackson-datatype-joda</artifactId>
- </dependency>
- <dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
</dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.module</groupId>
- <artifactId>jackson-module-afterburner</artifactId>
- </dependency>
-
- <dependency>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
diff --git a/ext/swagger-ui/pom.xml b/ext/swagger-ui/pom.xml
index 89192f4..539df7a 100644
--- a/ext/swagger-ui/pom.xml
+++ b/ext/swagger-ui/pom.xml
@@ -42,15 +42,6 @@ under the License.
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.datatype</groupId>
- <artifactId>jackson-datatype-joda</artifactId>
- </dependency>
-
- <dependency>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- </dependency>
<dependency>
<groupId>com.google.guava</groupId>
diff --git a/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
b/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
index 1f6bf42..49b2fbf 100644
--- a/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
+++ b/fit/core-reference/src/main/resources/jboss/restCXFContext.xml
@@ -65,12 +65,12 @@ under the License.
<bean id="dateParamConverterProvider"
class="org.apache.syncope.common.rest.api.DateParamConverterProvider"/>
- <bean id="syncopeObjectMapper"
class="org.apache.syncope.core.rest.cxf.SyncopeObjectMapper"/>
+ <bean id="syncopeObjectMapper"
class="org.apache.syncope.common.lib.jackson.SyncopeObjectMapper"/>
<bean id="jsonProvider"
class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider">
<property name="mapper" ref="syncopeObjectMapper"/>
</bean>
- <bean id="syncopeYAMLMapper"
class="org.apache.syncope.core.rest.cxf.SyncopeYAMLMapper"/>
+ <bean id="syncopeYAMLMapper"
class="org.apache.syncope.common.lib.jackson.SyncopeYAMLMapper"/>
<bean id="yamlProvider"
class="com.fasterxml.jackson.jaxrs.yaml.JacksonJaxbYAMLProvider">
<property name="mapper" ref="syncopeYAMLMapper"/>
</bean>
diff --git
a/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/META-INF/MANIFEST.MF
b/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/META-INF/MANIFEST.MF
index e86ba1d..1b7ddd1 100644
---
a/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/META-INF/MANIFEST.MF
+++
b/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/META-INF/MANIFEST.MF
@@ -24,13 +24,11 @@ Bundle-ClassPath: lib/commons-codec.jar,
lib/jackson-annotations.jar,
lib/jackson-core.jar,
lib/jackson-databind.jar,
- lib/jackson-datatype-joda.jar,
lib/jackson-jaxrs-base.jar,
lib/jackson-jaxrs-json-provider.jar,
lib/jackson-module-jaxb-annotations.jar,
lib/javax.annotation-api.jar,
lib/javax.ws.rs-api.jar,
- lib/joda-time.jar,
lib/log4j-api.jar,
lib/slf4j-api.jar,
lib/stax2-api.jar,
diff --git
a/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/build.properties
b/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/build.properties
index d1c7f7f..f5d40f0 100644
--- a/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/build.properties
+++ b/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/build.properties
@@ -33,13 +33,11 @@ bin.includes = plugin.xml,\
lib/jackson-annotations.jar,\
lib/jackson-core.jar,\
lib/jackson-databind.jar,\
- lib/jackson-datatype-joda.jar,\
lib/jackson-jaxrs-base.jar,\
lib/jackson-jaxrs-json-provider.jar,\
lib/jackson-module-jaxb-annotations.jar,\
lib/javax.annotation-api.jar,\
lib/javax.ws.rs-api.jar,\
- lib/joda-time.jar,\
lib/log4j-api.jar,\
lib/slf4j-api.jar,\
lib/stax2-api.jar,\
diff --git a/pom.xml b/pom.xml
index 43bf206..07ea91b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -447,8 +447,6 @@ under the License.
<tika.version>1.24.1</tika.version>
- <joda.version>2.10.6</joda.version>
-
<h2.version>1.4.200</h2.version>
<junit.version>5.6.2</junit.version>
@@ -809,10 +807,6 @@ under the License.
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-dataformat-cbor</artifactId>
</exclusion>
- <exclusion>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- </exclusion>
</exclusions>
</dependency>
<dependency>
@@ -911,26 +905,19 @@ under the License.
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-yaml</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-csv</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
- <artifactId>jackson-datatype-joda</artifactId>
+ <artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson.version}</version>
- <exclusions>
- <exclusion>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- <version>${joda.version}</version>
- </dependency>
+ </dependency>
<dependency>
<groupId>org.springframework</groupId>
@@ -2469,10 +2456,8 @@ under the License.
<link>http://fasterxml.github.io/jackson-core/javadoc/2.10/</link>
<link>http://fasterxml.github.io/jackson-databind/javadoc/2.10/</link>
<link>http://fasterxml.github.io/jackson-annotations/javadoc/2.10/</link>
-
<link>http://fasterxml.github.io/jackson-dataformat-xml/javadoc/2.10/</link>
<link>http://fasterxml.github.io/jackson-dataformats-text/javadoc/yaml/2.10/</link>
<link>http://fasterxml.github.io/jackson-dataformats-text/javadoc/csv/2.10/</link>
-
<link>http://fasterxml.github.io/jackson-datatype-joda/javadoc/2.10/</link>
<link>http://www.javadoc.io/doc/org.apache.camel/camel-core/2.24.2/</link>
<link>http://www.javadoc.io/doc/org.apache.camel/camel-spring/2.24.2/</link>
<link>https://ci.apache.org/projects/wicket/apidocs/8.x/</link>