You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2019/11/11 15:15:18 UTC

[camel] branch master updated (726e9dd -> 131c798)

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 726e9dd  CAMEL-14167: camel-stream - Remove url support
     new 2804e00  CAMEL-14168 - Camel-Linkedin: Remove the component
     new 63103a4  CAMEL-14168 - Fixed compilation
     new 131c798  CAMEL-14168 - Regen and fixed adoc

The 3 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:
 apache-camel/pom.xml                               |   15 -
 apache-camel/src/main/descriptors/common-bin.xml   |    3 -
 bom/camel-bom/pom.xml                              |   20 -
 .../camel-linkedin/camel-linkedin-api/pom.xml      |  246 ---
 .../component/linkedin/api/DoubleAdapter.java      |   36 -
 .../api/EnumQueryParamConverterProvider.java       |   74 -
 .../component/linkedin/api/LinkedInException.java  |   48 -
 .../api/LinkedInExceptionResponseFilter.java       |   96 -
 .../linkedin/api/LinkedInOAuthRequestFilter.java   |  380 ----
 .../camel/component/linkedin/api/LongAdapter.java  |   36 -
 .../camel/component/linkedin/api/OAuthParams.java  |  107 -
 .../camel/component/linkedin/api/OAuthScope.java   |   66 -
 .../component/linkedin/api/OAuthSecureStorage.java |   36 -
 .../camel/component/linkedin/api/OAuthToken.java   |   50 -
 .../src/main/resources/linkedin-api-schema.xjb     |  478 ----
 .../src/main/resources/linkedin-api-schema.xsd     | 2293 --------------------
 .../src/main/resources/linkedin-api-wadl.xml       | 1013 ---------
 .../camel-linkedin-api/src/main/resources/wadl.xsd |  281 ---
 .../api/AbstractResourceIntegrationTest.java       |  141 --
 .../api/PeopleResourceIntegrationTest.java         |  128 --
 .../api/SearchResourceIntegrationTest.java         |   46 -
 .../src/test/resources/log4j2.properties           |   28 -
 .../src/test/resources/test-options.properties     |   33 -
 .../camel-linkedin-component/pom.xml               |  306 ---
 .../src/main/docs/linkedin-component.adoc          |  747 -------
 .../linkedin/DefaultOAuthSecureStorage.java        |   38 -
 .../component/linkedin/LinkedInComponent.java      |  121 --
 .../component/linkedin/LinkedInConfiguration.java  |  291 ---
 .../camel/component/linkedin/LinkedInConsumer.java |   77 -
 .../camel/component/linkedin/LinkedInEndpoint.java |  188 --
 .../camel/component/linkedin/LinkedInProducer.java |   59 -
 .../internal/CachingOAuthSecureStorage.java        |   50 -
 .../linkedin/internal/LinkedInConstants.java       |   29 -
 .../internal/LinkedInPropertiesHelper.java         |   40 -
 .../linkedin/AbstractLinkedInTestSupport.java      |   89 -
 .../linkedin/CommentsResourceIntegrationTest.java  |   80 -
 .../linkedin/CompaniesResourceIntegrationTest.java |  331 ---
 .../ComponentConfigurationIntegrationTest.java     |   81 -
 .../linkedin/GroupsResourceIntegrationTest.java    |   79 -
 .../linkedin/JobsResourceIntegrationTest.java      |  106 -
 .../linkedin/PeopleResourceIntegrationTest.java    |  654 ------
 .../linkedin/PostsResourceIntegrationTest.java     |  176 --
 .../linkedin/SearchResourceIntegrationTest.java    |  175 --
 .../src/test/resources/log4j2.properties           |   28 -
 .../src/test/resources/test-options.properties     |   33 -
 components/camel-linkedin/pom.xml                  |   67 -
 components/pom.xml                                 |    1 -
 .../builder/endpoint/EndpointBuilderFactory.java   |    1 -
 .../dsl/LinkedInEndpointBuilderFactory.java        | 1585 --------------
 docs/components/modules/ROOT/nav.adoc              |    1 -
 docs/components/modules/ROOT/pages/index.adoc      |    4 +-
 .../modules/ROOT/pages/linkedin-component.adoc     |  748 -------
 docs/user-manual/modules/ROOT/pages/index.adoc     |    1 -
 parent/pom.xml                                     |   20 -
 .../karaf/features/src/main/resources/features.xml |   29 -
 .../camel-linkedin-starter/pom.xml                 |   61 -
 .../LinkedInComponentAutoConfiguration.java        |  128 --
 .../springboot/LinkedInComponentConfiguration.java |  259 ---
 .../src/main/resources/META-INF/LICENSE.txt        |  203 --
 .../src/main/resources/META-INF/NOTICE.txt         |   11 -
 .../additional-spring-configuration-metadata.json  |   10 -
 .../src/main/resources/META-INF/spring.factories   |   18 -
 .../src/main/resources/META-INF/spring.provides    |   17 -
 platforms/spring-boot/components-starter/pom.xml   |    1 -
 .../camel-spring-boot-dependencies/pom.xml         |   20 -
 .../camel/itest/springboot/CamelLinkedinTest.java  |   50 -
 .../camel/maven/packaging/PackageHelper.java       |    1 -
 .../maven/packaging/PrepareCatalogKarafMojo.java   |    3 -
 .../camel/maven/packaging/PrepareCatalogMojo.java  |    7 +-
 .../packaging/PrepareCatalogSpringBootMojo.java    |    3 -
 70 files changed, 2 insertions(+), 12679 deletions(-)
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/pom.xml
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/DoubleAdapter.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/EnumQueryParamConverterProvider.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInException.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInExceptionResponseFilter.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInOAuthRequestFilter.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LongAdapter.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthParams.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthScope.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthSecureStorage.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthToken.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/resources/linkedin-api-schema.xjb
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/resources/linkedin-api-schema.xsd
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/resources/linkedin-api-wadl.xml
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/main/resources/wadl.xsd
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/AbstractResourceIntegrationTest.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/PeopleResourceIntegrationTest.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/SearchResourceIntegrationTest.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/test/resources/log4j2.properties
 delete mode 100644 components/camel-linkedin/camel-linkedin-api/src/test/resources/test-options.properties
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/pom.xml
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/main/docs/linkedin-component.adoc
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/DefaultOAuthSecureStorage.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConsumer.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInProducer.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/CachingOAuthSecureStorage.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInConstants.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInPropertiesHelper.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/AbstractLinkedInTestSupport.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CommentsResourceIntegrationTest.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CompaniesResourceIntegrationTest.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/ComponentConfigurationIntegrationTest.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/GroupsResourceIntegrationTest.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/JobsResourceIntegrationTest.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PeopleResourceIntegrationTest.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PostsResourceIntegrationTest.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/SearchResourceIntegrationTest.java
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/test/resources/log4j2.properties
 delete mode 100644 components/camel-linkedin/camel-linkedin-component/src/test/resources/test-options.properties
 delete mode 100644 components/camel-linkedin/pom.xml
 delete mode 100644 core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/LinkedInEndpointBuilderFactory.java
 delete mode 100644 docs/components/modules/ROOT/pages/linkedin-component.adoc
 delete mode 100644 platforms/spring-boot/components-starter/camel-linkedin-starter/pom.xml
 delete mode 100644 platforms/spring-boot/components-starter/camel-linkedin-starter/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentAutoConfiguration.java
 delete mode 100644 platforms/spring-boot/components-starter/camel-linkedin-starter/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentConfiguration.java
 delete mode 100644 platforms/spring-boot/components-starter/camel-linkedin-starter/src/main/resources/META-INF/LICENSE.txt
 delete mode 100644 platforms/spring-boot/components-starter/camel-linkedin-starter/src/main/resources/META-INF/NOTICE.txt
 delete mode 100644 platforms/spring-boot/components-starter/camel-linkedin-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json
 delete mode 100644 platforms/spring-boot/components-starter/camel-linkedin-starter/src/main/resources/META-INF/spring.factories
 delete mode 100644 platforms/spring-boot/components-starter/camel-linkedin-starter/src/main/resources/META-INF/spring.provides
 delete mode 100644 tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelLinkedinTest.java


[camel] 03/03: CAMEL-14168 - Regen and fixed adoc

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 131c7985486534fa52df674e012e2243f000be64
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Nov 11 15:44:19 2019 +0100

    CAMEL-14168 - Regen and fixed adoc
---
 docs/components/modules/ROOT/nav.adoc          | 1 -
 docs/components/modules/ROOT/pages/index.adoc  | 2 +-
 docs/user-manual/modules/ROOT/pages/index.adoc | 1 -
 3 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/docs/components/modules/ROOT/nav.adoc b/docs/components/modules/ROOT/nav.adoc
index 213c893..588f174 100644
--- a/docs/components/modules/ROOT/nav.adoc
+++ b/docs/components/modules/ROOT/nav.adoc
@@ -228,7 +228,6 @@
 * xref:ldap-component.adoc[LDAP Component]
 * xref:ldif-component.adoc[LDIF Component]
 * xref:leveldb.adoc[LevelDB]
-* xref:linkedin-component.adoc[Linkedin Component]
 * xref:log-component.adoc[Log Component]
 * xref:lra.adoc[LRA Component]
 * xref:lucene-component.adoc[Lucene Component]
diff --git a/docs/components/modules/ROOT/pages/index.adoc b/docs/components/modules/ROOT/pages/index.adoc
index ce62947..ec47f94 100644
--- a/docs/components/modules/ROOT/pages/index.adoc
+++ b/docs/components/modules/ROOT/pages/index.adoc
@@ -6,7 +6,7 @@ The following Apache Camel artifacts are provided:
 == Components
 
 // components: START
-Number of Components: 304 in 242 JAR artifacts (0 deprecated)
+Number of Components: 303 in 241 JAR artifacts (0 deprecated)
 
 [width="100%",cols="4,1,5",options="header"]
 |===
diff --git a/docs/user-manual/modules/ROOT/pages/index.adoc b/docs/user-manual/modules/ROOT/pages/index.adoc
index 627cb7b..9e123c8 100644
--- a/docs/user-manual/modules/ROOT/pages/index.adoc
+++ b/docs/user-manual/modules/ROOT/pages/index.adoc
@@ -308,7 +308,6 @@ camel routes without them knowing
 ** xref:components::kubernetes-services-component.adoc[Kubernetes Services]
 ** xref:components::ldap-component.adoc[LDAP]
 ** xref:components::ldif-component.adoc[LDIF]
-** xref:components::linkedin-component.adoc[Linkedin]
 ** xref:components::lucene-component.adoc[Lucene]
 ** xref:components::lumberjack-component.adoc[Lumberjack]
 ** xref:components::master-component.adoc[Master]


[camel] 02/03: CAMEL-14168 - Fixed compilation

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 63103a4dd90b9b167c97ab257fd1b5d906c35f84
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Nov 11 14:57:20 2019 +0100

    CAMEL-14168 - Fixed compilation
---
 .../java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java  | 1 -
 .../main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java  | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

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 ec2eeb4..631c84e 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
@@ -198,7 +198,6 @@ public interface EndpointBuilderFactory extends
         LanguageEndpointBuilderFactory,
         LdapEndpointBuilderFactory,
         LdifEndpointBuilderFactory,
-        LinkedInEndpointBuilderFactory,
         LogEndpointBuilderFactory,
         LuceneEndpointBuilderFactory,
         LumberjackEndpointBuilderFactory,
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
index c4eb3de..293c254 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
@@ -1190,7 +1190,7 @@ public class PrepareCatalogMojo extends AbstractMojo {
                 component = "ftp";
             } 
             String name = component + "-component";
-            if (!docs.contains(name) && !component.equalsIgnoreCase("salesforce") && !component.equalsIgnoreCase("servicenow"))) {
+            if (!docs.contains(name) && (!component.equalsIgnoreCase("salesforce") && !component.equalsIgnoreCase("servicenow"))) {
                 missing.add(name);
             }
         }


[camel] 01/03: CAMEL-14168 - Camel-Linkedin: Remove the component

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 2804e001599c055c2a56fd937c88ab8c39909b20
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Nov 11 14:52:34 2019 +0100

    CAMEL-14168 - Camel-Linkedin: Remove the component
---
 apache-camel/pom.xml                               |   15 -
 apache-camel/src/main/descriptors/common-bin.xml   |    3 -
 bom/camel-bom/pom.xml                              |   20 -
 .../camel-linkedin/camel-linkedin-api/pom.xml      |  246 ---
 .../component/linkedin/api/DoubleAdapter.java      |   36 -
 .../api/EnumQueryParamConverterProvider.java       |   74 -
 .../component/linkedin/api/LinkedInException.java  |   48 -
 .../api/LinkedInExceptionResponseFilter.java       |   96 -
 .../linkedin/api/LinkedInOAuthRequestFilter.java   |  380 ----
 .../camel/component/linkedin/api/LongAdapter.java  |   36 -
 .../camel/component/linkedin/api/OAuthParams.java  |  107 -
 .../camel/component/linkedin/api/OAuthScope.java   |   66 -
 .../component/linkedin/api/OAuthSecureStorage.java |   36 -
 .../camel/component/linkedin/api/OAuthToken.java   |   50 -
 .../src/main/resources/linkedin-api-schema.xjb     |  478 ----
 .../src/main/resources/linkedin-api-schema.xsd     | 2293 --------------------
 .../src/main/resources/linkedin-api-wadl.xml       | 1013 ---------
 .../camel-linkedin-api/src/main/resources/wadl.xsd |  281 ---
 .../api/AbstractResourceIntegrationTest.java       |  141 --
 .../api/PeopleResourceIntegrationTest.java         |  128 --
 .../api/SearchResourceIntegrationTest.java         |   46 -
 .../src/test/resources/log4j2.properties           |   28 -
 .../src/test/resources/test-options.properties     |   33 -
 .../camel-linkedin-component/pom.xml               |  306 ---
 .../src/main/docs/linkedin-component.adoc          |  747 -------
 .../linkedin/DefaultOAuthSecureStorage.java        |   38 -
 .../component/linkedin/LinkedInComponent.java      |  121 --
 .../component/linkedin/LinkedInConfiguration.java  |  291 ---
 .../camel/component/linkedin/LinkedInConsumer.java |   77 -
 .../camel/component/linkedin/LinkedInEndpoint.java |  188 --
 .../camel/component/linkedin/LinkedInProducer.java |   59 -
 .../internal/CachingOAuthSecureStorage.java        |   50 -
 .../linkedin/internal/LinkedInConstants.java       |   29 -
 .../internal/LinkedInPropertiesHelper.java         |   40 -
 .../linkedin/AbstractLinkedInTestSupport.java      |   89 -
 .../linkedin/CommentsResourceIntegrationTest.java  |   80 -
 .../linkedin/CompaniesResourceIntegrationTest.java |  331 ---
 .../ComponentConfigurationIntegrationTest.java     |   81 -
 .../linkedin/GroupsResourceIntegrationTest.java    |   79 -
 .../linkedin/JobsResourceIntegrationTest.java      |  106 -
 .../linkedin/PeopleResourceIntegrationTest.java    |  654 ------
 .../linkedin/PostsResourceIntegrationTest.java     |  176 --
 .../linkedin/SearchResourceIntegrationTest.java    |  175 --
 .../src/test/resources/log4j2.properties           |   28 -
 .../src/test/resources/test-options.properties     |   33 -
 components/camel-linkedin/pom.xml                  |   67 -
 components/pom.xml                                 |    1 -
 .../dsl/LinkedInEndpointBuilderFactory.java        | 1585 --------------
 docs/components/modules/ROOT/pages/index.adoc      |    2 -
 .../modules/ROOT/pages/linkedin-component.adoc     |  748 -------
 parent/pom.xml                                     |   20 -
 .../karaf/features/src/main/resources/features.xml |   29 -
 .../camel-linkedin-starter/pom.xml                 |   61 -
 .../LinkedInComponentAutoConfiguration.java        |  128 --
 .../springboot/LinkedInComponentConfiguration.java |  259 ---
 .../src/main/resources/META-INF/LICENSE.txt        |  203 --
 .../src/main/resources/META-INF/NOTICE.txt         |   11 -
 .../additional-spring-configuration-metadata.json  |   10 -
 .../src/main/resources/META-INF/spring.factories   |   18 -
 .../src/main/resources/META-INF/spring.provides    |   17 -
 platforms/spring-boot/components-starter/pom.xml   |    1 -
 .../camel-spring-boot-dependencies/pom.xml         |   20 -
 .../camel/itest/springboot/CamelLinkedinTest.java  |   50 -
 .../camel/maven/packaging/PackageHelper.java       |    1 -
 .../maven/packaging/PrepareCatalogKarafMojo.java   |    3 -
 .../camel/maven/packaging/PrepareCatalogMojo.java  |    7 +-
 .../packaging/PrepareCatalogSpringBootMojo.java    |    3 -
 67 files changed, 1 insertion(+), 12675 deletions(-)

diff --git a/apache-camel/pom.xml b/apache-camel/pom.xml
index 8712db7..7dc694e 100644
--- a/apache-camel/pom.xml
+++ b/apache-camel/pom.xml
@@ -968,16 +968,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.camel</groupId>
-      <artifactId>camel-linkedin</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.camel</groupId>
-      <artifactId>camel-linkedin-api</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.camel</groupId>
       <artifactId>camel-log</artifactId>
       <version>${project.version}</version>
     </dependency>
@@ -2557,11 +2547,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.camel</groupId>
-      <artifactId>camel-linkedin-starter</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.camel</groupId>
       <artifactId>camel-log-starter</artifactId>
       <version>${project.version}</version>
     </dependency>
diff --git a/apache-camel/src/main/descriptors/common-bin.xml b/apache-camel/src/main/descriptors/common-bin.xml
index 226a2f9..a05ad36 100644
--- a/apache-camel/src/main/descriptors/common-bin.xml
+++ b/apache-camel/src/main/descriptors/common-bin.xml
@@ -214,8 +214,6 @@
         <include>org.apache.camel:camel-ldap</include>
         <include>org.apache.camel:camel-ldif</include>
         <include>org.apache.camel:camel-leveldb</include>
-        <include>org.apache.camel:camel-linkedin</include>
-        <include>org.apache.camel:camel-linkedin-api</include>
         <include>org.apache.camel:camel-log</include>
         <include>org.apache.camel:camel-lra</include>
         <include>org.apache.camel:camel-lucene</include>
@@ -571,7 +569,6 @@
         <include>org.apache.camel:camel-ldap-starter</include>
         <include>org.apache.camel:camel-ldif-starter</include>
         <include>org.apache.camel:camel-leveldb-starter</include>
-        <include>org.apache.camel:camel-linkedin-starter</include>
         <include>org.apache.camel:camel-log-starter</include>
         <include>org.apache.camel:camel-lra-starter</include>
         <include>org.apache.camel:camel-lucene-starter</include>
diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index 79daa7a..5ba2c6c 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -1839,26 +1839,6 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
-        <artifactId>camel-linkedin</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-linkedin-api</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-linkedin-parent</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-linkedin-starter</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.camel</groupId>
         <artifactId>camel-log</artifactId>
         <version>${project.version}</version>
       </dependency>
diff --git a/components/camel-linkedin/camel-linkedin-api/pom.xml b/components/camel-linkedin/camel-linkedin-api/pom.xml
deleted file mode 100644
index bf33827..0000000
--- a/components/camel-linkedin/camel-linkedin-api/pom.xml
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-linkedin-parent</artifactId>
-        <version>3.0.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-linkedin-api</artifactId>
-    <name>Camel :: LinkedIn :: API</name>
-    <description>Camel LinkedIn API</description>
-    <packaging>jar</packaging>
-
-    <properties>
-        <camel.osgi.import>
-            *
-        </camel.osgi.import>
-    </properties>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-rs-security-oauth2</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-rs-extension-providers</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpclient</artifactId>
-            <version>${httpclient4-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.jsoup</groupId>
-            <artifactId>jsoup</artifactId>
-            <version>${jsoup-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-        </dependency>
-
-        <!-- logging -->
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- testing -->
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-rs-client</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <!-- For debugging wadltojava
-            <dependency>
-              <groupId>org.apache.cxf</groupId>
-              <artifactId>cxf-tools-wadlto-jaxrs</artifactId>
-              <version>${cxf-version}</version>
-              <scope>test<scope>
-            </dependency>
-        -->
-    </dependencies>
-
-    <build>
-        <plugins>
-
-            <!-- uncomment to validate XSD since wadl2java doesn't report line numbers in errors -->
-            <!--
-                  <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>jaxb2-maven-plugin</artifactId>
-                    <version>1.6</version>
-                    <executions>
-                      <execution>
-                        <goals>
-                          <goal>xjc</goal>
-                        </goals>
-                        <configuration>
-                          <target>2.1</target>
-                          <schemaDirectory>src/main/resources</schemaDirectory>
-                          <schemaFiles>linkedin-api-schema.xsd</schemaFiles>
-                        </configuration>
-                      </execution>
-                    </executions>
-                  </plugin>
-            -->
-
-            <!-- Generate API from WADL -->
-            <plugin>
-                <groupId>org.apache.cxf</groupId>
-                <artifactId>cxf-wadl2java-plugin</artifactId>
-                <version>${cxf-version}</version>
-                <executions>
-                    <execution>
-                        <id>generate-wadl-sources</id>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>wadl2java</goal>
-                        </goals>
-                        <configuration>
-                            <fork>${cxf.codegenplugin.forkmode}</fork>
-                            <additionalJvmArgs>${cxf.codegen.jvmArgs}</additionalJvmArgs>
-                            <sourceRoot>${project.build.directory}/generated-sources/cxf</sourceRoot>
-                            <wadlOptions>
-                                <wadlOption>
-                                    <wadl>${project.basedir}/src/main/resources/linkedin-api-wadl.xml</wadl>
-                                    <packagename>org.apache.camel.component.linkedin.api</packagename>
-                                    <bindingFiles>
-                                        <bindingFile>${project.basedir}/src/main/resources/linkedin-api-schema.xjb
-                                        </bindingFile>
-                                    </bindingFiles>
-                                    <extraargs>
-                                        <extraarg>-verbose</extraarg>
-                                        <extraarg>-generateEnums</extraarg>
-                                        <extraarg>-xjc-quiet</extraarg>
-                                    </extraargs>
-                                </wadlOption>
-                            </wadlOptions>
-                            <skipGarbageCollection>true</skipGarbageCollection>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!-- add generated source to build -->
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>add-generated-sources</id>
-                        <goals>
-                            <goal>add-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                <source>${project.build.directory}/generated-sources/cxf</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!-- to generate API Javadoc -->
-            <plugin>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-javadoc-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>add-javadoc</id>
-                        <phase>generate-test-resources</phase>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                        <configuration>
-                            <attach>true</attach>
-                            <source>${jdk.version}</source>
-                            <quiet>true</quiet>
-                            <detectOfflineLinks>false</detectOfflineLinks>
-                            <javadocVersion>1.8.0</javadocVersion>
-                            <encoding>UTF-8</encoding>
-                            <doclint>none</doclint>
-                            <locale>en</locale>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-        </plugins>
-    </build>
-
-    <!-- Disable Java 8 doclint checks to avoid Javadoc plugin failures -->
-    <profiles>
-        <profile>
-            <id>doclint-java8-disable</id>
-            <activation>
-                <jdk>[1.8,</jdk>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-javadoc-plugin</artifactId>
-                        <configuration>
-                            <additionalparam>-Xdoclint:none</additionalparam>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
-</project>
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/DoubleAdapter.java b/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/DoubleAdapter.java
deleted file mode 100644
index cee56a4..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/DoubleAdapter.java
+++ /dev/null
@@ -1,36 +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.component.linkedin.api;
-
-import javax.xml.bind.annotation.adapters.XmlAdapter;
-
-public class DoubleAdapter extends XmlAdapter<String, Double> {
-
-    @Override
-    public Double unmarshal(String value) {
-        return javax.xml.bind.DatatypeConverter.parseDouble(value);
-    }
-
-    @Override
-    public String marshal(Double value) {
-        if (value == null) {
-            return null;
-        }
-        return javax.xml.bind.DatatypeConverter.printDouble(value);
-    }
-
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/EnumQueryParamConverterProvider.java b/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/EnumQueryParamConverterProvider.java
deleted file mode 100644
index 73291cd..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/EnumQueryParamConverterProvider.java
+++ /dev/null
@@ -1,74 +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.component.linkedin.api;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-
-import javax.ws.rs.ext.ParamConverter;
-import javax.ws.rs.ext.ParamConverterProvider;
-import javax.ws.rs.ext.Provider;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Converter provider for Enum Query params.
- */
-@Provider
-public class EnumQueryParamConverterProvider<T extends Enum<T>> implements ParamConverterProvider {
-    private static final Logger LOG = LoggerFactory.getLogger(EnumQueryParamConverterProvider.class);
-
-    @Override
-    public <T> ParamConverter<T> getConverter(Class<T> rawType, Type genericType, Annotation[] annotations) {
-        if (rawType.isEnum()) {
-            try {
-                final Method valueMethod = rawType.getMethod("value", null);
-                final Method fromValueMethod = rawType.getMethod("fromValue", String.class);
-
-                return new ParamConverter<T>() {
-                    @Override
-                    public T fromString(String value) {
-                        try {
-                            return (T) fromValueMethod.invoke(null, value);
-                        } catch (IllegalAccessException e) {
-                            throw new IllegalArgumentException(e);
-                        } catch (InvocationTargetException e) {
-                            throw new IllegalArgumentException(e);
-                        }
-                    }
-
-                    @Override
-                    public String toString(T value) {
-                        try {
-                            return (String) valueMethod.invoke(value);
-                        } catch (IllegalAccessException e) {
-                            throw new IllegalArgumentException(e);
-                        } catch (InvocationTargetException e) {
-                            throw new IllegalArgumentException(e);
-                        }
-                    }
-                };
-            } catch (NoSuchMethodException e) {
-                LOG.debug("Enumeration {} does not follow JAXB convention for conversion", rawType.getName());
-            }
-        }
-        return null;
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInException.java b/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInException.java
deleted file mode 100644
index 2e45e84..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInException.java
+++ /dev/null
@@ -1,48 +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.component.linkedin.api;
-
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-
-import org.apache.camel.component.linkedin.api.model.Error;
-
-/**
- * Exception wrapper for {@link org.apache.camel.component.linkedin.api.model.Error}
- */
-public class LinkedInException extends WebApplicationException {
-
-    private static final long serialVersionUID = -6570614972033527197L;
-
-    private final Error error;
-    private final Response response;
-
-    public LinkedInException(Error error, Response response) {
-        super(error.getMessage(), response);
-        this.error = error;
-        this.response = response;
-    }
-
-    public Error getError() {
-        return error;
-    }
-
-    @Override
-    public Response getResponse() {
-        return response;
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInExceptionResponseFilter.java b/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInExceptionResponseFilter.java
deleted file mode 100644
index 49cc116..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInExceptionResponseFilter.java
+++ /dev/null
@@ -1,96 +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.component.linkedin.api;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.Priority;
-import javax.ws.rs.Priorities;
-import javax.ws.rs.client.ClientRequestContext;
-import javax.ws.rs.client.ClientResponseContext;
-import javax.ws.rs.client.ClientResponseFilter;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.Provider;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParserFactory;
-import javax.xml.transform.Source;
-import javax.xml.transform.sax.SAXSource;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.apache.camel.component.linkedin.api.model.Error;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Response filter for throwing {@link LinkedInException}
- * when response contains {@link org.apache.camel.component.linkedin.api.model.Error}
- */
-@Provider
-@Priority(Priorities.USER)
-public class LinkedInExceptionResponseFilter implements ClientResponseFilter {
-
-    private static final Logger LOG = LoggerFactory.getLogger(LinkedInExceptionResponseFilter.class);
-    private final JAXBContext jaxbContext;
-
-    public LinkedInExceptionResponseFilter() {
-        try {
-            jaxbContext = JAXBContext.newInstance(Error.class.getPackage().getName());
-        } catch (JAXBException e) {
-            throw new IllegalArgumentException("Error initializing JAXB: " + e.getMessage(), e);
-        }
-    }
-
-    @Override
-    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
-        if (responseContext.getStatus() != Response.Status.OK.getStatusCode() && responseContext.hasEntity()) {
-            try {
-                final Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
-
-                // Disable XXE
-                SAXParserFactory spf = SAXParserFactory.newInstance();
-                try {
-                    spf.setFeature(javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING, Boolean.TRUE);
-                    spf.setFeature("http://xml.org/sax/features/external-general-entities", false);
-                    spf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
-                    spf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
-                } catch (ParserConfigurationException | SAXException ex) {
-                    LOG.debug("Error setting feature on parser: " + ex.getMessage());
-                }
-                Source xmlSource =
-                    new SAXSource(spf.newSAXParser().getXMLReader(), new InputSource(responseContext.getEntityStream()));
-                final Error error = (Error) unmarshaller.unmarshal(xmlSource);
-
-                final Response.ResponseBuilder builder = Response.status(responseContext.getStatusInfo());
-                builder.entity(error);
-                // copy response headers
-                for (Map.Entry<String, List<String>> header : responseContext.getHeaders().entrySet()) {
-                    builder.header(header.getKey(), header.getValue());
-                }
-
-                throw new LinkedInException(error, builder.build());
-            } catch (JAXBException | ParserConfigurationException | SAXException e) {
-                // log and ignore
-                LOG.warn("Unable to parse LinkedIn error: {}", e.getMessage(), e);
-            }
-        }
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInOAuthRequestFilter.java b/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInOAuthRequestFilter.java
deleted file mode 100644
index 65a65fd..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LinkedInOAuthRequestFilter.java
+++ /dev/null
@@ -1,380 +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.component.linkedin.api;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.MalformedURLException;
-import java.net.Proxy;
-import java.net.SocketAddress;
-import java.net.URI;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
-import java.security.SecureRandom;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import javax.annotation.Priority;
-import javax.ws.rs.Priorities;
-import javax.ws.rs.client.ClientRequestContext;
-import javax.ws.rs.client.ClientRequestFilter;
-import javax.ws.rs.ext.Provider;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import org.apache.http.HttpHost;
-import org.apache.http.conn.params.ConnRoutePNames;
-import org.jsoup.Connection;
-import org.jsoup.Jsoup;
-import org.jsoup.nodes.Document;
-import org.jsoup.nodes.Element;
-import org.jsoup.nodes.FormElement;
-import org.jsoup.select.Elements;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * LinkedIn OAuth request filter to handle OAuth token.
- */
-@Provider
-@Priority(Priorities.AUTHENTICATION)
-public final class LinkedInOAuthRequestFilter implements ClientRequestFilter {
-
-    public static final String BASE_ADDRESS = "https://api.linkedin.com/v1";
-
-    private static final int SC_OK = 200;
-    private static final int SC_MOVED_TEMPORARILY = 302;
-    private static final int SC_SEE_OTHER = 303;
-    private static final String HEADER_LOCATION = "location";
-
-    private static final Logger LOG = LoggerFactory.getLogger(LinkedInOAuthRequestFilter.class);
-
-    private static final String AUTHORIZATION_URL_PREFIX = "https://www.linkedin.com";
-
-    private static final String AUTHORIZATION_URL = AUTHORIZATION_URL_PREFIX + "/uas/oauth2/authorization?"
-            + "response_type=code&client_id=%s&state=%s&redirect_uri=%s";
-    private static final String AUTHORIZATION_URL_WITH_SCOPE = AUTHORIZATION_URL_PREFIX + "/uas/oauth2/authorization?"
-            + "response_type=code&client_id=%s&state=%s&scope=%s&redirect_uri=%s";
-
-    private static final String ACCESS_TOKEN_URL = AUTHORIZATION_URL_PREFIX + "/uas/oauth2/accessToken?"
-            + "grant_type=authorization_code&code=%s&redirect_uri=%s&client_id=%s&client_secret=%s";
-
-    private static final Pattern QUERY_PARAM_PATTERN = Pattern.compile("&?([^=]+)=([^&]+)");
-
-
-    private final OAuthParams oAuthParams;
-
-    private OAuthToken oAuthToken;
-
-    private Proxy proxy;
-
-    public LinkedInOAuthRequestFilter(OAuthParams oAuthParams, Map<String, Object> httpParams,
-                                      boolean lazyAuth, String[] enabledProtocols) {
-
-        this.oAuthParams = oAuthParams;
-        if (oAuthParams.getSecureStorage() != null) {
-            this.oAuthToken = oAuthParams.getSecureStorage().getOAuthToken();
-        } else {
-            this.oAuthToken = null;
-        }
-
-        if (httpParams != null && httpParams.get(ConnRoutePNames.DEFAULT_PROXY) != null) {
-            final HttpHost proxyHost = (HttpHost)httpParams.get(ConnRoutePNames.DEFAULT_PROXY);
-            final Boolean socksProxy = (Boolean)httpParams.get("http.route.socks-proxy");
-            SocketAddress proxyAddr = new InetSocketAddress(proxyHost.getHostName(), proxyHost.getPort());
-            if (socksProxy != null && socksProxy) {
-                proxy = new Proxy(Proxy.Type.SOCKS, proxyAddr);
-            } else {
-                proxy = new Proxy(Proxy.Type.HTTP, proxyAddr);
-            }
-        } else {
-            proxy = null;
-        }
-
-        if (!lazyAuth) {
-            try {
-                updateOAuthToken();
-            } catch (IOException e) {
-                throw new IllegalArgumentException(
-                    String.format("Error authorizing user %s: %s", oAuthParams.getUserName(), e.getMessage()), e);
-            }
-        }
-    }
-
-    @SuppressWarnings("deprecation")
-    private String getRefreshToken() {
-
-        try {
-            final String csrfId = String.valueOf(new SecureRandom().nextLong());
-
-            final String encodedRedirectUri = URLEncoder.encode(oAuthParams.getRedirectUri(), "UTF-8");
-            final OAuthScope[] scopes = oAuthParams.getScopes();
-            final Map<String, String> cookies = new HashMap();
-            final String authorizationUrl = authorizationUrl(csrfId, encodedRedirectUri, scopes);
-
-            //get login page (redirection is disabled as there could be an error message in redirect url
-            final Connection.Response loginPageResponse = addProxy(Jsoup.connect(authorizationUrl), proxy)
-                    .followRedirects(false)
-                    .method(Connection.Method.GET)
-                    .execute();
-            final Connection.Response loginPageRedirectedResponse = followRedirection(loginPageResponse, cookies);
-            final Document loginPage = loginPageRedirectedResponse.parse();
-
-            validatePage(loginPage);
-
-            //fill login form
-            final FormElement loginForm = (FormElement) loginPage.select("form").first();
-
-            final Element loginField = loginForm.select("input[name=session_key]").first();
-            loginField.val(oAuthParams.getUserName());
-
-            final Element passwordField = loginForm.select("input[name=session_password]").first();
-            passwordField.val(oAuthParams.getUserPassword());
-
-            //submit loginPage
-            final Connection.Response afterLoginResponse = addProxy(loginForm.submit(), proxy)
-                    .followRedirects(false)
-                    .cookies(cookies)
-                    .execute();
-            cookies.putAll(afterLoginResponse.cookies());
-            //follow redirects
-            final Connection.Response afterLoginRedirectedResponse = followRedirection(afterLoginResponse, cookies);
-            final URL redirectionUrl = getRedirectLocationAndValidate(afterLoginRedirectedResponse);
-            final String redirectQuery;
-            //if redirect url != null, it means that it contains code= and there is no need to continue
-            if (redirectionUrl != null) {
-                redirectQuery = redirectionUrl.getQuery();
-            } else if (afterLoginRedirectedResponse.statusCode() == SC_OK) {
-                //allow permission page is in response (or still login page containing errors)
-                final Document allowPage = afterLoginRedirectedResponse.parse();
-                //detect possible login errors
-                validatePage(allowPage);
-                //if there is no error, allow permission page is it for sure
-                final FormElement allowForm = (FormElement) allowPage.select("form").get(1);
-                final Connection.Response allowRedirectResponse = addProxy(allowForm.submit(), proxy)
-                        .followRedirects(false)
-                        .cookies(cookies)
-                        .execute();
-                final URL allowUrl = getRedirectLocationAndValidate(allowRedirectResponse);
-
-                redirectQuery = allowUrl.getQuery();
-            } else {
-                throw new IllegalArgumentException("Redirect response query is null, check username, password and permissions");
-            }
-
-            final Map<String, String> params = new HashMap<>();
-            final Matcher matcher = QUERY_PARAM_PATTERN.matcher(redirectQuery);
-            while (matcher.find()) {
-                params.put(matcher.group(1), matcher.group(2));
-            }
-            // check if we got caught in a Captcha!
-            if (params.get("challengeId") != null) {
-                throw new SecurityException("Unable to login due to CAPTCHA, use with a valid accessToken instead!");
-            }
-            final String state = params.get("state");
-            if (!csrfId.equals(state)) {
-                throw new SecurityException("Invalid CSRF code!");
-            } else {
-                // return authorization code
-                // TODO check results??
-                return params.get("code");
-            }
-
-        } catch (Exception e) {
-            throw new IllegalArgumentException("Error authorizing application: " + e.getMessage(), e);
-        }
-    }
-
-    /**
-     * Validate page html for errors.
-     */
-    private void validatePage(Document loginPage) {
-        //this error could happen e.g. if there is a wrong redirect url
-        Elements errorDivs = loginPage.select("body[class=error]");
-        if (errorDivs.isEmpty()) {
-            //this error could happen e.g. with wrong clientId, usernane or password
-            errorDivs = loginPage.select("div[role=alert]:not([class*=hidden])");
-        }
-
-        if (!errorDivs.isEmpty()) {
-            final String errorMessage = errorDivs.first().text();
-            throw new IllegalArgumentException("Error authorizing application: " + errorMessage);
-        }
-    }
-
-    /**
-     * Constructs authorization URL from AuthParams.
-     */
-    private String authorizationUrl(String csrfId, String encodedRedirectUri, OAuthScope[] scopes) {
-        final String url;
-        if (scopes == null || scopes.length == 0) {
-            url = String.format(AUTHORIZATION_URL, oAuthParams.getClientId(), csrfId, encodedRedirectUri);
-        } else {
-            final int nScopes = scopes.length;
-            final StringBuilder builder = new StringBuilder();
-            int i = 0;
-            for (OAuthScope scope : scopes) {
-                builder.append(scope.getValue());
-                if (++i < nScopes) {
-                    builder.append("%20");
-                }
-            }
-            url = String.format(AUTHORIZATION_URL_WITH_SCOPE, oAuthParams.getClientId(), csrfId, builder.toString(), encodedRedirectUri);
-        }
-        return url;
-    }
-
-    /**
-     * Follows redirection (states 302 and 303) - on each step validates whether there s abn error.
-     */
-    private Connection.Response followRedirection(Connection.Response response, Map<String, String> cookies) throws IOException {
-        return followRedirection(response, cookies, 0);
-    }
-
-    /**
-     * Follows redirections (recursively, with max 5 repetitions)
-     */
-    private Connection.Response followRedirection(Connection.Response response, Map<String, String> cookies, int deep) throws IOException {
-        //if recursive calls are not ending (theoretically it could happen if there is some error), we will end after 5 redirections (in successfull scenario there is maximal redirection count 1)
-        if (deep > 5) {
-            throw new IllegalArgumentException("Error authorizing application. Redirection goes still on and on.");
-        }
-        //try to get redirection url
-        URL url = getRedirectLocationAndValidate(response);
-        //if contains code=, then it is final url (containing refresh code)
-        if (url != null) {
-            if (url.getQuery().contains("code=")) {
-                return response;
-            } else if (url.toString().contains("error=") || url.toString().contains("errorKey=")) {
-                throw new IOException(URLDecoder.decode(url.toString()).replaceAll("&", ", "));
-            } else {
-                Connection.Response resp = addProxy(Jsoup.connect(url.toString()), proxy)
-                                                .followRedirects(false)
-                                                .method(Connection.Method.GET)
-                                                .cookies(cookies)
-                                                .execute();
-                return followRedirection(resp, cookies, deep++);
-            }
-        }
-        cookies.putAll(response.cookies());
-        return response;
-    }
-
-    /**
-     * Extract header Location from response, also validates for possible errors, which could be part of redirection url (e.g. errorKey=unexpected_error)
-     */
-    private URL getRedirectLocationAndValidate(Connection.Response response) throws IOException {
-        if (response.statusCode() == SC_MOVED_TEMPORARILY || response.statusCode() == SC_SEE_OTHER) {
-            URL location;
-            try {
-                location = new URL(response.header(HEADER_LOCATION));
-            } catch (MalformedURLException e) {
-                location = new URL(AUTHORIZATION_URL_PREFIX + response.header(HEADER_LOCATION));
-            }
-
-            final String locationQuery = location.getQuery();
-            if (locationQuery != null && (locationQuery.contains("error=") || locationQuery.contains("errorKey="))) {
-                throw new IOException(URLDecoder.decode(locationQuery).replaceAll("&", ", "));
-            }
-            return location;
-        }
-        return null;
-    }
-
-    /**
-     * Helper method to add proxy into JSoup connection
-     */
-    private static Connection addProxy(Connection connection, Proxy proxy) {
-        if (proxy != null) {
-            return connection.proxy(proxy);
-        }
-        return  connection;
-    }
-
-    private OAuthToken getAccessToken(String refreshToken) throws IOException {
-        final String tokenUrl = String.format(ACCESS_TOKEN_URL, refreshToken, oAuthParams.getRedirectUri(), oAuthParams.getClientId(), oAuthParams.getClientSecret());
-        final Connection.Response response = addProxy(Jsoup.connect(tokenUrl), proxy)
-                                                .ignoreContentType(true)
-                                                .method(Connection.Method.POST)
-                                                .execute();
-
-        if (response.statusCode() != SC_OK) {
-            throw new IOException(String.format("Error getting access token: [%s: %s]", response.statusCode(), response.statusMessage()));
-        }
-        final long currentTime = System.currentTimeMillis();
-        final ObjectMapper mapper = new ObjectMapper();
-        final Map map = mapper.readValue(response.body(), Map.class);
-        final String accessToken = map.get("access_token").toString();
-        final Integer expiresIn = Integer.valueOf(map.get("expires_in").toString());
-        return new OAuthToken(refreshToken, accessToken,
-            currentTime + TimeUnit.MILLISECONDS.convert(expiresIn, TimeUnit.SECONDS));
-    }
-
-    public synchronized OAuthToken getOAuthToken() {
-        return oAuthToken;
-    }
-
-    @Override
-    public void filter(ClientRequestContext requestContext) throws IOException {
-        updateOAuthToken();
-
-        // add OAuth query param
-        final String requestUri = requestContext.getUri().toString();
-        final StringBuilder builder = new StringBuilder(requestUri);
-        if (requestUri.contains("?")) {
-            builder.append('&');
-        } else {
-            builder.append('?');
-        }
-        builder.append("oauth2_access_token=").append(oAuthToken.getAccessToken());
-        requestContext.setUri(URI.create(builder.toString()));
-    }
-
-    private synchronized void updateOAuthToken() throws IOException {
-
-        // check whether an update is needed
-        final long currentTime = System.currentTimeMillis();
-        if (oAuthToken == null || oAuthToken.getExpiryTime() < currentTime) {
-            LOG.info("OAuth token doesn't exist or has expired");
-
-            // check whether a secure store is provided
-            final OAuthSecureStorage secureStorage = oAuthParams.getSecureStorage();
-            if (secureStorage != null) {
-
-                oAuthToken = secureStorage.getOAuthToken();
-                // if it returned a valid token, we are done, otherwise fall through and generate a new token
-                if (oAuthToken != null && oAuthToken.getExpiryTime() > currentTime) {
-                    return;
-                }
-                LOG.info("OAuth secure storage returned a null or expired token, creating a new token...");
-            }
-
-            // need new OAuth token, authorize user, LinkedIn does not support OAuth2 grant_type=refresh_token
-            final String refreshToken = getRefreshToken();
-            this.oAuthToken = getAccessToken(refreshToken);
-            LOG.info("OAuth token created!");
-
-            // notify secure storage
-            if (secureStorage != null) {
-                secureStorage.saveOAuthToken(this.oAuthToken);
-            }
-        }
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LongAdapter.java b/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LongAdapter.java
deleted file mode 100644
index 5963d6d..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/LongAdapter.java
+++ /dev/null
@@ -1,36 +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.component.linkedin.api;
-
-import javax.xml.bind.annotation.adapters.XmlAdapter;
-
-public class LongAdapter extends XmlAdapter<String, Long> {
-
-    @Override
-    public Long unmarshal(String value) {
-        return new Long(value);
-    }
-
-    @Override
-    public String marshal(Long value) {
-        if (value == null) {
-            return null;
-        }
-        return value.toString();
-    }
-
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthParams.java b/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthParams.java
deleted file mode 100644
index bdef2cf..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthParams.java
+++ /dev/null
@@ -1,107 +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.component.linkedin.api;
-
-import java.util.Arrays;
-
-/**
- * Parameters for OAuth 2.0 flow used by {@link LinkedInOAuthRequestFilter}.
-*/
-public class OAuthParams {
-
-    private String userName;
-    private String userPassword;
-
-    private OAuthSecureStorage secureStorage;
-
-    private String clientId;
-    private String clientSecret;
-
-    private OAuthScope[] scopes;
-    private String redirectUri;
-
-    public OAuthParams() {
-    }
-
-    public OAuthParams(String userName, String userPassword, OAuthSecureStorage secureStorage,
-                       String clientId, String clientSecret,
-                       String redirectUri, OAuthScope... scopes) {
-        this.userName = userName;
-        this.userPassword = userPassword;
-        this.secureStorage = secureStorage;
-        this.clientId = clientId;
-        this.clientSecret = clientSecret;
-        this.scopes = scopes != null ? Arrays.copyOf(scopes, scopes.length) : null;
-        this.redirectUri = redirectUri;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
-    public String getUserPassword() {
-        return userPassword;
-    }
-
-    public void setUserPassword(String userPassword) {
-        this.userPassword = userPassword;
-    }
-
-    public String getClientId() {
-        return clientId;
-    }
-
-    public void setClientId(String clientId) {
-        this.clientId = clientId;
-    }
-
-    public OAuthScope[] getScopes() {
-        return scopes;
-    }
-
-    public void setScopes(OAuthScope[] scopes) {
-        this.scopes = scopes;
-    }
-
-    public String getRedirectUri() {
-        return redirectUri;
-    }
-
-    public void setRedirectUri(String redirectUri) {
-        this.redirectUri = redirectUri;
-    }
-
-    public String getClientSecret() {
-        return clientSecret;
-    }
-
-    public void setClientSecret(String clientSecret) {
-        this.clientSecret = clientSecret;
-    }
-
-    public OAuthSecureStorage getSecureStorage() {
-        return secureStorage;
-    }
-
-    public void setSecureStorage(OAuthSecureStorage secureStorage) {
-        this.secureStorage = secureStorage;
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthScope.java b/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthScope.java
deleted file mode 100644
index 0ec1002..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthScope.java
+++ /dev/null
@@ -1,66 +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.component.linkedin.api;
-
-/**
- * OAuth scope for use in {@link LinkedInOAuthRequestFilter}
- */
-public enum OAuthScope {
-    
-    R_BASICPROFILE("r_basicprofile"),
-    R_FULLPROFILE("r_fullprofile"),
-    R_EMAILADDRESS("r_emailaddress"),
-    R_NETWORK("r_network"),
-    R_CONTACTINFO("r_contactinfo"),
-    @Deprecated // use W_SHARE instead
-    RW_NUS("rw_nus"),
-    RW_COMPANY_ADMIN("rw_company_admin"),
-    RW_GROUPS("rw_groups"),
-    W_MESSAGES("w_messages"),
-    W_SHARE("w_share");
-
-    private final String value;
-
-    OAuthScope(String value) {
-        this.value = value;
-    }
-
-    public String getValue() {
-        return value;
-    }
-
-    public static OAuthScope fromValue(String value) {
-        for (OAuthScope scope : values()) {
-            if (scope.value.equals(value)) {
-                return scope;
-            }
-        }
-        throw new IllegalArgumentException(value);
-    }
-
-    public static OAuthScope[] fromValues(String... values) {
-        if (values == null || values.length == 0) {
-            return new OAuthScope[0];
-        }
-        final OAuthScope[] result = new OAuthScope[values.length];
-        int i = 0;
-        for (String value : values) {
-            result[i++] = fromValue(value);
-        }
-        return result;
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthSecureStorage.java b/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthSecureStorage.java
deleted file mode 100644
index 1dd3a13..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthSecureStorage.java
+++ /dev/null
@@ -1,36 +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.component.linkedin.api;
-
-/**
- * Secure token storage for {@link OAuthToken}
- */
-public interface OAuthSecureStorage {
-
-    /**
-     * Get token from secure storage.
-     * @return null if a secure token doesn't exist and {@link LinkedInOAuthRequestFilter} must create one.
-     */
-    OAuthToken getOAuthToken();
-
-    /**
-     * Save token to secure storage.
-     * Only called when {@link LinkedInOAuthRequestFilter} creates one.
-     * @param newToken
-     */
-    void saveOAuthToken(OAuthToken newToken);
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthToken.java b/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthToken.java
deleted file mode 100644
index 79650d1..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/java/org/apache/camel/component/linkedin/api/OAuthToken.java
+++ /dev/null
@@ -1,50 +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.component.linkedin.api;
-
-/**
-* LinkedIn OAuth Token
-*/
-public final class OAuthToken {
-
-    private final String refreshToken;
-    private final String accessToken;
-    private long expiryTime;
-
-    public OAuthToken(String refreshToken, String accessToken, long expiryTime) {
-        this.refreshToken = refreshToken;
-        this.accessToken = accessToken;
-        this.expiryTime = expiryTime;
-    }
-
-    public String getRefreshToken() {
-        return refreshToken;
-    }
-
-    public String getAccessToken() {
-        return accessToken;
-    }
-
-    public long getExpiryTime() {
-        return expiryTime;
-    }
-
-    // package method for testing only
-    void setExpiryTime(long expiryTime) {
-        this.expiryTime = expiryTime;
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/resources/linkedin-api-schema.xjb b/components/camel-linkedin/camel-linkedin-api/src/main/resources/linkedin-api-schema.xjb
deleted file mode 100644
index 48ed025..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/resources/linkedin-api-schema.xjb
+++ /dev/null
@@ -1,478 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
-  -->
-<bindings version="2.0" xmlns="http://java.sun.com/xml/ns/jaxb"
-    xmlns:xs="http://www.w3.org/2001/XMLSchema"
-	xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
-    extensionBindingPrefixes="xjc"
-    schemaLocation="linkedin-api-schema.xsd" node="/xs:schema">
-
-    <!-- Copied with permission from the linkedin-j library https://code.google.com/p/linkedin-j/ -->
-	<globalBindings localScoping="toplevel" generateValueClass="true">
-		<xjc:javaType name="Double" xmlType="xs:double"
-		    adapter="org.apache.camel.component.linkedin.api.DoubleAdapter"/>
-		<xjc:javaType name="Long" xmlType="xs:integer"
-		    adapter="org.apache.camel.component.linkedin.api.LongAdapter"/>
-		<!-- <xjc:superInterface name="SchemaEntity"/> -->
-		<!-- <xjc:superClass name="BaseSchemaEntity"/> -->
-		<!-- <xjc:serializable uid="1L"/> -->
-		<!-- <xjc:serializable uid="6877416375268387499L"/> -->
-	</globalBindings>
-
-    <schemaBindings>
-      <package name="org.apache.camel.component.linkedin.api.model" />
-    </schemaBindings>
-
-	<bindings node="//xs:element[@name='order']/xs:simpleType">
-		<typesafeEnumClass name="Order">
-			<typesafeEnumMember name="RECENCY" value="recency"/>
-			<typesafeEnumMember name="POPULARITY" value="popularity"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='post-role']/xs:simpleType">
-		<typesafeEnumClass name="PostRole">
-			<typesafeEnumMember name="CREATOR" value="creator"/>
-			<typesafeEnumMember name="COMMENTER" value="commenter"/>
-			<typesafeEnumMember name="FOLLOWER" value="follower"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='event-type']/xs:simpleType">
-		<typesafeEnumClass name="EventType">
-			<typesafeEnumMember name="JOB_POSTING" value="job-posting"/>
-			<typesafeEnumMember name="NEW_PRODUCT" value="new-product"/>
-			<typesafeEnumMember name="STATUS_UPDATE" value="status-update"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='time-granularity']/xs:simpleType">
-		<typesafeEnumClass name="TimeGranularity">
-			<typesafeEnumMember name="DAY" value="day"/>
-			<typesafeEnumMember name="MONTH" value="month"/>
-		</typesafeEnumClass>
-	</bindings>
-
-	<bindings node="//xs:element[@name='content-type']/xs:simpleType">
-		<typesafeEnumClass name="NetworkUpdateContentType">
-			<typesafeEnumMember name="LINKED_IN_HTML" value="linkedin-html"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='connect-type']/xs:simpleType">
-		<typesafeEnumClass name="InviteConnectType" >
-			<typesafeEnumMember name="FRIEND" value="friend"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='update-type']/xs:simpleType">
-		<typesafeEnumClass name="NetworkUpdateReturnType">
-			<typesafeEnumMember name="ANSWER_UPDATE" value="ANSW"/>
-			<typesafeEnumMember name="APPLICATION_CONNECTION_UPDATE" value="APPM"/>
-			<typesafeEnumMember name="APPLICATION_TO_MEMBER_UPDATE" value="APPS"/>
-			<typesafeEnumMember name="COMPANY_UPDATED" value="CMPY"/>
-			<typesafeEnumMember name="CONNECTION_ADDED_CONNECTIONS" value="CONN"/>
-			<typesafeEnumMember name="NEW_CONNECTIONS" value="NCON"/>
-			<typesafeEnumMember name="CONTACT_JOINED" value="CCEM"/>
-			<typesafeEnumMember name="JOB_POSTED" value="JOBP"/>
-			<typesafeEnumMember name="CONNECTION_JOINED_GROUP" value="JGRP"/>
-			<typesafeEnumMember name="MEMBER_STARTS_FOLLOWING_COMPANY" value="MSFC"/>
-			<typesafeEnumMember name="PEOPLE_FOLLOW_UPDATE" value="PFOL"/>
-			<typesafeEnumMember name="CONNECTION_UPDATED_PICTURE" value="PICU"/>
-			<typesafeEnumMember name="CONNECTION_RECOMMENDED" value="PREC"/>
-			<typesafeEnumMember name="CONNECTION_PROFILE_UPDATE" value="PRFU"/>
-			<typesafeEnumMember name="CONNECTION_UPDATED_PROFILE" value="PROF"/>
-			<typesafeEnumMember name="QUESTION_UPDATED" value="QSTN"/>
-			<typesafeEnumMember name="STATUS_UPDATED" value="STAT"/>
-			<typesafeEnumMember name="RECOMMENDATIONS_UPDATE" value="SVPR"/>
-			<typesafeEnumMember name="EXTENDED_PROFILE_UPDATED" value="PRFX"/>
-			<typesafeEnumMember name="SHARED_ITEM" value="SHAR"/>
-			<typesafeEnumMember name="VIRAL_UPDATE" value="VIRL"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='recommendation-type']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="RecommendationCode">
-			<typesafeEnumMember name="COLLEAGUE" value="colleague"/>
-			<typesafeEnumMember name="BUSINESS_PARTNER" value="business-partner"/>
-			<typesafeEnumMember name="SERVICE_PROVIDER" value="service-provider"/>
-			<typesafeEnumMember name="EDUCATION" value="education"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='im-account-type']/xs:simpleType">
-		<typesafeEnumClass name="ImAccountType">
-			<typesafeEnumMember name="AIM" value="aim"/>
-			<typesafeEnumMember name="GTALK" value="gtalk"/>
-			<typesafeEnumMember name="ICQ" value="icq"/>
-			<typesafeEnumMember name="MSN" value="msn"/>
-			<typesafeEnumMember name="SKYPE" value="skype"/>
-			<typesafeEnumMember name="YAHOO" value="yahoo"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='phone-type']/xs:simpleType">
-		<typesafeEnumClass name="PhoneType">
-			<typesafeEnumMember name="HOME" value="home"/>
-			<typesafeEnumMember name="WORK" value="work"/>
-			<typesafeEnumMember name="MOBILE" value="mobile"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='level']/xs:simpleType">
-		<typesafeEnumClass name="ProficiencyLevelType">
-			<typesafeEnumMember name="ELEMENTARY" value="elementary"/>
-			<typesafeEnumMember name="LIMITED_WORKING" value="limited_working"/>
-			<typesafeEnumMember name="PROFESSIONAL_WORKING" value="professional_working"/>
-			<typesafeEnumMember name="FULL_PROFESSIONAL" value="full_professional"/>
-			<typesafeEnumMember name="NATIVE_BILINGUAL" value="native_or_bilingual"/>
-			<typesafeEnumMember name="BEGINNER" value="beginner"/>
-			<typesafeEnumMember name="INTERMEDIATE" value="intermediate"/>
-			<typesafeEnumMember name="ADVANCED" value="advanced"/>
-			<typesafeEnumMember name="EXPERT" value="expert"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='facet']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="FacetType">
-			<typesafeEnumMember name="LOCATION" value="location"/>
-			<typesafeEnumMember name="INDUSTRY" value="industry"/>
-			<typesafeEnumMember name="NETWORK" value="network"/>
-			<typesafeEnumMember name="LANGUAGE" value="language"/>
-			<typesafeEnumMember name="CURRENT_COMPANY" value="current-company"/>
-			<typesafeEnumMember name="PAST_COMPANY" value="past-company"/>
-			<typesafeEnumMember name="SCHOOL" value="school"/>
-			<typesafeEnumMember name="COMPANY_SIZE" value="company-size"/>
-			<typesafeEnumMember name="NUM_FOLLOWERS_RANGE" value="num-followers-range"/>
-			<typesafeEnumMember name="FORTUNE" value="fortune"/>
-			<typesafeEnumMember name="COMPANY" value="company"/>
-			<typesafeEnumMember name="DATE_POSTED" value="date-posted"/>
-			<typesafeEnumMember name="JOB_FUNCTION" value="job-function"/>
-			<typesafeEnumMember name="EXPERIENCE_LEVEL" value="experience-level"/>
-			<typesafeEnumMember name="SALARY" value="salary"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='visibility']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="VisibilityType">
-			<typesafeEnumMember name="ANYONE" value="anyone"/>
-			<typesafeEnumMember name="ALL_MEMBERS" value="all-members"/>
-			<typesafeEnumMember name="CONNECTIONS_ONLY" value="connections-only"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='role']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="RoleCode">
-			<typesafeEnumMember name="HIRING_MANAGER" value="H"/>
-			<typesafeEnumMember name="COMPANY_RECRUITER" value="R"/>
-			<typesafeEnumMember name="STAFFING_FIRM" value="S"/>
-			<typesafeEnumMember name="COMPANY_EMPLOYEE" value="W"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='profile-field']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="ProfileFieldCode">
-			<typesafeEnumMember name="DESCRIPTION" value="description"/>
-			<typesafeEnumMember name="SPECIALITY" value="speciality"/>
-			<typesafeEnumMember name="LOGO" value="logo"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='job-type']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="JobTypeCode">
-			<typesafeEnumMember name="FULL_TIME" value="F"/>
-			<typesafeEnumMember name="PART_TIME" value="P"/>
-			<typesafeEnumMember name="CONTRACT" value="C"/>
-			<typesafeEnumMember name="TEMPORARY" value="T"/>
-			<typesafeEnumMember name="OTHER" value="O"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='experience-level']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="ExperienceLevelCode">
-			<typesafeEnumMember name="NOT_APPLICABLE" value="0"/>
-			<typesafeEnumMember name="INTERNSHIP" value="1"/>
-			<typesafeEnumMember name="ENTRY_LEVEL" value="2"/>
-			<typesafeEnumMember name="ASSOCIATE" value="3"/>
-			<typesafeEnumMember name="MID_SENIOR_LEVEL" value="4"/>
-			<typesafeEnumMember name="DIRECTOR" value="5"/>
-			<typesafeEnumMember name="EXECUTIVE" value="6"/>			
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:complexType[@name='company-status']/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="CompanyStatusCode">
-			<typesafeEnumMember name="OPERATING" value="OPR"/>
-			<typesafeEnumMember name="OPERATING_SUBSIDIARY" value="OPS"/>
-			<typesafeEnumMember name="REORGANIZING" value="RRG"/>
-			<typesafeEnumMember name="OUT_OF_BUSINESS" value="OOB"/>
-			<typesafeEnumMember name="ACQUIRED" value="ACQ"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='company-type']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="CompanyTypeCode">
-			<typesafeEnumMember name="PUBLIC_COMPANY" value="C"/>
-			<typesafeEnumMember name="EDUCATIONAL" value="D"/>
-			<typesafeEnumMember name="SELF_EMPLOYED" value="E"/>
-			<typesafeEnumMember name="GOVT_AGENCY" value="G"/>
-			<typesafeEnumMember name="NON_PROFIT" value="N"/>
-			<typesafeEnumMember name="SELF_OWNED" value="O"/>
-			<typesafeEnumMember name="PRIVATELY_HELD" value="P"/>
-			<typesafeEnumMember name="PARTNERSHIP" value="S"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='stock-exchange']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="StockExchangeCode">
-			<typesafeEnumMember name="AMERICAN_STOCK_EXCHANGE" value="ASE"/>
-			<typesafeEnumMember name="NEWYORK_STOCK_EXCHANGE" value="NYS"/>
-			<typesafeEnumMember name="NASDAQ" value="NMS"/>
-			<typesafeEnumMember name="LONDON_STOCK_EXCHANGE" value="LSE"/>
-			<typesafeEnumMember name="FRANKFURT_STOCK_EXCHANGE" value="FRA"/>
-			<typesafeEnumMember name="XETRA_TRADING_PLATFORM" value="GER"/>
-			<typesafeEnumMember name="EURONEXT_PARIS" value="PAR"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='job-function']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="JobFunctionCode">
-			<typesafeEnumMember name="ACCOUNTING_AUDITING" value="acct"/>
-			<typesafeEnumMember name="ADMINISTRATIVE" value="adm"/>
-			<typesafeEnumMember name="ADVERTISING" value="advr"/>
-			<typesafeEnumMember name="ANALYST" value="anls"/>
-			<typesafeEnumMember name="ART_CREATIVE" value="art"/>
-			<typesafeEnumMember name="BUSINESS_DEVELOPMENT" value="bd"/>
-			<typesafeEnumMember name="CONSULTING" value="cnsl"/>
-			<typesafeEnumMember name="CUSTOMER_SERVICE" value="cust"/>
-			<typesafeEnumMember name="DISTRIBUTION" value="dist"/>
-			<typesafeEnumMember name="DESIGN" value="dsgn"/>
-			<typesafeEnumMember name="EDUCATION" value="edu"/>
-			<typesafeEnumMember name="ENGINEERING" value="eng"/>
-			<typesafeEnumMember name="FINANCE" value="fin"/>
-			<typesafeEnumMember name="GENERAL_BUSINESS" value="genb"/>
-			<typesafeEnumMember name="HUMAN_RESOURCES" value="hr"/>
-			<typesafeEnumMember name="INFORMATION_TECHNOLOGY" value="it"/>
-			<typesafeEnumMember name="LEGAL" value="lgl"/>
-			<typesafeEnumMember name="MANAGEMENT" value="mgmt"/>
-			<typesafeEnumMember name="MANUFACTURING" value="mnfc"/>
-			<typesafeEnumMember name="MARKETING" value="mrkt"/>
-			<typesafeEnumMember name="OTHER" value="othr"/>
-			<typesafeEnumMember name="PUBLIC_RELATIONS" value="pr"/>
-			<typesafeEnumMember name="PURCHASING" value="prch"/>
-			<typesafeEnumMember name="PRODUCT_MANAGEMENT" value="prdm"/>
-			<typesafeEnumMember name="PROJECT_MANAGEMENT" value="prjm"/>
-			<typesafeEnumMember name="PRODUCTION" value="prod"/>
-			<typesafeEnumMember name="QUALITY_ASSURANCE" value="qa"/>
-			<typesafeEnumMember name="RESEARCH" value="rsch"/>
-			<typesafeEnumMember name="SALES" value="sale"/>
-			<typesafeEnumMember name="SCIENCE" value="sci"/>
-			<typesafeEnumMember name="STRATEGY_PLANNING" value="stra"/>
-			<typesafeEnumMember name="SUPPLY_CHAIN" value="supl"/>
-			<typesafeEnumMember name="TRAINING" value="trng"/>
-			<typesafeEnumMember name="WRITING_EDITING" value="wrt"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='membership-state']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="MembershipStateCode">
-			<typesafeEnumMember name="BLOCKED" value="blocked"/>
-			<typesafeEnumMember name="NON_MEMBER" value="non-member"/>
-			<typesafeEnumMember name="AWAITING_CONFIRMATION" value="awaiting-confirmation"/>
-			<typesafeEnumMember name="AWAITING_PARENT_GROUP_CONFIRMATION" value="awaiting-parent-group-confirmation"/>
-			<typesafeEnumMember name="MEMBER" value="member"/>
-			<typesafeEnumMember name="MODERATOR" value="moderator"/>
-			<typesafeEnumMember name="MANAGER" value="manager"/>
-			<typesafeEnumMember name="OWNER" value="owner"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='email-digest-frequency']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="EmailDigestFrequencyCode">
-			<typesafeEnumMember name="NONE" value="none"/>
-			<typesafeEnumMember name="DAILY" value="daily"/>
-			<typesafeEnumMember name="WEEKLY" value="weekly"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='category']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="PostCategoryCode">
-			<typesafeEnumMember name="DISCUSSION" value="discussion"/>
-			<typesafeEnumMember name="JOB" value="job"/>
-			<typesafeEnumMember name="PROMOTION" value="promotion"/>
-			<typesafeEnumMember name="LINKEDIN_JOB" value="linkedin-job"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:complexType[@name='GroupCategory']/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="GroupCategoryCode">
-			<typesafeEnumMember name="ALUMNI" value="alumni"/>
-			<typesafeEnumMember name="CORPORATE" value="corporate"/>
-			<typesafeEnumMember name="CONFERENCE" value="conference"/>
-			<typesafeEnumMember name="NETWORK" value="network"/>
-			<typesafeEnumMember name="PHILANTHROPIC" value="philanthropic"/>
-			<typesafeEnumMember name="PROFESSIONAL" value="professional"/>
-			<typesafeEnumMember name="OTHER" value="other"/>
-		</typesafeEnumClass>
-	</bindings>
-	<bindings node="//xs:element[@name='post']/xs:complexType/xs:sequence/xs:element[@name='type']/xs:complexType/xs:sequence/xs:element[@name='code']/xs:simpleType">
-		<typesafeEnumClass name="PostTypeCode">
-			<typesafeEnumMember name="STANDARD" value="standard"/>
-			<typesafeEnumMember name="NEWS" value="news"/>
-		</typesafeEnumClass>
-	</bindings>
-
-	<bindings node="//xs:element[@name='updates']/xs:complexType/xs:sequence/xs:element[@ref='update']">
-		<property name="updateList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='recipients']/xs:complexType/xs:sequence/xs:element[@ref='recipient']">
-		<property name="recipientList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='network-stats']/xs:complexType/xs:sequence/xs:element[@ref='property']">
-		<property name="propertyList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='question-categories']/xs:complexType/xs:sequence/xs:element[@ref='question-category']">
-		<property name="questionCategoryList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='answers']/xs:complexType/xs:sequence/xs:element[@ref='answer']">
-		<property name="answerList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='update-comments']/xs:complexType/xs:sequence/xs:element[@ref='update-comment']">
-		<property name="updateCommentList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='people']/xs:complexType/xs:sequence/xs:element[@ref='person']">
-		<property name="personList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='positions']/xs:complexType/xs:sequence/xs:element[@ref='position']">
-		<property name="positionList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='three-current-positions']/xs:complexType/xs:sequence/xs:element[@ref='position']">
-		<property name="positionList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='three-past-positions']/xs:complexType/xs:sequence/xs:element[@ref='position']">
-		<property name="positionList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='educations']/xs:complexType/xs:sequence/xs:element[@ref='education']">
-		<property name="educationList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='member-groups']/xs:complexType/xs:sequence/xs:element[@ref='member-group']">
-		<property name="memberGroupList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='person-activities']/xs:complexType/xs:sequence/xs:element[@ref='activity']">
-		<property name="activityList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='recommendations-given']/xs:complexType/xs:sequence/xs:element[@ref='recommendation']">
-		<property name="recommendationList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='recommendations-received']/xs:complexType/xs:sequence/xs:element[@ref='recommendation']">
-		<property name="recommendationList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='connections']/xs:complexType/xs:sequence/xs:element[@ref='person']">
-		<property name="personList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='headers']/xs:complexType/xs:sequence/xs:element[@ref='http-header']">
-		<property name="httpHeaderList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='im-accounts']/xs:complexType/xs:sequence/xs:element[@ref='im-account']">
-		<property name="imAccountList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='twitter-accounts']/xs:complexType/xs:sequence/xs:element[@ref='twitter-account']">
-		<property name="twitterAccountList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='phone-numbers']/xs:complexType/xs:sequence/xs:element[@ref='phone-number']">
-		<property name="phoneNumberList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='member-url-resources']/xs:complexType/xs:sequence/xs:element[@ref='member-url']">
-		<property name="memberUrlList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='facets']/xs:complexType/xs:sequence/xs:element[@ref='facet']">
-		<property name="facetList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='buckets']/xs:complexType/xs:sequence/xs:element[@ref='bucket']">
-		<property name="bucketList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='likes']/xs:complexType/xs:sequence/xs:element[@ref='like']">
-		<property name="likeList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='certifications']/xs:complexType/xs:sequence/xs:element[@ref='certification']">
-		<property name="certificationList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='patents']/xs:complexType/xs:sequence/xs:element[@ref='patent']">
-		<property name="patentList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='publications']/xs:complexType/xs:sequence/xs:element[@ref='publication']">
-		<property name="publicationList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='skills']/xs:complexType/xs:sequence/xs:element[@ref='skill']">
-		<property name="skillList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='languages']/xs:complexType/xs:sequence/xs:element[@ref='language']">
-		<property name="languageList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='inventors']/xs:complexType/xs:sequence/xs:element[@ref='inventor']">
-		<property name="inventorList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='authors']/xs:complexType/xs:sequence/xs:element[@name='author']">
-		<property name="authorList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='related-connections']/xs:complexType/xs:sequence/xs:element[@ref='person']">
-		<property name="personList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='companies']/xs:complexType/xs:sequence/xs:element[@ref='company']">
-		<property name="companyList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='products']/xs:complexType/xs:sequence/xs:element[@ref='product']">
-		<property name="productList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='job-bookmarks']/xs:complexType/xs:sequence/xs:element[@ref='job-bookmark']">
-		<property name="jobBookmarkList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='jobs']/xs:complexType/xs:sequence/xs:element[@ref='job']">
-		<property name="jobList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='email-domains']/xs:complexType/xs:sequence/xs:element[@ref='email-domain']">
-		<property name="emailDomainList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='locations']/xs:complexType/xs:sequence/xs:element[@ref='location']">
-		<property name="locationList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='recommendations']/xs:complexType/xs:sequence/xs:element[@ref='recommendation']">
-		<property name="recommendationList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='job-functions']/xs:complexType/xs:sequence/xs:element[@ref='job-function']">
-		<property name="jobFunctionList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='industries']/xs:complexType/xs:sequence/xs:element[@ref='industry']">
-		<property name="industryList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='specialties']/xs:complexType/xs:sequence/xs:element[@ref='specialty']">
-		<property name="specialtyList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='features']/xs:complexType/xs:sequence/xs:element[@ref='feature']">
-		<property name="featureList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='sales-persons']/xs:complexType/xs:sequence/xs:element[@ref='person']">
-		<property name="personList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='posts']/xs:complexType/xs:sequence/xs:element[@ref='post']">
-		<property name="postList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='comments']/xs:complexType/xs:sequence/xs:element[@ref='comment']">
-		<property name="commentList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='available-actions']/xs:complexType/xs:sequence/xs:element[@ref='action']">
-		<property name="actionList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='group-memberships']/xs:complexType/xs:sequence/xs:element[@ref='group-membership']">
-		<property name="groupMembershipList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='groups']/xs:complexType/xs:sequence/xs:element[@ref='group']">
-		<property name="groupList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='historical-follow-statistics']/xs:complexType/xs:sequence/xs:element[@name='statistic']">
-		<property name="statisticList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='historical-status-update-statistics']/xs:complexType/xs:sequence/xs:element[@name='statistic']">
-		<property name="statisticList"/>
-	</bindings>
-	<bindings node="//xs:element[@name='historical-follow-statistics']/xs:complexType/xs:sequence/xs:element[@name='statistic']/xs:complexType">
-		<class name="HistoricalFollowStatistic"/>
-	</bindings>
-	<bindings node="//xs:element[@name='historical-status-update-statistics']/xs:complexType/xs:sequence/xs:element[@name='statistic']/xs:complexType">
-		<class name="HistoricalStatusUpdateStatistic"/>
-	</bindings>
-	<bindings node="//xs:element[@name='share-target-reach']/xs:complexType/xs:sequence/xs:element[@name='share-targets']/xs:complexType/xs:sequence/xs:element[@name='share-target']">
-		<property name="shareTargetList"/>
-	</bindings>
-</bindings>
\ No newline at end of file
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/resources/linkedin-api-schema.xsd b/components/camel-linkedin/camel-linkedin-api/src/main/resources/linkedin-api-schema.xsd
deleted file mode 100644
index 0998ebb..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/resources/linkedin-api-schema.xsd
+++ /dev/null
@@ -1,2293 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
-  <!-- Copied with permission from the linkedin-j library https://code.google.com/p/linkedin-j/ -->
-  <xs:element name="activity">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" ref="timestamp"/>
-        <xs:element minOccurs="0" ref="content-type"/>
-        <xs:element ref="body"/>
-        <xs:element minOccurs="0" ref="app-id"/>
-      </xs:sequence>
-      <xs:attribute name="locale" use="required" type="xs:string"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="content-type">
-    <xs:simpleType>
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="linkedin-html"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="app-id" type="xs:NMTOKEN"/>
-  <xs:element name="error">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="status" type="xs:integer"/>
-        <xs:element ref="timestamp"/>
-        <xs:element ref="error-code"/>
-        <xs:element ref="message"/>
-        <xs:element ref="request-id"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="error-code" type="xs:string"/>
-  <xs:element name="message" type="xs:string"/>
-  <xs:element name="request-id" type="xs:string"/>
-  <xs:element name="mailbox-item">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="recipients"/>
-        <xs:element ref="subject"/>
-        <xs:element ref="body"/>
-        <xs:element minOccurs="0" ref="item-content"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="recipients">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="recipient"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="recipient">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="person"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="subject" type="xs:string"/>
-  <xs:element name="item-content">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="invitation-request"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="invitation-request">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="connect-type"/>
-        <xs:element ref="authorization"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="connect-type">
-    <xs:simpleType>
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="friend"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="authorization">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="name"/>
-        <xs:element ref="value"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="network">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="network-stats"/>
-        <xs:element ref="updates"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="network-stats">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="property"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="property">
-    <xs:complexType>
-      <xs:simpleContent>
-        <xs:extension base="xs:integer">
-          <xs:attribute name="key" use="required" type="xs:string"/>
-        </xs:extension>
-      </xs:simpleContent>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="updates">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="update"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-      <xs:attribute name="count" type="xs:integer"/>
-      <xs:attribute name="start" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="update">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="timestamp"/>
-        <xs:element ref="update-key"/>
-        <xs:element ref="update-type"/>
-        <xs:element ref="update-content"/>
-        <xs:element ref="is-commentable"/>
-        <xs:element ref="is-likable"/>
-        <xs:element ref="is-liked"/>
-        <xs:element ref="num-likes"/>
-        <xs:element minOccurs="0" ref="update-comments"/>
-        <xs:element minOccurs="0" ref="likes"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="update-key" type="xs:string"/>
-  <xs:element name="update-type">
-    <xs:simpleType>
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="ANSW"/>
-        <xs:enumeration value="APPM"/>
-        <xs:enumeration value="APPS"/>
-        <xs:enumeration value="CMPY"/>
-        <xs:enumeration value="CONN"/>
-        <xs:enumeration value="NCON"/>
-        <xs:enumeration value="CCEM"/>
-        <xs:enumeration value="JOBP"/>
-        <xs:enumeration value="JGRP"/>
-        <xs:enumeration value="MSFC"/>
-        <xs:enumeration value="PFOL"/>
-        <xs:enumeration value="PICU"/>
-        <xs:enumeration value="PREC"/>
-        <xs:enumeration value="PRFU"/>
-        <xs:enumeration value="PROF"/>
-        <xs:enumeration value="QSTN"/>
-        <xs:enumeration value="STAT"/>
-        <xs:enumeration value="SVPR"/>
-        <xs:enumeration value="PRFX"/>
-        <xs:enumeration value="SHAR"/>
-        <xs:enumeration value="VIRL"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="group">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="name"/>
-        <xs:element ref="short-description"/>
-        <xs:element ref="description"/>
-        <xs:element ref="relation-to-viewer"/>
-        <xs:element ref="counts-by-category"/>
-        <xs:element minOccurs="0" ref="is-open-to-non-members"/>
-        <xs:element name="category" type="GroupCategory"/>
-        <xs:element ref="site-group-url"/>
-        <xs:element ref="contact-email"/>
-        <xs:element ref="locale"/>
-        <xs:element minOccurs="0" ref="allow-member-invites"/>
-        <xs:element ref="small-logo-url"/>
-        <xs:element ref="large-logo-url"/>
-        <xs:element ref="posts"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="short-description" type="xs:string"/>
-  <xs:element name="counts-by-category">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="count-for-category"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="count-for-category">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="category"/>
-        <xs:element ref="count"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="is-open-to-non-members" type="xs:boolean"/>
-  <xs:element name="site-group-url" type="xs:anyURI"/>
-  <xs:element name="locale" type="xs:NCName"/>
-  <xs:element name="allow-member-invites" type="xs:boolean"/>
-  <xs:element name="small-logo-url" type="xs:anyURI"/>
-  <xs:element name="large-logo-url" type="xs:anyURI"/>
-  <xs:element name="membership-state">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="blocked"/>
-              <xs:enumeration value="non-member"/>
-              <xs:enumeration value="awaiting-confirmation"/>
-              <xs:enumeration value="awaiting-parent-group-confirmation"/>
-              <xs:enumeration value="member"/>
-              <xs:enumeration value="moderator"/>
-              <xs:enumeration value="manager"/>
-              <xs:enumeration value="owner"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="contact-email" type="xs:string"/>
-  <xs:element name="update-content">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" ref="person"/>
-        <xs:element minOccurs="0" ref="update-action"/>
-        <xs:element minOccurs="0" ref="job"/>
-        <xs:element minOccurs="0" ref="question"/>
-        <xs:element minOccurs="0" ref="company"/>
-        <xs:element minOccurs="0" ref="company-job-update"/>
-        <xs:element minOccurs="0" ref="company-status-update"/>
-        <xs:element minOccurs="0" ref="company-person-update"/>
-        <xs:element minOccurs="0" ref="company-profile-update"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="update-action">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="action"/>
-        <xs:element ref="original-update"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="original-update">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="timestamp"/>
-        <xs:element ref="update-key"/>
-        <xs:element ref="update-type"/>
-        <xs:element ref="update-content"/>
-        <xs:element ref="updated-fields"/>
-        <xs:element ref="is-commentable"/>
-        <xs:element minOccurs="0" ref="update-comments"/>
-        <xs:element ref="is-likable"/>
-        <xs:element ref="is-liked"/>
-        <xs:element ref="num-likes"/>
-        <xs:element minOccurs="0" ref="likes"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="updated-fields">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="update-field">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="name" type="xs:string"/>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-      </xs:sequence>
-      <xs:attribute name="count" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="posts">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="post"/>
-      </xs:sequence>
-      <xs:attribute name="count" use="required" type="xs:integer"/>
-      <xs:attribute name="start" use="required" type="xs:integer"/>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="post">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element name="type">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="code">
-                <xs:simpleType>
-                  <xs:restriction base="xs:string">
-                    <xs:enumeration value="standard"/>
-                    <xs:enumeration value="news"/>
-                  </xs:restriction>
-                </xs:simpleType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element minOccurs="0" ref="category"/>
-        <xs:element ref="creation-timestamp"/>
-        <xs:element ref="creator"/>
-        <xs:element ref="summary"/>
-        <xs:element ref="title"/>
-        <xs:element ref="likes"/>
-        <xs:element ref="relation-to-viewer"/>
-        <xs:element ref="attachment"/>
-        <xs:element ref="comments"/>
-        <xs:element minOccurs="0" ref="site-group-post-url"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:complexType name="GroupCategory">
-    <xs:sequence>
-      <xs:element name="code">
-        <xs:simpleType>
-          <xs:restriction base="xs:string">
-            <xs:enumeration value="alumni"/>
-            <xs:enumeration value="corporate"/>
-            <xs:enumeration value="conference"/>
-            <xs:enumeration value="network"/>
-            <xs:enumeration value="philanthropic"/>
-            <xs:enumeration value="professional"/>
-            <xs:enumeration value="other"/>
-          </xs:restriction>
-        </xs:simpleType>
-      </xs:element>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:element name="category">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="discussion"/>
-              <xs:enumeration value="job"/>
-              <xs:enumeration value="promotion"/>
-              <xs:enumeration value="linkedin-job"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="creator">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" ref="id"/>
-        <xs:element ref="first-name"/>
-        <xs:element ref="last-name"/>
-        <xs:element ref="headline"/>
-        <xs:element ref="picture-url"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="attachment">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="summary"/>
-        <xs:element ref="title"/>
-        <xs:element ref="content-domain"/>
-        <xs:element ref="content-url"/>
-        <xs:element ref="image-url"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="content-domain" type="xs:NCName"/>
-  <xs:element name="content-url" type="xs:anyURI"/>
-  <xs:element name="image-url" type="xs:anyURI"/>
-  <xs:element name="comments">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="comment"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="comment">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="creation-timestamp"/>
-        <xs:element ref="creator"/>
-        <xs:element ref="id"/>
-        <xs:element ref="relation-to-viewer"/>
-        <xs:element ref="text"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="site-group-post-url" type="xs:anyURI"/>
-  <xs:element name="job">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="partner-job-id"/>
-        <xs:element ref="contract-id"/>
-        <xs:element minOccurs="0" ref="customer-job-code"/>
-        <xs:element minOccurs="0" ref="active"/>
-        <xs:sequence minOccurs="0">
-          <xs:element ref="posting-date"/>
-          <xs:element ref="expiration-date"/>
-        </xs:sequence>
-        <xs:sequence>
-          <xs:element ref="company"/>
-          <xs:element ref="description"/>
-          <xs:element ref="description-snippet"/>
-          <xs:element ref="position"/>
-          <xs:element ref="skills-and-experience"/>
-          <xs:element ref="expiration-timestamp"/>
-          <xs:element ref="job-poster"/>
-          <xs:element ref="location-description"/>
-          <xs:element ref="posting-timestamp"/>
-          <xs:element ref="salary"/>
-          <xs:element ref="site-job-request"/>
-          <xs:element ref="site-job-url"/>
-        </xs:sequence>
-        <xs:sequence minOccurs="0">
-          <xs:element ref="referral-bonus"/>
-          <xs:element ref="poster"/>
-          <xs:element ref="how-to-apply"/>
-          <xs:element ref="tracking-pixel-url"/>
-          <xs:element ref="renewal"/>
-        </xs:sequence>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="partner-job-id" type="xs:string"/>
-  <xs:element name="contract-id" type="xs:integer"/>
-  <xs:element name="customer-job-code" type="xs:string"/>
-  <xs:element name="active" type="xs:boolean"/>
-  <xs:element name="posting-date">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="year"/>
-        <xs:element ref="month"/>
-        <xs:element ref="day"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="expiration-date">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="year"/>
-        <xs:element ref="month"/>
-        <xs:element ref="day"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="expiration-timestamp" type="xs:integer"/>
-  <xs:element name="description-snippet" type="xs:string"/>
-  <xs:element name="job-poster">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="first-name"/>
-        <xs:element ref="last-name"/>
-        <xs:element ref="headline"/>
-        <xs:element minOccurs="0" ref="relation-to-viewer"/>
-        <xs:sequence minOccurs="0">
-          <xs:element ref="api-standard-profile-request"/>
-          <xs:element ref="site-standard-profile-request"/>
-        </xs:sequence>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="location-description" type="xs:string"/>
-  <xs:element name="posting-timestamp" type="xs:integer"/>
-  <xs:element name="salary" type="xs:string"/>
-  <xs:element name="site-job-url" type="xs:anyURI"/>
-  <xs:element name="referral-bonus" type="xs:string"/>
-  <xs:element name="poster">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="display"/>
-        <xs:element ref="role"/>
-        <xs:element ref="email-address"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="display" type="xs:boolean"/>
-  <xs:element name="role">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="H"/>
-              <xs:enumeration value="R"/>
-              <xs:enumeration value="S"/>
-              <xs:enumeration value="W"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="email-address" type="xs:string"/>
-  <xs:element name="how-to-apply">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="application-url"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="application-url" type="xs:anyURI"/>
-  <xs:element name="tracking-pixel-url" type="xs:anyURI"/>
-  <xs:element name="renewal">
-    <xs:complexType/>
-  </xs:element>
-  <xs:element name="companies">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="company"/>
-      </xs:sequence>
-      <xs:attribute name="count" type="xs:integer"/>
-      <xs:attribute name="start" type="xs:integer"/>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="question">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="title"/>
-        <xs:element ref="author"/>
-        <xs:element ref="question-categories"/>
-        <xs:element ref="web-url"/>
-        <xs:element ref="answers"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="question-categories">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="question-category"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="question-category">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="code"/>
-        <xs:element ref="name"/>
-      </xs:sequence>
-      <xs:attribute name="key" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="answers">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="answer"/>
-      </xs:sequence>
-      <xs:attribute name="count" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="answer">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="web-url"/>
-        <xs:element ref="author"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="company-job-update">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="job"/>
-        <xs:element ref="action"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="company-status-update">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="share"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="company-person-update">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="person"/>
-        <xs:element ref="action"/>
-        <xs:element ref="old-position"/>
-        <xs:element ref="new-position"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="old-position">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="title"/>
-        <xs:element ref="company"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="new-position">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="title"/>
-        <xs:element ref="company"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="company-profile-update">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="editor"/>
-        <xs:element ref="action"/>
-        <xs:element ref="profile-field"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="editor">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="first-name"/>
-        <xs:element ref="last-name"/>
-        <xs:element ref="headline"/>
-        <xs:element ref="api-standard-profile-request"/>
-        <xs:element ref="site-standard-profile-request"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="profile-field">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="description"/>
-              <xs:enumeration value="speciality"/>
-              <xs:enumeration value="logo"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="is-commentable" type="xs:boolean"/>
-  <xs:element name="update-comments">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="update-comment"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="is-likable" type="xs:boolean"/>
-  <xs:element name="num-likes" type="xs:integer"/>
-  <xs:element name="likes">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="like"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="like">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" ref="timestamp"/>
-        <xs:element ref="person"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="people">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="person"/>
-      </xs:sequence>
-      <xs:attribute name="count" use="required" type="xs:integer"/>
-      <xs:attribute name="start" use="required" type="xs:integer"/>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="person">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" ref="id"/>
-        <xs:sequence minOccurs="0">
-          <xs:element ref="first-name"/>
-          <xs:element ref="last-name"/>
-          <xs:element ref="headline"/>
-        </xs:sequence>
-        <xs:sequence minOccurs="0">
-          <xs:element ref="location"/>
-          <xs:element name="industry" type="xs:string"/>
-        </xs:sequence>
-        <xs:sequence minOccurs="0">
-          <xs:element ref="connections"/>
-          <xs:element ref="current-status"/>
-          <xs:element ref="current-share"/>
-          <xs:element ref="distance"/>
-          <xs:element ref="current-status-timestamp"/>
-          <xs:element ref="num-recommenders"/>
-          <xs:element ref="num-connections"/>
-          <xs:element ref="num-connections-capped"/>
-          <xs:element ref="relation-to-viewer"/>
-          <xs:element ref="summary"/>
-          <xs:element ref="public-profile-url"/>
-          <xs:element ref="interests"/>
-          <xs:element ref="associations"/>
-          <xs:element ref="honors"/>
-          <xs:element name="specialties" type="xs:string"/>
-          <xs:element ref="certifications"/>
-          <xs:element ref="patents"/>
-          <xs:element ref="publications"/>
-          <xs:element ref="skills"/>
-          <xs:element ref="languages"/>
-        </xs:sequence>
-        <xs:element minOccurs="0" ref="positions"/>
-        <xs:element minOccurs="0" ref="three-current-positions"/>
-        <xs:element minOccurs="0" ref="three-past-positions"/>
-        <xs:sequence minOccurs="0">
-          <xs:element ref="educations"/>
-          <xs:element ref="member-url-resources"/>
-        </xs:sequence>
-        <xs:sequence minOccurs="0">
-          <xs:element ref="api-standard-profile-request"/>
-          <xs:element ref="site-standard-profile-request"/>
-        </xs:sequence>
-        <xs:element minOccurs="0" ref="picture-url"/>
-        <xs:element minOccurs="0" ref="recommendations-given"/>
-        <xs:element minOccurs="0" ref="recommendations-received"/>
-        <xs:element minOccurs="0" ref="member-groups"/>
-        <xs:element minOccurs="0" ref="person-activities"/>
-        <xs:element minOccurs="0" ref="im-accounts"/>
-        <xs:element minOccurs="0" ref="twitter-accounts"/>
-        <xs:element minOccurs="0" ref="date-of-birth"/>
-        <xs:element minOccurs="0" ref="main-address"/>
-        <xs:element minOccurs="0" ref="phone-numbers"/>
-        <xs:element minOccurs="0" ref="following"/>
-      </xs:sequence>
-      <xs:attribute name="path"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="first-name" type="xs:string"/>
-  <xs:element name="last-name" type="xs:string"/>
-  <xs:element name="headline" type="xs:string"/>
-  <xs:element name="certifications">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="certification"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="certification">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="name"/>
-        <xs:element ref="authority"/>
-        <xs:element ref="number"/>
-        <xs:element ref="start-date"/>
-        <xs:element ref="end-date"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="authority">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="languages">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="language"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="patents">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="patent"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="patent">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="title"/>
-        <xs:element ref="date"/>
-        <xs:element ref="url"/>
-        <xs:element ref="summary"/>
-        <xs:element ref="number"/>
-        <xs:element ref="status"/>
-        <xs:element ref="office"/>
-        <xs:element ref="inventors"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="number" type="xs:string"/>
-  <xs:element name="office">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="inventors">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="inventor"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="inventor">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="name"/>
-        <xs:element ref="person"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="publications">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="publication"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="publication">
-    <xs:complexType>
-      <xs:sequence minOccurs="0">
-        <xs:element ref="date"/>
-        <xs:element ref="id"/>
-        <xs:element ref="summary"/>
-        <xs:element ref="title"/>
-        <xs:element ref="url"/>
-        <xs:element ref="authors"/>
-        <xs:element ref="publisher"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="authors">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" name="author" type="publication-author"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:complexType name="publication-author">
-    <xs:sequence>
-      <xs:element ref="id"/>
-      <xs:element ref="name"/>
-      <xs:element ref="person"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="publisher">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="skills">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="skill"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="status">
-    <xs:complexType>
-      <xs:sequence minOccurs="0">
-        <xs:element ref="id"/>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="date">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="year"/>
-        <xs:element ref="month"/>
-        <xs:element ref="day"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="language">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="proficiency"/>
-        <xs:element ref="id"/>
-        <xs:element name="language" type="name-type"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:complexType name="name-type">
-    <xs:sequence>
-      <xs:element ref="name"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="skill">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="proficiency"/>
-        <xs:element ref="years"/>
-        <xs:element ref="id"/>
-        <xs:element name="skill" type="name-type"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="years">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="proficiency">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="level"/>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="level">
-    <xs:simpleType>
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="elementary"/>
-        <xs:enumeration value="limited_working"/>
-        <xs:enumeration value="professional_working"/>
-        <xs:enumeration value="full_professional"/>
-        <xs:enumeration value="native_or_bilingual"/>
-        <xs:enumeration value="beginner"/>
-        <xs:enumeration value="intermediate"/>
-        <xs:enumeration value="advanced"/>
-        <xs:enumeration value="expert"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="current-share">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="timestamp"/>
-        <xs:element name="comment" type="xs:string"/>
-        <xs:element ref="content"/>
-        <xs:element ref="visibility"/>
-        <xs:element ref="source"/>
-        <xs:element ref="author"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="source">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="service-provider"/>
-        <xs:element ref="application"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="service-provider">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="application">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="location">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="description"/>
-        <xs:element ref="is-headquarters"/>
-        <xs:element ref="is-active"/>
-        <xs:element ref="address"/>
-        <xs:element ref="contact-info"/>
-        <xs:element ref="name"/>
-        <xs:element ref="postal-code"/>
-        <xs:element ref="country"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="is-headquarters" type="xs:boolean"/>
-  <xs:element name="is-active" type="xs:boolean"/>
-  <xs:element name="address">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="street1"/>
-        <xs:element minOccurs="0" ref="street2"/>
-        <xs:element ref="city"/>
-        <xs:element minOccurs="0" ref="state"/>
-        <xs:element ref="postal-code"/>
-        <xs:sequence minOccurs="0">
-          <xs:element ref="country-code"/>
-          <xs:element ref="region-code"/>
-        </xs:sequence>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="street1" type="xs:string"/>
-  <xs:element name="street2" type="xs:string"/>
-  <xs:element name="city" type="xs:string"/>
-  <xs:element name="state" type="xs:string"/>
-  <xs:element name="country-code" type="xs:string"/>
-  <xs:element name="region-code" type="xs:string"/>
-  <xs:element name="postal-code" type="xs:string"/>
-  <xs:element name="contact-info">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" ref="phone1"/>
-        <xs:element minOccurs="0" ref="phone2"/>
-        <xs:element minOccurs="0" ref="fax"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="phone1" type="xs:string"/>
-  <xs:element name="phone2" type="xs:string"/>
-  <xs:element name="fax" type="xs:string"/>
-  <xs:element name="country">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="code"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="code" type="xs:string"/>
-  <xs:element name="current-status-timestamp" type="xs:integer"/>
-  <xs:element name="num-recommenders" type="xs:integer"/>
-  <xs:element name="num-connections" type="xs:integer"/>
-  <xs:element name="num-connections-capped" type="xs:boolean"/>
-  <xs:element name="public-profile-url" type="xs:anyURI"/>
-  <xs:element name="relation-to-viewer">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="related-connections"/>
-        <xs:element ref="distance"/>
-        <xs:element minOccurs="0" ref="membership-state"/>
-        <xs:element ref="is-following"/>
-        <xs:element ref="is-liked"/>
-        <xs:element minOccurs="0" ref="available-actions"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="is-following">
-    <xs:complexType>
-      <xs:simpleContent>
-        <xs:extension base="xs:boolean"/>
-      </xs:simpleContent>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="following">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="people"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="available-actions">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="action"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="interests" type="xs:string"/>
-  <xs:element name="associations" type="xs:string"/>
-  <xs:element name="honors" type="xs:string"/>
-  <xs:element name="specialties">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="specialty"/>
-      </xs:sequence>
-      <xs:attribute name="total" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="specialty" type="xs:string"/>
-  <xs:element name="positions">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="position"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="three-current-positions">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="position"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="three-past-positions">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="position"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="position">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" ref="id"/>
-        <xs:element minOccurs="0" ref="title"/>
-        <xs:element minOccurs="0" ref="summary"/>
-        <xs:element minOccurs="0" ref="start-date"/>
-        <xs:element minOccurs="0" ref="end-date"/>
-        <xs:element ref="is-current"/>
-        <xs:element ref="company"/>
-        <xs:element ref="description"/>
-        <xs:element ref="description-snippet"/>
-        <xs:element ref="skills-and-experience"/>
-        <xs:element minOccurs="0" ref="location"/>
-        <xs:element ref="job-functions"/>
-        <xs:element ref="industries"/>
-        <xs:element ref="job-type"/>
-        <xs:element ref="experience-level"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="title" type="xs:string"/>
-  <xs:element name="is-current" type="xs:boolean"/>
-  <xs:element name="skills-and-experience" type="xs:string"/>
-  <xs:element name="job-functions">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="job-function"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="job-function">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="acct"/>
-              <xs:enumeration value="adm"/>
-              <xs:enumeration value="advr"/>
-              <xs:enumeration value="anls"/>
-              <xs:enumeration value="art"/>
-              <xs:enumeration value="bd"/>
-              <xs:enumeration value="cnsl"/>
-              <xs:enumeration value="cust"/>
-              <xs:enumeration value="dist"/>
-              <xs:enumeration value="dsgn"/>
-              <xs:enumeration value="edu"/>
-              <xs:enumeration value="eng"/>
-              <xs:enumeration value="fin"/>
-              <xs:enumeration value="genb"/>
-              <xs:enumeration value="hr"/>
-              <xs:enumeration value="it"/>
-              <xs:enumeration value="lgl"/>
-              <xs:enumeration value="mgmt"/>
-              <xs:enumeration value="mnfc"/>
-              <xs:enumeration value="mrkt"/>
-              <xs:enumeration value="othr"/>
-              <xs:enumeration value="pr"/>
-              <xs:enumeration value="prch"/>
-              <xs:enumeration value="prdm"/>
-              <xs:enumeration value="prjm"/>
-              <xs:enumeration value="prod"/>
-              <xs:enumeration value="qa"/>
-              <xs:enumeration value="rsch"/>
-              <xs:enumeration value="sale"/>
-              <xs:enumeration value="sci"/>
-              <xs:enumeration value="stra"/>
-              <xs:enumeration value="supl"/>
-              <xs:enumeration value="trng"/>
-              <xs:enumeration value="wrt"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="industries">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="industry"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="job-type">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="F"/>
-              <xs:enumeration value="P"/>
-              <xs:enumeration value="C"/>
-              <xs:enumeration value="T"/>
-              <xs:enumeration value="O"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="experience-level">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="0"/>
-              <xs:enumeration value="1"/>
-              <xs:enumeration value="2"/>
-              <xs:enumeration value="3"/>
-              <xs:enumeration value="4"/>
-              <xs:enumeration value="5"/>
-              <xs:enumeration value="6"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="company">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" ref="id"/>
-        <xs:element minOccurs="0" ref="universal-name"/>
-        <xs:element ref="description"/>
-        <xs:element name="industry" type="xs:string"/>
-        <xs:element ref="logo-url"/>
-        <xs:element ref="name"/>
-        <xs:element ref="type"/>
-        <xs:element ref="company-type"/>
-        <xs:element ref="size"/>
-        <xs:element ref="stock-exchange"/>
-        <xs:element ref="ticker"/>
-        <xs:element ref="specialties"/>
-        <xs:element ref="blog-rss-url"/>
-        <xs:element ref="twitter-id"/>
-        <xs:element ref="square-logo-url"/>
-        <xs:element ref="locations"/>
-        <xs:element ref="founded-year"/>
-        <xs:element ref="end-year"/>
-        <xs:element ref="num-followers"/>
-        <xs:element ref="email-domains"/>
-        <xs:element ref="website-url"/>
-        <xs:element name="status" type="company-status"/>
-        <xs:element ref="employee-count-range"/>
-      </xs:sequence>
-      <xs:attribute name="key"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:complexType name="company-status">
-    <xs:sequence>
-      <xs:element name="code">
-        <xs:simpleType>
-          <xs:restriction base="xs:string">
-            <xs:enumeration value="OPR"/>
-            <xs:enumeration value="OPS"/>
-            <xs:enumeration value="RRG"/>
-            <xs:enumeration value="OOB"/>
-            <xs:enumeration value="ACQ"/>
-          </xs:restriction>
-        </xs:simpleType>
-      </xs:element>
-      <xs:element ref="name"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="universal-name" type="xs:string"/>
-  <xs:element name="logo-url" type="xs:anyURI"/>
-  <xs:element name="website-url" type="xs:anyURI"/>
-  <xs:element name="company-search">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="companies"/>
-        <xs:element ref="num-results"/>
-        <xs:element ref="facets"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="type" type="xs:string"/>
-  <xs:complexType name="product-type">
-    <xs:sequence>
-      <xs:element ref="code"/>
-      <xs:element ref="name"/>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="company-type">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="C"/>
-              <xs:enumeration value="D"/>
-              <xs:enumeration value="E"/>
-              <xs:enumeration value="G"/>
-              <xs:enumeration value="N"/>
-              <xs:enumeration value="O"/>
-              <xs:enumeration value="P"/>
-              <xs:enumeration value="S"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="size" type="xs:NMTOKEN"/>
-  <xs:element name="stock-exchange">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="ASE"/>
-              <xs:enumeration value="NYS"/>
-              <xs:enumeration value="NMS"/>
-              <xs:enumeration value="LSE"/>
-              <xs:enumeration value="FRA"/>
-              <xs:enumeration value="GER"/>
-              <xs:enumeration value="PAR"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="ticker" type="xs:string"/>
-  <xs:element name="blog-rss-url" type="xs:anyURI"/>
-  <xs:element name="twitter-id" type="xs:string"/>
-  <xs:element name="square-logo-url" type="xs:anyURI"/>
-  <xs:element name="group-memberships">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="group-membership"/>
-      </xs:sequence>
-      <xs:attribute name="count" use="required" type="xs:integer"/>
-      <xs:attribute name="start" use="required" type="xs:integer"/>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="group-membership">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="group"/>
-        <xs:element ref="person"/>
-        <xs:element ref="membership-state"/>
-        <xs:element ref="contact-email"/>
-        <xs:element ref="show-group-logo-in-profile"/>
-        <xs:element ref="allow-messages-from-members"/>
-        <xs:element ref="email-digest-frequency"/>
-        <xs:element ref="email-announcements-from-managers"/>
-        <xs:element ref="email-for-every-new-post"/>
-      </xs:sequence>
-      <xs:attribute name="key" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="show-group-logo-in-profile" type="xs:boolean"/>
-  <xs:element name="allow-messages-from-members" type="xs:boolean"/>
-  <xs:element name="email-digest-frequency">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="none"/>
-              <xs:enumeration value="daily"/>
-              <xs:enumeration value="weekly"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="email-announcements-from-managers" type="xs:boolean"/>
-  <xs:element name="email-for-every-new-post" type="xs:boolean"/>
-  <xs:element name="groups">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="group"/>
-      </xs:sequence>
-      <xs:attribute name="count" use="required" type="xs:integer"/>
-      <xs:attribute name="start" use="required" type="xs:integer"/>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="job-bookmarks">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="job-bookmark"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="job-bookmark">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="is-applied"/>
-        <xs:element ref="is-saved"/>
-        <xs:element ref="saved-timestamp"/>
-        <xs:element minOccurs="0" ref="applied-timestamp"/>
-        <xs:element ref="job"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="is-applied" type="xs:boolean"/>
-  <xs:element name="is-saved" type="xs:boolean"/>
-  <xs:element name="saved-timestamp" type="xs:integer"/>
-  <xs:element name="applied-timestamp" type="xs:integer"/>
-  <xs:element name="job-suggestions">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="jobs"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="job-search">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="jobs"/>
-        <xs:element ref="facets"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="jobs">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="job"/>
-      </xs:sequence>
-      <xs:attribute name="count" use="required" type="xs:integer"/>
-      <xs:attribute name="start" use="required" type="xs:integer"/>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="products">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="product"/>
-      </xs:sequence>
-      <xs:attribute name="count" use="required" type="xs:integer"/>
-      <xs:attribute name="start" use="required" type="xs:integer"/>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="product">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="name"/>
-        <xs:element name="type" type="product-type"/>
-        <xs:element ref="description"/>
-        <xs:element ref="logo-url"/>
-        <xs:element ref="creation-timestamp"/>
-        <xs:element ref="features"/>
-        <xs:element ref="num-recommendations"/>
-        <xs:element ref="product-deal"/>
-        <xs:element ref="sales-persons"/>
-        <xs:element ref="video"/>
-        <xs:element minOccurs="0" ref="recommendations"/>
-        <xs:element ref="product-category"/>
-        <xs:element ref="website-url"/>
-        <xs:element minOccurs="0" ref="disclaimer"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="creation-timestamp" type="xs:integer"/>
-  <xs:element name="features">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="feature"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="feature" type="xs:string"/>
-  <xs:element name="num-recommendations" type="xs:integer"/>
-  <xs:element name="text" type="xs:string"/>
-  <xs:element name="product-deal">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="title"/>
-        <xs:element ref="url"/>
-        <xs:element ref="text"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="sales-persons">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="person" maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="video">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="title"/>
-        <xs:element ref="url"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="recommendations">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="recommendation"/>
-      </xs:sequence>
-      <xs:attribute name="count" use="required" type="xs:integer"/>
-      <xs:attribute name="start" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="product-category">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="code"/>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="disclaimer" type="xs:string"/>
-  <xs:element name="locations">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="location"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="founded-year" type="xs:integer"/>
-  <xs:element name="end-year" type="xs:integer"/>
-  <xs:element name="num-followers">
-      <xs:complexType>
-        <xs:simpleContent>
-            <xs:extension base="xs:integer"/>
-        </xs:simpleContent>
-      </xs:complexType>
-  </xs:element>
-  <xs:element name="email-domains">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="email-domain" maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="email-domain" type="xs:string"/>
-  <xs:element name="employee-count-range">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="code"/>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="action">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="code"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="educations">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="education"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="education">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="school-name"/>
-        <xs:element ref="degree"/>
-        <xs:element ref="notes"/>
-        <xs:element ref="activities"/>
-        <xs:element ref="field-of-study"/>
-        <xs:element ref="start-date"/>
-        <xs:element ref="end-date"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="school-name" type="xs:string"/>
-  <xs:element name="degree" type="xs:string"/>
-  <xs:element name="notes" type="xs:string"/>
-  <xs:element name="activities" type="xs:string"/>
-  <xs:element name="field-of-study" type="xs:string"/>
-  <xs:element name="member-url-resources">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="member-url"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="member-url">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="url"/>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="member-groups">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="member-group"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="member-group">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="name"/>
-        <xs:element ref="site-group-request"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="site-group-request">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="url"/>
-        <xs:element minOccurs="0" ref="headers"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="site-job-request">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="url"/>
-        <xs:element minOccurs="0" ref="headers"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="person-activities">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="activity"/>
-      </xs:sequence>
-      <xs:attribute name="count" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="api-standard-profile-request">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="url"/>
-        <xs:element ref="headers"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="site-standard-profile-request">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="url"/>
-        <xs:element minOccurs="0" ref="headers"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="picture-url" type="xs:anyURI"/>
-  <xs:element name="recommendations-given">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="recommendation"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="recommendations-received">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="recommendation"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="recommendation">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="recommendation-type"/>
-        <xs:element minOccurs="0" ref="recommendation-text"/>
-        <xs:element minOccurs="0" ref="recommendation-snippet"/>
-        <xs:element ref="recommender"/>
-        <xs:element ref="recommendee"/>
-        <xs:element minOccurs="0" ref="web-url"/>
-        <xs:element ref="product-id"/>
-        <xs:element ref="timestamp"/>
-        <xs:element minOccurs="0" ref="text"/>
-        <xs:element ref="reply"/>
-        <xs:element ref="likes"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="product-id" type="xs:integer"/>
-  <xs:element name="reply" type="xs:string"/>
-  <xs:element name="recommendation-type">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="business-partner"/>
-              <xs:enumeration value="colleague"/>
-              <xs:enumeration value="education"/>
-              <xs:enumeration value="service-provider"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="recommendation-snippet" type="xs:string"/>
-  <xs:element name="recommendation-text" type="xs:string"/>
-  <xs:element name="recommendee">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="first-name"/>
-        <xs:element ref="last-name"/>
-        <xs:element ref="headline"/>
-        <xs:element ref="picture-url"/>
-        <xs:element ref="api-standard-profile-request"/>
-        <xs:element ref="site-standard-profile-request"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="recommender">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="first-name"/>
-        <xs:element ref="last-name"/>
-        <xs:element ref="headline"/>
-        <xs:element ref="picture-url"/>
-        <xs:element ref="api-standard-profile-request"/>
-        <xs:element ref="site-standard-profile-request"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="web-url" type="xs:anyURI"/>
-  <xs:element name="body" type="xs:string"/>
-  <xs:element name="name" type="xs:string"/>
-  <xs:element name="value" type="xs:NMTOKEN"/>
-  <xs:element name="timestamp" type="xs:integer"/>
-  <xs:element name="current-status" type="xs:string"/>
-  <xs:element name="update-comment">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:sequence minOccurs="0">
-          <xs:element ref="id"/>
-          <xs:element ref="sequence-number"/>
-        </xs:sequence>
-        <xs:element name="comment" type="xs:string"/>
-        <xs:sequence minOccurs="0">
-          <xs:element ref="person"/>
-          <xs:element ref="timestamp"/>
-        </xs:sequence>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="sequence-number" type="xs:integer"/>
-  <xs:element name="connections">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="person"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-      <xs:attribute name="count" type="xs:integer"/>
-      <xs:attribute name="start" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="related-connections">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="person"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="id" type="xs:NMTOKEN"/>
-  <xs:element name="industry">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="code"/>
-        <xs:element ref="name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="distance">
-    <xs:complexType>
-      <xs:simpleContent>
-        <xs:extension base="xs:integer"/>
-      </xs:simpleContent>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="summary" type="xs:string"/>
-  <xs:element name="start-date">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="year"/>
-        <xs:element minOccurs="0" ref="month"/>
-        <xs:element minOccurs="0" ref="day"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="end-date">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="year"/>
-        <xs:element minOccurs="0" ref="month"/>
-        <xs:element minOccurs="0" ref="day"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="url" type="xs:anyURI"/>
-  <xs:element name="headers">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="http-header"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="http-header">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="name"/>
-        <xs:element ref="value"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="author">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="first-name"/>
-        <xs:element ref="last-name"/>
-        <xs:element ref="headline"/>
-        <xs:element minOccurs="0" ref="relation-to-viewer"/>
-        <xs:element ref="api-standard-profile-request"/>
-        <xs:element ref="site-standard-profile-request"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="im-accounts">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="im-account"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="im-account">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="im-account-type"/>
-        <xs:element ref="im-account-name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="im-account-type">
-    <xs:simpleType>
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="aim"/>
-        <xs:enumeration value="gtalk"/>
-        <xs:enumeration value="icq"/>
-        <xs:enumeration value="msn"/>
-        <xs:enumeration value="skype"/>
-        <xs:enumeration value="yahoo"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="im-account-name" type="xs:string"/>
-  <xs:element name="twitter-accounts">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="twitter-account"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="twitter-account">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="provider-account-id"/>
-        <xs:element ref="provider-account-name"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="provider-account-id" type="xs:integer"/>
-  <xs:element name="provider-account-name" type="xs:string"/>
-  <xs:element name="date-of-birth">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="year"/>
-        <xs:element ref="month"/>
-        <xs:element ref="day"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="day" type="xs:integer"/>
-  <xs:element name="main-address" type="xs:string"/>
-  <xs:element name="phone-numbers">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="phone-number"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="phone-number">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="phone-number" type="xs:string"/>
-        <xs:element ref="phone-type"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="year" type="xs:integer"/>
-  <xs:element name="month" type="xs:integer"/>
-  <xs:element name="phone-type">
-    <xs:simpleType>
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="home"/>
-        <xs:enumeration value="work"/>
-        <xs:enumeration value="mobile"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="people-search">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="num-results"/>
-        <xs:element minOccurs="0" ref="people"/>
-        <xs:element minOccurs="0" ref="facets"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="num-results" type="xs:integer"/>
-  <xs:element name="facets">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="facet"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="facet">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="name"/>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="location"/>
-              <xs:enumeration value="industry"/>
-              <xs:enumeration value="network"/>
-              <xs:enumeration value="language"/>
-              <xs:enumeration value="current-company"/>
-              <xs:enumeration value="past-company"/>
-              <xs:enumeration value="school"/>
-              <xs:enumeration value="company-size"/>
-              <xs:enumeration value="num-followers-range"/>
-              <xs:enumeration value="fortune"/>
-              <xs:enumeration value="company"/>
-              <xs:enumeration value="date-posted"/>
-              <xs:enumeration value="job-function"/>
-              <xs:enumeration value="experience-level"/>
-              <xs:enumeration value="salary"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-        <xs:element minOccurs="0" ref="buckets"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="buckets">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="bucket"/>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="bucket">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="name"/>
-        <xs:element ref="code"/>
-        <xs:element ref="count"/>
-        <xs:element minOccurs="0" ref="selected"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="selected" type="xs:boolean"/>
-  <xs:element name="share">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="id"/>
-        <xs:element ref="timestamp"/>
-        <xs:element name="comment" type="xs:string"/>
-        <xs:element ref="content"/>
-        <xs:element ref="visibility"/>
-        <xs:element ref="source"/>
-        <xs:element ref="author"/>
-        <xs:element minOccurs="0" ref="attribution"/>
-        <xs:element ref="share-target-reach"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="content">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element minOccurs="0" ref="id"/>
-        <xs:element ref="title"/>
-        <xs:element ref="submitted-url"/>
-        <xs:element minOccurs="0" ref="shortened-url"/>
-        <xs:element ref="submitted-image-url"/>
-        <xs:element minOccurs="0" ref="description"/>
-        <xs:element minOccurs="0" ref="thumbnail-url"/>
-        <xs:element minOccurs="0" ref="resolved-url"/>
-        <xs:element minOccurs="0" ref="eyebrow-url"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="description" type="xs:string"/>
-  <xs:element name="submitted-url" type="xs:anyURI"/>
-  <xs:element name="shortened-url" type="xs:anyURI"/>
-  <xs:element name="submitted-image-url" type="xs:anyURI"/>
-  <xs:element name="thumbnail-url" type="xs:anyURI"/>
-  <xs:element name="resolved-url" type="xs:anyURI"/>
-  <xs:element name="eyebrow-url" type="xs:anyURI"/>
-  <xs:element name="visibility">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="code">
-          <xs:simpleType>
-            <xs:restriction base="xs:string">
-              <xs:enumeration value="anyone"/>
-              <xs:enumeration value="all-members"/>
-              <xs:enumeration value="connections-only"/>
-            </xs:restriction>
-          </xs:simpleType>
-        </xs:element>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="attribution">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="share"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="is-liked">
-    <xs:complexType>
-      <xs:simpleContent>
-        <xs:extension base="xs:boolean"/>
-      </xs:simpleContent>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="is-company-share-enabled">
-    <xs:complexType>
-      <xs:simpleContent>
-        <xs:extension base="xs:boolean"/>
-      </xs:simpleContent>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="count" type="xs:integer"/>
-  <xs:element name="historical-follow-statistics">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="statistic" minOccurs="0" maxOccurs="unbounded">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="time" type="xs:integer"/>
-              <xs:element name="total-follower-count" type="xs:integer"/>
-              <xs:element name="organic-follower-count" type="xs:integer"/>
-              <xs:element name="paid-follower-count" type="xs:integer"/>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="historical-status-update-statistics">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="statistic" minOccurs="0" maxOccurs="unbounded">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="time" type="xs:integer"/>
-              <xs:element name="like-count" type="xs:integer"/>
-              <xs:element name="impression-count" type="xs:integer"/>
-              <xs:element name="click-count" type="xs:integer"/>
-              <xs:element name="comment-count" type="xs:integer"/>
-              <xs:element name="share-count" type="xs:integer"/>
-              <xs:element name="engagement" type="xs:integer"/>
-              <xs:element name="unique-count" type="xs:integer"/>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-      </xs:sequence>
-      <xs:attribute name="total" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="company-statistics">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="status-update-statistics">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="views-by-month">
-                <xs:complexType>
-                  <xs:sequence>
-                    <xs:element name="view-by-month" maxOccurs="unbounded" minOccurs="0">
-                      <xs:complexType>
-                        <xs:sequence>
-                          <xs:element name="date">
-                            <xs:complexType>
-                              <xs:sequence>
-                                <xs:element type="xs:short" name="year"/>
-                                <xs:element type="xs:integer" name="month"/>
-                              </xs:sequence>
-                            </xs:complexType>
-                          </xs:element>
-                          <xs:element type="xs:integer" name="clicks"/>
-                          <xs:element type="xs:integer" name="likes"/>
-                          <xs:element type="xs:integer" name="comments"/>
-                          <xs:element type="xs:integer" name="shares"/>
-                          <xs:element type="xs:integer" name="impressions"/>
-                          <xs:element type="xs:float" name="engagement" minOccurs="0"/>
-                        </xs:sequence>
-                      </xs:complexType>
-                    </xs:element>
-                  </xs:sequence>
-                  <xs:attribute type="xs:integer" name="total"/>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-        <xs:element name="follow-statistics">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element type="xs:integer" name="count"/>
-              <xs:element type="xs:integer" name="employee-count"/>
-              <xs:element type="xs:integer" name="non-employee-count"/>
-              <xs:element name="seniorities">
-                <xs:complexType>
-                  <xs:sequence>
-                    <xs:element name="seniority" maxOccurs="unbounded" minOccurs="0">
-                      <xs:complexType>
-                        <xs:sequence>
-                          <xs:element type="xs:integer" name="entry-key"/>
-                          <xs:element type="xs:integer" name="entry-value"/>
-                        </xs:sequence>
-                      </xs:complexType>
-                    </xs:element>
-                  </xs:sequence>
-                  <xs:attribute type="xs:integer" name="total"/>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="share-target-reach">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="share-targets">
-          <xs:complexType>
-            <xs:sequence>
-              <xs:element name="share-target" maxOccurs="unbounded" minOccurs="0">
-                <xs:complexType>
-                  <xs:sequence>
-                    <xs:element type="xs:string" name="code"/>
-                    <xs:element name="tvalues">
-                      <xs:complexType>
-                        <xs:sequence>
-                          <xs:element type="xs:string" name="tvalue"/>
-                        </xs:sequence>
-                      </xs:complexType>
-                    </xs:element>
-                  </xs:sequence>
-                </xs:complexType>
-              </xs:element>
-            </xs:sequence>
-          </xs:complexType>
-        </xs:element>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="order">
-    <xs:simpleType>
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="recency"/>
-        <xs:enumeration value="popularity"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="post-role">
-    <xs:simpleType>
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="creator"/>
-        <xs:enumeration value="commenter"/>
-        <xs:enumeration value="follower"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="event-type">
-    <xs:simpleType>
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="job-posting"/>
-        <xs:enumeration value="new-product"/>
-        <xs:enumeration value="status-update"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-  <xs:element name="time-granularity">
-    <xs:simpleType>
-      <xs:restriction base="xs:string">
-        <xs:enumeration value="day"/>
-        <xs:enumeration value="month"/>
-      </xs:restriction>
-    </xs:simpleType>
-  </xs:element>
-
-</xs:schema>
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/resources/linkedin-api-wadl.xml b/components/camel-linkedin/camel-linkedin-api/src/main/resources/linkedin-api-wadl.xml
deleted file mode 100644
index 7a8320e..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/resources/linkedin-api-wadl.xml
+++ /dev/null
@@ -1,1013 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<wadl:application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-                  xmlns:wadl="http://wadl.dev.java.net/2009/02"
-                  xmlns:tns="http://camel.apache.org/component/linkedin/api/model"
-                  xsi:schemaLocation="http://camel.apache.org/component/linkedin/api/model linkedin-api-schema.xsd
-                  http://wadl.dev.java.net/2009/02 http://www.w3.org/Submission/wadl/wadl.xsd">
-
-  <wadl:grammars>
-    <wadl:include href="linkedin-api-schema.xsd"/>
-  </wadl:grammars>
-
-  <wadl:resources base="http://api.linkedin.com/v1/">
-
-    <!-- People -->
-    <wadl:resource path="people" id="People">
-
-      <wadl:resource path="~{fields}">
-        <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/profile-api]]></wadl:doc>
-        <wadl:method name="GET" id="getPerson">
-          <wadl:request>
-            <wadl:param href="#fields-selector"/>
-            <wadl:param href="#secure-urls"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#person"/>
-          </wadl:response>
-        </wadl:method>
-
-      </wadl:resource>
-
-      <wadl:resource path="~/connections{fields}">
-        <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/connections-api]]></wadl:doc>
-        <wadl:method name="GET" id="getConnections">
-          <wadl:request>
-            <wadl:param href="#fields-selector"/>
-            <wadl:param href="#secure-urls"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#connections"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="~/shares">
-        <wadl:method name="POST" id="share">
-          <wadl:request>
-            <wadl:representation mediaType="application/xml" element="tns:share"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation mediaType="application/xml" element="tns:update"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="~/network">
-        <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/get-network-updates-and-statistics-api]]></wadl:doc>
-
-        <wadl:resource path="updates{fields}">
-          <wadl:param href="#scope"/>
-          <wadl:param href="#type"/>
-          <wadl:param href="#count"/>
-          <wadl:param href="#start"/>
-          <wadl:param href="#after"/>
-          <wadl:param href="#before"/>
-          <wadl:param href="#show-hidden-members"/>
-
-          <wadl:method name="GET" id="getNetworkUpdates">
-            <wadl:request>
-              <wadl:param href="#fields-selector"/>
-              <wadl:param href="#secure-urls"/>
-            </wadl:request>
-            <wadl:response>
-              <wadl:representation href="#updates"/>
-            </wadl:response>
-          </wadl:method>
-        </wadl:resource>
-
-        <wadl:resource path="updates/key={update-key}">
-          <wadl:resource path="update-comments{fields}">
-            <wadl:method name="GET" id="getUpdateComments">
-              <wadl:request>
-                <wadl:param href="#update-key"/>
-                <wadl:param href="#fields-selector"/>
-                <wadl:param href="#secure-urls"/>
-              </wadl:request>
-              <wadl:response>
-                <wadl:representation href="#update-comments"/>
-              </wadl:response>
-            </wadl:method>
-          </wadl:resource>
-
-          <wadl:resource path="update-comments">
-            <wadl:method name="POST" id="addUpdateComment">
-              <wadl:request>
-                <wadl:param href="#update-key"/>
-                <wadl:representation mediaType="application/xml" element="tns:updatecomment"/>
-              </wadl:request>
-            </wadl:method>
-          </wadl:resource>
-
-          <wadl:resource path="likes{fields}">
-            <wadl:method name="GET" id="getUpdateLikes">
-              <wadl:request>
-                <wadl:param href="#update-key"/>
-                <wadl:param href="#fields-selector"/>
-                <wadl:param href="#secure-urls"/>
-              </wadl:request>
-              <wadl:response>
-                <wadl:representation mediaType="application/xml" element="tns:likes"/>
-              </wadl:response>
-            </wadl:method>
-          </wadl:resource>
-
-          <wadl:resource path="is-liked">
-            <wadl:method name="PUT" id="likeUpdate">
-              <wadl:request>
-                <wadl:param href="#update-key"/>
-                <wadl:representation href="#is-liked"/>
-              </wadl:request>
-            </wadl:method>
-          </wadl:resource>
-
-        </wadl:resource>
-
-        <wadl:resource path="network-stats">
-          <wadl:method name="GET" id="getNetworkStats">
-            <wadl:response>
-              <wadl:representation mediaType="application/xml" element="tns:networkstats"/>
-            </wadl:response>
-          </wadl:method>
-        </wadl:resource>
-
-      </wadl:resource>
-
-      <wadl:resource path="~/person-activities">
-        <wadl:method name="POST" id="addActivity">
-          <wadl:request>
-            <wadl:representation mediaType="application/xml" element="tns:activity"/>
-          </wadl:request>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="~/mailbox">
-        <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/invitation-api]]></wadl:doc>
-        <wadl:method name="POST" id="addInvite">
-          <wadl:request>
-            <wadl:representation mediaType="application/xml" element="tns:mailboxitem"/>
-          </wadl:request>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="~/group-memberships{fields}">
-        <wadl:param name="membership-state" style="query" type="tns:membershipstatecode"/>
-        <wadl:param href="#fields-selector"/>
-        <wadl:method name="GET" id="getGroupMemberships">
-          <wadl:request>
-            <wadl:param href="#count"/>
-            <wadl:param href="#start"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#groupmemberships"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="~/group-memberships">
-        <wadl:method name="POST" id="addGroupMembership">
-          <wadl:request>
-            <wadl:representation href="#groupmembership"/>
-          </wadl:request>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="~/group-memberships/{group-id}{fields}">
-        <wadl:method name="GET" id="getGroupMembershipSettings">
-          <wadl:request>
-            <wadl:param href="#group-id"/>
-            <wadl:param href="#fields-selector"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#groupmembership"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="~/group-memberships/{group-id}">
-        <wadl:method name="PUT" id="updateGroupMembership">
-          <wadl:request>
-            <wadl:param href="#group-id"/>
-            <wadl:representation href="#groupmembership"/>
-          </wadl:request>
-        </wadl:method>
-
-        <wadl:method name="DELETE" id="removeGroupMembership">
-          <wadl:request>
-            <wadl:param href="#group-id"/>
-          </wadl:request>
-        </wadl:method>
-
-        <wadl:resource path="posts{fields}">
-          <wadl:method name="GET" id="getPosts">
-            <wadl:request>
-              <wadl:param href="#group-id"/>
-              <wadl:param href="#start"/>
-              <wadl:param href="#count"/>
-              <wadl:param href="#order"/>
-              <wadl:param href="#post-role"/>
-              <wadl:param href="#category"/>
-              <wadl:param href="#modified-since"/>
-              <wadl:param href="#fields-selector"/>
-            </wadl:request>
-            <wadl:response>
-              <wadl:representation href="#posts"/>
-            </wadl:response>
-          </wadl:method>
-        </wadl:resource>
-
-      </wadl:resource>
-
-      <wadl:resource path="~/job-bookmarks">
-
-        <wadl:method name="GET" id="getJobBookmarks">
-          <wadl:response>
-            <wadl:representation href="#job-bookmarks"/>
-          </wadl:response>
-        </wadl:method>
-
-        <wadl:method name="POST" id="addJobBookmark">
-          <wadl:request>
-            <wadl:representation href="#job-bookmark"/>
-          </wadl:request>
-        </wadl:method>
-
-        <wadl:resource path="{job-id}">
-          <wadl:method name="DELETE" id="removeJobBookmark">
-            <wadl:request>
-              <wadl:param href="#job-id"/>
-            </wadl:request>
-          </wadl:method>
-        </wadl:resource>
-      </wadl:resource>
-
-      <wadl:resource path="~/suggestions">
-
-        <wadl:resource path="groups{fields}">
-          <wadl:method name="GET" id="getSuggestedGroups">
-            <wadl:request>
-              <wadl:param href="#fields-selector"/>
-            </wadl:request>
-            <wadl:response>
-              <wadl:representation href="#groups"/>
-            </wadl:response>
-          </wadl:method>
-        </wadl:resource>
-
-        <wadl:resource path="groups">
-
-          <wadl:resource path="{group-id}">
-            <wadl:method name="DELETE" id="removeGroupSuggestion">
-              <wadl:request>
-                <wadl:param href="#group-id"/>
-              </wadl:request>
-            </wadl:method>
-
-            <wadl:resource path="posts{fields}">
-              <wadl:method name="GET" id="getSuggestedGroupPosts">
-                <wadl:request>
-                  <wadl:param href="#group-id"/>
-                  <wadl:param href="#start"/>
-                  <wadl:param href="#count"/>
-                  <wadl:param href="#order"/>
-                  <wadl:param href="#category"/>
-                  <wadl:param href="#modified-since"/>
-                  <wadl:param href="#fields-selector"/>
-                </wadl:request>
-                <wadl:response>
-                  <wadl:representation href="#posts"/>
-                </wadl:response>
-              </wadl:method>
-            </wadl:resource>
-
-          </wadl:resource>
-        </wadl:resource>
-
-        <wadl:resource path="to-follow/companies{fields}">
-          <wadl:method name="GET" id="getSuggestedCompanies">
-            <wadl:request>
-              <wadl:param href="#fields-selector"/>
-            </wadl:request>
-            <wadl:response>
-              <wadl:representation href="#companies"/>
-            </wadl:response>
-          </wadl:method>
-        </wadl:resource>
-
-        <wadl:resource path="job-suggestions{fields}">
-          <wadl:method name="GET" id="getSuggestedJobs">
-            <wadl:request>
-              <wadl:param href="#fields-selector"/>
-            </wadl:request>
-            <wadl:response>
-              <wadl:representation mediaType="application/xml" element="tns:jobsuggestions"/>
-            </wadl:response>
-          </wadl:method>
-        </wadl:resource>
-
-      </wadl:resource>
-
-      <wadl:resource path="~/following/companies{fields}">
-        <wadl:method name="GET" id="getFollowedCompanies">
-          <wadl:request>
-            <wadl:param href="#fields-selector"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#companies"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="~/following/companies">
-        <wadl:method name="POST" id="followCompany">
-          <wadl:request>
-            <wadl:representation href="#company"/>
-          </wadl:request>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="~/following/companies/id={company-id}">
-        <wadl:method name="DELETE" id="stopFollowingCompany">
-          <wadl:request>
-            <wadl:param href="#company-id"/>
-          </wadl:request>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="id={person-id}{fields}">
-        <wadl:method name="GET" id="getPersonById">
-          <wadl:request>
-            <wadl:param href="#person-id"/>
-            <wadl:param href="#fields-selector"/>
-            <wadl:param href="#secure-urls"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#person"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="id={person-id}/connections{fields}">
-        <wadl:method name="GET" id="getConnectionsById">
-          <wadl:request>
-            <wadl:param href="#person-id"/>
-            <wadl:param href="#fields-selector"/>
-            <wadl:param href="#secure-urls"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#connections"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="id={person-id}/network/updates{fields}">
-        <wadl:param href="#scope"/>
-        <wadl:param href="#type"/>
-        <wadl:param href="#count"/>
-        <wadl:param href="#start"/>
-        <wadl:param href="#after"/>
-        <wadl:param href="#before"/>
-        <wadl:param href="#show-hidden-members"/>
-        <wadl:method name="GET" id="getNetworkUpdatesById">
-          <wadl:request>
-            <wadl:param href="#person-id"/>
-            <wadl:param href="#fields-selector"/>
-            <wadl:param href="#secure-urls"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#updates"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="url={public-profile-url}{fields}">
-        <wadl:method name="GET" id="getPersonByUrl">
-          <wadl:request>
-            <wadl:param href="#public-profile-url"/>
-            <wadl:param href="#fields-selector"/>
-            <wadl:param href="#secure-urls"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#person"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="url={public-profile-url}/connections{fields}">
-        <wadl:method name="GET" id="getConnectionsByUrl">
-          <wadl:request>
-            <wadl:param href="#public-profile-url"/>
-            <wadl:param href="#fields-selector"/>
-            <wadl:param href="#secure-urls"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#connections"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-    </wadl:resource>
-
-    <!-- Groups Resource -->
-    <wadl:resource path="groups" id="Groups">
-      <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/groups-api]]></wadl:doc>
-
-      <wadl:resource path="{group-id}{fields}">
-        <wadl:method name="GET" id="getGroup">
-          <wadl:request>
-            <wadl:param href="#group-id"/>
-            <wadl:param href="#fields-selector"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#group"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="{group-id}">
-        <wadl:resource path="posts{fields}">
-          <wadl:method name="GET" id="getPosts">
-            <wadl:request>
-              <wadl:param href="#group-id"/>
-              <wadl:param href="#start"/>
-              <wadl:param href="#count"/>
-              <wadl:param href="#order"/>
-              <wadl:param href="#category"/>
-              <wadl:param href="#modified-since"/>
-              <wadl:param href="#fields-selector"/>
-            </wadl:request>
-            <wadl:response>
-              <wadl:representation href="#posts"/>
-            </wadl:response>
-          </wadl:method>
-        </wadl:resource>
-
-        <wadl:resource path="posts">
-          <wadl:method name="POST" id="addPost">
-            <wadl:request>
-              <wadl:param href="#group-id"/>
-              <wadl:representation href="#post"/>
-            </wadl:request>
-          </wadl:method>
-        </wadl:resource>
-      </wadl:resource>
-
-    </wadl:resource>
-
-    <!-- Posts Resource -->
-    <wadl:resource path="posts" id="Posts">
-      <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/commenting-reading-comments-and-likes-network-updates]]></wadl:doc>
-
-      <wadl:resource path="{post-id}{fields}">
-        <wadl:method name="GET" id="getPost">
-          <wadl:request>
-            <wadl:param href="#post-id"/>
-            <wadl:param href="#count"/>
-            <wadl:param href="#start"/>
-            <wadl:param href="#fields-selector"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#post"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="{post-id}/relation-to-viewer/is-liked">
-        <wadl:method name="PUT" id="likePost">
-          <wadl:request>
-            <wadl:param href="#post-id"/>
-            <wadl:representation href="#is-liked"/>
-          </wadl:request>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="{post-id}/relation-to-viewer/is-following">
-        <wadl:method name="PUT" id="followPost">
-          <wadl:request>
-            <wadl:param href="#post-id"/>
-            <wadl:representation href="#is-following"/>
-          </wadl:request>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="{post-id}/category/code">
-        <wadl:method name="PUT" id="flagCategory">
-          <wadl:request>
-            <wadl:param href="#post-id"/>
-            <wadl:representation mediaType="application/xml" element="tns:postcategorycode"/>
-          </wadl:request>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="{post-id}">
-        <wadl:method name="DELETE" id="removePost">
-          <wadl:request>
-            <wadl:param href="#post-id"/>
-          </wadl:request>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="{post-id}/comments{fields}">
-        <wadl:method name="GET" id="getPostComments">
-          <wadl:request>
-            <wadl:param href="#post-id"/>
-            <wadl:param href="#count"/>
-            <wadl:param href="#start"/>
-            <wadl:param href="#fields-selector"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#comments"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="{post-id}/comments">
-        <wadl:method name="POST" id="addComment">
-          <wadl:request>
-            <wadl:param href="#post-id"/>
-            <wadl:representation href="#comment"/>
-          </wadl:request>
-        </wadl:method>
-      </wadl:resource>
-
-    </wadl:resource>
-
-    <!-- Comments Resource -->
-    <wadl:resource path="comments" id="Comments">
-      <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/commenting-reading-comments-and-likes-network-updates]]></wadl:doc>
-
-      <wadl:resource path="{comment-id}{fields}">
-        <wadl:method name="GET" id="getComment">
-          <wadl:request>
-            <wadl:param href="#comment-id"/>
-            <wadl:param href="#fields-selector"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#comment"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="{comment-id}">
-        <wadl:method name="DELETE" id="removeComment">
-          <wadl:request>
-            <wadl:param href="#comment-id"/>
-          </wadl:request>
-        </wadl:method>
-      </wadl:resource>
-
-    </wadl:resource>
-
-    <!--Companies Resource -->
-    <wadl:resource id="Companies">
-      <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/companies]]></wadl:doc>
-
-      <wadl:resource path="companies{fields}">
-        <wadl:method name="GET" id="getCompanies">
-          <wadl:request>
-            <wadl:param href="#fields-selector"/>
-            <wadl:param name="email-domain" style="query"/>
-            <wadl:param name="is-company-admin" style="query" type="xsd:boolean"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#companies"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="companies">
-
-        <wadl:resource path="{company-id}{fields}">
-          <wadl:method name="GET" id="getCompanyById">
-            <wadl:request>
-              <wadl:param href="#company-id"/>
-              <wadl:param href="#fields-selector"/>
-            </wadl:request>
-            <wadl:response>
-              <wadl:representation href="#company"/>
-            </wadl:response>
-          </wadl:method>
-        </wadl:resource>
-
-        <wadl:resource path="universal-name={universal-name}{fields}">
-          <wadl:method name="GET" id="getCompanyByName">
-            <wadl:request>
-              <wadl:param name="universal-name" style="template"/>
-              <wadl:param href="#fields-selector"/>
-            </wadl:request>
-            <wadl:response>
-              <wadl:representation href="#company"/>
-            </wadl:response>
-          </wadl:method>
-        </wadl:resource>
-
-        <wadl:resource path="{company-id}">
-
-          <!-- Company updates -->
-          <wadl:resource path="updates{fields}">
-            <wadl:method name="GET" id="getCompanyUpdates">
-              <wadl:request>
-                <wadl:param href="#company-id"/>
-                <wadl:param href="#fields-selector"/>
-                <wadl:param href="#event-type"/>
-                <wadl:param href="#start"/>
-                <wadl:param href="#count"/>
-              </wadl:request>
-              <wadl:response>
-                <wadl:representation href="#updates"/>
-              </wadl:response>
-            </wadl:method>
-          </wadl:resource>
-
-          <wadl:resource path="updates/key={update-key}">
-            <wadl:resource path="update-comments{fields}">
-              <wadl:method name="GET" id="getCompanyUpdateComments">
-                <wadl:request>
-                  <wadl:param href="#company-id"/>
-                  <wadl:param href="#update-key"/>
-                  <wadl:param href="#fields-selector"/>
-                  <wadl:param href="#secure-urls"/>
-                </wadl:request>
-                <wadl:response>
-                  <wadl:representation href="#update-comments"/>
-                </wadl:response>
-              </wadl:method>
-            </wadl:resource>
-
-            <wadl:resource path="update-comments-as-company">
-              <wadl:method name="POST" id="addCompanyUpdateCommentAsCompany">
-                <wadl:request>
-                  <wadl:param href="#company-id"/>
-                  <wadl:param href="#update-key"/>
-                  <wadl:representation href="#update-comment"/>
-                </wadl:request>
-              </wadl:method>
-            </wadl:resource>
-
-            <wadl:resource path="likes{fields}">
-              <wadl:method name="GET" id="getCompanyUpdateLikes">
-                <wadl:request>
-                  <wadl:param href="#company-id"/>
-                  <wadl:param href="#update-key"/>
-                  <wadl:param href="#fields-selector"/>
-                  <wadl:param href="#secure-urls"/>
-                </wadl:request>
-                <wadl:response>
-                  <wadl:representation mediaType="application/xml" element="tns:likes"/>
-                </wadl:response>
-              </wadl:method>
-            </wadl:resource>
-
-          </wadl:resource>
-
-          <!-- Company shares -->
-          <wadl:resource path="shares">
-            <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/share-api]]></wadl:doc>
-            <wadl:method name="POST" id="addShare">
-              <wadl:request>
-                <wadl:param href="#company-id"/>
-                <wadl:representation mediaType="application/xml" element="tns:share"/>
-              </wadl:request>
-              <wadl:response>
-                <wadl:representation mediaType="application/xml" element="tns:update"/>
-              </wadl:response>
-            </wadl:method>
-          </wadl:resource>
-
-          <wadl:resource path="is-company-share-enabled">
-            <wadl:method name="GET" id="isShareEnabled">
-              <wadl:request>
-                <wadl:param href="#company-id"/>
-              </wadl:request>
-              <wadl:response>
-                <wadl:representation mediaType="application/xml" element="tns:iscompanyshareenabled"/>
-              </wadl:response>
-            </wadl:method>
-          </wadl:resource>
-
-          <wadl:resource path="relation-to-viewer/is-company-share-enabled">
-            <wadl:method name="GET" id="isViewerShareEnabled">
-              <wadl:request>
-                <wadl:param href="#company-id"/>
-              </wadl:request>
-              <wadl:response>
-                <wadl:representation mediaType="application/xml" element="tns:iscompanyshareenabled"/>
-              </wadl:response>
-            </wadl:method>
-          </wadl:resource>
-
-          <!-- Company Analytics -->
-          <wadl:resource path="historical-follow-statistics">
-            <wadl:method name="GET" id="getHistoricalFollowStatistics">
-              <wadl:request>
-                <wadl:param href="#company-id"/>
-                <wadl:param href="#start-timestamp"/>
-                <wadl:param href="#end-timestamp"/>
-                <wadl:param href="#time-granularity"/>
-              </wadl:request>
-              <wadl:response>
-                <wadl:representation mediaType="application/xml" element="tns:historicalfollowstatistics"/>
-              </wadl:response>
-            </wadl:method>
-          </wadl:resource>
-
-          <wadl:resource path="historical-status-update-statistics">
-            <wadl:method name="GET" id="getHistoricalStatusUpdateStatistics">
-              <wadl:request>
-                <wadl:param href="#company-id"/>
-                <wadl:param href="#start-timestamp"/>
-                <wadl:param href="#end-timestamp"/>
-                <wadl:param href="#time-granularity"/>
-                <wadl:param name="update-key" style="query"/>
-              </wadl:request>
-              <wadl:response>
-                <wadl:representation mediaType="application/xml" element="tns:historicalstatusupdatestatistics"/>
-              </wadl:response>
-            </wadl:method>
-          </wadl:resource>
-
-          <wadl:resource path="company-statistics">
-            <wadl:method name="GET" id="getStatistics">
-              <wadl:request>
-                <wadl:param href="#company-id"/>
-              </wadl:request>
-              <wadl:response>
-                <wadl:representation mediaType="application/xml" element="tns:companystatistics"/>
-              </wadl:response>
-            </wadl:method>
-          </wadl:resource>
-
-          <wadl:resource path="num-followers">
-            <wadl:method name="GET" id="getNumberOfFollowers">
-              <wadl:request>
-                <wadl:param href="#company-id"/>
-                <wadl:param name="geos" style="query" repeating="true"/>
-                <wadl:param name="companySizes" style="query" repeating="true"/>
-                <wadl:param name="jobFunc" style="query" repeating="true"/>
-                <wadl:param name="industries" style="query" repeating="true"/>
-                <wadl:param name="seniorities" style="query" repeating="true"/>
-              </wadl:request>
-              <wadl:response>
-                <wadl:representation mediaType="application/xml" element="tns:numfollowers"/>
-              </wadl:response>
-            </wadl:method>
-          </wadl:resource>
-
-        </wadl:resource>
-
-      </wadl:resource>
-
-    </wadl:resource>
-
-    <!-- Jobs -->
-    <wadl:resource path="jobs" id="Jobs">
-      <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/jobs]]></wadl:doc>
-
-      <wadl:method name="POST" id="addJob">
-        <wadl:request>
-          <wadl:representation mediaType="application/xml" element="tns:job"/>
-        </wadl:request>
-      </wadl:method>
-
-      <wadl:resource path="{job-id}${fields}">
-        <wadl:method name="GET" id="getJob">
-          <wadl:request>
-            <wadl:param href="#job-id"/>
-            <wadl:param href="#fields-selector"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation mediaType="application/xml" element="tns:job"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <wadl:resource path="partner-job-id={partner-job-id}">
-
-        <wadl:method name="PUT" id="editJob">
-          <wadl:request>
-            <wadl:param href="#partner-job-id"/>
-            <wadl:representation mediaType="application/xml" element="tns:job"/>
-          </wadl:request>
-        </wadl:method>
-
-        <wadl:method name="DELETE" id="removeJob">
-          <wadl:request>
-            <wadl:param href="#partner-job-id"/>
-          </wadl:request>
-        </wadl:method>
-
-      </wadl:resource>
-
-    </wadl:resource>
-
-    <!-- Search -->
-    <wadl:resource id="SearchResource">
-
-      <!-- People Search -->
-      <wadl:resource path="people-search{fields}">
-        <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/people-search-api]]></wadl:doc>
-        <wadl:method name="GET" id="searchPeople">
-          <wadl:request>
-            <wadl:param href="#fields-selector"/>
-            <wadl:param href="#keywords"/>
-            <wadl:param name="first-name" style="query" type="tns:first-name"/>
-            <wadl:param name="last-name" style="query" type="tns:last-name"/>
-            <wadl:param href="#company-name"/>
-            <wadl:param name="current-company" style="query" type="tns:current-company"/>
-            <wadl:param name="title" style="query" type="tns:title"/>
-            <wadl:param name="current-title" style="query" type="tns:current-title"/>
-            <wadl:param name="school-name" style="query" type="tns:school-name"/>
-            <wadl:param name="current-school" style="query" type="tns:current-school"/>
-            <wadl:param href="#country-code"/>
-            <wadl:param href="#postal-code"/>
-            <wadl:param href="#distance"/>
-            <wadl:param href="#facet"/>
-            <wadl:param href="#facets"/>
-            <wadl:param href="#start"/>
-            <wadl:param href="#count"/>
-            <wadl:param name="sort" style="query"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation mediaType="application/xml" element="tns:peoplesearch"/>
-          </wadl:response>
-        </wadl:method>
-
-      </wadl:resource>
-
-      <!-- Company Search -->
-      <wadl:resource path="company-search{fields}">
-        <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/company-search]]></wadl:doc>
-        <wadl:method name="GET" id="searchCompanies">
-          <wadl:request>
-            <wadl:param href="#fields-selector"/>
-            <wadl:param href="#keywords"/>
-            <wadl:param name="hq-only" style="query"/>
-            <wadl:param href="#facet"/>
-            <wadl:param href="#facets"/>
-            <wadl:param href="#start"/>
-            <wadl:param href="#count"/>
-            <wadl:param name="sort" style="query"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#company-search"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-      <!-- Job Search -->
-      <wadl:resource path="job-search{fields}">
-        <wadl:doc><![CDATA[https://developer-programs.linkedin.com/documents/job-search-api]]></wadl:doc>
-        <wadl:method name="GET" id="searchJobs">
-          <wadl:request>
-            <wadl:param href="#fields-selector"/>
-            <wadl:param href="#keywords"/>
-            <wadl:param href="#company-name"/>
-            <wadl:param name="job-title" style="query"/>
-            <wadl:param href="#country-code"/>
-            <wadl:param href="#postal-code"/>
-            <wadl:param href="#distance"/>
-            <wadl:param href="#facet"/>
-            <wadl:param href="#facets"/>
-            <wadl:param href="#start"/>
-            <wadl:param href="#count"/>
-            <wadl:param name="sort" style="query"/>
-          </wadl:request>
-          <wadl:response>
-            <wadl:representation href="#job-search"/>
-          </wadl:response>
-        </wadl:method>
-      </wadl:resource>
-
-    </wadl:resource>
-
-  </wadl:resources>
-
-  <!-- id path param -->
-  <wadl:param name="person-id" style="template" required="true" id="person-id"/>
-
-  <!-- field selector suffix -->
-  <wadl:param name="fields" style="template" id="fields-selector"/>
-
-  <!-- return secure urls in profile -->
-  <wadl:param name="secure-urls" style="query" type="xsd:boolean" id="secure-urls"/>
-
-  <!-- public profile url param -->
-  <wadl:param name="public-profile-url" style="template" id="public-profile-url"/>
-
-  <!-- group Id param -->
-  <wadl:param name="group-id" style="template" type="xsd:integer" required="true" id="group-id"/>
-
-  <!-- post Id param -->
-  <wadl:param name="post-id" style="template" required="true" id="post-id"/>
-
-  <!-- comment Id param -->
-  <wadl:param name="comment-id" style="template" required="true" id="comment-id"/>
-
-  <!-- company Id param -->
-  <wadl:param name="company-id" style="template" type="xsd:integer" required="true" id="company-id"/>
-
-  <!-- job Id param -->
-  <wadl:param name="job-id" style="template" type="xsd:integer" required="true" id="job-id"/>
-
-  <!-- partner-job Id param -->
-  <wadl:param name="partner-job-id" style="template" type="xsd:integer" required="true" id="partner-job-id"/>
-
-  <!-- posts params -->
-  <wadl:param name="order" style="query" id="order" type="tns:order"/>
-
-  <wadl:param name="role" style="query" id="post-role" type="tns:post-role"/>
-
-  <wadl:param name="category" style="query" id="category" type="tns:postcategorycode"/>
-
-  <wadl:param name="modified-since" style="query" id="modified-since" type="xsd:integer"/>
-
-  <wadl:param name="scope" style="query" type="tns:scope" id="scope"/>
-
-  <wadl:param name="type" style="query" id="type" type="tns:networkupdatereturntype"/>
-
-  <wadl:param name="keywords" style="query" type="tns:keywords" id="keywords"/>
-
-  <wadl:param name="facet" style="query" id="facet"/>
-
-  <wadl:param name="facets" style="query" id="facets"/>
-
-  <wadl:param name="start" style="query" type="xsd:integer" id="start"/>
-
-  <wadl:param name="count" style="query" type="xsd:integer" id="count"/>
-
-  <wadl:param name="company-name" style="query" type="tns:company-name" id="company-name"/>
-
-  <wadl:param name="country-code" style="query" type="tns:country-code" id="country-code"/>
-
-  <wadl:param name="postal-code" style="query" type="tns:postal-code" id="postal-code"/>
-
-  <wadl:param name="distance" style="query" type="tns:distance" id="distance"/>
-
-  <wadl:param name="after" style="query" type="xsd:integer" id="after"/>
-
-  <wadl:param name="before" style="query" type="xsd:integer" id="before"/>
-
-  <wadl:param name="show-hidden-members" style="query" type="xsd:boolean" id="show-hidden-members"/>
-
-  <!-- update-key path param -->
-  <wadl:param name="update-key" style="template" id="update-key"/>
-
-  <wadl:param name="event-type" style="query" id="event-type" type="tns:eventtype"/>
-
-  <wadl:param name="start-timestamp" style="query" type="xsd:integer" id="start-timestamp"/>
-  <wadl:param name="end-timestamp" style="query" type="xsd:integer" id="end-timestamp"/>
-  <wadl:param name="time-granularity" style="query" id="time-granularity" type="tns:time-granularity"/>
-
-  <!-- representation types -->
-  <wadl:representation mediaType="application/xml" element="tns:person" id="person"/>
-
-  <wadl:representation mediaType="application/xml" element="tns:connections" id="connections"/>
-
-  <wadl:representation mediaType="application/xml" element="tns:updates" id="updates"/>
-
-  <wadl:representation mediaType="application/xml" element="tns:groupmembership" id="groupmembership"/>
-  <wadl:representation mediaType="application/xml" element="tns:groupmemberships" id="groupmemberships"/>
-
-  <wadl:representation mediaType="application/xml" element="tns:group" id="group"/>
-  <wadl:representation mediaType="application/xml" element="tns:groups" id="groups"/>
-
-  <wadl:representation mediaType="application/xml" element="tns:post" id="post"/>
-  <wadl:representation mediaType="application/xml" element="tns:posts" id="posts"/>
-
-  <wadl:representation mediaType="application/xml" element="tns:comment" id="comment"/>
-  <wadl:representation mediaType="application/xml" element="tns:comments" id="comments"/>
-
-  <wadl:representation mediaType="application/xml" element="tns:company" id="company"/>
-  <wadl:representation mediaType="application/xml" element="tns:companies" id="companies"/>
-  <wadl:representation mediaType="application/xml" element="tns:companysearch" id="company-search"/>
-
-  <wadl:representation mediaType="application/xml" element="tns:isliked" id="is-liked"/>
-
-  <wadl:representation mediaType="application/xml" element="tns:isfollowing" id="is-following"/>
-
-  <wadl:representation mediaType="application/xml" element="tns:updatecomment" id="update-comment"/>
-  <wadl:representation mediaType="application/xml" element="tns:updatecomments" id="update-comments"/>
-
-  <wadl:representation mediaType="application/xml" element="tns:jobbookmark" id="job-bookmark"/>
-  <wadl:representation mediaType="application/xml" element="tns:jobbookmarks" id="job-bookmarks"/>
-  <wadl:representation mediaType="application/xml" element="tns:jobsearch" id="job-search"/>
-
-</wadl:application>
diff --git a/components/camel-linkedin/camel-linkedin-api/src/main/resources/wadl.xsd b/components/camel-linkedin/camel-linkedin-api/src/main/resources/wadl.xsd
deleted file mode 100644
index d7fce57..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/main/resources/wadl.xsd
+++ /dev/null
@@ -1,281 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-  targetNamespace="http://wadl.dev.java.net/2009/02"
-  xmlns:tns="http://wadl.dev.java.net/2009/02"
-  xmlns:xml="http://www.w3.org/XML/1998/namespace"
-  elementFormDefault="qualified">
-
-  <xs:import namespace="http://www.w3.org/XML/1998/namespace"
-    schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-
-  <xs:element name="application">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element ref="tns:grammars" minOccurs="0"/>
-        <xs:element ref="tns:resources" minOccurs="0"
-          maxOccurs="unbounded"/>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-          <xs:element ref="tns:resource_type"/>
-          <xs:element ref="tns:method"/>
-          <xs:element ref="tns:representation"/>
-          <xs:element ref="tns:param"/>
-        </xs:choice>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0"
-          maxOccurs="unbounded"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="doc">
-    <xs:complexType mixed="true">
-      <xs:sequence>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0"
-          maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:attribute name="title" type="xs:string"/>
-      <xs:attribute ref="xml:lang"/>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="grammars">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="tns:include"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0"
-          maxOccurs="unbounded"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="resources">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element ref="tns:resource" maxOccurs="unbounded"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0"
-          maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:attribute name="base" type="xs:anyURI"/>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="resource">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element ref="tns:param" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-          <xs:element ref="tns:method"/>
-          <xs:element ref="tns:resource"/>
-        </xs:choice>
-        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
-          processContents="lax"/>
-      </xs:sequence>
-      <xs:attribute name="id" type="xs:ID"/>
-      <xs:attribute name="type" type="tns:resource_type_list"/>
-      <xs:attribute name="queryType" type="xs:string"
-        default="application/x-www-form-urlencoded"/>
-      <xs:attribute name="path" type="xs:string"/>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:simpleType name="resource_type_list">
-    <xs:list itemType="xs:anyURI"/>
-  </xs:simpleType>
-
-  <xs:element name="resource_type">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element ref="tns:param" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-          <xs:element ref="tns:method"/>
-          <xs:element ref="tns:resource"/>
-        </xs:choice>
-        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
-          processContents="lax"/>
-      </xs:sequence>
-      <xs:attribute name="id" type="xs:ID"/>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="method">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element ref="tns:request" minOccurs="0"/>
-        <xs:element ref="tns:response" minOccurs="0"
-          maxOccurs="unbounded"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0"
-          maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:attribute name="id" type="xs:ID"/>
-      <xs:attribute name="name" type="tns:Method"/>
-      <xs:attribute name="href" type="xs:anyURI"/>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:simpleType name="Method">
-    <xs:union memberTypes="tns:HTTPMethods xs:NMTOKEN"/>
-  </xs:simpleType>
-
-  <xs:simpleType name="HTTPMethods">
-    <xs:restriction base="xs:NMTOKEN">
-      <xs:enumeration value="GET"/>
-      <xs:enumeration value="POST"/>
-      <xs:enumeration value="PUT"/>
-      <xs:enumeration value="HEAD"/>
-      <xs:enumeration value="DELETE"/>
-    </xs:restriction>
-  </xs:simpleType>
-
-  <xs:element name="include">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:attribute name="href" type="xs:anyURI"/>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="request">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element ref="tns:param" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element ref="tns:representation" minOccurs="0"
-          maxOccurs="unbounded"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0"
-          maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="response">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element ref="tns:param" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element ref="tns:representation" minOccurs="0"
-          maxOccurs="unbounded"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0"
-          maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:attribute name="status" type="tns:statusCodeList"/>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:simpleType name="uriList">
-    <xs:list itemType="xs:anyURI"/>
-  </xs:simpleType>
-
-  <xs:element name="representation">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element ref="tns:param" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0"
-          maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:attribute name="id" type="xs:ID"/>
-      <xs:attribute name="element" type="xs:QName"/>
-      <xs:attribute name="mediaType" type="xs:string"/>
-      <xs:attribute name="href" type="xs:anyURI"/>
-      <xs:attribute name="profile" type="tns:uriList"/>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:simpleType name="statusCodeList">
-    <xs:list itemType="xs:unsignedInt"/>
-  </xs:simpleType>
-
-  <xs:simpleType name="ParamStyle">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="plain"/>
-      <xs:enumeration value="query"/>
-      <xs:enumeration value="matrix"/>
-      <xs:enumeration value="header"/>
-      <xs:enumeration value="template"/>
-    </xs:restriction>
-  </xs:simpleType>
-
-  <xs:element name="param">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element ref="tns:option" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:element ref="tns:link" minOccurs="0"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0"
-          maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:attribute name="href" type="xs:anyURI"/>
-      <xs:attribute name="name" type="xs:NMTOKEN"/>
-      <xs:attribute name="style" type="tns:ParamStyle"/>
-      <xs:attribute name="id" type="xs:ID"/>
-      <xs:attribute name="type" type="xs:QName" default="xs:string"/>
-      <xs:attribute name="default" type="xs:string"/>
-      <xs:attribute name="required" type="xs:boolean" default="false"/>
-      <xs:attribute name="repeating" type="xs:boolean" default="false"/>
-      <xs:attribute name="fixed" type="xs:string"/>
-      <xs:attribute name="path" type="xs:string"/>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="option">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0"
-          maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:attribute name="value" type="xs:string" use="required"/>
-      <xs:attribute name="mediaType" type="xs:string"/>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="link">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="tns:doc" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0"
-          maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:attribute name="resource_type" type="xs:anyURI"/>
-      <xs:attribute name="rel" type="xs:token"/>
-      <xs:attribute name="rev" type="xs:token"/>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-</xs:schema>
diff --git a/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/AbstractResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/AbstractResourceIntegrationTest.java
deleted file mode 100644
index fbbba51..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/AbstractResourceIntegrationTest.java
+++ /dev/null
@@ -1,141 +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.component.linkedin.api;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Properties;
-
-import static java.util.concurrent.TimeUnit.DAYS;
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-
-import javax.ws.rs.WebApplicationException;
-
-import org.apache.camel.component.linkedin.api.model.Error;
-import org.apache.cxf.Bus;
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
-import org.apache.cxf.jaxrs.client.WebClient;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * Base class for resource tests.
- */
-public abstract class AbstractResourceIntegrationTest extends Assert {
-
-    public static final long DEFAULT_EXPIRY = MILLISECONDS.convert(60, DAYS) + System.currentTimeMillis();
-
-    protected static final Logger LOG = LoggerFactory.getLogger(PeopleResourceIntegrationTest.class);
-    protected static final String DEFAULT_FIELDS = "";
-
-    protected static LinkedInOAuthRequestFilter requestFilter;
-    protected static Properties properties;
-    protected static OAuthToken token;
-    private static List<Object> resourceList = new ArrayList<>();
-
-    @BeforeClass
-    public static void beforeClass() throws Exception {
-        properties = new Properties();
-        properties.load(AbstractResourceIntegrationTest.class.getResourceAsStream("/test-options.properties"));
-
-        requestFilter = createOAuthHelper();
-    }
-
-    private static LinkedInOAuthRequestFilter createOAuthHelper() throws IOException {
-        final String userName = properties.getProperty("userName");
-        final String userPassword = properties.getProperty("userPassword");
-        final String clientId = properties.getProperty("clientId");
-        final String clientSecret = properties.getProperty("clientSecret");
-        final String redirectUri = properties.getProperty("redirectUri");
-        final String accessToken = properties.getProperty("accessToken");
-        final String expiryTime = properties.getProperty("expiryTime");
-
-        final OAuthScope[] scopes;
-        final String scope = properties.getProperty("scope");
-        if (scope != null) {
-            scopes = OAuthScope.fromValues(scope.split(","));
-        } else {
-            scopes = null;
-        }
-
-        // check if accessToken is set
-        if (accessToken != null) {
-            token = new OAuthToken(null, accessToken,
-                    (expiryTime != null && !"".equals(expiryTime.trim())) ? Long.parseLong(expiryTime) : DEFAULT_EXPIRY);
-        }
-
-        final OAuthSecureStorage secureStorage = new OAuthSecureStorage() {
-            @Override
-            public OAuthToken getOAuthToken() {
-                return token;
-            }
-
-            @Override
-            public void saveOAuthToken(OAuthToken newToken) {
-                token = newToken;
-            }
-        };
-
-        final OAuthParams oAuthParams = new OAuthParams(userName, userPassword, secureStorage,
-            clientId, clientSecret, redirectUri, scopes);
-        return new LinkedInOAuthRequestFilter(oAuthParams, null, false, null);
-    }
-
-    @AfterClass
-    public static void afterClass() throws Exception {
-        // close all proxies
-        for (Object resource : resourceList) {
-            try {
-                WebClient.client(resource).close();
-            } catch (Exception ignore) {
-            }
-        }
-        // TODO save and load token from test-options.properties
-    }
-
-    protected static <T> T getResource(Class<T> resourceClass) {
-        if (requestFilter == null) {
-            throw new IllegalStateException(AbstractResourceIntegrationTest.class.getName()
-                                            + ".beforeClass must be invoked before getResource");
-        }
-        Bus bus = BusFactory.getThreadDefaultBus();
-        bus.setProperty("allow.empty.path.template.value", true);
-        final T resource = JAXRSClientFactory.create(LinkedInOAuthRequestFilter.BASE_ADDRESS, resourceClass,
-//            Arrays.asList(new Object[] { requestFilter, new LinkedInExceptionResponseFilter() } ));
-            Arrays.asList(new Object[]{requestFilter, new EnumQueryParamConverterProvider()}));
-        resourceList.add(resource);
-        return resource;
-    }
-
-    protected void execute(Runnable runnable) {
-        try {
-            runnable.run();
-        } catch (WebApplicationException e) {
-            final org.apache.camel.component.linkedin.api.model.Error error = e.getResponse().readEntity(Error.class);
-            assertNotNull(error);
-            LOG.error("Error: {}", error.getMessage());
-            throw new LinkedInException(error, e.getResponse());
-        }
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/PeopleResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/PeopleResourceIntegrationTest.java
deleted file mode 100644
index 623e738..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/PeopleResourceIntegrationTest.java
+++ /dev/null
@@ -1,128 +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.component.linkedin.api;
-import java.util.Date;
-
-import org.apache.camel.component.linkedin.api.model.GroupMemberships;
-import org.apache.camel.component.linkedin.api.model.JobSuggestions;
-import org.apache.camel.component.linkedin.api.model.MembershipStateCode;
-import org.apache.camel.component.linkedin.api.model.Order;
-import org.apache.camel.component.linkedin.api.model.Person;
-import org.apache.camel.component.linkedin.api.model.PostCategoryCode;
-import org.apache.camel.component.linkedin.api.model.PostRole;
-import org.apache.camel.component.linkedin.api.model.Posts;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-
-/**
- * Integration test for {@link PeopleResource}.
- */
-public class PeopleResourceIntegrationTest extends AbstractResourceIntegrationTest {
-
-    private static PeopleResource peopleResource;
-
-    @BeforeClass
-    public static void beforeClass() throws Exception {
-        AbstractResourceIntegrationTest.beforeClass();
-
-        final Class<PeopleResource> resourceClass = PeopleResource.class;
-        PeopleResourceIntegrationTest.peopleResource = getResource(resourceClass);
-    }
-
-    @Test
-    public void testGetPerson() throws Exception {
-        execute(new Runnable() {
-            @Override
-            public void run() {
-                final Person person = peopleResource.getPerson(":(id)", true);
-                assertNotNull(person);
-                assertNotNull(person.getId());
-                LOG.debug("getPerson result: {}", person);
-            }
-        });
-    }
-
-    @Test
-    public void testGetPosts() throws Exception {
-        execute(new Runnable() {
-            @Override
-            public void run() {
-                final GroupMemberships groupMemberships = peopleResource.getGroupMemberships(MembershipStateCode.MEMBER,
-                    "", null, null);
-                assertNotNull(groupMemberships);
-                assertNotNull(groupMemberships.getGroupMembershipList());
-                assertFalse(groupMemberships.getGroupMembershipList().isEmpty());
-                final Posts posts = peopleResource.getPosts(Long.parseLong(
-                        groupMemberships.getGroupMembershipList().get(0).getGroup().getId()), null, null,
-                    Order.RECENCY, PostRole.FOLLOWER, PostCategoryCode.DISCUSSION, null, ":(id)");
-                assertNotNull(posts);
-                LOG.debug("getPosts result: {}", posts);
-            }
-        });
-    }
-
-    @Test(expected = LinkedInException.class)
-    public void testLinkedInError() throws Exception {
-        execute(new Runnable() {
-            @Override
-            public void run() {
-                peopleResource.getPerson("bad_fields_selector", true);
-            }
-        });
-    }
-
-    @Ignore("CXF swallows application exceptions from ClientResponseFilters")
-    @Test(expected = LinkedInException.class)
-    public void testLinkedInException() throws Exception {
-        try {
-            peopleResource.getPerson("bad_fields_selector", true);
-        } catch (LinkedInException e) {
-            assertNotNull(e.getError());
-            LOG.debug("getPerson error: {}", e.getMessage());
-            throw e;
-        }
-    }
-
-    @Test
-    public void testOAuthTokenRefresh() throws Exception {
-        peopleResource.getPerson("", false);
-
-        // mark OAuth token as expired
-        final OAuthToken oAuthToken = requestFilter.getOAuthToken();
-        final long expiryTime = oAuthToken.getExpiryTime();
-        oAuthToken.setExpiryTime(new Date().getTime());
-
-        try {
-            peopleResource.getPerson("", false);
-        } finally {
-            token.setExpiryTime(expiryTime);
-        }
-    }
-
-    @Test
-    public void testGetSuggestedJobs() throws Exception {
-        execute(new Runnable() {
-            @Override
-            public void run() {
-                final JobSuggestions suggestedJobs = peopleResource.getSuggestedJobs(DEFAULT_FIELDS);
-                assertNotNull(suggestedJobs);
-                LOG.debug("Suggested Jobs {}", suggestedJobs.getJobs());
-            }
-        });
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/SearchResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/SearchResourceIntegrationTest.java
deleted file mode 100644
index fbd3616..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/test/java/org/apache/camel/component/linkedin/api/SearchResourceIntegrationTest.java
+++ /dev/null
@@ -1,46 +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.component.linkedin.api;
-import org.apache.camel.component.linkedin.api.model.CompanySearch;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-/**
- * Integration test for {@link org.apache.camel.component.linkedin.api.SearchResource}
- */
-public class SearchResourceIntegrationTest extends AbstractResourceIntegrationTest {
-
-    private static SearchResource searchResource;
-
-    @BeforeClass
-    public static void beforeClass() throws Exception {
-        AbstractResourceIntegrationTest.beforeClass();
-        searchResource = getResource(SearchResource.class);
-    }
-
-    @Test
-    public void testSearchCompanies() {
-        execute(new Runnable() {
-            @Override
-            public void run() {
-                final CompanySearch companySearch = searchResource.searchCompanies(DEFAULT_FIELDS, "linkedin", null, null,
-                    null, null, null, null);
-                assertNotNull(companySearch);
-            }
-        });
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-api/src/test/resources/log4j2.properties b/components/camel-linkedin/camel-linkedin-api/src/test/resources/log4j2.properties
deleted file mode 100644
index 425fc0c..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/test/resources/log4j2.properties
+++ /dev/null
@@ -1,28 +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.
-## ---------------------------------------------------------------------------
-
-appender.file.type = File
-appender.file.name = file
-appender.file.fileName = target/camel-linkedin-test.log
-appender.file.layout.type = PatternLayout
-appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-appender.out.type = Console
-appender.out.name = out
-appender.out.layout.type = PatternLayout
-appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-rootLogger.level = INFO
-rootLogger.appenderRef.file.ref = file
diff --git a/components/camel-linkedin/camel-linkedin-api/src/test/resources/test-options.properties b/components/camel-linkedin/camel-linkedin-api/src/test/resources/test-options.properties
deleted file mode 100644
index 23a3939..0000000
--- a/components/camel-linkedin/camel-linkedin-api/src/test/resources/test-options.properties
+++ /dev/null
@@ -1,33 +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.
-## ---------------------------------------------------------------------------
-
-# LinkedIn user name
-userName=
-# LinkedIn user password
-userPassword=
-# LinkedIn App clientId
-clientId=
-# LinkedIn App clientSecret
-clientSecret=
-# LinkedIn access token
-accessToken=
-# LinkedIn token expiry time
-expiryTime=
-# LinkedIn App required scopes
-scope=r_basicprofile,r_fullprofile,r_emailaddress,r_network,r_contactinfo,rw_nus,rw_company_admin,rw_groups,w_messages
-# LinkedIn App redirect URI
-redirectUri=
diff --git a/components/camel-linkedin/camel-linkedin-component/pom.xml b/components/camel-linkedin/camel-linkedin-component/pom.xml
deleted file mode 100644
index 69adf05..0000000
--- a/components/camel-linkedin/camel-linkedin-component/pom.xml
+++ /dev/null
@@ -1,306 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-linkedin-parent</artifactId>
-        <version>3.0.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-linkedin</artifactId>
-    <packaging>jar</packaging>
-    <name>Camel :: LinkedIn :: Component</name>
-    <description>Camel LinkedIn component</description>
-
-    <properties>
-        <schemeName>linkedin</schemeName>
-        <componentName>LinkedIn</componentName>
-        <componentPackage>org.apache.camel.component.linkedin</componentPackage>
-        <outPackage>org.apache.camel.component.linkedin.internal</outPackage>
-
-        <camel.osgi.import.additional>
-            org.apache.cxf.*;version="${cxf-version-range}"
-        </camel.osgi.import.additional>
-        <camel.osgi.private.pkg>${outPackage}</camel.osgi.private.pkg>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-support</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-linkedin-api</artifactId>
-        </dependency>
-
-        <!-- Camel annotations in runtime scope to avoid compile errors in IDEs -->
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>spi-annotations</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- Component API javadoc in provided scope to read API signatures -->
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-linkedin-api</artifactId>
-            <version>${project.version}</version>
-            <type>javadoc</type>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- logging -->
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>${commons-lang3-version}</version>
-        </dependency>
-
-        <!-- testing -->
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-
-            <!-- generate Component source and test source -->
-            <plugin>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-api-component-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>generate-test-component-classes</id>
-                        <goals>
-                            <goal>fromApis</goal>
-                        </goals>
-                        <configuration>
-                            <apis>
-                                <api>
-                                    <apiName>comments</apiName>
-                                    <proxyClass>org.apache.camel.component.linkedin.api.CommentsResource</proxyClass>
-                                    <fromJavadoc/>
-                                </api>
-                                <api>
-                                    <apiName>companies</apiName>
-                                    <proxyClass>org.apache.camel.component.linkedin.api.CompaniesResource</proxyClass>
-                                    <fromJavadoc/>
-                                    <nullableOptions>
-                                        <nullableOption>companySizes</nullableOption>
-                                        <nullableOption>count</nullableOption>
-                                        <nullableOption>email_domain</nullableOption>
-                                        <nullableOption>end_timestamp</nullableOption>
-                                        <nullableOption>event_type</nullableOption>
-                                        <nullableOption>geos</nullableOption>
-                                        <nullableOption>industries</nullableOption>
-                                        <nullableOption>is_company_admin</nullableOption>
-                                        <nullableOption>jobFunc</nullableOption>
-                                        <nullableOption>secure_urls</nullableOption>
-                                        <nullableOption>seniorities</nullableOption>
-                                        <nullableOption>start</nullableOption>
-                                        <nullableOption>start_timestamp</nullableOption>
-                                        <nullableOption>statistics_update_key</nullableOption>
-                                        <nullableOption>time_granularity</nullableOption>
-                                    </nullableOptions>
-                                    <substitutions>
-                                        <substitution>
-                                            <method>^getHistoricalStatusUpdateStatistics$</method>
-                                            <argName>update_key</argName>
-                                            <argType>java.lang.String</argType>
-                                            <replacement>statistics_update_key</replacement>
-                                        </substitution>
-                                    </substitutions>
-                                </api>
-                                <api>
-                                    <apiName>groups</apiName>
-                                    <proxyClass>org.apache.camel.component.linkedin.api.GroupsResource</proxyClass>
-                                    <fromJavadoc/>
-                                    <nullableOptions>
-                                        <nullableOption>category</nullableOption>
-                                        <nullableOption>count</nullableOption>
-                                        <nullableOption>modified_since</nullableOption>
-                                        <nullableOption>order</nullableOption>
-                                        <nullableOption>start</nullableOption>
-                                    </nullableOptions>
-                                </api>
-                                <api>
-                                    <apiName>jobs</apiName>
-                                    <proxyClass>org.apache.camel.component.linkedin.api.JobsResource</proxyClass>
-                                    <fromJavadoc/>
-                                </api>
-                                <api>
-                                    <apiName>people</apiName>
-                                    <proxyClass>org.apache.camel.component.linkedin.api.PeopleResource</proxyClass>
-                                    <fromJavadoc/>
-                                    <nullableOptions>
-                                        <nullableOption>after</nullableOption>
-                                        <nullableOption>before</nullableOption>
-                                        <nullableOption>category</nullableOption>
-                                        <nullableOption>count</nullableOption>
-                                        <nullableOption>membership_state</nullableOption>
-                                        <nullableOption>modified_since</nullableOption>
-                                        <nullableOption>order</nullableOption>
-                                        <nullableOption>public_profile_url</nullableOption>
-                                        <nullableOption>role</nullableOption>
-                                        <nullableOption>scope</nullableOption>
-                                        <nullableOption>secure_urls</nullableOption>
-                                        <nullableOption>show_hidden_members</nullableOption>
-                                        <nullableOption>start</nullableOption>
-                                        <nullableOption>type</nullableOption>
-                                    </nullableOptions>
-                                </api>
-                                <api>
-                                    <apiName>posts</apiName>
-                                    <proxyClass>org.apache.camel.component.linkedin.api.PostsResource</proxyClass>
-                                    <fromJavadoc/>
-                                    <nullableOptions>
-                                        <nullableOption>count</nullableOption>
-                                        <nullableOption>start</nullableOption>
-                                    </nullableOptions>
-                                </api>
-                                <api>
-                                    <apiName>search</apiName>
-                                    <proxyClass>org.apache.camel.component.linkedin.api.SearchResource</proxyClass>
-                                    <fromJavadoc/>
-                                    <nullableOptions>
-                                        <nullableOption>company_name</nullableOption>
-                                        <nullableOption>count</nullableOption>
-                                        <nullableOption>country_code</nullableOption>
-                                        <nullableOption>current_company</nullableOption>
-                                        <nullableOption>current_school</nullableOption>
-                                        <nullableOption>current_title</nullableOption>
-                                        <nullableOption>distance</nullableOption>
-                                        <nullableOption>facet</nullableOption>
-                                        <nullableOption>facets</nullableOption>
-                                        <nullableOption>first_name</nullableOption>
-                                        <nullableOption>hq_only</nullableOption>
-                                        <nullableOption>job_title</nullableOption>
-                                        <nullableOption>keywords</nullableOption>
-                                        <nullableOption>last_name</nullableOption>
-                                        <nullableOption>postal_code</nullableOption>
-                                        <nullableOption>school_name</nullableOption>
-                                        <nullableOption>sort</nullableOption>
-                                        <nullableOption>start</nullableOption>
-                                        <nullableOption>title</nullableOption>
-                                    </nullableOptions>
-                                </api>
-                            </apis>
-                            <aliases>
-                                <alias>
-                                    <methodPattern>(add|get|remove|search)(.+)</methodPattern>
-                                    <methodAlias>$2</methodAlias>
-                                </alias>
-                            </aliases>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!-- add generated source and test source to build -->
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>add-generated-sources</id>
-                        <goals>
-                            <goal>add-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                <source>${project.build.directory}/generated-sources/camel-component</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>add-generated-test-sources</id>
-                        <goals>
-                            <goal>add-test-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                <source>${project.build.directory}/generated-test-sources/camel-component</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-        </plugins>
-
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.camel</groupId>
-                    <artifactId>camel-api-component-maven-plugin</artifactId>
-                    <version>${project.version}</version>
-                    <configuration>
-                        <scheme>${schemeName}</scheme>
-                        <componentName>${componentName}</componentName>
-                        <componentPackage>${componentPackage}</componentPackage>
-                        <outPackage>${outPackage}</outPackage>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-
-    </build>
-
-    <reporting>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-api-component-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <configuration>
-                    <scheme>${schemeName}</scheme>
-                    <componentName>${componentName}</componentName>
-                    <componentPackage>${componentPackage}</componentPackage>
-                    <outPackage>${outPackage}</outPackage>
-                </configuration>
-            </plugin>
-        </plugins>
-    </reporting>
-
-</project>
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/docs/linkedin-component.adoc b/components/camel-linkedin/camel-linkedin-component/src/main/docs/linkedin-component.adoc
deleted file mode 100644
index ce16556..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/main/docs/linkedin-component.adoc
+++ /dev/null
@@ -1,747 +0,0 @@
-[[linkedin-component]]
-= Linkedin Component
-
-*Since Camel 2.14*
-
-The LinkedIn component provides access to all of LinkedIn REST APIs
-documented
-at https://developer.linkedin.com/rest[https://developer.linkedin.com/rest]. 
-
-LinkedIn uses OAuth2.0 for all client application authentication. In
-order to use camel-linkedin with your account, you'll need to create a
-new application for LinkedIn at
-https://www.linkedin.com/secure/developer[https://www.linkedin.com/secure/developer].
-The LinkedIn application's client id and secret will allow access to
-LinkedIn REST APIs which require a current user. A user access token is
-generated and managed by component for an end user. Alternatively the
-Camel application can register an implementation
-of org.apache.camel.component.linkedin.api.OAuthSecureStorage to provide
-an org.apache.camel.component.linkedin.apiOAuthToken OAuth token.
-
-Maven users will need to add the following dependency to their pom.xml
-for this component:
-
-[source,java]
------------------------------------------------
-    <dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-linkedin</artifactId>
-        <version>${camel-version}</version>
-    </dependency>
------------------------------------------------
-
-== URI format
-
-[source,java]
--------------------------------------------------
-    linkedin://endpoint-prefix/endpoint?[options]
--------------------------------------------------
-
-Endpoint prefix can be one of:
-
-* comments
-* companies
-* groups
-* jobs
-* people
-* posts
-* search
-
-== LinkedInComponent
-
-
-
-
-// component options: START
-The Linkedin component supports 2 options, which are listed below.
-
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *configuration* (common) | To use the shared configuration |  | LinkedInConfiguration
-| *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
-|===
-// component options: END
-
-
-
-
-
-// endpoint options: START
-The Linkedin endpoint is configured using URI syntax:
-
-----
-linkedin:apiName/methodName
-----
-
-with the following path and query parameters:
-
-=== Path Parameters (2 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *apiName* | *Required* What kind of operation to perform |  | LinkedInApiName
-| *methodName* | *Required* What sub operation to use for the selected operation |  | String
-|===
-
-
-=== Query Parameters (34 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *accessToken* (common) | LinkedIn access token to avoid username and password login procedure. LinkedIn responds to login forms by using a CAPTCHA. This makes it impossible for a standalone, headless process to log in to LinkedIn by specifying a username and password. To work around this, obtain a LinkedIn access token and provide the token as the setting of the accessToken parameter. Obtaining a LinkedIn access token is a multi-step procedure. You must configure your LinkedIn applicat [...]
-| *clientId* (common) | LinkedIn application client ID |  | String
-| *clientSecret* (common) | LinkedIn application client secret |  | String
-| *expiryTime* (common) | A number of milliseconds since the UNIX Epoch. The default is 60 days. A LinkedIn access token expires when this amount of time elapses after the token is in use. |  | Long
-| *httpParams* (common) | Custom HTTP parameters, for example, proxy host and port. Use constants from AllClientPNames. |  | Map
-| *inBody* (common) | Sets the name of a parameter to be passed in the exchange In Body |  | String
-| *lazyAuth* (common) | Flag to enable/disable lazy OAuth, default is true. When enabled, OAuth token retrieval or generation is not done until the first REST call. | true | boolean
-| *redirectUri* (common) | Application redirect URI, although the component never redirects to this page to avoid having to have a functioning redirect server. For testing, one could use \https://localhost. |  | String
-| *scopes* (common) | List of LinkedIn scopes as specified at \https://developer.linkedin.com/documents/authentication#granting |  | OAuthScope[]
-| *secureStorage* (common) | Callback interface for providing an OAuth token or to store the token generated by the component. The callback should return null on the first call and then save the created token in the saveToken() callback. If the callback returns null the first time, a userPassword MUST be provided. |  | OAuthSecureStorage
-| *userName* (common) | LinkedIn user account name, MUST be provided |  | String
-| *userPassword* (common) | LinkedIn account password |  | String
-| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
-| *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | boolean
-| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
-| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. |  | ExchangePattern
-| *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. |  | PollingConsumerPollStrategy
-| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
-| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
-| *backoffErrorThreshold* (scheduler) | The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in. |  | int
-| *backoffIdleThreshold* (scheduler) | The number of subsequent idle polls that should happen before the backoffMultipler should kick-in. |  | int
-| *backoffMultiplier* (scheduler) | To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured. |  | int
-| *delay* (scheduler) | Milliseconds before the next poll. You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour). | 500 | long
-| *greedy* (scheduler) | If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages. | false | boolean
-| *initialDelay* (scheduler) | Milliseconds before the first poll starts. You can also specify time values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), and 1h (1 hour). | 1000 | long
-| *repeatCount* (scheduler) | Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever. | 0 | long
-| *runLoggingLevel* (scheduler) | The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that. | TRACE | LoggingLevel
-| *scheduledExecutorService* (scheduler) | Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool. |  | ScheduledExecutorService
-| *scheduler* (scheduler) | To use a cron scheduler from either camel-spring or camel-quartz component | none | String
-| *schedulerProperties* (scheduler) | To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler. |  | Map
-| *startScheduler* (scheduler) | Whether the scheduler should be auto started. | true | boolean
-| *timeUnit* (scheduler) | Time unit for initialDelay and delay options. | MILLISECONDS | TimeUnit
-| *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | boolean
-|===
-// endpoint options: END
-// spring-boot-auto-configure options: START
-== Spring Boot Auto-Configuration
-
-When using Spring Boot make sure to use the following Maven dependency to have support for auto configuration:
-
-[source,xml]
-----
-<dependency>
-  <groupId>org.apache.camel</groupId>
-  <artifactId>camel-linkedin-starter</artifactId>
-  <version>x.x.x</version>
-  <!-- use the same version as your Camel core version -->
-</dependency>
-----
-
-
-The component supports 15 options, which are listed below.
-
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *camel.component.linkedin.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
-| *camel.component.linkedin.configuration.access-token* | LinkedIn access token to avoid username and password login procedure. LinkedIn responds to login forms by using a CAPTCHA. This makes it impossible for a standalone, headless process to log in to LinkedIn by specifying a username and password. To work around this, obtain a LinkedIn access token and provide the token as the setting of the accessToken parameter. Obtaining a LinkedIn access token is a multi-step procedure. You must c [...]
-| *camel.component.linkedin.configuration.api-name* | What kind of operation to perform |  | LinkedInApiName
-| *camel.component.linkedin.configuration.client-id* | LinkedIn application client ID |  | String
-| *camel.component.linkedin.configuration.client-secret* | LinkedIn application client secret |  | String
-| *camel.component.linkedin.configuration.expiry-time* | A number of milliseconds since the UNIX Epoch. The default is 60 days. A LinkedIn access token expires when this amount of time elapses after the token is in use. |  | Long
-| *camel.component.linkedin.configuration.http-params* | Custom HTTP parameters, for example, proxy host and port. Use constants from AllClientPNames. |  | Map
-| *camel.component.linkedin.configuration.lazy-auth* | Flag to enable/disable lazy OAuth, default is true. When enabled, OAuth token retrieval or generation is not done until the first REST call. | true | Boolean
-| *camel.component.linkedin.configuration.method-name* | What sub operation to use for the selected operation |  | String
-| *camel.component.linkedin.configuration.redirect-uri* | Application redirect URI, although the component never redirects to this page to avoid having to have a functioning redirect server. For testing, one could use \https://localhost. |  | String
-| *camel.component.linkedin.configuration.scopes* | List of LinkedIn scopes as specified at \https://developer.linkedin.com/documents/authentication#granting |  | OAuthScope[]
-| *camel.component.linkedin.configuration.secure-storage* | Callback interface for providing an OAuth token or to store the token generated by the component. The callback should return null on the first call and then save the created token in the saveToken() callback. If the callback returns null the first time, a userPassword MUST be provided. |  | OAuthSecureStorage
-| *camel.component.linkedin.configuration.user-name* | LinkedIn user account name, MUST be provided |  | String
-| *camel.component.linkedin.configuration.user-password* | LinkedIn account password |  | String
-| *camel.component.linkedin.enabled* | Enable linkedin component | true | Boolean
-|===
-// spring-boot-auto-configure options: END
-
-== Producer Endpoints:
-
-Producer endpoints can use endpoint prefixes followed by endpoint names
-and associated options described next. A shorthand alias can be used for
-some endpoints. The endpoint URI MUST contain a prefix.
-
-Endpoint options that are not mandatory are denoted by []. When there
-are no mandatory options for an endpoint, one of the set of [] options
-MUST be provided. Producer endpoints can also use a special
-option *inBody* that in turn should contain the name of the endpoint
-option whose value will be contained in the Camel Exchange In message.
-
-Any of the endpoint options can be provided in either the endpoint URI,
-or dynamically in a message header. The message header name must be of
-the format *CamelLinkedIn.<option>*. Note that the *inBody* option
-overrides message header, i.e. the endpoint option *inBody=option* would
-override a *CamelLinkedIn.option* header.
-
-For more information on the endpoints and options see LinkedIn REST API
-documentation
-at https://developer.linkedin.com/rest[https://developer.linkedin.com/rest]. 
-
-=== Endpoint prefix _comments_
-
-The following endpoints can be invoked with the prefix *comments* as
-follows:
-
-[source,java]
-------------------------------------------
-    linkedin://comments/endpoint?[options]
-------------------------------------------
-
-[width="100%",cols="25%,25%,25%,25%",options="header",]
-|=======================================================================
-|Endpoint |Shorthand Alias |Options |Result Body Type
-
-|getComment |comment |comment_id, fields |org.apache.camel.component.linkedin.api.model.Comment
-
-|removeComment |comment |comment_id | 
-|=======================================================================
-
-[[LinkedIn-URIOptionsforcomments]]
-URI Options for _comments_
-
-[width="100%",cols="50%,50%",options="header",]
-|=======================================================================
-|Name |Type
-
-|comment_id |String
-
-|fields |String
-|=======================================================================
-
-=== Endpoint prefix _companies_
-
-The following endpoints can be invoked with the prefix *companies* as
-follows:
-
-[source,java]
--------------------------------------------
-    linkedin://companies/endpoint?[options]
--------------------------------------------
-
-[width="100%",cols="25%,25%,25%,25%",options="header",]
-|=======================================================================
-|Endpoint |Shorthand Alias |Options |Result Body Type
-
-|addCompanyUpdateComment |companyUpdateComment |company_id, update_key, updatecomment |
-
-|addCompanyUpdateCommentAsCompany |companyUpdateCommentAsCompany |company_id, update_key, updatecomment |
-
-|addShare |share |company_id, share |
-
-|getCompanies |companies |email_domain, fields, is_company_admin |org.apache.camel.component.linkedin.api.model.Companies
-
-|getCompanyById |companyById |company_id, fields |org.apache.camel.component.linkedin.api.model.Company
-
-|getCompanyByName |companyByName |fields, universal_name |org.apache.camel.component.linkedin.api.model.Company
-
-|getCompanyUpdateComments |companyUpdateComments |company_id, fields, secure_urls, update_key |org.apache.camel.component.linkedin.api.model.Comments
-
-|getCompanyUpdateLikes |companyUpdateLikes |company_id, fields, secure_urls, update_key |org.apache.camel.component.linkedin.api.model.Likes
-
-|getCompanyUpdates |companyUpdates |company_id, count, event_type, fields, start |org.apache.camel.component.linkedin.api.model.Updates
-
-|getHistoricalFollowStatistics |historicalFollowStatistics |company_id, end_timestamp, start_timestamp, time_granularity |org.apache.camel.component.linkedin.api.model.HistoricalFollowStatistics
-
-|getHistoricalStatusUpdateStatistics |historicalStatusUpdateStatistics |company_id, end_timestamp, start_timestamp, time_granularity, update_key |org.apache.camel.component.linkedin.api.model.HistoricalStatusUpdateStatistics
-
-|getNumberOfFollowers |numberOfFollowers |companySizes, company_id, geos, industries, jobFunc, seniorities |org.apache.camel.component.linkedin.api.model.NumFollowers
-
-|getStatistics |statistics |company_id |org.apache.camel.component.linkedin.api.model.CompanyStatistics
-
-|isShareEnabled |  | company_id |org.apache.camel.component.linkedin.api.model.IsCompanyShareEnabled
-
-|isViewerShareEnabled |  |company_id |org.apache.camel.component.linkedin.api.model.IsCompanyShareEnabled
-
-|likeCompanyUpdate |  | company_id, isliked, update_key |
-|=======================================================================
-
-[[LinkedIn-URIOptionsforcompanies]]
-URI Options for _companies_
-
-If a value is not provided for one of the option(s) *[companySizes,
-count, email_domain, end_timestamp, event_type, geos, industries,
-is_company_admin, jobFunc, secure_urls, seniorities, start,
-start_timestamp, time_granularity]* either in the endpoint URI or in a
-message header, it will be assumed to be *null*. Note that
-the *null* value(s) will only be used if other options do not satisfy
-matching endpoints.
-
-[width="100%",cols="50%,50%",options="header",]
-|=======================================================================
-|Name |Type
-
-|companySizes |java.util.List
-
-|company_id |Long
-
-|count |Long
-
-|email_domain |String
-
-|end_timestamp |Long
-
-|event_type |org.apache.camel.component.linkedin.api.Eventtype
-
-|fields |String
-
-|geos |java.util.List
-
-|industries |java.util.List
-
-|is_company_admin |Boolean
-
-|isliked |org.apache.camel.component.linkedin.api.model.IsLiked
-
-|jobFunc |java.util.List
-
-|secure_urls |Boolean
-
-|seniorities |java.util.List
-
-|share |org.apache.camel.component.linkedin.api.model.Share
-
-|start |Long
-
-|start_timestamp |Long
-
-|time_granularity |org.apache.camel.component.linkedin.api.Timegranularity
-
-|universal_name |String
-
-|update_key |String
-
-|updatecomment |org.apache.camel.component.linkedin.api.model.UpdateComment
-|=======================================================================
-
-=== Endpoint prefix _groups_
-
-The following endpoints can be invoked with the prefix *groups* as
-follows:
-
-[source,java]
-----------------------------------------
-    linkedin://groups/endpoint?[options]
-----------------------------------------
-
-[width="100%",cols="25%,25%,25%,25%",options="header",]
-|=======================================================================
-|Endpoint |Shorthand Alias |Options |Result Body Type
-
-|addPost |post |group_id, post |
-
-|getGroup |group |group_id |org.apache.camel.component.linkedin.api.model.Group
-|=======================================================================
-
-[[LinkedIn-URIOptionsforgroups]]
-URI Options for _groups_
-
-[width="100%",cols="50%,50%",options="header",]
-|=======================================================================
-|Name |Type
-
-|group_id |Long
-
-|post |org.apache.camel.component.linkedin.api.model.Post
-|=======================================================================
-
-=== Endpoint prefix _jobs_
-
-The following endpoints can be invoked with the prefix *jobs* as
-follows:
-
-[source,java]
---------------------------------------
-    linkedin://jobs/endpoint?[options]
---------------------------------------
-
-[width="100%",cols="25%,25%,25%,25%",options="header",]
-|=======================================================================
-|Endpoint |Shorthand Alias |Options |Result Body Type
-
-|addJob |job |job |
-
-|editJob |  | job, partner_job_id |
-
-|getJob |job |fields, job_id |org.apache.camel.component.linkedin.api.model.Job
-
-|removeJob |job |partner_job_id
-|=======================================================================
-
-[[LinkedIn-URIOptionsforjobs]]
-URI Options for _jobs_
-
-[width="100%",cols="50%,50%",options="header",]
-|=======================================================================
-|Name |Type
-
-|fields |String
-
-|job |org.apache.camel.component.linkedin.api.model.Job
-
-|job_id |Long
-
-|partner_job_id |Long
-|=======================================================================
-
-=== Endpoint prefix _people_
-
-The following endpoints can be invoked with the prefix *people* as
-follows:
-
-[source,java]
-----------------------------------------
-    linkedin://people/endpoint?[options]
-----------------------------------------
-
-[width="100%",cols="25%,25%,25%,25%",options="header",]
-|=======================================================================
-|Endpoint |Shorthand Alias |Options |Result Body Type
-
-|addActivity |activity |activity |
-
-|addGroupMembership |groupMembership |groupmembership |
-
-|addInvite |invite |mailboxitem |
-
-|addJobBookmark |jobBookmark |jobbookmark |
-
-|addUpdateComment |updateComment |update_key, updatecomment |
-
-|followCompany |  |company |
-
-|getConnections |connections |fields, secure_urls |org.apache.camel.component.linkedin.api.model.Connections
-
-|getConnectionsById |connectionsById |fields, person_id, secure_urls |org.apache.camel.component.linkedin.api.model.Connections
-
-|getConnectionsByUrl |connectionsByUrl |fields, public_profile_url, secure_urls |org.apache.camel.component.linkedin.api.model.Connections
-
-|getFollowedCompanies |followedCompanies |fields |org.apache.camel.component.linkedin.api.model.Companies
-
-|getGroupMembershipSettings |groupMembershipSettings |count, fields, group_id, start |org.apache.camel.component.linkedin.api.model.GroupMemberships
-
-|getGroupMemberships |groupMemberships |count, fields, membership_state, start |org.apache.camel.component.linkedin.api.model.GroupMemberships
-
-|getJobBookmarks |jobBookmarks |  | org.apache.camel.component.linkedin.api.model.JobBookmarks
-
-|getNetworkStats |networkStats |  | org.apache.camel.component.linkedin.api.model.NetworkStats
-
-|getNetworkUpdates |networkUpdates |after, before, count, fields, scope, secure_urls, show_hidden_members,
-start, type |org.apache.camel.component.linkedin.api.model.Updates
-
-|getNetworkUpdatesById |networkUpdatesById |after, before, count, fields, person_id, scope, secure_urls,
-show_hidden_members, start, type |org.apache.camel.component.linkedin.api.model.Updates
-
-|getPerson |person |fields, secure_urls |org.apache.camel.component.linkedin.api.model.Person
-
-|getPersonById |personById |fields, person_id, secure_urls |org.apache.camel.component.linkedin.api.model.Person
-
-|getPersonByUrl |personByUrl |fields, public_profile_url, secure_urls |org.apache.camel.component.linkedin.api.model.Person
-
-|getPosts |posts |category, count, fields, group_id, modified_since, order, role, start |org.apache.camel.component.linkedin.api.model.Posts
-
-|getSuggestedCompanies |suggestedCompanies |fields |org.apache.camel.component.linkedin.api.model.Companies
-
-|getSuggestedGroupPosts |suggestedGroupPosts |category, count, fields, group_id, modified_since, order, role, start |org.apache.camel.component.linkedin.api.model.Posts
-
-|getSuggestedGroups |suggestedGroups |fields |org.apache.camel.component.linkedin.api.model.Groups
-
-|getSuggestedJobs |suggestedJobs |fields |org.apache.camel.component.linkedin.api.model.JobSuggestions
-
-|getUpdateComments |updateComments |fields, secure_urls, update_key |org.apache.camel.component.linkedin.api.model.Comments
-
-|getUpdateLikes |updateLikes |fields, secure_urls, update_key |org.apache.camel.component.linkedin.api.model.Likes
-
-|likeUpdate |  | isliked, update_key |
-
-|removeGroupMembership |groupMembership |group_id |
-
-|removeGroupSuggestion |groupSuggestion |group_id |
-
-|removeJobBookmark |jobBookmark |job_id |
-
-|share |  | share |org.apache.camel.component.linkedin.api.model.Update
-
-|stopFollowingCompany |  | company_id |
-
-|updateGroupMembership |  | group_id, groupmembership |
-|=======================================================================
-
-[[LinkedIn-URIOptionsforpeople]]
-URI Options for _people_
-
-If a value is not provided for one of the option(s) *[after, before,
-category, count, membership_state, modified_since, order,
-public_profile_url, role, scope, secure_urls, show_hidden_members,
-start, type]* either in the endpoint URI or in a message header, it will
-be assumed to be *null*. Note that the *null* value(s) will only be used
-if other options do not satisfy matching endpoints.
-
-[width="100%",cols="50%,50%",options="header",]
-|=======================================================================
-|Name |Type
-
-|activity |org.apache.camel.component.linkedin.api.model.Activity
-
-|after |Long
-
-|before |Long
-
-|category |org.apache.camel.component.linkedin.api.Category
-
-|company |org.apache.camel.component.linkedin.api.model.Company
-
-|company_id |Long
-
-|count |Long
-
-|fields |String
-
-|group_id |Long
-
-|groupmembership |org.apache.camel.component.linkedin.api.model.GroupMembership
-
-|isliked |org.apache.camel.component.linkedin.api.model.IsLiked
-
-|job_id |Long
-
-|jobbookmark |org.apache.camel.component.linkedin.api.model.JobBookmark
-
-|mailboxitem |org.apache.camel.component.linkedin.api.model.MailboxItem
-
-|membership_state |org.apache.camel.component.linkedin.api.model.MembershipState
-
-|modified_since |Long
-
-|order |org.apache.camel.component.linkedin.api.Order
-
-|person_id |String 
-
-|public_profile_url |String
-
-|role |org.apache.camel.component.linkedin.api.Role
-
-|scope |String
-
-|secure_urls |Boolean
-
-|share |org.apache.camel.component.linkedin.api.model.Share
-
-|show_hidden_members |Boolean
-
-|start |Long
-
-|type |org.apache.camel.component.linkedin.api.Type
-
-|update_key | String
-
-|updatecomment |org.apache.camel.component.linkedin.api.model.UpdateComment
-|=======================================================================
-
-=== Endpoint prefix _posts_
-
-The following endpoints can be invoked with the prefix *posts* as
-follows:
-
-[source,java]
----------------------------------------
-    linkedin://posts/endpoint?[options]
----------------------------------------
-
-[width="100%",cols="25%,25%,25%,25%",options="header",]
-|=======================================================================
-|Endpoint |Shorthand Alias |Options |Result Body Type
-
-|addComment |comment |comment, post_id |
-
-|flagCategory |  | post_id, postcategorycode |
-
-|followPost |  | isfollowing, post_id |
-
-|getPost |post |count, fields, post_id, start |org.apache.camel.component.linkedin.api.model.Post
-
-|getPostComments |postComments |count, fields, post_id, start |org.apache.camel.component.linkedin.api.model.Comments
-
-|likePost |  | isliked, post_id |
-
-|removePost |post |post_id |
-|=======================================================================
- 
-[[LinkedIn-URIOptionsforposts]]
-URI Options for _posts_
-
-If a value is not provided for one of the option(s) *[count, start]*
-either in the endpoint URI or in a message header, it will be assumed to
-be *null*. Note that the *null* value(s) will only be used if other
-options do not satisfy matching endpoints.
-
-[width="100%",cols="50%,50%",options="header",]
-|=======================================================================
-|Name |Type
-
-|comment |org.apache.camel.component.linkedin.api.model.Comment
-
-|count |Long
-
-|fields |String
-
-|isfollowing |org.apache.camel.component.linkedin.api.model.IsFollowing
-
-|isliked |org.apache.camel.component.linkedin.api.model.IsLiked
-
-|post_id |String
-
-|postcategorycode |org.apache.camel.component.linkedin.api.model.PostCategoryCode
-
-|start |Long
-|=======================================================================
-
-=== Endpoint prefix _search_
-
-The following endpoints can be invoked with the prefix *search* as
-follows:
-
-[source,java]
----------------------------------------
-   linkedin://search/endpoint?[options]
----------------------------------------
-
-[width="100%",cols="25%,25%,25%,25%",options="header",]
-|=======================================================================
-|Endpoint |Shorthand Alias |Options |Result Body Type
-
-|searchCompanies |companies |count, facet, facets, fields, hq_only, keywords, sort, start |org.apache.camel.component.linkedin.api.model.CompanySearch
-
-|searchJobs |jobs |company_name, count, country_code, distance, facet, facets, fields,
-job_title, keywords, postal_code, sort, start |org.apache.camel.component.linkedin.api.model.JobSearch
-
-|searchPeople |people |company_name, count, country_code, current_company, current_school,
-current_title, distance, facet, facets, fields, first_name, keywords,
-last_name, postal_code, school_name, sort, start, title |org.apache.camel.component.linkedin.api.model.PeopleSearch
-|=======================================================================
-
-[[LinkedIn-URIOptionsforsearch]]
-URI Options for _search_
-
-If a value is not provided for one of the option(s) *[company_name,
-count, country_code, current_company, current_school, current_title,
-distance, facet, facets, first_name, hq_only, job_title, keywords,
-last_name, postal_code, school_name, sort, start, title]* either in the
-endpoint URI or in a message header, it will be assumed to be *null*.
-Note that the *null* value(s) will only be used if other options do not
-satisfy matching endpoints.
-
-[width="100%",cols="50%,50%",options="header",]
-|=======================================================================
-|Name |Type
-
-|company_name |String
-
-|count |Long
-
-|country_code |String
-
-|current_company |String
-
-|current_school |String
-
-|current_title |String
-
-|distance |org.apache.camel.component.linkedin.api.model.Distance
-
-|facet |String
-
-|facets |String
-
-|fields |String
-
-|first_name |String
-
-|hq_only |String
-
-|job_title |String
-
-|keywords |String
-
-|last_name |String
-
-|postal_code |String
-
-|school_name |String
-
-|sort |String
-
-|start |Long
-
-|title |String
-|=======================================================================
-
-== Consumer Endpoints
-
-Any of the producer endpoints can be used as a consumer endpoint.
-Consumer endpoints can
-use http://camel.apache.org/polling-consumer.html#PollingConsumer-ScheduledPollConsumerOptions[Scheduled
-Poll Consumer Options] with a *consumer.* prefix to schedule endpoint
-invocation. By default Consumer endpoints that return an array or
-collection will generate one exchange per element, and their routes will
-be executed once for each exchange. To change this behavior use the
-property *consumer.splitResults=true* to return a single exchange for
-the entire list or array. 
-
-== Message Headers
-
-Any URI option can be provided in a message header for producer
-endpoints with a *CamelLinkedIn.* prefix.
-
-== Message body
-
-All result message bodies utilize objects provided by the Camel LinkedIn
-API SDK, which is built using Apache CXF JAX-RS. Producer endpoints can
-specify the option name for incoming message body in the *inBody*
-endpoint parameter.
-
-== Use cases
-
-The following route gets user's profile:
-
-[source,java]
-----------------------------------------
-    from("direct:foo")
-        .to("linkedin://people/person");
-----------------------------------------
-
-The following route polls user's connections every 30 seconds:
-
-[source,java]
--------------------------------------------------------------------------------------
-    from("linkedin://people/connections?consumer.timeUnit=SECONDS&delay=30")
-        .to("bean:foo");
--------------------------------------------------------------------------------------
-
-The following route uses a producer with dynamic header options. The
-*personId* header has the LinkedIn person ID, so its assigned to the
-*CamelLinkedIn.person_id* header as follows:
-
-[source,java]
------------------------------------------------------------------
-    from("direct:foo")
-        .setHeader("CamelLinkedIn.person_id", header("personId"))
-        .to("linkedin://people/connectionsById")
-        .to("bean://bar");
------------------------------------------------------------------
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/DefaultOAuthSecureStorage.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/DefaultOAuthSecureStorage.java
deleted file mode 100644
index 88a99dd..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/DefaultOAuthSecureStorage.java
+++ /dev/null
@@ -1,38 +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.component.linkedin;
-
-import java.util.concurrent.TimeUnit;
-
-import org.apache.camel.component.linkedin.api.OAuthSecureStorage;
-import org.apache.camel.component.linkedin.api.OAuthToken;
-import org.apache.camel.component.linkedin.internal.CachingOAuthSecureStorage;
-
-/**
- * Default implementation of {@link OAuthSecureStorage}
- * with user provided token and optional expiry time in msecs.
- */
-public class DefaultOAuthSecureStorage extends CachingOAuthSecureStorage {
-
-    public DefaultOAuthSecureStorage(String accessToken, Long expiryTime) {
-        super(null);
-        if (expiryTime == null) {
-            expiryTime = System.currentTimeMillis() + TimeUnit.MILLISECONDS.convert(60, TimeUnit.DAYS);
-        }
-        this.token = new OAuthToken(null, accessToken, expiryTime);
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java
deleted file mode 100644
index ed6fb10..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java
+++ /dev/null
@@ -1,121 +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.component.linkedin;
-
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-import javax.net.ssl.SSLContext;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.Endpoint;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.component.linkedin.api.LinkedInOAuthRequestFilter;
-import org.apache.camel.component.linkedin.api.OAuthParams;
-import org.apache.camel.component.linkedin.api.OAuthSecureStorage;
-import org.apache.camel.component.linkedin.internal.CachingOAuthSecureStorage;
-import org.apache.camel.component.linkedin.internal.LinkedInApiCollection;
-import org.apache.camel.component.linkedin.internal.LinkedInApiName;
-import org.apache.camel.spi.annotations.Component;
-import org.apache.camel.support.component.AbstractApiComponent;
-import org.apache.camel.support.jsse.SSLContextParameters;
-import org.apache.camel.util.ObjectHelper;
-
-/**
- * Represents the component that manages {@link LinkedInEndpoint}.
- */
-@Component("linkedin")
-public class LinkedInComponent extends AbstractApiComponent<LinkedInApiName, LinkedInConfiguration, LinkedInApiCollection> {
-
-    private LinkedInOAuthRequestFilter requestFilter;
-
-    public LinkedInComponent() {
-        super(LinkedInEndpoint.class, LinkedInApiName.class, LinkedInApiCollection.getCollection());
-    }
-
-    public LinkedInComponent(CamelContext context) {
-        super(context, LinkedInEndpoint.class, LinkedInApiName.class, LinkedInApiCollection.getCollection());
-    }
-
-    @Override
-    protected LinkedInApiName getApiName(String apiNameStr) throws IllegalArgumentException {
-        return LinkedInApiName.fromValue(apiNameStr);
-    }
-
-    /**
-     * To use the shared configuration
-     */
-    @Override
-    public void setConfiguration(LinkedInConfiguration configuration) {
-        super.setConfiguration(configuration);
-    }
-
-    /**
-     * To use the shared configuration
-     */
-    @Override
-    public LinkedInConfiguration getConfiguration() {
-        return super.getConfiguration();
-    }
-
-    @Override
-    protected Endpoint createEndpoint(String uri, String methodName, LinkedInApiName apiName,
-                                      LinkedInConfiguration endpointConfiguration) {
-        endpointConfiguration.setApiName(apiName);
-        endpointConfiguration.setMethodName(methodName);
-        return new LinkedInEndpoint(uri, this, apiName, methodName, endpointConfiguration);
-    }
-
-    public synchronized LinkedInOAuthRequestFilter getRequestFilter(LinkedInConfiguration endpointConfiguration) {
-        if (endpointConfiguration.equals(configuration)) {
-            if (requestFilter == null) {
-                requestFilter = createRequestFilter(this.configuration);
-            }
-            return requestFilter;
-        } else {
-            return createRequestFilter(endpointConfiguration);
-        }
-    }
-
-    private LinkedInOAuthRequestFilter createRequestFilter(LinkedInConfiguration configuration) {
-        // validate configuration
-        configuration.validate();
-
-        final String[] enabledProtocols;
-        try {
-            // use default SSP to create supported non-SSL protocols list
-            final SSLContext sslContext = new SSLContextParameters().createSSLContext(getCamelContext());
-            enabledProtocols = sslContext.createSSLEngine().getEnabledProtocols();
-        } catch (GeneralSecurityException e) {
-            throw RuntimeCamelException.wrapRuntimeCamelException(e);
-        } catch (IOException e) {
-            throw RuntimeCamelException.wrapRuntimeCamelException(e);
-        }
-        return new LinkedInOAuthRequestFilter(getOAuthParams(configuration),
-            configuration.getHttpParams(), configuration.isLazyAuth(), enabledProtocols);
-    }
-
-    private static OAuthParams getOAuthParams(LinkedInConfiguration configuration) {
-        OAuthSecureStorage secureStorage = configuration.getSecureStorage();
-        if (secureStorage == null && !ObjectHelper.isEmpty(configuration.getAccessToken())) {
-            secureStorage = new DefaultOAuthSecureStorage(configuration.getAccessToken(), configuration.getExpiryTime());
-        }
-        return new OAuthParams(configuration.getUserName(), configuration.getUserPassword(),
-            new CachingOAuthSecureStorage(secureStorage), configuration.getClientId(), configuration.getClientSecret(),
-            configuration.getRedirectUri(), configuration.getScopes());
-    }
-
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java
deleted file mode 100644
index 6cd8c46..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java
+++ /dev/null
@@ -1,291 +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.component.linkedin;
-
-import java.util.Arrays;
-import java.util.Map;
-
-import org.apache.camel.component.linkedin.api.OAuthScope;
-import org.apache.camel.component.linkedin.api.OAuthSecureStorage;
-import org.apache.camel.component.linkedin.internal.LinkedInApiName;
-import org.apache.camel.spi.Metadata;
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.spi.UriParams;
-import org.apache.camel.spi.UriPath;
-import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.StringHelper;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
-
-/**
- * Component configuration for LinkedIn component.
- */
-@UriParams
-public class LinkedInConfiguration {
-
-    @UriPath(enums = "comments,companies,groups,jobs,people,posts,search")
-    @Metadata(required = true)
-    private LinkedInApiName apiName;
-    @UriPath(enums = "addActivity,addComment,addCompanyUpdateComment,addCompanyUpdateCommentAsCompany,addGroupMembership,addInvite"
-            + ",addJob,addJobBookmark,addPost,addShare,addUpdateComment,editJob,flagCategory,followCompany,followPost,getComment"
-            + ",getCompanies,getCompanyById,getCompanyByName,getCompanyUpdateComments,getCompanyUpdateLikes,getCompanyUpdates"
-            + ",getConnections,getConnectionsById,getConnectionsByUrl,getFollowedCompanies,getGroup,getGroupMemberships,getGroupMembershipSettings"
-            + ",getHistoricalFollowStatistics,getHistoricalStatusUpdateStatistics,getJob,getJobBookmarks,getNetworkStats,getNetworkUpdates"
-            + ",getNetworkUpdatesById,getNumberOfFollowers,getPerson,getPersonById,getPersonByUrl,getPost,getPostComments,getPosts"
-            + ",getStatistics,getSuggestedCompanies,getSuggestedGroupPosts,getSuggestedGroups,getSuggestedJobs,getUpdateComments"
-            + ",getUpdateLikes,isShareEnabled,isViewerShareEnabled,likeCompanyUpdate,likePost,likeUpdate,removeComment,removeGroupMembership"
-            + ",removeGroupSuggestion,removeJob,removeJobBookmark,removePost,searchCompanies,searchJobs,searchPeople,share,stopFollowingCompany,updateGroupMembership")
-    @Metadata(required = true)
-    private String methodName;
-    @UriParam
-    private String userName;
-    @UriParam
-    private String userPassword;
-    @UriParam
-    private OAuthSecureStorage secureStorage;
-    @UriParam
-    private String accessToken;
-    @UriParam
-    private Long expiryTime;
-    @UriParam
-    private String clientId;
-    @UriParam
-    private String clientSecret;
-    @UriParam
-    private OAuthScope[] scopes;
-    @UriParam
-    private String redirectUri;
-    @UriParam
-    private Map<String, Object> httpParams;
-    @UriParam(defaultValue = "true")
-    private boolean lazyAuth = true;
-
-    public LinkedInApiName getApiName() {
-        return apiName;
-    }
-
-    /**
-     * What kind of operation to perform
-     */
-    public void setApiName(LinkedInApiName apiName) {
-        this.apiName = apiName;
-    }
-
-    public String getMethodName() {
-        return methodName;
-    }
-
-    /**
-     * What sub operation to use for the selected operation
-     */
-    public void setMethodName(String methodName) {
-        this.methodName = methodName;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    /**
-     * LinkedIn user account name, MUST be provided
-     */
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
-    public String getUserPassword() {
-        return userPassword;
-    }
-
-    /**
-     * LinkedIn account password
-     */
-    public void setUserPassword(String userPassword) {
-        this.userPassword = userPassword;
-    }
-
-    public OAuthSecureStorage getSecureStorage() {
-        return secureStorage;
-    }
-
-    public String getAccessToken() {
-        return accessToken;
-    }
-
-    /**
-     * LinkedIn access token to avoid username and password login procedure.
-     * LinkedIn responds to login forms by using a CAPTCHA. This makes it impossible
-     * for a standalone, headless process to log in to LinkedIn by specifying a username and password.
-     * To work around this, obtain a LinkedIn access token and provide the token as
-     * the setting of the accessToken parameter.
-     *
-     * Obtaining a LinkedIn access token is a multi-step procedure. You must configure your
-     * LinkedIn application, obtain a LinkedIn authorization code, and exchange that
-     * code for the LinkedIn access token. For details, see: https://developer.linkedin.com/docs/oauth2
-     *
-     * The default behavior is that the access token expires after 60 days. To change this, specify a value
-     * for the expiryTime paramter. If the access token expires, the LinkedIn component tries to log in to
-     * LinkedIn by providing a username and password, which results in a CAPTCHA so the login fails.
-     * The LinkedIn component cannot refresh the access token. You must manually obtain a new access token
-     * each time an access token expires. When you update the access token you must restart the application
-     * so that it uses the new token.
-     */
-    public void setAccessToken(String accessToken) {
-        this.accessToken = accessToken;
-    }
-
-    public Long getExpiryTime() {
-        return expiryTime;
-    }
-
-    /**
-     * A number of milliseconds since the UNIX Epoch. The default is 60 days.
-     * A LinkedIn access token expires when this amount of time elapses after the token is in use.
-     */
-    public void setExpiryTime(Long expiryTime) {
-        this.expiryTime = expiryTime;
-    }
-
-    /**
-     * Callback interface for providing an OAuth token or to store the token generated by the component.
-     * The callback should return null on the first call and then save the created token in the saveToken() callback.
-     * If the callback returns null the first time, a userPassword MUST be provided.
-     */
-    public void setSecureStorage(OAuthSecureStorage secureStorage) {
-        this.secureStorage = secureStorage;
-    }
-
-    public String getClientId() {
-        return clientId;
-    }
-
-    /**
-     * LinkedIn application client ID
-     */
-    public void setClientId(String clientId) {
-        this.clientId = clientId;
-    }
-
-    public String getClientSecret() {
-        return clientSecret;
-    }
-
-    /**
-     * LinkedIn application client secret
-     */
-    public void setClientSecret(String clientSecret) {
-        this.clientSecret = clientSecret;
-    }
-
-    public OAuthScope[] getScopes() {
-        return scopes;
-    }
-
-    /**
-     * List of LinkedIn scopes as specified at https://developer.linkedin.com/documents/authentication#granting
-     */
-    public void setScopes(OAuthScope[] scopes) {
-        this.scopes = scopes;
-    }
-
-    public String getRedirectUri() {
-        return redirectUri;
-    }
-
-    /**
-     * Application redirect URI, although the component never redirects to this page to avoid having to have a functioning redirect server.
-     * For testing, one could use https://localhost.
-     */
-    public void setRedirectUri(String redirectUri) {
-        this.redirectUri = redirectUri;
-    }
-
-    public Map<String, Object> getHttpParams() {
-        return httpParams;
-    }
-
-    /**
-     * Custom HTTP parameters, for example, proxy host and port. Use constants from AllClientPNames.
-     */
-    public void setHttpParams(Map<String, Object> httpParams) {
-        this.httpParams = httpParams;
-    }
-
-    public boolean isLazyAuth() {
-        return lazyAuth;
-    }
-
-    /**
-     * Flag to enable/disable lazy OAuth, default is true. When enabled, OAuth token retrieval or generation is not done until the first REST call.
-     */
-    public void setLazyAuth(boolean lazyAuth) {
-        this.lazyAuth = lazyAuth;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (obj instanceof LinkedInConfiguration) {
-            final LinkedInConfiguration other = (LinkedInConfiguration) obj;
-            return (userName == null ? other.userName == null : userName.equals(other.userName))
-                && (userPassword == null ? other.userPassword == null : userPassword.equals(other.userPassword))
-                && secureStorage == other.secureStorage
-                && (clientId == null ? other.clientId == null : clientId.equals(other.clientId))
-                && (clientSecret == null ? other.clientSecret == null : clientSecret.equals(other.clientSecret))
-                && (redirectUri == null ? other.redirectUri == null : redirectUri.equals(other.redirectUri))
-                && Arrays.equals(scopes, other.scopes)
-                && (httpParams == null ? other.httpParams == null : httpParams.equals(other.httpParams))
-                && (lazyAuth == other.lazyAuth)
-                && (accessToken == null ? other.accessToken == null : accessToken.equals(other.accessToken));
-        }
-        return false;
-    }
-
-    @Override
-    public int hashCode() {
-        return new HashCodeBuilder().append(userName).append(userPassword).append(secureStorage)
-            .append(clientId).append(clientSecret)
-            .append(redirectUri).append(scopes).append(httpParams).append(lazyAuth).append(accessToken).toHashCode();
-    }
-
-    public void validate() throws IllegalArgumentException {
-            //if access token is null, authentication credentials have to be validated
-        if (ObjectHelper.isEmpty(accessToken)) {
-            StringHelper.notEmpty(userName, "userName");
-            if (ObjectHelper.isEmpty(userPassword) && secureStorage == null) {
-                throw new IllegalArgumentException("Property userPassword or secureStorage is required");
-            }
-            StringHelper.notEmpty(clientId, "clientId");
-            StringHelper.notEmpty(clientSecret, "clientSecret");
-        } else {
-            //if accessToken is net, other parameters hav to be empty
-            if (!ObjectHelper.isEmpty(userName)) {
-                throw new IllegalArgumentException("Property accessToken can not be defined if property userName is set");
-            }
-            if (!ObjectHelper.isEmpty(userPassword)) {
-                throw new IllegalArgumentException("Property accessToken can not be defined if property userPassword is set");
-            }
-            if (!ObjectHelper.isEmpty(clientId)) {
-                throw new IllegalArgumentException("Property accessToken can not be defined if property clientId is set");
-            }
-            if (!ObjectHelper.isEmpty(clientSecret)) {
-                throw new IllegalArgumentException("Property accessToken can not be defined if property clientSecret is set");
-            }
-        }
-
-        //redirectUri has to be valid for both cases
-        StringHelper.notEmpty(redirectUri, "redirectUri");
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConsumer.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConsumer.java
deleted file mode 100644
index 7879e3e..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConsumer.java
+++ /dev/null
@@ -1,77 +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.component.linkedin;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-
-import org.apache.camel.Processor;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.component.linkedin.api.LinkedInException;
-import org.apache.camel.component.linkedin.api.model.Error;
-import org.apache.camel.component.linkedin.internal.LinkedInApiName;
-import org.apache.camel.support.component.AbstractApiConsumer;
-import org.apache.camel.support.component.ApiMethod;
-
-/**
- * The LinkedIn consumer.
- */
-public class LinkedInConsumer extends AbstractApiConsumer<LinkedInApiName, LinkedInConfiguration> {
-
-    public LinkedInConsumer(LinkedInEndpoint endpoint, Processor processor) {
-        super(endpoint, processor);
-    }
-
-    @Override
-    public void interceptPropertyNames(Set<String> propertyNames) {
-        // do we need to add fields option
-        if (!propertyNames.contains(LinkedInEndpoint.FIELDS_OPTION)) {
-            final List<ApiMethod> candidates = endpoint.getCandidates();
-
-            for (ApiMethod method : candidates) {
-                if (!method.getArgNames().contains(LinkedInEndpoint.FIELDS_OPTION)) {
-                    return;
-                }
-            }
-            // all candidates use fields option, so there is no ambiguity
-            propertyNames.add(LinkedInEndpoint.FIELDS_OPTION);
-        }
-    }
-
-    @Override
-    protected Object doInvokeMethod(Map<String, Object> args) {
-        try {
-            return super.doInvokeMethod(args);
-        } catch (RuntimeCamelException e) {
-            if (e.getCause() instanceof WebApplicationException) {
-                WebApplicationException cause = (WebApplicationException) e.getCause();
-                final Response response = cause.getResponse();
-                if (response.hasEntity()) {
-                    // try and convert it to LinkedInException
-                    final org.apache.camel.component.linkedin.api.model.Error error = response.readEntity(Error.class);
-                    throw new RuntimeCamelException(
-                        String.format("Error invoking %s: %s", method.getName(), error.getMessage()),
-                        new LinkedInException(error, response));
-                }
-            }
-            throw e;
-        }
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java
deleted file mode 100644
index 10fd7d3..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java
+++ /dev/null
@@ -1,188 +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.component.linkedin;
-
-import java.util.Arrays;
-import java.util.Map;
-
-import org.apache.camel.Consumer;
-import org.apache.camel.Processor;
-import org.apache.camel.Producer;
-import org.apache.camel.component.linkedin.api.CommentsResource;
-import org.apache.camel.component.linkedin.api.CompaniesResource;
-import org.apache.camel.component.linkedin.api.EnumQueryParamConverterProvider;
-import org.apache.camel.component.linkedin.api.GroupsResource;
-import org.apache.camel.component.linkedin.api.JobsResource;
-import org.apache.camel.component.linkedin.api.LinkedInOAuthRequestFilter;
-import org.apache.camel.component.linkedin.api.PeopleResource;
-import org.apache.camel.component.linkedin.api.PostsResource;
-import org.apache.camel.component.linkedin.api.SearchResource;
-import org.apache.camel.component.linkedin.internal.LinkedInApiCollection;
-import org.apache.camel.component.linkedin.internal.LinkedInApiName;
-import org.apache.camel.component.linkedin.internal.LinkedInConstants;
-import org.apache.camel.component.linkedin.internal.LinkedInPropertiesHelper;
-import org.apache.camel.spi.UriEndpoint;
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.support.component.AbstractApiEndpoint;
-import org.apache.camel.support.component.ApiMethod;
-import org.apache.camel.support.component.ApiMethodPropertiesHelper;
-import org.apache.cxf.Bus;
-import org.apache.cxf.BusFactory;
-import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
-import org.apache.cxf.jaxrs.client.WebClient;
-
-
-/**
- * The linkedin component is used for retrieving LinkedIn user profiles, connections, companies, groups, posts, etc.
- */
-@UriEndpoint(firstVersion = "2.14.0", scheme = "linkedin", title = "Linkedin", syntax = "linkedin:apiName/methodName", label = "api,cloud,social",
-        lenientProperties = true)
-public class LinkedInEndpoint extends AbstractApiEndpoint<LinkedInApiName, LinkedInConfiguration> {
-
-    protected static final String FIELDS_OPTION = "fields";
-    private static final String DEFAULT_FIELDS_SELECTOR = "";
-
-    @UriParam
-    private final LinkedInConfiguration configuration;
-
-    // OAuth request filter
-    private LinkedInOAuthRequestFilter requestFilter;
-
-    // Resource API proxy
-    private Object resourceProxy;
-
-    public LinkedInEndpoint(String uri, LinkedInComponent component,
-                         LinkedInApiName apiName, String methodName, LinkedInConfiguration endpointConfiguration) {
-        super(uri, component, apiName, methodName, LinkedInApiCollection.getCollection().getHelper(apiName), endpointConfiguration);
-        this.configuration = endpointConfiguration;
-    }
-
-    @Override
-    public Producer createProducer() throws Exception {
-        return new LinkedInProducer(this);
-    }
-
-    @Override
-    public Consumer createConsumer(Processor processor) throws Exception {
-        // make sure inBody is not set for consumers
-        if (inBody != null) {
-            throw new IllegalArgumentException("Option inBody is not supported for consumer endpoint");
-        }
-        final LinkedInConsumer consumer = new LinkedInConsumer(this, processor);
-        // also set consumer.* properties
-        configureConsumer(consumer);
-        return consumer;
-    }
-
-    @Override
-    protected ApiMethodPropertiesHelper<LinkedInConfiguration> getPropertiesHelper() {
-        return LinkedInPropertiesHelper.getHelper();
-    }
-
-    @Override
-    protected String getThreadProfileName() {
-        return LinkedInConstants.THREAD_PROFILE_NAME;
-    }
-
-    @Override
-    protected void afterConfigureProperties() {
-        createProxy();
-    }
-
-    // create API proxy, set connection properties, etc.
-    private void createProxy() {
-        // create endpoint filter or get shared filter if configuration values are same as component
-        requestFilter = getComponent().getRequestFilter(configuration);
-
-        final Class<?> proxyClass;
-        switch (apiName) {
-        case COMMENTS:
-            proxyClass = CommentsResource.class;
-            break;
-        case COMPANIES:
-            proxyClass = CompaniesResource.class;
-            break;
-        case GROUPS:
-            proxyClass = GroupsResource.class;
-            break;
-        case JOBS:
-            proxyClass = JobsResource.class;
-            break;
-        case PEOPLE:
-            proxyClass = PeopleResource.class;
-            break;
-        case POSTS:
-            proxyClass = PostsResource.class;
-            break;
-        case SEARCH:
-            proxyClass = SearchResource.class;
-            break;
-        default:
-            throw new IllegalArgumentException("Invalid API name " + apiName);
-        }
-
-        // create endpoint proxy
-        Bus bus = BusFactory.getThreadDefaultBus();
-        bus.setProperty("allow.empty.path.template.value", true);
-        resourceProxy = JAXRSClientFactory.create(LinkedInOAuthRequestFilter.BASE_ADDRESS, proxyClass,
-            Arrays.asList(new Object[]{requestFilter, new EnumQueryParamConverterProvider()}));
-    }
-
-    @Override
-    public Object getApiProxy(ApiMethod method, Map<String, Object> args) {
-        return resourceProxy;
-    }
-
-    @Override
-    protected void doStart() throws Exception {
-        super.doStart();
-
-        if (resourceProxy == null) {
-            createProxy();
-        }
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        super.doStop();
-
-        if (resourceProxy != null) {
-            try {
-                WebClient.client(resourceProxy).close();
-            } catch (Exception e) {
-                log.warn("Error closing LinkedIn REST proxy: {}", e.getMessage(), e);
-            }
-            resourceProxy = null;
-        }
-
-        if (requestFilter != null) {
-            requestFilter = null;
-        }
-    }
-
-    @Override
-    public LinkedInComponent getComponent() {
-        return (LinkedInComponent) super.getComponent();
-    }
-
-    @Override
-    public void interceptProperties(Map<String, Object> properties) {
-        if (!properties.containsKey(FIELDS_OPTION)) {
-            properties.put(FIELDS_OPTION, DEFAULT_FIELDS_SELECTOR);
-        }
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInProducer.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInProducer.java
deleted file mode 100644
index 1617fb1..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInProducer.java
+++ /dev/null
@@ -1,59 +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.component.linkedin;
-
-import java.util.Map;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.component.linkedin.api.LinkedInException;
-import org.apache.camel.component.linkedin.api.model.Error;
-import org.apache.camel.component.linkedin.internal.LinkedInApiName;
-import org.apache.camel.component.linkedin.internal.LinkedInPropertiesHelper;
-import org.apache.camel.support.component.AbstractApiProducer;
-import org.apache.camel.support.component.ApiMethod;
-
-/**
- * The LinkedIn producer.
- */
-public class LinkedInProducer extends AbstractApiProducer<LinkedInApiName, LinkedInConfiguration> {
-
-    public LinkedInProducer(LinkedInEndpoint endpoint) {
-        super(endpoint, LinkedInPropertiesHelper.getHelper());
-    }
-
-    @Override
-    protected Object doInvokeMethod(ApiMethod method, Map<String, Object> properties) throws RuntimeCamelException {
-        try {
-            return super.doInvokeMethod(method, properties);
-        } catch (RuntimeCamelException e) {
-            if (e.getCause() instanceof WebApplicationException) {
-                final WebApplicationException cause = (WebApplicationException) e.getCause();
-                final Response response = cause.getResponse();
-                if (response.hasEntity()) {
-                    // try and convert it to LinkedInException
-                    final org.apache.camel.component.linkedin.api.model.Error error = response.readEntity(Error.class);
-                    throw new RuntimeCamelException(
-                        String.format("Error invoking %s: %s", method.getName(), error.getMessage()),
-                        new LinkedInException(error, response));
-                }
-            }
-            throw e;
-        }
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/CachingOAuthSecureStorage.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/CachingOAuthSecureStorage.java
deleted file mode 100644
index 5e1008e..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/CachingOAuthSecureStorage.java
+++ /dev/null
@@ -1,50 +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.component.linkedin.internal;
-
-import org.apache.camel.component.linkedin.api.OAuthSecureStorage;
-import org.apache.camel.component.linkedin.api.OAuthToken;
-
-/**
- * Caching implementation of {@link org.apache.camel.component.linkedin.api.OAuthSecureStorage}
- */
-public class CachingOAuthSecureStorage implements OAuthSecureStorage {
-
-    protected OAuthToken token;
-    private final OAuthSecureStorage secureStorage;
-
-    public CachingOAuthSecureStorage(OAuthSecureStorage secureStorage) {
-        this.secureStorage = secureStorage;
-    }
-
-    @Override
-    public OAuthToken getOAuthToken() {
-        // delegate only if token doesn't exist or has expired
-        if (secureStorage != null && (token == null || token.getExpiryTime() < System.currentTimeMillis())) {
-            token = secureStorage.getOAuthToken();
-        }
-        return token;
-    }
-
-    @Override
-    public void saveOAuthToken(OAuthToken newToken) {
-        token = newToken;
-        if (secureStorage != null) {
-            secureStorage.saveOAuthToken(newToken);
-        }
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInConstants.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInConstants.java
deleted file mode 100644
index 354558e..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInConstants.java
+++ /dev/null
@@ -1,29 +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.component.linkedin.internal;
-
-/**
- * Constants for LinkedIn component.
- */
-public interface LinkedInConstants {
-
-    // suffix for parameters when passed as exchange header properties
-    String PROPERTY_PREFIX = "CamelLinkedIn.";
-
-    // thread profile name for this component
-    String THREAD_PROFILE_NAME = "CamelLinkedIn";
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInPropertiesHelper.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInPropertiesHelper.java
deleted file mode 100644
index e456a79..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInPropertiesHelper.java
+++ /dev/null
@@ -1,40 +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.component.linkedin.internal;
-
-import org.apache.camel.component.linkedin.LinkedInConfiguration;
-import org.apache.camel.support.component.ApiMethodPropertiesHelper;
-
-
-/**
- * Singleton {@link ApiMethodPropertiesHelper} for LinkedIn component.
- */
-public final class LinkedInPropertiesHelper extends ApiMethodPropertiesHelper<LinkedInConfiguration> {
-
-    private static LinkedInPropertiesHelper helper;
-
-    private LinkedInPropertiesHelper() {
-        super(LinkedInConfiguration.class, LinkedInConstants.PROPERTY_PREFIX);
-    }
-
-    public static synchronized LinkedInPropertiesHelper getHelper() {
-        if (helper == null) {
-            helper = new LinkedInPropertiesHelper();
-        }
-        return helper;
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/AbstractLinkedInTestSupport.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/AbstractLinkedInTestSupport.java
deleted file mode 100644
index 5574577..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/AbstractLinkedInTestSupport.java
+++ /dev/null
@@ -1,89 +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.component.linkedin;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.CamelExecutionException;
-import org.apache.camel.component.linkedin.api.OAuthScope;
-import org.apache.camel.support.PropertyBindingSupport;
-import org.apache.camel.test.junit4.CamelTestSupport;
-
-/**
- * Abstract base class for LinkedIn Integration tests generated by Camel API component maven plugin.
- */
-public class AbstractLinkedInTestSupport extends CamelTestSupport {
-
-    private static final String TEST_OPTIONS_PROPERTIES = "/test-options.properties";
-
-    @Override
-    protected CamelContext createCamelContext() throws Exception {
-
-        final CamelContext context = super.createCamelContext();
-
-        // read LinkedIn component configuration from TEST_OPTIONS_PROPERTIES
-        final Properties properties = new Properties();
-        try {
-            properties.load(getClass().getResourceAsStream(TEST_OPTIONS_PROPERTIES));
-        } catch (Exception e) {
-            throw new IOException(String.format("%s could not be loaded: %s", TEST_OPTIONS_PROPERTIES, e.getMessage()),
-                e);
-        }
-
-        Map<String, Object> options = new HashMap<>();
-        for (Map.Entry<Object, Object> entry : properties.entrySet()) {
-            options.put(entry.getKey().toString(), entry.getValue());
-        }
-        // set scopes
-        final String scope = properties.getProperty("scope");
-        if (scope != null) {
-            options.put("scopes", OAuthScope.fromValues(scope.split(",")));
-        }
-        // TODO save and load token from TEST_OPTIONS_PROPERTIES
-
-        final LinkedInConfiguration configuration = new LinkedInConfiguration();
-        PropertyBindingSupport.bindProperties(context, configuration, options);
-
-        // add LinkedInComponent to Camel context
-        final LinkedInComponent component = new LinkedInComponent(context);
-        component.setConfiguration(configuration);
-        context.addComponent("linkedin", component);
-
-        return context;
-    }
-
-    @Override
-    public boolean isCreateCamelContextPerClass() {
-        // only create the context once for this class
-        return true;
-    }
-
-    @SuppressWarnings("unchecked")
-    protected <T> T requestBodyAndHeaders(String endpointUri, Object body, Map<String, Object> headers)
-        throws CamelExecutionException {
-        return (T) template().requestBodyAndHeaders(endpointUri, body, headers);
-    }
-
-    @SuppressWarnings("unchecked")
-    protected <T> T requestBody(String endpoint, Object body) throws CamelExecutionException {
-        return (T) template().requestBody(endpoint, body);
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CommentsResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CommentsResourceIntegrationTest.java
deleted file mode 100644
index a65c617..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CommentsResourceIntegrationTest.java
+++ /dev/null
@@ -1,80 +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.
- */
-/*
- * Camel Api Route test generated by camel-component-util-maven-plugin
- * Generated on: Wed Jul 09 19:57:10 PDT 2014
- */
-package org.apache.camel.component.linkedin;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.builder.RouteBuilder;
-
-import org.junit.Ignore;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Test class for {@link org.apache.camel.component.linkedin.api.CommentsResource} APIs.
- */
-public class CommentsResourceIntegrationTest extends AbstractLinkedInTestSupport {
-
-    private static final Logger LOG = LoggerFactory.getLogger(CommentsResourceIntegrationTest.class);
-    private static final String PATH_PREFIX = "comments";
-
-    // TODO provide parameter values for getComment
-    @Ignore
-    @Test
-    public void testGetComment() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.comment_id", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-
-        final org.apache.camel.component.linkedin.api.model.Comment result = requestBodyAndHeaders("direct://GETCOMMENT", null, headers);
-
-        assertNotNull("getComment result", result);
-        LOG.debug("getComment: " + result);
-    }
-
-    // TODO provide parameter values for removeComment
-    @Ignore
-    @Test
-    public void testRemoveComment() throws Exception {
-        // using String message body for single parameter "comment_id"
-        requestBody("direct://REMOVECOMMENT", null);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() {
-                // test route for getComment
-                from("direct://GETCOMMENT")
-                    .to("linkedin://" + PATH_PREFIX + "/getComment");
-
-                // test route for removeComment
-                from("direct://REMOVECOMMENT")
-                    .to("linkedin://" + PATH_PREFIX + "/removeComment?inBody=comment_id");
-
-            }
-        };
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CompaniesResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CompaniesResourceIntegrationTest.java
deleted file mode 100644
index a97640f..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CompaniesResourceIntegrationTest.java
+++ /dev/null
@@ -1,331 +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.
- */
-/*
- * Camel Api Route test generated by camel-component-util-maven-plugin
- * Generated on: Wed Jul 09 19:57:10 PDT 2014
- */
-package org.apache.camel.component.linkedin;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.linkedin.api.model.EventType;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * Test class for {@link org.apache.camel.component.linkedin.api.CompaniesResource} APIs.
- */
-public class CompaniesResourceIntegrationTest extends AbstractLinkedInTestSupport {
-
-    private static final Logger LOG = LoggerFactory.getLogger(CompaniesResourceIntegrationTest.class);
-    private static final String PATH_PREFIX = "companies";
-    private static final Long TEST_COMPANY_ID = 1337L;
-
-    // TODO provide parameter values for addCompanyUpdateCommentAsCompany
-    @Ignore
-    @Test
-    public void testAddCompanyUpdateCommentAsCompany() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.company_id", 0L);
-        // parameter type is String
-        headers.put("CamelLinkedIn.update_key", null);
-        // parameter type is org.apache.camel.component.linkedin.api.model.UpdateComment
-        headers.put("CamelLinkedIn.updatecomment", null);
-
-        requestBodyAndHeaders("direct://ADDCOMPANYUPDATECOMMENTASCOMPANY", null, headers);
-    }
-
-    // TODO provide parameter values for addShare
-    @Ignore
-    @Test
-    public void testAddShare() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.company_id", 0L);
-        // parameter type is org.apache.camel.component.linkedin.api.model.Share
-        headers.put("CamelLinkedIn.share", null);
-
-        requestBodyAndHeaders("direct://ADDSHARE", null, headers);
-    }
-
-    @Test
-    public void testGetCompanies() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // use defaults
-        // parameter type is String
-//        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.email_domain", "linkedin.com");
-        // parameter type is Boolean
-//        headers.put("CamelLinkedIn.is_company_admin", null);
-
-        final org.apache.camel.component.linkedin.api.model.Companies result = requestBodyAndHeaders("direct://GETCOMPANIES", null, headers);
-
-        assertNotNull("getCompanies result", result);
-        LOG.debug("getCompanies: " + result);
-    }
-
-    @Test
-    public void testGetCompanyById() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.company_id", TEST_COMPANY_ID);
-        // use default value
-/*
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-*/
-
-        final org.apache.camel.component.linkedin.api.model.Company result = requestBodyAndHeaders("direct://GETCOMPANYBYID", null, headers);
-
-        assertNotNull("getCompanyById result", result);
-        LOG.debug("getCompanyById: " + result);
-    }
-
-    @Test
-    public void testGetCompanyByName() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.universal_name", "linkedin");
-        // use default fields
-/*
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-*/
-
-        final org.apache.camel.component.linkedin.api.model.Company result = requestBodyAndHeaders("direct://GETCOMPANYBYNAME", null, headers);
-
-        assertNotNull("getCompanyByName result", result);
-        LOG.debug("getCompanyByName: " + result);
-    }
-
-    // TODO provide parameter values for getCompanyUpdateComments
-    @Ignore
-    @Test
-    public void testGetCompanyUpdateComments() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.company_id", 0L);
-        // parameter type is String
-        headers.put("CamelLinkedIn.update_key", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.secure_urls", null);
-
-        final org.apache.camel.component.linkedin.api.model.UpdateComments result = requestBodyAndHeaders("direct://GETCOMPANYUPDATECOMMENTS", null, headers);
-
-        assertNotNull("getCompanyUpdateComments result", result);
-        LOG.debug("getCompanyUpdateComments: " + result);
-    }
-
-    // TODO provide parameter values for getCompanyUpdateLikes
-    @Ignore
-    @Test
-    public void testGetCompanyUpdateLikes() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.company_id", 0L);
-        // parameter type is String
-        headers.put("CamelLinkedIn.update_key", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.secure_urls", null);
-
-        final org.apache.camel.component.linkedin.api.model.Likes result = requestBodyAndHeaders("direct://GETCOMPANYUPDATELIKES", null, headers);
-
-        assertNotNull("getCompanyUpdateLikes result", result);
-        LOG.debug("getCompanyUpdateLikes: " + result);
-    }
-
-    @Test
-    public void testGetCompanyUpdates() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.company_id", TEST_COMPANY_ID);
-        // parameter type is String
-//        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is org.apache.camel.component.linkedin.api.model.Eventtype
-        headers.put("CamelLinkedIn.event_type", EventType.STATUS_UPDATE);
-/*
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.count", null);
-*/
-
-        final org.apache.camel.component.linkedin.api.model.Updates result = requestBodyAndHeaders("direct://GETCOMPANYUPDATES", null, headers);
-
-        assertNotNull("getCompanyUpdates result", result);
-        LOG.debug("getCompanyUpdates: " + result);
-    }
-
-    // TODO provide parameter values for getHistoricalFollowStatistics
-    @Ignore
-    @Test
-    public void testGetHistoricalFollowStatistics() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.company_id", 0L);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start_timestamp", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.end_timestamp", null);
-        // parameter type is org.apache.camel.component.linkedin.api.Timegranularity
-        headers.put("CamelLinkedIn.time_granularity", null);
-
-        final org.apache.camel.component.linkedin.api.model.HistoricalFollowStatistics result = requestBodyAndHeaders("direct://GETHISTORICALFOLLOWSTATISTICS", null, headers);
-
-        assertNotNull("getHistoricalFollowStatistics result", result);
-        LOG.debug("getHistoricalFollowStatistics: " + result);
-    }
-
-    // TODO provide parameter values for getHistoricalStatusUpdateStatistics
-    @Ignore
-    @Test
-    public void testGetHistoricalStatusUpdateStatistics() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.company_id", TEST_COMPANY_ID);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start_timestamp", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.end_timestamp", null);
-        // parameter type is org.apache.camel.component.linkedin.api.Timegranularity
-        headers.put("CamelLinkedIn.time_granularity", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.statistics_update_key", null);
-
-        final org.apache.camel.component.linkedin.api.model.HistoricalStatusUpdateStatistics result = requestBodyAndHeaders("direct://GETHISTORICALSTATUSUPDATESTATISTICS", null, headers);
-
-        assertNotNull("getHistoricalStatusUpdateStatistics result", result);
-        LOG.debug("getHistoricalStatusUpdateStatistics: " + result);
-    }
-
-    @Test
-    public void testGetNumberOfFollowers() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.company_id", TEST_COMPANY_ID);
-        // parameter type is java.util.List
-        headers.put("CamelLinkedIn.geos", null);
-        // parameter type is java.util.List
-        headers.put("CamelLinkedIn.companySizes", null);
-        // parameter type is java.util.List
-        headers.put("CamelLinkedIn.jobFunc", null);
-        // parameter type is java.util.List
-        headers.put("CamelLinkedIn.industries", null);
-        // parameter type is java.util.List
-        headers.put("CamelLinkedIn.seniorities", null);
-
-        final org.apache.camel.component.linkedin.api.model.NumFollowers result = requestBodyAndHeaders("direct://GETNUMBEROFFOLLOWERS", null, headers);
-
-        assertNotNull("getNumberOfFollowers result", result);
-        LOG.debug("getNumberOfFollowers: " + result);
-    }
-
-    // TODO provide parameter values for getStatistics
-    @Ignore
-    @Test
-    public void testGetStatistics() throws Exception {
-        // using long message body for single parameter "company_id"
-        final org.apache.camel.component.linkedin.api.model.CompanyStatistics result = requestBody("direct://GETSTATISTICS", 0L);
-
-        assertNotNull("getStatistics result", result);
-        LOG.debug("getStatistics: " + result);
-    }
-
-    @Test
-    public void testIsShareEnabled() throws Exception {
-        // using long message body for single parameter "company_id"
-        final org.apache.camel.component.linkedin.api.model.IsCompanyShareEnabled result = requestBody("direct://ISSHAREENABLED", TEST_COMPANY_ID);
-
-        assertNotNull("isShareEnabled result", result);
-        LOG.debug("isShareEnabled: " + result);
-    }
-
-    @Test
-    public void testIsViewerShareEnabled() throws Exception {
-        // using long message body for single parameter "company_id"
-        final org.apache.camel.component.linkedin.api.model.IsCompanyShareEnabled result = requestBody("direct://ISVIEWERSHAREENABLED", TEST_COMPANY_ID);
-
-        assertNotNull("isViewerShareEnabled result", result);
-        LOG.debug("isViewerShareEnabled: " + result);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() {
-                // test route for addCompanyUpdateCommentAsCompany
-                from("direct://ADDCOMPANYUPDATECOMMENTASCOMPANY")
-                    .to("linkedin://" + PATH_PREFIX + "/addCompanyUpdateCommentAsCompany");
-
-                // test route for addShare
-                from("direct://ADDSHARE")
-                    .to("linkedin://" + PATH_PREFIX + "/addShare");
-
-                // test route for getCompanies
-                from("direct://GETCOMPANIES")
-                    .to("linkedin://" + PATH_PREFIX + "/getCompanies");
-
-                // test route for getCompanyById
-                from("direct://GETCOMPANYBYID")
-                    .to("linkedin://" + PATH_PREFIX + "/getCompanyById");
-
-                // test route for getCompanyByName
-                from("direct://GETCOMPANYBYNAME")
-                    .to("linkedin://" + PATH_PREFIX + "/getCompanyByName");
-
-                // test route for getCompanyUpdateComments
-                from("direct://GETCOMPANYUPDATECOMMENTS")
-                    .to("linkedin://" + PATH_PREFIX + "/getCompanyUpdateComments");
-
-                // test route for getCompanyUpdateLikes
-                from("direct://GETCOMPANYUPDATELIKES")
-                    .to("linkedin://" + PATH_PREFIX + "/getCompanyUpdateLikes");
-
-                // test route for getCompanyUpdates
-                from("direct://GETCOMPANYUPDATES")
-                    .to("linkedin://" + PATH_PREFIX + "/getCompanyUpdates");
-
-                // test route for getHistoricalFollowStatistics
-                from("direct://GETHISTORICALFOLLOWSTATISTICS")
-                    .to("linkedin://" + PATH_PREFIX + "/getHistoricalFollowStatistics");
-
-                // test route for getHistoricalStatusUpdateStatistics
-                from("direct://GETHISTORICALSTATUSUPDATESTATISTICS")
-                    .to("linkedin://" + PATH_PREFIX + "/getHistoricalStatusUpdateStatistics");
-
-                // test route for getNumberOfFollowers
-                from("direct://GETNUMBEROFFOLLOWERS")
-                    .to("linkedin://" + PATH_PREFIX + "/getNumberOfFollowers");
-
-                // test route for getStatistics
-                from("direct://GETSTATISTICS")
-                    .to("linkedin://" + PATH_PREFIX + "/getStatistics?inBody=company_id");
-
-                // test route for isShareEnabled
-                from("direct://ISSHAREENABLED")
-                    .to("linkedin://" + PATH_PREFIX + "/isShareEnabled?inBody=company_id");
-
-                // test route for isViewerShareEnabled
-                from("direct://ISVIEWERSHAREENABLED")
-                    .to("linkedin://" + PATH_PREFIX + "/isViewerShareEnabled?inBody=company_id");
-
-            }
-        };
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/ComponentConfigurationIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/ComponentConfigurationIntegrationTest.java
deleted file mode 100644
index d6aff3b..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/ComponentConfigurationIntegrationTest.java
+++ /dev/null
@@ -1,81 +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.
- */
-/*
- * Camel Api Route test generated by camel-component-util-maven-plugin
- * Generated on: Wed Jul 09 19:57:10 PDT 2014
- */
-package org.apache.camel.component.linkedin;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.CamelExecutionException;
-import org.apache.camel.builder.RouteBuilder;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Test class for component configuration validation.
- */
-public class ComponentConfigurationIntegrationTest extends AbstractLinkedInTestSupport {
-
-    private static final Logger LOG = LoggerFactory.getLogger(ComponentConfigurationIntegrationTest.class);
-    private static final String PATH_PREFIX = "comments";
-
-    @Override
-    protected CamelContext createCamelContext() throws Exception {
-        final CamelContext camelContext = super.createCamelContext();
-        // replace client id with invalid value
-        camelContext.getComponent("linkedin", LinkedInComponent.class).getConfiguration().setClientId("bad_client_id");
-        return camelContext;
-    }
-
-    @Test
-    public void testGetComment() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.comment_id", "123");
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", "");
-
-        try {
-            requestBodyAndHeaders("direct://GETCOMMENT", null, headers);
-            fail("Bad client Id must cause an exception on first message");
-        } catch (CamelExecutionException e) {
-            Throwable t = e;
-            while (t.getCause() != null && t.getCause() != t) {
-                t = t.getCause();
-            }
-            if (!(t instanceof IllegalArgumentException)) {
-                throw e;
-            }
-        }
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() {
-                // dummy test route for getComment
-                from("direct://GETCOMMENT")
-                    .to("linkedin://" + PATH_PREFIX + "/getComment");
-            }
-        };
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/GroupsResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/GroupsResourceIntegrationTest.java
deleted file mode 100644
index c74b4e9..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/GroupsResourceIntegrationTest.java
+++ /dev/null
@@ -1,79 +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.
- */
-/*
- * Camel Api Route test generated by camel-component-util-maven-plugin
- * Generated on: Wed Jul 09 19:57:10 PDT 2014
- */
-package org.apache.camel.component.linkedin;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * Test class for {@link org.apache.camel.component.linkedin.api.GroupsResource} APIs.
- */
-public class GroupsResourceIntegrationTest extends AbstractLinkedInTestSupport {
-
-    private static final Logger LOG = LoggerFactory.getLogger(GroupsResourceIntegrationTest.class);
-    private static final String PATH_PREFIX = "groups";
-
-    // TODO provide parameter values for addPost
-    @Ignore
-    @Test
-    public void testAddPost() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.group_id", 0L);
-        // parameter type is org.apache.camel.component.linkedin.api.model.Post
-        headers.put("CamelLinkedIn.post", null);
-
-        requestBodyAndHeaders("direct://ADDPOST", null, headers);
-    }
-
-    // TODO provide parameter values for getGroup
-    @Ignore
-    @Test
-    public void testGetGroup() throws Exception {
-        // using long message body for single parameter "group_id"
-        final org.apache.camel.component.linkedin.api.model.Group result = requestBody("direct://GETGROUP", 0L);
-
-        assertNotNull("getGroup result", result);
-        LOG.debug("getGroup: " + result);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() {
-                // test route for addPost
-                from("direct://ADDPOST")
-                    .to("linkedin://" + PATH_PREFIX + "/addPost");
-
-                // test route for getGroup
-                from("direct://GETGROUP")
-                    .to("linkedin://" + PATH_PREFIX + "/getGroup?inBody=group_id");
-
-            }
-        };
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/JobsResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/JobsResourceIntegrationTest.java
deleted file mode 100644
index 3c49c7b..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/JobsResourceIntegrationTest.java
+++ /dev/null
@@ -1,106 +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.
- */
-/*
- * Camel Api Route test generated by camel-component-util-maven-plugin
- * Generated on: Wed Jul 09 19:57:11 PDT 2014
- */
-package org.apache.camel.component.linkedin;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Test class for {@link org.apache.camel.component.linkedin.api.JobsResource} APIs.
- */
-public class JobsResourceIntegrationTest extends AbstractLinkedInTestSupport {
-
-    private static final Logger LOG = LoggerFactory.getLogger(JobsResourceIntegrationTest.class);
-    private static final String PATH_PREFIX = "jobs";
-
-    // TODO provide parameter values for addJob
-    @Ignore
-    @Test
-    public void testAddJob() throws Exception {
-        // using org.apache.camel.component.linkedin.api.model.Job message body for single parameter "job"
-        requestBody("direct://ADDJOB", null);
-    }
-
-    // TODO provide parameter values for editJob
-    @Ignore
-    @Test
-    public void testEditJob() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.partner_job_id", 0L);
-        // parameter type is org.apache.camel.component.linkedin.api.model.Job
-        headers.put("CamelLinkedIn.job", null);
-
-        requestBodyAndHeaders("direct://EDITJOB", null, headers);
-    }
-
-    // TODO provide parameter values for getJob
-    @Ignore
-    @Test
-    public void testGetJob() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.job_id", 0L);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-
-        final org.apache.camel.component.linkedin.api.model.Job result = requestBodyAndHeaders("direct://GETJOB", null, headers);
-
-        assertNotNull("getJob result", result);
-        LOG.debug("getJob: " + result);
-    }
-
-    // TODO provide parameter values for removeJob
-    @Ignore
-    @Test
-    public void testRemoveJob() throws Exception {
-        // using long message body for single parameter "partner_job_id"
-        requestBody("direct://REMOVEJOB", 0L);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() {
-                // test route for addJob
-                from("direct://ADDJOB")
-                    .to("linkedin://" + PATH_PREFIX + "/addJob?inBody=job");
-
-                // test route for editJob
-                from("direct://EDITJOB")
-                    .to("linkedin://" + PATH_PREFIX + "/editJob");
-
-                // test route for getJob
-                from("direct://GETJOB")
-                    .to("linkedin://" + PATH_PREFIX + "/getJob");
-
-                // test route for removeJob
-                from("direct://REMOVEJOB")
-                    .to("linkedin://" + PATH_PREFIX + "/removeJob?inBody=partner_job_id");
-
-            }
-        };
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PeopleResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PeopleResourceIntegrationTest.java
deleted file mode 100644
index 850aaf4..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PeopleResourceIntegrationTest.java
+++ /dev/null
@@ -1,654 +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.
- */
-/*
- * Camel Api Route test generated by camel-component-util-maven-plugin
- * Generated on: Wed Jul 09 19:57:11 PDT 2014
- */
-package org.apache.camel.component.linkedin;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.linkedin.api.model.Person;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * Test class for {@link org.apache.camel.component.linkedin.api.PeopleResource} APIs.
- */
-public class PeopleResourceIntegrationTest extends AbstractLinkedInTestSupport {
-
-    private static final Logger LOG = LoggerFactory.getLogger(PeopleResourceIntegrationTest.class);
-    private static final String PATH_PREFIX = "people";
-
-    // TODO provide parameter values for addActivity
-    @Ignore
-    @Test
-    public void testAddActivity() throws Exception {
-        // using org.apache.camel.component.linkedin.api.model.Activity message body for single parameter "activity"
-        requestBody("direct://ADDACTIVITY", null);
-    }
-
-    // TODO provide parameter values for addGroupMembership
-    @Ignore
-    @Test
-    public void testAddGroupMembership() throws Exception {
-        // using org.apache.camel.component.linkedin.api.model.GroupMembership message body for single parameter "groupmembership"
-        requestBody("direct://ADDGROUPMEMBERSHIP", null);
-    }
-
-    // TODO provide parameter values for addInvite
-    @Ignore
-    @Test
-    public void testAddInvite() throws Exception {
-        // using org.apache.camel.component.linkedin.api.model.MailboxItem message body for single parameter "mailboxitem"
-        requestBody("direct://ADDINVITE", null);
-    }
-
-    // TODO provide parameter values for addJobBookmark
-    @Ignore
-    @Test
-    public void testAddJobBookmark() throws Exception {
-        // using org.apache.camel.component.linkedin.api.model.JobBookmark message body for single parameter "jobbookmark"
-        requestBody("direct://ADDJOBBOOKMARK", null);
-    }
-
-    // TODO provide parameter values for addUpdateComment
-    @Ignore
-    @Test
-    public void testAddUpdateComment() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.update_key", null);
-        // parameter type is org.apache.camel.component.linkedin.api.model.UpdateComment
-        headers.put("CamelLinkedIn.updatecomment", null);
-
-        requestBodyAndHeaders("direct://ADDUPDATECOMMENT", null, headers);
-    }
-
-    // TODO provide parameter values for followCompany
-    @Ignore
-    @Test
-    public void testFollowCompany() throws Exception {
-        // using org.apache.camel.component.linkedin.api.model.Company message body for single parameter "company"
-        requestBody("direct://FOLLOWCOMPANY", null);
-    }
-
-    @Test
-    public void testGetConnections() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // use defaults
-/*
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.secure_urls", null);
-*/
-
-        final org.apache.camel.component.linkedin.api.model.Connections result = requestBodyAndHeaders("direct://GETCONNECTIONS", null, headers);
-
-        assertNotNull("getConnections result", result);
-        LOG.debug("getConnections: " + result);
-    }
-
-    // TODO provide parameter values for getConnectionsById
-    @Ignore
-    @Test
-    public void testGetConnectionsById() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.person_id", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.secure_urls", null);
-
-        final org.apache.camel.component.linkedin.api.model.Connections result = requestBodyAndHeaders("direct://GETCONNECTIONSBYID", null, headers);
-
-        assertNotNull("getConnectionsById result", result);
-        LOG.debug("getConnectionsById: " + result);
-    }
-
-    // TODO provide parameter values for getConnectionsByUrl
-    @Ignore
-    @Test
-    public void testGetConnectionsByUrl() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.public_profile_url", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.secure_urls", null);
-
-        final org.apache.camel.component.linkedin.api.model.Connections result = requestBodyAndHeaders("direct://GETCONNECTIONSBYURL", null, headers);
-
-        assertNotNull("getConnectionsByUrl result", result);
-        LOG.debug("getConnectionsByUrl: " + result);
-    }
-
-    @Test
-    public void testGetFollowedCompanies() throws Exception {
-        // using String message body for single parameter "fields"
-        final org.apache.camel.component.linkedin.api.model.Companies result = requestBody("direct://GETFOLLOWEDCOMPANIES", "");
-
-        assertNotNull("getFollowedCompanies result", result);
-        LOG.debug("getFollowedCompanies: " + result);
-    }
-
-    // TODO provide parameter values for getGroupMembershipSettings
-    @Ignore
-    @Test
-    public void testGetGroupMembershipSettings() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.group_id", 0L);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.count", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start", null);
-
-        final org.apache.camel.component.linkedin.api.model.GroupMembership result = requestBodyAndHeaders("direct://GETGROUPMEMBERSHIPSETTINGS", null, headers);
-
-        assertNotNull("getGroupMembershipSettings result", result);
-        LOG.debug("getGroupMembershipSettings: " + result);
-    }
-
-    @Test
-    public void testGetGroupMemberships() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // use defaults
-/*
-        // parameter type is org.apache.camel.component.linkedin.api.model.MembershipState
-        headers.put("CamelLinkedIn.membership_state", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.count", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start", null);
-*/
-
-        final org.apache.camel.component.linkedin.api.model.GroupMemberships result = requestBodyAndHeaders("direct://GETGROUPMEMBERSHIPS", null, headers);
-
-        assertNotNull("getGroupMemberships result", result);
-        LOG.debug("getGroupMemberships: " + result);
-    }
-
-    @Test
-    public void testGetJobBookmarks() throws Exception {
-        final org.apache.camel.component.linkedin.api.model.JobBookmarks result = requestBody("direct://GETJOBBOOKMARKS", null);
-
-        assertNotNull("getJobBookmarks result", result);
-        LOG.debug("getJobBookmarks: " + result);
-    }
-
-    @Test
-    public void testGetNetworkStats() throws Exception {
-        final org.apache.camel.component.linkedin.api.model.NetworkStats result = requestBody("direct://GETNETWORKSTATS", null);
-
-        assertNotNull("getNetworkStats result", result);
-        LOG.debug("getNetworkStats: " + result);
-    }
-
-    @Test
-    public void testGetNetworkUpdates() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // use defaults
-/*
-        // parameter type is String
-        headers.put("CamelLinkedIn.scope", null);
-        // parameter type is org.apache.camel.component.linkedin.api.Type
-        headers.put("CamelLinkedIn.type", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.count", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.after", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.before", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.show_hidden_members", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.secure_urls", null);
-*/
-
-        final org.apache.camel.component.linkedin.api.model.Updates result = requestBodyAndHeaders("direct://GETNETWORKUPDATES", null, headers);
-
-        assertNotNull("getNetworkUpdates result", result);
-        LOG.debug("getNetworkUpdates: " + result);
-    }
-
-    // TODO provide parameter values for getNetworkUpdatesById
-    @Ignore
-    @Test
-    public void testGetNetworkUpdatesById() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.scope", null);
-        // parameter type is org.apache.camel.component.linkedin.api.Type
-        headers.put("CamelLinkedIn.type", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.count", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.after", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.before", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.show_hidden_members", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.person_id", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.secure_urls", null);
-
-        final org.apache.camel.component.linkedin.api.model.Updates result = requestBodyAndHeaders("direct://GETNETWORKUPDATESBYID", null, headers);
-
-        assertNotNull("getNetworkUpdatesById result", result);
-        LOG.debug("getNetworkUpdatesById: " + result);
-    }
-
-    @Test
-    public void testGetPerson() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", "");
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.secure_urls", true);
-
-        final Person result = requestBodyAndHeaders("direct://GETPERSON", null, headers);
-
-        assertNotNull("getPerson result", result);
-        LOG.debug("getPerson: " + result);
-    }
-
-    // TODO provide parameter values for getPersonById
-    @Ignore
-    @Test
-    public void testGetPersonById() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.person_id", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.secure_urls", null);
-
-        final Person result = requestBodyAndHeaders("direct://GETPERSONBYID", null, headers);
-
-        assertNotNull("getPersonById result", result);
-        LOG.debug("getPersonById: " + result);
-    }
-
-    // TODO provide parameter values for getPersonByUrl
-    @Ignore
-    @Test
-    public void testGetPersonByUrl() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.public_profile_url", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.secure_urls", null);
-
-        final Person result = requestBodyAndHeaders("direct://GETPERSONBYURL", null, headers);
-
-        assertNotNull("getPersonByUrl result", result);
-        LOG.debug("getPersonByUrl: " + result);
-    }
-
-    // TODO provide parameter values for getPosts
-    @Ignore
-    @Test
-    public void testGetPosts() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.group_id", 0L);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.count", null);
-        // parameter type is org.apache.camel.component.linkedin.api.Order
-        headers.put("CamelLinkedIn.order", null);
-        // parameter type is org.apache.camel.component.linkedin.api.Role
-        headers.put("CamelLinkedIn.role", null);
-        // parameter type is org.apache.camel.component.linkedin.api.Category
-        headers.put("CamelLinkedIn.category", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.modified_since", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-
-        final org.apache.camel.component.linkedin.api.model.Posts result = requestBodyAndHeaders("direct://GETPOSTS", null, headers);
-
-        assertNotNull("getPosts result", result);
-        LOG.debug("getPosts: " + result);
-    }
-
-    @Test
-    public void testGetSuggestedCompanies() throws Exception {
-        // using String message body for single parameter "fields"
-        final org.apache.camel.component.linkedin.api.model.Companies result = requestBody("direct://GETSUGGESTEDCOMPANIES", "");
-
-        assertNotNull("getSuggestedCompanies result", result);
-        LOG.debug("getSuggestedCompanies: " + result);
-    }
-
-    // TODO provide parameter values for getSuggestedGroupPosts
-    @Ignore
-    @Test
-    public void testGetSuggestedGroupPosts() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.group_id", 0L);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.count", null);
-        // parameter type is org.apache.camel.component.linkedin.api.Order
-        headers.put("CamelLinkedIn.order", null);
-        // parameter type is org.apache.camel.component.linkedin.api.Role
-        headers.put("CamelLinkedIn.role", null);
-        // parameter type is org.apache.camel.component.linkedin.api.Category
-        headers.put("CamelLinkedIn.category", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.modified_since", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-
-        final org.apache.camel.component.linkedin.api.model.Posts result = requestBodyAndHeaders("direct://GETSUGGESTEDGROUPPOSTS", null, headers);
-
-        assertNotNull("getSuggestedGroupPosts result", result);
-        LOG.debug("getSuggestedGroupPosts: " + result);
-    }
-
-    @Test
-    public void testGetSuggestedGroups() throws Exception {
-        // using String message body for single parameter "fields"
-        final org.apache.camel.component.linkedin.api.model.Groups result = requestBody("direct://GETSUGGESTEDGROUPS", "");
-
-        assertNotNull("getSuggestedGroups result", result);
-        LOG.debug("getSuggestedGroups: " + result);
-    }
-
-    @Test
-    public void testGetSuggestedJobs() throws Exception {
-        // using String message body for single parameter "fields"
-        final org.apache.camel.component.linkedin.api.model.JobSuggestions result = requestBody("direct://GETSUGGESTEDJOBS", "");
-
-        assertNotNull("getSuggestedJobs result", result);
-        LOG.debug("getSuggestedJobs: " + result);
-    }
-
-    // TODO provide parameter values for getUpdateComments
-    @Ignore
-    @Test
-    public void testGetUpdateComments() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.update_key", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.secure_urls", null);
-
-        final org.apache.camel.component.linkedin.api.model.UpdateComments result = requestBodyAndHeaders("direct://GETUPDATECOMMENTS", null, headers);
-
-        assertNotNull("getUpdateComments result", result);
-        LOG.debug("getUpdateComments: " + result);
-    }
-
-    // TODO provide parameter values for getUpdateLikes
-    @Ignore
-    @Test
-    public void testGetUpdateLikes() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.update_key", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-        // parameter type is Boolean
-        headers.put("CamelLinkedIn.secure_urls", null);
-
-        final org.apache.camel.component.linkedin.api.model.Likes result = requestBodyAndHeaders("direct://GETUPDATELIKES", null, headers);
-
-        assertNotNull("getUpdateLikes result", result);
-        LOG.debug("getUpdateLikes: " + result);
-    }
-
-    // TODO provide parameter values for likeUpdate
-    @Ignore
-    @Test
-    public void testLikeUpdate() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.update_key", null);
-        // parameter type is org.apache.camel.component.linkedin.api.model.IsLiked
-        headers.put("CamelLinkedIn.isliked", null);
-
-        requestBodyAndHeaders("direct://LIKEUPDATE", null, headers);
-    }
-
-    // TODO provide parameter values for removeGroupMembership
-    @Ignore
-    @Test
-    public void testRemoveGroupMembership() throws Exception {
-        // using long message body for single parameter "group_id"
-        requestBody("direct://REMOVEGROUPMEMBERSHIP", 0L);
-    }
-
-    // TODO provide parameter values for removeGroupSuggestion
-    @Ignore
-    @Test
-    public void testRemoveGroupSuggestion() throws Exception {
-        // using long message body for single parameter "group_id"
-        requestBody("direct://REMOVEGROUPSUGGESTION", 0L);
-    }
-
-    // TODO provide parameter values for removeJobBookmark
-    @Ignore
-    @Test
-    public void testRemoveJobBookmark() throws Exception {
-        // using long message body for single parameter "job_id"
-        requestBody("direct://REMOVEJOBBOOKMARK", 0L);
-    }
-
-    // TODO provide parameter values for share
-    @Ignore
-    @Test
-    public void testShare() throws Exception {
-        // using org.apache.camel.component.linkedin.api.model.Share message body for single parameter "share"
-        final org.apache.camel.component.linkedin.api.model.Update result = requestBody("direct://SHARE", null);
-
-        assertNotNull("share result", result);
-        LOG.debug("share: " + result);
-    }
-
-    // TODO provide parameter values for stopFollowingCompany
-    @Ignore
-    @Test
-    public void testStopFollowingCompany() throws Exception {
-        // using long message body for single parameter "company_id"
-        requestBody("direct://STOPFOLLOWINGCOMPANY", 0L);
-    }
-
-    // TODO provide parameter values for updateGroupMembership
-    @Ignore
-    @Test
-    public void testUpdateGroupMembership() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        headers.put("CamelLinkedIn.group_id", 0L);
-        // parameter type is org.apache.camel.component.linkedin.api.model.GroupMembership
-        headers.put("CamelLinkedIn.groupmembership", null);
-
-        requestBodyAndHeaders("direct://UPDATEGROUPMEMBERSHIP", null, headers);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() {
-                // test route for addActivity
-                from("direct://ADDACTIVITY")
-                    .to("linkedin://" + PATH_PREFIX + "/addActivity?inBody=activity");
-
-                // test route for addGroupMembership
-                from("direct://ADDGROUPMEMBERSHIP")
-                    .to("linkedin://" + PATH_PREFIX + "/addGroupMembership?inBody=groupmembership");
-
-                // test route for addInvite
-                from("direct://ADDINVITE")
-                    .to("linkedin://" + PATH_PREFIX + "/addInvite?inBody=mailboxitem");
-
-                // test route for addJobBookmark
-                from("direct://ADDJOBBOOKMARK")
-                    .to("linkedin://" + PATH_PREFIX + "/addJobBookmark?inBody=jobbookmark");
-
-                // test route for addUpdateComment
-                from("direct://ADDUPDATECOMMENT")
-                    .to("linkedin://" + PATH_PREFIX + "/addUpdateComment");
-
-                // test route for followCompany
-                from("direct://FOLLOWCOMPANY")
-                    .to("linkedin://" + PATH_PREFIX + "/followCompany?inBody=company");
-
-                // test route for getConnections
-                from("direct://GETCONNECTIONS")
-                    .to("linkedin://" + PATH_PREFIX + "/getConnections");
-
-                // test consumer route for getConnections
-                from("linkedin://" + PATH_PREFIX + "/getConnections")
-                    .to("mock://GETCONNECTIONS");
-
-                // test route for getConnectionsById
-                from("direct://GETCONNECTIONSBYID")
-                    .to("linkedin://" + PATH_PREFIX + "/getConnectionsById");
-
-                // test route for getConnectionsByUrl
-                from("direct://GETCONNECTIONSBYURL")
-                    .to("linkedin://" + PATH_PREFIX + "/getConnectionsByUrl");
-
-                // test route for getFollowedCompanies
-                from("direct://GETFOLLOWEDCOMPANIES")
-                    .to("linkedin://" + PATH_PREFIX + "/getFollowedCompanies?inBody=fields");
-
-                // test route for getGroupMembershipSettings
-                from("direct://GETGROUPMEMBERSHIPSETTINGS")
-                    .to("linkedin://" + PATH_PREFIX + "/getGroupMembershipSettings");
-
-                // test route for getGroupMemberships
-                from("direct://GETGROUPMEMBERSHIPS")
-                    .to("linkedin://" + PATH_PREFIX + "/getGroupMemberships");
-
-                // test route for getJobBookmarks
-                from("direct://GETJOBBOOKMARKS")
-                    .to("linkedin://" + PATH_PREFIX + "/getJobBookmarks");
-
-                // test route for getNetworkStats
-                from("direct://GETNETWORKSTATS")
-                    .to("linkedin://" + PATH_PREFIX + "/getNetworkStats");
-
-                // test route for getNetworkUpdates
-                from("direct://GETNETWORKUPDATES")
-                    .to("linkedin://" + PATH_PREFIX + "/getNetworkUpdates");
-
-                // test route for getNetworkUpdatesById
-                from("direct://GETNETWORKUPDATESBYID")
-                    .to("linkedin://" + PATH_PREFIX + "/getNetworkUpdatesById");
-
-                // test route for getPerson
-                from("direct://GETPERSON")
-                    .to("linkedin://" + PATH_PREFIX + "/getPerson");
-
-                // test route for getPersonById
-                from("direct://GETPERSONBYID")
-                    .to("linkedin://" + PATH_PREFIX + "/getPersonById");
-
-                // test route for getPersonByUrl
-                from("direct://GETPERSONBYURL")
-                    .to("linkedin://" + PATH_PREFIX + "/getPersonByUrl");
-
-                // test route for getPosts
-                from("direct://GETPOSTS")
-                    .to("linkedin://" + PATH_PREFIX + "/getPosts");
-
-                // test route for getSuggestedCompanies
-                from("direct://GETSUGGESTEDCOMPANIES")
-                    .to("linkedin://" + PATH_PREFIX + "/getSuggestedCompanies?inBody=fields");
-
-                // test route for getSuggestedGroupPosts
-                from("direct://GETSUGGESTEDGROUPPOSTS")
-                    .to("linkedin://" + PATH_PREFIX + "/getSuggestedGroupPosts");
-
-                // test route for getSuggestedGroups
-                from("direct://GETSUGGESTEDGROUPS")
-                    .to("linkedin://" + PATH_PREFIX + "/getSuggestedGroups?inBody=fields");
-
-                // test route for getSuggestedJobs
-                from("direct://GETSUGGESTEDJOBS")
-                    .to("linkedin://" + PATH_PREFIX + "/getSuggestedJobs?inBody=fields");
-
-                // test route for getUpdateComments
-                from("direct://GETUPDATECOMMENTS")
-                    .to("linkedin://" + PATH_PREFIX + "/getUpdateComments");
-
-                // test route for getUpdateLikes
-                from("direct://GETUPDATELIKES")
-                    .to("linkedin://" + PATH_PREFIX + "/getUpdateLikes");
-
-                // test route for likeUpdate
-                from("direct://LIKEUPDATE")
-                    .to("linkedin://" + PATH_PREFIX + "/likeUpdate");
-
-                // test route for removeGroupMembership
-                from("direct://REMOVEGROUPMEMBERSHIP")
-                    .to("linkedin://" + PATH_PREFIX + "/removeGroupMembership?inBody=group_id");
-
-                // test route for removeGroupSuggestion
-                from("direct://REMOVEGROUPSUGGESTION")
-                    .to("linkedin://" + PATH_PREFIX + "/removeGroupSuggestion?inBody=group_id");
-
-                // test route for removeJobBookmark
-                from("direct://REMOVEJOBBOOKMARK")
-                    .to("linkedin://" + PATH_PREFIX + "/removeJobBookmark?inBody=job_id");
-
-                // test route for share
-                from("direct://SHARE")
-                    .to("linkedin://" + PATH_PREFIX + "/share?inBody=share");
-
-                // test route for stopFollowingCompany
-                from("direct://STOPFOLLOWINGCOMPANY")
-                    .to("linkedin://" + PATH_PREFIX + "/stopFollowingCompany?inBody=company_id");
-
-                // test route for updateGroupMembership
-                from("direct://UPDATEGROUPMEMBERSHIP")
-                    .to("linkedin://" + PATH_PREFIX + "/updateGroupMembership");
-
-            }
-        };
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PostsResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PostsResourceIntegrationTest.java
deleted file mode 100644
index da46f95..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PostsResourceIntegrationTest.java
+++ /dev/null
@@ -1,176 +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.
- */
-/*
- * Camel Api Route test generated by camel-component-util-maven-plugin
- * Generated on: Wed Jul 09 19:57:11 PDT 2014
- */
-package org.apache.camel.component.linkedin;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * Test class for {@link org.apache.camel.component.linkedin.api.PostsResource} APIs.
- */
-public class PostsResourceIntegrationTest extends AbstractLinkedInTestSupport {
-
-    private static final Logger LOG = LoggerFactory.getLogger(PostsResourceIntegrationTest.class);
-    private static final String PATH_PREFIX = "comments";
-
-    // TODO provide parameter values for addComment
-    @Ignore
-    @Test
-    public void testAddComment() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.post_id", null);
-        // parameter type is org.apache.camel.component.linkedin.api.model.Comment
-        headers.put("CamelLinkedIn.comment", null);
-
-        requestBodyAndHeaders("direct://ADDCOMMENT", null, headers);
-    }
-
-    // TODO provide parameter values for flagCategory
-    @Ignore
-    @Test
-    public void testFlagCategory() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.post_id", null);
-        // parameter type is org.apache.camel.component.linkedin.api.model.PostCategoryCode
-        headers.put("CamelLinkedIn.postcategorycode", null);
-
-        requestBodyAndHeaders("direct://FLAGCATEGORY", null, headers);
-    }
-
-    // TODO provide parameter values for followPost
-    @Ignore
-    @Test
-    public void testFollowPost() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.post_id", null);
-        // parameter type is org.apache.camel.component.linkedin.api.model.IsFollowing
-        headers.put("CamelLinkedIn.isfollowing", null);
-
-        requestBodyAndHeaders("direct://FOLLOWPOST", null, headers);
-    }
-
-    // TODO provide parameter values for getPost
-    @Ignore
-    @Test
-    public void testGetPost() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.post_id", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.count", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-
-        final org.apache.camel.component.linkedin.api.model.Post result = requestBodyAndHeaders("direct://GETPOST", null, headers);
-
-        assertNotNull("getPost result", result);
-        LOG.debug("getPost: " + result);
-    }
-
-    // TODO provide parameter values for getPostComments
-    @Ignore
-    @Test
-    public void testGetPostComments() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.post_id", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.count", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", null);
-
-        final org.apache.camel.component.linkedin.api.model.Comments result = requestBodyAndHeaders("direct://GETPOSTCOMMENTS", null, headers);
-
-        assertNotNull("getPostComments result", result);
-        LOG.debug("getPostComments: " + result);
-    }
-
-    // TODO provide parameter values for likePost
-    @Ignore
-    @Test
-    public void testLikePost() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.post_id", null);
-        // parameter type is org.apache.camel.component.linkedin.api.model.IsLiked
-        headers.put("CamelLinkedIn.isliked", null);
-
-        requestBodyAndHeaders("direct://LIKEPOST", null, headers);
-    }
-
-    // TODO provide parameter values for removePost
-    @Ignore
-    @Test
-    public void testRemovePost() throws Exception {
-        // using String message body for single parameter "post_id"
-        requestBody("direct://REMOVEPOST", null);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() {
-                // test route for addComment
-                from("direct://ADDCOMMENT")
-                    .to("linkedin://" + PATH_PREFIX + "/addComment");
-
-                // test route for flagCategory
-                from("direct://FLAGCATEGORY")
-                    .to("linkedin://" + PATH_PREFIX + "/flagCategory");
-
-                // test route for followPost
-                from("direct://FOLLOWPOST")
-                    .to("linkedin://" + PATH_PREFIX + "/followPost");
-
-                // test route for getPost
-                from("direct://GETPOST")
-                    .to("linkedin://" + PATH_PREFIX + "/getPost");
-
-                // test route for getPostComments
-                from("direct://GETPOSTCOMMENTS")
-                    .to("linkedin://" + PATH_PREFIX + "/getPostComments");
-
-                // test route for likePost
-                from("direct://LIKEPOST")
-                    .to("linkedin://" + PATH_PREFIX + "/likePost");
-
-                // test route for removePost
-                from("direct://REMOVEPOST")
-                    .to("linkedin://" + PATH_PREFIX + "/removePost?inBody=post_id");
-
-            }
-        };
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/SearchResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/SearchResourceIntegrationTest.java
deleted file mode 100644
index d84b764..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/SearchResourceIntegrationTest.java
+++ /dev/null
@@ -1,175 +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.
- */
-/*
- * Camel Api Route test generated by camel-component-util-maven-plugin
- * Generated on: Wed Jul 09 19:57:11 PDT 2014
- */
-package org.apache.camel.component.linkedin;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * Test class for {@link org.apache.camel.component.linkedin.api.SearchResource} APIs.
- */
-public class SearchResourceIntegrationTest extends AbstractLinkedInTestSupport {
-
-    private static final Logger LOG = LoggerFactory.getLogger(SearchResourceIntegrationTest.class);
-    private static final String PATH_PREFIX = "search";
-
-    @Test
-    public void testSearchCompanies() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", "");
-        // parameter type is String
-        headers.put("CamelLinkedIn.keywords", "linkedin");
-        // all fields are nullable, and fields defaults to ""
-/*
-        // parameter type is String
-        headers.put("CamelLinkedIn.hq_only", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.facet", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.facets", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.count", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.sort", null);
-*/
-
-        final org.apache.camel.component.linkedin.api.model.CompanySearch result = requestBodyAndHeaders("direct://SEARCHCOMPANIES", null, headers);
-
-        assertNotNull("searchCompanies result", result);
-        LOG.debug("searchCompanies: " + result);
-    }
-
-    @Ignore("Requires vetted API Access Program")
-    @Test
-    public void testSearchJobs() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", "");
-/*
-        // parameter type is String
-        headers.put("CamelLinkedIn.keywords", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.company_name", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.job_title", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.country_code", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.postal_code", null);
-        // parameter type is org.apache.camel.component.linkedin.api.model.Distance
-        headers.put("CamelLinkedIn.distance", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.facet", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.facets", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.count", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.sort", null);
-*/
-
-        final org.apache.camel.component.linkedin.api.model.JobSearch result = requestBodyAndHeaders("direct://SEARCHJOBS", null, headers);
-
-        assertNotNull("searchJobs result", result);
-        LOG.debug("searchJobs: " + result);
-    }
-
-    @Ignore("Requires vetted API Access Program")
-    @Test
-    public void testSearchPeople() throws Exception {
-        final Map<String, Object> headers = new HashMap<>();
-        // parameter type is String
-        headers.put("CamelLinkedIn.fields", "");
-/*
-        // parameter type is String
-        headers.put("CamelLinkedIn.keywords", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.first_name", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.last_name", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.company_name", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.current_company", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.title", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.current_title", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.school_name", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.current_school", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.country_code", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.postal_code", null);
-        // parameter type is org.apache.camel.component.linkedin.api.model.Distance
-        headers.put("CamelLinkedIn.distance", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.facet", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.facets", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.start", null);
-        // parameter type is Long
-        headers.put("CamelLinkedIn.count", null);
-        // parameter type is String
-        headers.put("CamelLinkedIn.sort", null);
-*/
-
-        final org.apache.camel.component.linkedin.api.model.PeopleSearch result = requestBodyAndHeaders("direct://SEARCHPEOPLE", null, headers);
-
-        assertNotNull("searchPeople result", result);
-        LOG.debug("searchPeople: " + result);
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            public void configure() {
-                // test route for searchCompanies
-                from("direct://SEARCHCOMPANIES")
-                    .to("linkedin://" + PATH_PREFIX + "/searchCompanies");
-
-                // test route for searchJobs
-                from("direct://SEARCHJOBS")
-                    .to("linkedin://" + PATH_PREFIX + "/searchJobs");
-
-                // test route for searchPeople
-                from("direct://SEARCHPEOPLE")
-                    .to("linkedin://" + PATH_PREFIX + "/searchPeople");
-
-            }
-        };
-    }
-}
diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/resources/log4j2.properties b/components/camel-linkedin/camel-linkedin-component/src/test/resources/log4j2.properties
deleted file mode 100644
index 425fc0c..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/test/resources/log4j2.properties
+++ /dev/null
@@ -1,28 +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.
-## ---------------------------------------------------------------------------
-
-appender.file.type = File
-appender.file.name = file
-appender.file.fileName = target/camel-linkedin-test.log
-appender.file.layout.type = PatternLayout
-appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-appender.out.type = Console
-appender.out.name = out
-appender.out.layout.type = PatternLayout
-appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-rootLogger.level = INFO
-rootLogger.appenderRef.file.ref = file
diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/resources/test-options.properties b/components/camel-linkedin/camel-linkedin-component/src/test/resources/test-options.properties
deleted file mode 100644
index 23a3939..0000000
--- a/components/camel-linkedin/camel-linkedin-component/src/test/resources/test-options.properties
+++ /dev/null
@@ -1,33 +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.
-## ---------------------------------------------------------------------------
-
-# LinkedIn user name
-userName=
-# LinkedIn user password
-userPassword=
-# LinkedIn App clientId
-clientId=
-# LinkedIn App clientSecret
-clientSecret=
-# LinkedIn access token
-accessToken=
-# LinkedIn token expiry time
-expiryTime=
-# LinkedIn App required scopes
-scope=r_basicprofile,r_fullprofile,r_emailaddress,r_network,r_contactinfo,rw_nus,rw_company_admin,rw_groups,w_messages
-# LinkedIn App redirect URI
-redirectUri=
diff --git a/components/camel-linkedin/pom.xml b/components/camel-linkedin/pom.xml
deleted file mode 100644
index bbdf02c..0000000
--- a/components/camel-linkedin/pom.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <artifactId>components</artifactId>
-        <groupId>org.apache.camel</groupId>
-        <version>3.0.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-linkedin-parent</artifactId>
-    <packaging>pom</packaging>
-    <name>Camel :: LinkedIn :: Parent</name>
-    <description>Camel LinkedIn parent</description>
-
-    <modules>
-        <module>camel-linkedin-api</module>
-        <module>camel-linkedin-component</module>
-    </modules>
-
-    <profiles>
-        <profile>
-            <id>linkedin-test</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-surefire-plugin</artifactId>
-                        <configuration>
-                            <childDelegation>false</childDelegation>
-                            <useFile>true</useFile>
-                            <forkCount>1</forkCount>
-                            <reuseForks>true</reuseForks>
-                            <forkedProcessTimeoutInSeconds>300</forkedProcessTimeoutInSeconds>
-                            <excludes>
-                                <exclude>**/*XXXTest.java</exclude>
-                            </excludes>
-                            <includes>
-                                <include>**/*Test.java</include>
-                            </includes>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
-</project>
diff --git a/components/pom.xml b/components/pom.xml
index cb1421c..2db1296 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -237,7 +237,6 @@
         <module>camel-ldap</module>
         <module>camel-ldif</module>
         <module>camel-leveldb</module>
-        <module>camel-linkedin</module>
         <module>camel-lra</module>
         <module>camel-lucene</module>
         <module>camel-lumberjack</module>
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/LinkedInEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/LinkedInEndpointBuilderFactory.java
deleted file mode 100644
index f1af4d8..0000000
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/LinkedInEndpointBuilderFactory.java
+++ /dev/null
@@ -1,1585 +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.dsl;
-
-import java.util.Map;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import javax.annotation.Generated;
-import org.apache.camel.ExchangePattern;
-import org.apache.camel.LoggingLevel;
-import org.apache.camel.builder.EndpointConsumerBuilder;
-import org.apache.camel.builder.EndpointProducerBuilder;
-import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
-import org.apache.camel.spi.ExceptionHandler;
-import org.apache.camel.spi.PollingConsumerPollStrategy;
-
-/**
- * The linkedin component is used for retrieving LinkedIn user profiles,
- * connections, companies, groups, posts, etc.
- * 
- * Generated by camel-package-maven-plugin - do not edit this file!
- */
-@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
-public interface LinkedInEndpointBuilderFactory {
-
-
-    /**
-     * Builder for endpoint consumers for the Linkedin component.
-     */
-    public interface LinkedInEndpointConsumerBuilder
-            extends
-                EndpointConsumerBuilder {
-        default AdvancedLinkedInEndpointConsumerBuilder advanced() {
-            return (AdvancedLinkedInEndpointConsumerBuilder) this;
-        }
-        /**
-         * LinkedIn access token to avoid username and password login procedure.
-         * LinkedIn responds to login forms by using a CAPTCHA. This makes it
-         * impossible for a standalone, headless process to log in to LinkedIn
-         * by specifying a username and password. To work around this, obtain a
-         * LinkedIn access token and provide the token as the setting of the
-         * accessToken parameter. Obtaining a LinkedIn access token is a
-         * multi-step procedure. You must configure your LinkedIn application,
-         * obtain a LinkedIn authorization code, and exchange that code for the
-         * LinkedIn access token. For details, see:
-         * https://developer.linkedin.com/docs/oauth2 The default behavior is
-         * that the access token expires after 60 days. To change this, specify
-         * a value for the expiryTime paramter. If the access token expires, the
-         * LinkedIn component tries to log in to LinkedIn by providing a
-         * username and password, which results in a CAPTCHA so the login fails.
-         * The LinkedIn component cannot refresh the access token. You must
-         * manually obtain a new access token each time an access token expires.
-         * When you update the access token you must restart the application so
-         * that it uses the new token.
-         * 
-         * The option is a: <code>java.lang.String</code> type.
-         * 
-         * Group: common
-         */
-        default LinkedInEndpointConsumerBuilder accessToken(String accessToken) {
-            doSetProperty("accessToken", accessToken);
-            return this;
-        }
-        /**
-         * LinkedIn application client ID.
-         * 
-         * The option is a: <code>java.lang.String</code> type.
-         * 
-         * Group: common
-         */
-        default LinkedInEndpointConsumerBuilder clientId(String clientId) {
-            doSetProperty("clientId", clientId);
-            return this;
-        }
-        /**
-         * LinkedIn application client secret.
-         * 
-         * The option is a: <code>java.lang.String</code> type.
-         * 
-         * Group: common
-         */
-        default LinkedInEndpointConsumerBuilder clientSecret(String clientSecret) {
-            doSetProperty("clientSecret", clientSecret);
-            return this;
-        }
-        /**
-         * A number of milliseconds since the UNIX Epoch. The default is 60
-         * days. A LinkedIn access token expires when this amount of time
... 3279 lines suppressed ...