Repository: camel Updated Branches: refs/heads/master cabee0e90 -> 61839f228
Fix for CAMEL-7569 Expose the component options for Camel GAE Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fe3de4af Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fe3de4af Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fe3de4af Branch: refs/heads/master Commit: fe3de4af7162dff3a1fda227536cdd629c4f68a3 Parents: 9d661ab Author: Kevin Earls <ke...@kevinearls.com> Authored: Wed Jul 2 18:20:14 2014 +0200 Committer: Kevin Earls <ke...@kevinearls.com> Committed: Wed Jul 2 18:20:14 2014 +0200 ---------------------------------------------------------------------- .../apache/camel/impl/DefaultCamelContext.java | 3 + .../component/gae/auth/GAuthComponent.java | 8 +-- .../camel/component/gae/auth/GAuthEndpoint.java | 8 +++ .../component/gae/http/GHttpComponent.java | 3 + .../camel/component/gae/http/GHttpEndpoint.java | 9 ++- .../component/gae/login/GLoginComponent.java | 8 +-- .../component/gae/login/GLoginEndpoint.java | 10 ++++ .../component/gae/mail/GMailComponent.java | 8 ++- .../camel/component/gae/mail/GMailEndpoint.java | 8 +++ .../component/gae/task/GTaskComponent.java | 3 + .../camel/component/gae/task/GTaskEndpoint.java | 4 ++ ...ponentConfigurationAndDocumentationTest.java | 57 +++++++++++++++++++ ...ponentConfigurationAndDocumentationTest.java | 58 ++++++++++++++++++++ ...ponentConfigurationAndDocumentationTest.java | 57 +++++++++++++++++++ ...ponentConfigurationAndDocumentationTest.java | 57 +++++++++++++++++++ ...ponentConfigurationAndDocumentationTest.java | 56 +++++++++++++++++++ .../component/servlet/ServletComponent.java | 6 ++ 17 files changed, 352 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java index 7437990..4b0b814 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java @@ -1057,6 +1057,9 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon return "file/remote"; } else if ("cxfrs".equals(componentName)) { return "cxf/jaxrs"; + } else if ("gauth".equals(componentName) || "ghttp".equals(componentName) || "glogin".equals(componentName) + ||"gmail".equals(componentName) || "gtask".equals(componentName) ) { + return "gae/" + componentName.substring(1); } return componentName.replaceAll("-", ""); } http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthComponent.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthComponent.java index 73119a1..d140b3b 100644 --- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthComponent.java +++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthComponent.java @@ -22,7 +22,7 @@ import com.google.gdata.client.authn.oauth.GoogleOAuthParameters; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.component.gae.bind.OutboundBinding; -import org.apache.camel.impl.DefaultComponent; +import org.apache.camel.impl.UriEndpointComponent; /** * The <a href="http://camel.apache.org/gauth.html">GAuth Component</a> @@ -33,18 +33,18 @@ import org.apache.camel.impl.DefaultComponent; * href="http://code.google.com/apis/gdata/docs/auth/oauth.html">GData developer * guide for OAuth.</a>. */ -public class GAuthComponent extends DefaultComponent { +public class GAuthComponent extends UriEndpointComponent { private String consumerKey; private String consumerSecret; private GAuthKeyLoader keyLoader; public GAuthComponent() { - this(null); + super(GAuthEndpoint.class); } public GAuthComponent(CamelContext context) { - super(context); + super(context, GAuthEndpoint.class); } public String getConsumerKey() { http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthEndpoint.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthEndpoint.java index ac24432..8513a0e 100644 --- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthEndpoint.java +++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthEndpoint.java @@ -31,6 +31,8 @@ import org.apache.camel.Processor; import org.apache.camel.Producer; import org.apache.camel.component.gae.bind.OutboundBinding; import org.apache.camel.impl.DefaultEndpoint; +import org.apache.camel.spi.UriEndpoint; +import org.apache.camel.spi.UriParam; /** * Represents a <a href="http://camel.apache.org/gauth.html">GAuth Endpoint</a>. @@ -40,6 +42,7 @@ import org.apache.camel.impl.DefaultEndpoint; * endpoint URIs are <code>gauth:authorize</code> and <code>gauth:upgrade</code> * , respectively. */ +@UriEndpoint(scheme = "gauth") public class GAuthEndpoint extends DefaultEndpoint { public static enum Name { @@ -59,10 +62,15 @@ public class GAuthEndpoint extends DefaultEndpoint { private OutboundBinding<GAuthEndpoint, GoogleOAuthParameters, GoogleOAuthParameters> authorizeBinding; private OutboundBinding<GAuthEndpoint, GoogleOAuthParameters, GoogleOAuthParameters> upgradeBinding; + @UriParam private Name name; + @UriParam private String callback; + @UriParam private String scope; + @UriParam private String consumerKey; + @UriParam private String consumerSecret; private GAuthKeyLoader keyLoader; private GAuthService service; http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpComponent.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpComponent.java index 132ffca..1aaa6b1 100644 --- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpComponent.java +++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpComponent.java @@ -43,6 +43,9 @@ import org.apache.commons.httpclient.params.HttpClientParams; * Engine. */ public class GHttpComponent extends ServletComponent { + public GHttpComponent() { + super(GHttpEndpoint.class); + } @Override @SuppressWarnings("unchecked") http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java index c2a6449..98192fa 100644 --- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java +++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java @@ -40,6 +40,8 @@ import org.apache.camel.component.http.HttpBinding; import org.apache.camel.component.http.HttpClientConfigurer; import org.apache.camel.component.servlet.ServletComponent; import org.apache.camel.component.servlet.ServletEndpoint; +import org.apache.camel.spi.UriEndpoint; +import org.apache.camel.spi.UriParam; import org.apache.camel.util.URISupport; import org.apache.camel.util.UnsafeUriCharactersEncoder; import org.apache.commons.httpclient.HttpConnectionManager; @@ -49,12 +51,17 @@ import org.apache.commons.httpclient.params.HttpClientParams; * Represents a <a href="http://camel.apache.org/ghttp.html">Google App Engine * HTTP endpoint</a>. */ +@UriEndpoint(scheme = "ghttp") public class GHttpEndpoint extends ServletEndpoint implements OutboundBindingSupport<GHttpEndpoint, HTTPRequest, HTTPResponse> { + @UriParam public static final String GHTTP_SCHEME = "ghttp"; + @UriParam public static final String GHTTPS_SCHEME = "ghttps"; - + + @UriParam public static final String HTTP_SCHEME = "http"; + @UriParam public static final String HTTPS_SCHEME = "https"; private URLFetchService urlFetchService; http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginComponent.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginComponent.java index 5c0f79f..9504aed 100644 --- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginComponent.java +++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginComponent.java @@ -22,7 +22,7 @@ import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.component.gae.auth.GAuthComponent; import org.apache.camel.component.gae.bind.OutboundBinding; -import org.apache.camel.impl.DefaultComponent; +import org.apache.camel.impl.UriEndpointComponent; /** * The <a href="http://camel.apache.org/glogin.html">GLogin Component</a> @@ -36,14 +36,14 @@ import org.apache.camel.impl.DefaultComponent; * do a programmatic login to GAE applications. Web applications should use the * {@link GAuthComponent} for access authorization to other web applications. */ -public class GLoginComponent extends DefaultComponent { +public class GLoginComponent extends UriEndpointComponent { public GLoginComponent() { - this(null); + super(GLoginEndpoint.class); } public GLoginComponent(CamelContext context) { - super(context); + super(context, GLoginEndpoint.class); } @Override http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginEndpoint.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginEndpoint.java index 2b25816..eef74d9 100644 --- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginEndpoint.java +++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginEndpoint.java @@ -22,21 +22,31 @@ import org.apache.camel.Processor; import org.apache.camel.Producer; import org.apache.camel.component.gae.bind.OutboundBinding; import org.apache.camel.impl.DefaultEndpoint; +import org.apache.camel.spi.UriEndpoint; +import org.apache.camel.spi.UriParam; /** * Represents a <a href="http://camel.apache.org/glogin.html">GLogin * Endpoint</a>. */ +@UriEndpoint(scheme = "glogin") public class GLoginEndpoint extends DefaultEndpoint { private OutboundBinding<GLoginEndpoint, GLoginData, GLoginData> outboundBinding; + @UriParam private String hostName; + @UriParam private String clientName; + @UriParam private String userName; + @UriParam private String password; + @UriParam private int devPort; + @UriParam private boolean devAdmin; + @UriParam private boolean devMode; private GLoginService service; http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailComponent.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailComponent.java index 66decb5..4c4115b 100644 --- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailComponent.java +++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailComponent.java @@ -22,14 +22,18 @@ import com.google.appengine.api.mail.MailService.Message; import org.apache.camel.Endpoint; import org.apache.camel.component.gae.bind.OutboundBinding; -import org.apache.camel.impl.DefaultComponent; +import org.apache.camel.impl.UriEndpointComponent; /** * The <a href="http://camel.apache.org/gmail.html">Google App Engine Mail * Component</a> supports outbound mail communication. It makes use of the mail * service provided by Google App Engine. */ -public class GMailComponent extends DefaultComponent { +public class GMailComponent extends UriEndpointComponent { + + public GMailComponent() { + super(GMailEndpoint.class); + } @Override @SuppressWarnings("unchecked") http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailEndpoint.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailEndpoint.java index 9a51274..bf63c83 100644 --- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailEndpoint.java +++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailEndpoint.java @@ -27,18 +27,26 @@ import org.apache.camel.Producer; import org.apache.camel.component.gae.bind.OutboundBinding; import org.apache.camel.component.gae.bind.OutboundBindingSupport; import org.apache.camel.impl.DefaultEndpoint; +import org.apache.camel.spi.UriEndpoint; +import org.apache.camel.spi.UriParam; /** * Represents a <a href="http://camel.apache.org/gmail.html">Google App Engine Mail endpoint</a>. */ +@UriEndpoint(scheme = "gmail") public class GMailEndpoint extends DefaultEndpoint implements OutboundBindingSupport<GMailEndpoint, Message, Void> { private OutboundBinding<GMailEndpoint, Message, Void> outboundBinding; private MailService mailService; + @UriParam private String sender; + @UriParam private String subject; + @UriParam private String to; + @UriParam private String cc; + @UriParam private String bcc; public GMailEndpoint(String endpointUri, Component component, String sender) { http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskComponent.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskComponent.java index 2adcaf3..88ec833 100644 --- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskComponent.java +++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskComponent.java @@ -44,6 +44,9 @@ import org.apache.commons.httpclient.params.HttpClientParams; * for installing a web hook. */ public class GTaskComponent extends ServletComponent { + public GTaskComponent() { + super(GTaskEndpoint.class); + } @Override @SuppressWarnings("unchecked") http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java index 733f8c4..c789646 100644 --- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java +++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java @@ -34,16 +34,20 @@ import org.apache.camel.component.http.HttpBinding; import org.apache.camel.component.http.HttpClientConfigurer; import org.apache.camel.component.servlet.ServletComponent; import org.apache.camel.component.servlet.ServletEndpoint; +import org.apache.camel.spi.UriEndpoint; +import org.apache.camel.spi.UriParam; import org.apache.commons.httpclient.HttpConnectionManager; import org.apache.commons.httpclient.params.HttpClientParams; /** * Represents a <a href="http://camel.apache.org/gtask.html">Google App Engine Task Queueing endpoint</a>. */ +@UriEndpoint(scheme = "gtask") public class GTaskEndpoint extends ServletEndpoint implements OutboundBindingSupport<GTaskEndpoint, TaskOptions, Void> { private OutboundBinding<GTaskEndpoint, TaskOptions, Void> outboundBinding; private InboundBinding<GTaskEndpoint, HttpServletRequest, HttpServletResponse> inboundBinding; + @UriParam private String workerRoot; private Queue queue; http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/test/java/org/apache/camel/component/gae/auth/GAuthComponentConfigurationAndDocumentationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/test/java/org/apache/camel/component/gae/auth/GAuthComponentConfigurationAndDocumentationTest.java b/components/camel-gae/src/test/java/org/apache/camel/component/gae/auth/GAuthComponentConfigurationAndDocumentationTest.java new file mode 100644 index 0000000..7e9e9fd --- /dev/null +++ b/components/camel-gae/src/test/java/org/apache/camel/component/gae/auth/GAuthComponentConfigurationAndDocumentationTest.java @@ -0,0 +1,57 @@ +/** + * 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.gae.auth; + +import org.apache.camel.CamelContext; +import org.apache.camel.ComponentConfiguration; +import org.apache.camel.EndpointConfiguration; +import org.apache.camel.component.servlet.ServletComponent; +import org.apache.camel.impl.DefaultCamelContext; +import org.apache.camel.test.junit4.CamelTestSupport; +import org.junit.Test; + +public class GAuthComponentConfigurationAndDocumentationTest extends CamelTestSupport { + + @Override + public boolean isUseRouteBuilder() { + return false; + } + + @Test + public void testComponentConfiguration() throws Exception { + GAuthComponent comp = context.getComponent("gauth", GAuthComponent.class); + EndpointConfiguration conf = comp.createConfiguration("gauth://authorize?scope=foo&name=fred"); + + assertEquals("foo", conf.getParameter("scope")); + assertEquals("fred", conf.getParameter("name")); + + ComponentConfiguration compConf = comp.createComponentConfiguration(); + String json = compConf.createParameterJsonSchema(); + assertNotNull(json); + + assertTrue(json.contains("\"consumerKey\": { \"type\": \"java.lang.String\" }")); + assertTrue(json.contains("\"scope\": { \"type\": \"java.lang.String\" }")); + } + + @Test + public void testComponentDocumentation() throws Exception { + CamelContext context = new DefaultCamelContext(); + String html = context.getComponentDocumentation("gauth"); + assertNotNull("Should have found some auto-generated HTML if on Java 7", html); + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/test/java/org/apache/camel/component/gae/http/GHttpComponentConfigurationAndDocumentationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/test/java/org/apache/camel/component/gae/http/GHttpComponentConfigurationAndDocumentationTest.java b/components/camel-gae/src/test/java/org/apache/camel/component/gae/http/GHttpComponentConfigurationAndDocumentationTest.java new file mode 100644 index 0000000..b903ceb --- /dev/null +++ b/components/camel-gae/src/test/java/org/apache/camel/component/gae/http/GHttpComponentConfigurationAndDocumentationTest.java @@ -0,0 +1,58 @@ +/** + * 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.gae.http; + +import org.apache.camel.CamelContext; +import org.apache.camel.ComponentConfiguration; +import org.apache.camel.EndpointConfiguration; +import org.apache.camel.component.gae.auth.GAuthComponent; +import org.apache.camel.impl.DefaultCamelContext; +import org.apache.camel.test.junit4.CamelTestSupport; +import org.junit.Test; + +public class GHttpComponentConfigurationAndDocumentationTest extends CamelTestSupport { + + @Override + public boolean isUseRouteBuilder() { + return false; + } + + @Test + public void testComponentConfiguration() throws Exception { + GHttpComponent comp = context.getComponent("ghttp", GHttpComponent.class); + EndpointConfiguration conf = comp.createConfiguration("ghttp://somewhere.com:9090/path?" + + "bridgeEndpoint=false&throwExceptionOnFailure=false"); + + assertEquals("false", conf.getParameter("bridgeEndpoint")); + assertEquals("false", conf.getParameter("throwExceptionOnFailure")); + + ComponentConfiguration compConf = comp.createComponentConfiguration(); + String json = compConf.createParameterJsonSchema(); + assertNotNull(json); + + assertTrue(json.contains("\"GHTTP_SCHEME\": { \"type\": \"java.lang.String\" }")); + assertTrue(json.contains("\"HTTPS_SCHEME\": { \"type\": \"java.lang.String\" }")); + } + + @Test + public void testComponentDocumentation() throws Exception { + CamelContext context = new DefaultCamelContext(); + String html = context.getComponentDocumentation("ghttp"); + assertNotNull("Should have found some auto-generated HTML if on Java 7", html); + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/test/java/org/apache/camel/component/gae/login/GLoginComponentConfigurationAndDocumentationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/test/java/org/apache/camel/component/gae/login/GLoginComponentConfigurationAndDocumentationTest.java b/components/camel-gae/src/test/java/org/apache/camel/component/gae/login/GLoginComponentConfigurationAndDocumentationTest.java new file mode 100644 index 0000000..aea79f6 --- /dev/null +++ b/components/camel-gae/src/test/java/org/apache/camel/component/gae/login/GLoginComponentConfigurationAndDocumentationTest.java @@ -0,0 +1,57 @@ +/** + * 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.gae.login; + +import org.apache.camel.CamelContext; +import org.apache.camel.ComponentConfiguration; +import org.apache.camel.EndpointConfiguration; +import org.apache.camel.component.gae.auth.GAuthComponent; +import org.apache.camel.impl.DefaultCamelContext; +import org.apache.camel.test.junit4.CamelTestSupport; +import org.junit.Test; + +public class GLoginComponentConfigurationAndDocumentationTest extends CamelTestSupport { + + @Override + public boolean isUseRouteBuilder() { + return false; + } + + @Test + public void testComponentConfiguration() throws Exception { + GLoginComponent comp = context.getComponent("glogin", GLoginComponent.class); + EndpointConfiguration conf = comp.createConfiguration("glogin:localhost?devMode=true&devAdmin=true"); + + assertEquals("true", conf.getParameter("devMode")); + assertEquals("true", conf.getParameter("devAdmin")); + + ComponentConfiguration compConf = comp.createComponentConfiguration(); + String json = compConf.createParameterJsonSchema(); + assertNotNull(json); + + assertTrue(json.contains("\"clientName\": { \"type\": \"java.lang.String\" }")); + assertTrue(json.contains("\"devMode\": { \"type\": \"boolean\" }")); + } + + @Test + public void testComponentDocumentation() throws Exception { + CamelContext context = new DefaultCamelContext(); + String html = context.getComponentDocumentation("glogin"); + assertNotNull("Should have found some auto-generated HTML if on Java 7", html); + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/test/java/org/apache/camel/component/gae/mail/GMailComponentConfigurationAndDocumentationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/test/java/org/apache/camel/component/gae/mail/GMailComponentConfigurationAndDocumentationTest.java b/components/camel-gae/src/test/java/org/apache/camel/component/gae/mail/GMailComponentConfigurationAndDocumentationTest.java new file mode 100644 index 0000000..44500ff --- /dev/null +++ b/components/camel-gae/src/test/java/org/apache/camel/component/gae/mail/GMailComponentConfigurationAndDocumentationTest.java @@ -0,0 +1,57 @@ +/** + * 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.gae.mail; + +import org.apache.camel.CamelContext; +import org.apache.camel.ComponentConfiguration; +import org.apache.camel.EndpointConfiguration; +import org.apache.camel.component.gae.login.GLoginComponent; +import org.apache.camel.impl.DefaultCamelContext; +import org.apache.camel.test.junit4.CamelTestSupport; +import org.junit.Test; + +public class GMailComponentConfigurationAndDocumentationTest extends CamelTestSupport { + + @Override + public boolean isUseRouteBuilder() { + return false; + } + + @Test + public void testComponentConfiguration() throws Exception { + GMailComponent comp = context.getComponent("gmail", GMailComponent.class); + EndpointConfiguration conf = comp.createConfiguration("gmail:te...@example.org?to=te...@example.org&subject=testSubject"); + + assertEquals("te...@example.org", conf.getParameter("to")); + assertEquals("testSubject", conf.getParameter("subject")); + + ComponentConfiguration compConf = comp.createComponentConfiguration(); + String json = compConf.createParameterJsonSchema(); + assertNotNull(json); + + assertTrue(json.contains("\"sender\": { \"type\": \"java.lang.String\" }")); + assertTrue(json.contains("\"bcc\": { \"type\": \"java.lang.String\" }")); + } + + @Test + public void testComponentDocumentation() throws Exception { + CamelContext context = new DefaultCamelContext(); + String html = context.getComponentDocumentation("gmail"); + assertNotNull("Should have found some auto-generated HTML if on Java 7", html); + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-gae/src/test/java/org/apache/camel/component/gae/task/GTaskComponentConfigurationAndDocumentationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-gae/src/test/java/org/apache/camel/component/gae/task/GTaskComponentConfigurationAndDocumentationTest.java b/components/camel-gae/src/test/java/org/apache/camel/component/gae/task/GTaskComponentConfigurationAndDocumentationTest.java new file mode 100644 index 0000000..5276795 --- /dev/null +++ b/components/camel-gae/src/test/java/org/apache/camel/component/gae/task/GTaskComponentConfigurationAndDocumentationTest.java @@ -0,0 +1,56 @@ +/** + * 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.gae.task; + +import org.apache.camel.CamelContext; +import org.apache.camel.ComponentConfiguration; +import org.apache.camel.EndpointConfiguration; +import org.apache.camel.component.gae.mail.GMailComponent; +import org.apache.camel.impl.DefaultCamelContext; +import org.apache.camel.test.junit4.CamelTestSupport; +import org.junit.Test; + +public class GTaskComponentConfigurationAndDocumentationTest extends CamelTestSupport { + + @Override + public boolean isUseRouteBuilder() { + return false; + } + + @Test + public void testComponentConfiguration() throws Exception { + GTaskComponent comp = context.getComponent("gtask", GTaskComponent.class); + EndpointConfiguration conf = comp.createConfiguration("gtask:default?workerRoot=camel"); + + assertEquals("camel", conf.getParameter("workerRoot")); + + ComponentConfiguration compConf = comp.createComponentConfiguration(); + String json = compConf.createParameterJsonSchema(); + assertNotNull(json); + + assertTrue(json.contains("\"workerRoot\": { \"type\": \"java.lang.String\" }")); + assertTrue(json.contains("\"disableStreamCache\": { \"type\": \"boolean\" }")); + } + + @Test + public void testComponentDocumentation() throws Exception { + CamelContext context = new DefaultCamelContext(); + String html = context.getComponentDocumentation("gtask"); + assertNotNull("Should have found some auto-generated HTML if on Java 7", html); + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/fe3de4af/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java index 15aec3e..789538c 100644 --- a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java +++ b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletComponent.java @@ -27,6 +27,7 @@ import org.apache.camel.component.http.HttpBinding; import org.apache.camel.component.http.HttpClientConfigurer; import org.apache.camel.component.http.HttpComponent; import org.apache.camel.component.http.HttpConsumer; +import org.apache.camel.component.http.HttpEndpoint; import org.apache.camel.spi.HeaderFilterStrategy; import org.apache.camel.util.IntrospectionSupport; import org.apache.camel.util.URISupport; @@ -43,6 +44,11 @@ public class ServletComponent extends HttpComponent { super(ServletEndpoint.class); } + public ServletComponent(Class<? extends HttpEndpoint> endpointClass) { + super(endpointClass); + } + + @Override protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { HttpClientParams params = new HttpClientParams();