Repository: camel
Updated Branches:
  refs/heads/master 612a01850 -> 0275a9522


Fix for CAMEL-7515 Expose the component options for Camel Netty HTTP


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e8216ac7
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e8216ac7
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e8216ac7

Branch: refs/heads/master
Commit: e8216ac7b82f5010054479fea4ebfcb6e883988e
Parents: 14b6164
Author: Kevin Earls <[email protected]>
Authored: Mon Jul 7 13:53:29 2014 +0200
Committer: Kevin Earls <[email protected]>
Committed: Mon Jul 7 13:53:29 2014 +0200

----------------------------------------------------------------------
 .../apache/camel/impl/DefaultCamelContext.java  |  2 +
 .../netty/http/NettyHttpComponent.java          |  1 +
 .../component/netty/http/NettyHttpEndpoint.java |  5 ++
 ...ponentConfigurationAndDocumentationTest.java | 58 ++++++++++++++++++++
 .../camel/component/netty/NettyComponent.java   |  4 ++
 5 files changed, 70 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e8216ac7/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 ad84012..dc34791 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
@@ -1062,6 +1062,8 @@ public class DefaultCamelContext extends ServiceSupport 
implements ModelCamelCon
             return "gae/" + componentName.substring(1);
         } else if ("atmosphere-websocket".equals(componentName)) {
             return "atmosphere/websocket";
+        } else if ("netty-http".equals(componentName)) {
+            return "netty/http";
         }
         return componentName.replaceAll("-", "");
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/e8216ac7/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
 
b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
index 01abb3d..3732454 100644
--- 
a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
+++ 
b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpComponent.java
@@ -50,6 +50,7 @@ public class NettyHttpComponent extends NettyComponent 
implements HeaderFilterSt
 
     public NettyHttpComponent() {
         // use the http configuration and filter strategy
+        super(NettyHttpEndpoint.class);
         setConfiguration(new NettyHttpConfiguration());
         setHeaderFilterStrategy(new NettyHttpHeaderFilterStrategy());
         setNettyHttpBinding(new 
DefaultNettyHttpBinding(getHeaderFilterStrategy()));

http://git-wip-us.apache.org/repos/asf/camel/blob/e8216ac7/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
 
b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
index 173aa25..d1f82da 100644
--- 
a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
+++ 
b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
@@ -27,6 +27,8 @@ import org.apache.camel.component.netty.NettyEndpoint;
 import org.apache.camel.impl.SynchronousDelegateProducer;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategyAware;
+import org.apache.camel.spi.UriEndpoint;
+import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.ObjectHelper;
 import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.MessageEvent;
@@ -37,12 +39,15 @@ import org.slf4j.LoggerFactory;
 /**
  * HTTP based {@link NettyEndpoint}
  */
+@UriEndpoint(scheme = "netty-http", consumerClass = NettyHttpConsumer.class)
 public class NettyHttpEndpoint extends NettyEndpoint implements 
HeaderFilterStrategyAware {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(NettyHttpEndpoint.class);
     private NettyHttpBinding nettyHttpBinding;
     private HeaderFilterStrategy headerFilterStrategy;
+    @UriParam
     private boolean traceEnabled;
+    @UriParam
     private String httpMethodRestrict;
     private NettySharedHttpServer nettySharedHttpServer;
     private NettyHttpSecurityConfiguration securityConfiguration;

http://git-wip-us.apache.org/repos/asf/camel/blob/e8216ac7/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpComponentConfigurationAndDocumentationTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpComponentConfigurationAndDocumentationTest.java
 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpComponentConfigurationAndDocumentationTest.java
new file mode 100644
index 0000000..acb7a95
--- /dev/null
+++ 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/NettyHttpComponentConfigurationAndDocumentationTest.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.netty.http;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ComponentConfiguration;
+import org.apache.camel.EndpointConfiguration;
+import org.apache.camel.component.netty.NettyComponent;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+public class NettyHttpComponentConfigurationAndDocumentationTest extends 
CamelTestSupport {
+
+    @Override
+    public boolean isUseRouteBuilder() {
+        return false;
+    }
+
+    @Test
+    public void testComponentConfiguration() throws Exception {
+        NettyHttpComponent comp = context.getComponent("netty-http", 
NettyHttpComponent.class);
+        EndpointConfiguration conf = 
comp.createConfiguration("netty-http:tcp://localhost:5150?sync=true"
+                + "&httpMethodRestrict=POST&traceEnabled=true");
+
+        assertEquals("true", conf.getParameter("traceEnabled"));
+        assertEquals("POST", conf.getParameter("httpMethodRestrict"));
+
+        ComponentConfiguration compConf = comp.createComponentConfiguration();
+        String json = compConf.createParameterJsonSchema();
+        assertNotNull(json);
+
+        assertTrue(json.contains("\"httpMethodRestrict\": { \"type\": 
\"java.lang.String\" }"));
+        assertTrue(json.contains("\"traceEnabled\": { \"type\": \"boolean\" 
}"));
+    }
+
+    @Test
+    public void testComponentDocumentation() throws Exception {
+        CamelContext context = new DefaultCamelContext();
+        String html = context.getComponentDocumentation("netty-http");
+        assertNotNull("Should have found some auto-generated HTML if on Java 
7", html);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/e8216ac7/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
index 62028e6..11c37e0 100644
--- 
a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
+++ 
b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyComponent.java
@@ -41,6 +41,10 @@ public class NettyComponent extends UriEndpointComponent {
         super(NettyEndpoint.class);
     }
 
+    public NettyComponent(Class<? extends Endpoint> endpointClass) {
+        super(endpointClass);
+    }
+
     public NettyComponent(CamelContext context) {
         super(context, NettyEndpoint.class);
     }

Reply via email to