camel-beanstalk - make component expose uri options and doc.

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

Branch: refs/heads/master
Commit: 4976ca9649a6a149a11a583d262803a3a1e6ee53
Parents: db8dc0c
Author: Claus Ibsen <[email protected]>
Authored: Sun Sep 21 11:06:29 2014 +0200
Committer: Claus Ibsen <[email protected]>
Committed: Sun Sep 21 11:06:29 2014 +0200

----------------------------------------------------------------------
 .../component/beanstalk/BeanstalkComponent.java | 10 ++--
 .../component/beanstalk/BeanstalkEndpoint.java  | 11 ++++-
 .../beanstalk/UriConfigurationTest.java         | 52 ++++++++++++++++++++
 3 files changed, 65 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/4976ca96/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkComponent.java
 
b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkComponent.java
index ff59ed5..16c05e6 100644
--- 
a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkComponent.java
+++ 
b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkComponent.java
@@ -18,9 +18,8 @@ package org.apache.camel.component.beanstalk;
 
 import java.util.Map;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
-import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.impl.UriEndpointComponent;
 
 /**
  * Beanstalk Camel component.
@@ -40,7 +39,7 @@ import org.apache.camel.impl.DefaultComponent;
  * @see BeanstalkEndpoint
  * @see ConnectionSettingsFactory
  */
-public class BeanstalkComponent extends DefaultComponent {
+public class BeanstalkComponent extends UriEndpointComponent {
     public static final String DEFAULT_TUBE = "default";
 
     public static final String COMMAND_BURY = "bury";
@@ -57,10 +56,7 @@ public class BeanstalkComponent extends DefaultComponent {
     private static ConnectionSettingsFactory connectionSettingsFactory = 
ConnectionSettingsFactory.DEFAULT;
 
     public BeanstalkComponent() {
-    }
-
-    public BeanstalkComponent(final CamelContext context) {
-        super(context);
+        super(BeanstalkEndpoint.class);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/4976ca96/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkEndpoint.java
 
b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkEndpoint.java
index f141223..db25c9d 100644
--- 
a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkEndpoint.java
+++ 
b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkEndpoint.java
@@ -29,17 +29,26 @@ import 
org.apache.camel.component.beanstalk.processors.PutCommand;
 import org.apache.camel.component.beanstalk.processors.ReleaseCommand;
 import org.apache.camel.component.beanstalk.processors.TouchCommand;
 import org.apache.camel.impl.ScheduledPollEndpoint;
+import org.apache.camel.spi.UriEndpoint;
+import org.apache.camel.spi.UriParam;
 
+@UriEndpoint(scheme = "beanstalk", consumerClass = BeanstalkConsumer.class)
 public class BeanstalkEndpoint extends ScheduledPollEndpoint {
     final ConnectionSettings conn;
 
+    @UriParam
     private String command = BeanstalkComponent.COMMAND_PUT;
+    @UriParam
     private long jobPriority = BeanstalkComponent.DEFAULT_PRIORITY;
+    @UriParam
     private int jobDelay = BeanstalkComponent.DEFAULT_DELAY;
+    @UriParam
     private int jobTimeToRun = BeanstalkComponent.DEFAULT_TIME_TO_RUN;
-
+    @UriParam
     private String onFailure = BeanstalkComponent.COMMAND_BURY;
+    @UriParam
     private boolean useBlockIO = true;
+    @UriParam
     private boolean awaitJob = true;
 
     public BeanstalkEndpoint(final String uri, final Component component, 
final ConnectionSettings conn) {

http://git-wip-us.apache.org/repos/asf/camel/blob/4976ca96/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/UriConfigurationTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/UriConfigurationTest.java
 
b/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/UriConfigurationTest.java
new file mode 100644
index 0000000..e52729d
--- /dev/null
+++ 
b/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/UriConfigurationTest.java
@@ -0,0 +1,52 @@
+/**
+ * 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.beanstalk;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ComponentConfiguration;
+import org.apache.camel.EndpointConfiguration;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class UriConfigurationTest extends Assert {
+
+    @Test
+    public void testComponentConfiguration() throws Exception {
+        CamelContext context = new DefaultCamelContext();
+
+        BeanstalkComponent comp = context.getComponent("beanstalk", 
BeanstalkComponent.class);
+        EndpointConfiguration conf = 
comp.createConfiguration("beanstalk:tube?command=put");
+
+        assertEquals("put", conf.getParameter("command"));
+
+        ComponentConfiguration compConf = comp.createComponentConfiguration();
+        String json = compConf.createParameterJsonSchema();
+        assertNotNull(json);
+
+        assertTrue(json.contains("\"awaitJob\": { \"type\": \"boolean\" }"));
+        assertTrue(json.contains("\"command\": { \"type\": \"string\" }"));
+        assertTrue(json.contains("\"jobTimeToRun\": { \"type\": \"integer\" 
}"));
+    }
+
+    @Test
+    public void testComponentDocumentation() throws Exception {
+        CamelContext context = new DefaultCamelContext();
+        String html = context.getComponentDocumentation("beanstalk");
+        assertNotNull("Should have found some auto-generated HTML if on Java 
7", html);
+    }
+}

Reply via email to