CAMEL-8038: Fix components to use @UriPath
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4c568289 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4c568289 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4c568289 Branch: refs/heads/master Commit: 4c568289ace7357253e30c5823c8b443fb79120f Parents: f0fe87f Author: Claus Ibsen <davscl...@apache.org> Authored: Fri Nov 14 14:52:29 2014 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Nov 14 14:52:29 2014 +0100 ---------------------------------------------------------------------- .../component/beanstalk/BeanstalkCommand.java | 25 ++++++++ .../component/beanstalk/BeanstalkComponent.java | 2 +- .../component/beanstalk/BeanstalkConsumer.java | 12 ++-- .../component/beanstalk/BeanstalkEndpoint.java | 64 ++++++++++++++------ .../camel/component/beanstalk/EndpointTest.java | 8 +-- .../camel/component/beanstalk/Helper.java | 2 +- .../camel/component/beanstalk/ProducerTest.java | 22 +++---- 7 files changed, 93 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/4c568289/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkCommand.java ---------------------------------------------------------------------- diff --git a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkCommand.java b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkCommand.java new file mode 100644 index 0000000..76859e0 --- /dev/null +++ b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkCommand.java @@ -0,0 +1,25 @@ +/** + * 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; + +public enum BeanstalkCommand { + + bury, release, put, touch, delete, kick + + + +} http://git-wip-us.apache.org/repos/asf/camel/blob/4c568289/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 16c05e6..627d74d 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 @@ -66,7 +66,7 @@ public class BeanstalkComponent extends UriEndpointComponent { @Override protected Endpoint createEndpoint(final String uri, final String remaining, final Map<String, Object> parameters) throws Exception { - return new BeanstalkEndpoint(uri, this, connectionSettingsFactory.parseUri(remaining)); + return new BeanstalkEndpoint(uri, this, connectionSettingsFactory.parseUri(remaining), remaining); } /** http://git-wip-us.apache.org/repos/asf/camel/blob/4c568289/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkConsumer.java ---------------------------------------------------------------------- diff --git a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkConsumer.java b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkConsumer.java index e18fc20..561a3c9 100644 --- a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkConsumer.java +++ b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkConsumer.java @@ -57,7 +57,7 @@ public class BeanstalkConsumer extends ScheduledPollConsumer { private static final String[] STATS_KEY_STR = new String[]{"tube", "state"}; private static final String[] STATS_KEY_INT = new String[]{"age", "time-left", "timeouts", "releases", "buries", "kicks"}; - private String onFailure; + private BeanstalkCommand onFailure; private boolean useBlockIO; private boolean awaitJob; private Client client; @@ -147,11 +147,11 @@ public class BeanstalkConsumer extends ScheduledPollConsumer { return messagesPolled; } - public String getOnFailure() { + public BeanstalkCommand getOnFailure() { return onFailure; } - public void setOnFailure(String onFailure) { + public void setOnFailure(BeanstalkCommand onFailure) { this.onFailure = onFailure; } @@ -206,11 +206,11 @@ public class BeanstalkConsumer extends ScheduledPollConsumer { public Sync() { successCommand = new DeleteCommand(getEndpoint()); - if (BeanstalkComponent.COMMAND_BURY.equals(onFailure)) { + if (BeanstalkComponent.COMMAND_BURY.equals(onFailure.name())) { failureCommand = new BuryCommand(getEndpoint()); - } else if (BeanstalkComponent.COMMAND_RELEASE.equals(onFailure)) { + } else if (BeanstalkComponent.COMMAND_RELEASE.equals(onFailure.name())) { failureCommand = new ReleaseCommand(getEndpoint()); - } else if (BeanstalkComponent.COMMAND_DELETE.equals(onFailure)) { + } else if (BeanstalkComponent.COMMAND_DELETE.equals(onFailure.name())) { failureCommand = new DeleteCommand(getEndpoint()); } else { throw new IllegalArgumentException(String.format("Unknown failure command: %s", onFailure)); http://git-wip-us.apache.org/repos/asf/camel/blob/4c568289/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 db25c9d..93d81c9 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 @@ -31,29 +31,37 @@ 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; +import org.apache.camel.spi.UriPath; -@UriEndpoint(scheme = "beanstalk", consumerClass = BeanstalkConsumer.class) +@UriEndpoint(scheme = "beanstalk", consumerClass = BeanstalkConsumer.class, label = "messaging") public class BeanstalkEndpoint extends ScheduledPollEndpoint { final ConnectionSettings conn; + @UriPath(description = "Connection settings host:port/tube") + private String connectionSettings; @UriParam - private String command = BeanstalkComponent.COMMAND_PUT; - @UriParam + private BeanstalkCommand command = BeanstalkCommand.put; + @UriParam(defaultValue = "" + BeanstalkComponent.DEFAULT_PRIORITY) private long jobPriority = BeanstalkComponent.DEFAULT_PRIORITY; - @UriParam + @UriParam(defaultValue = "" + BeanstalkComponent.DEFAULT_DELAY) private int jobDelay = BeanstalkComponent.DEFAULT_DELAY; - @UriParam + @UriParam(defaultValue = "" + BeanstalkComponent.DEFAULT_TIME_TO_RUN) private int jobTimeToRun = BeanstalkComponent.DEFAULT_TIME_TO_RUN; @UriParam - private String onFailure = BeanstalkComponent.COMMAND_BURY; - @UriParam + private BeanstalkCommand onFailure = BeanstalkCommand.bury; + @UriParam(defaultValue = "true") private boolean useBlockIO = true; - @UriParam + @UriParam(defaultValue = "true") private boolean awaitJob = true; - public BeanstalkEndpoint(final String uri, final Component component, final ConnectionSettings conn) { + public BeanstalkEndpoint(final String uri, final Component component, final ConnectionSettings conn, final String connectionSettings) { super(uri, component); this.conn = conn; + this.connectionSettings = connectionSettings; + } + + public String getConnectionSettings() { + return connectionSettings; } public ConnectionSettings getConnection() { @@ -64,11 +72,11 @@ public class BeanstalkEndpoint extends ScheduledPollEndpoint { return conn; } - public String getCommand() { + public BeanstalkCommand getCommand() { return command; } - public void setCommand(String command) { + public void setCommand(BeanstalkCommand command) { this.command = command; } @@ -76,6 +84,9 @@ public class BeanstalkEndpoint extends ScheduledPollEndpoint { return jobPriority; } + /** + * Job priority. (0 is the highest, see Beanstalk protocol) + */ public void setJobPriority(long jobPriority) { this.jobPriority = jobPriority; } @@ -84,6 +95,9 @@ public class BeanstalkEndpoint extends ScheduledPollEndpoint { return jobDelay; } + /** + * Job delay in seconds. + */ public void setJobDelay(int jobDelay) { this.jobDelay = jobDelay; } @@ -92,15 +106,21 @@ public class BeanstalkEndpoint extends ScheduledPollEndpoint { return jobTimeToRun; } + /** + * Job time to run in seconds. (when 0, the beanstalkd daemon raises it to 1 automatically, see Beanstalk protocol) + */ public void setJobTimeToRun(int jobTimeToRun) { this.jobTimeToRun = jobTimeToRun; } - public String getOnFailure() { + public BeanstalkCommand getOnFailure() { return onFailure; } - public void setOnFailure(String onFailure) { + /** + * Command to use when processing failed. + */ + public void setOnFailure(BeanstalkCommand onFailure) { this.onFailure = onFailure; } @@ -108,6 +128,9 @@ public class BeanstalkEndpoint extends ScheduledPollEndpoint { return useBlockIO; } + /** + * Whether to use blockIO. + */ public void setUseBlockIO(boolean useBlockIO) { this.useBlockIO = useBlockIO; } @@ -116,6 +139,9 @@ public class BeanstalkEndpoint extends ScheduledPollEndpoint { return awaitJob; } + /** + * Whether to wait for job to complete before ack the job from beanstalk + */ public void setAwaitJob(boolean awaitJob) { this.awaitJob = awaitJob; } @@ -133,17 +159,17 @@ public class BeanstalkEndpoint extends ScheduledPollEndpoint { @Override public Producer createProducer() throws Exception { Command cmd; - if (BeanstalkComponent.COMMAND_PUT.equals(command)) { + if (BeanstalkComponent.COMMAND_PUT.equals(command.name())) { cmd = new PutCommand(this); - } else if (BeanstalkComponent.COMMAND_RELEASE.equals(command)) { + } else if (BeanstalkComponent.COMMAND_RELEASE.equals(command.name())) { cmd = new ReleaseCommand(this); - } else if (BeanstalkComponent.COMMAND_BURY.equals(command)) { + } else if (BeanstalkComponent.COMMAND_BURY.equals(command.name())) { cmd = new BuryCommand(this); - } else if (BeanstalkComponent.COMMAND_TOUCH.equals(command)) { + } else if (BeanstalkComponent.COMMAND_TOUCH.equals(command.name())) { cmd = new TouchCommand(this); - } else if (BeanstalkComponent.COMMAND_DELETE.equals(command)) { + } else if (BeanstalkComponent.COMMAND_DELETE.equals(command.name())) { cmd = new DeleteCommand(this); - } else if (BeanstalkComponent.COMMAND_KICK.equals(command)) { + } else if (BeanstalkComponent.COMMAND_KICK.equals(command.name())) { cmd = new KickCommand(this); } else { throw new IllegalArgumentException(String.format("Unknown command for Beanstalk endpoint: %s", command)); http://git-wip-us.apache.org/repos/asf/camel/blob/4c568289/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/EndpointTest.java ---------------------------------------------------------------------- diff --git a/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/EndpointTest.java b/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/EndpointTest.java index d778329..bb3adf7 100644 --- a/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/EndpointTest.java +++ b/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/EndpointTest.java @@ -17,7 +17,7 @@ package org.apache.camel.component.beanstalk; import org.apache.camel.CamelContext; -import org.apache.camel.FailedToCreateProducerException; +import org.apache.camel.FailedToCreateRouteException; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.DefaultCamelContext; import org.junit.After; @@ -63,19 +63,19 @@ public class EndpointTest { public void testCommand() { BeanstalkEndpoint endpoint = context.getEndpoint("beanstalk:default?command=release", BeanstalkEndpoint.class); assertNotNull("Beanstalk endpoint", endpoint); - assertEquals("Command", BeanstalkComponent.COMMAND_RELEASE, endpoint.getCommand()); + assertEquals("Command", BeanstalkComponent.COMMAND_RELEASE, endpoint.getCommand().name()); } @Test public void testTubes() { BeanstalkEndpoint endpoint = context.getEndpoint("beanstalk:host:11303/tube1+tube%2B+tube%3F?command=kick", BeanstalkEndpoint.class); assertNotNull("Beanstalk endpoint", endpoint); - assertEquals("Command", BeanstalkComponent.COMMAND_KICK, endpoint.getCommand()); + assertEquals("Command", BeanstalkComponent.COMMAND_KICK, endpoint.getCommand().name()); assertEquals("Host", "host", endpoint.conn.host); assertArrayEquals("Tubes", new String[]{"tube1", "tube+", "tube?"}, endpoint.conn.tubes); } - @Test(expected = FailedToCreateProducerException.class) + @Test(expected = FailedToCreateRouteException.class) public void testWrongCommand() throws Exception { context.addRoutes(new RouteBuilder() { @Override http://git-wip-us.apache.org/repos/asf/camel/blob/4c568289/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/Helper.java ---------------------------------------------------------------------- diff --git a/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/Helper.java b/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/Helper.java index be1ecd6..212ced2 100644 --- a/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/Helper.java +++ b/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/Helper.java @@ -46,7 +46,7 @@ public final class Helper { } public static BeanstalkEndpoint getEndpoint(String uri, CamelContext context, Client client) throws Exception { - BeanstalkEndpoint endpoint = new BeanstalkEndpoint(uri, context.getComponent("beanstalk"), mockConn(client)); + BeanstalkEndpoint endpoint = new BeanstalkEndpoint(uri, context.getComponent("beanstalk"), mockConn(client), ""); context.addEndpoint(uri, endpoint); return endpoint; } http://git-wip-us.apache.org/repos/asf/camel/blob/4c568289/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/ProducerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/ProducerTest.java b/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/ProducerTest.java index 42e809d..92600d2 100644 --- a/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/ProducerTest.java +++ b/components/camel-beanstalk/src/test/java/org/apache/camel/component/beanstalk/ProducerTest.java @@ -137,7 +137,7 @@ public class ProducerTest extends BeanstalkMockTestSupport { final long priority = BeanstalkComponent.DEFAULT_PRIORITY; final long jobId = 111; - endpoint.setCommand(BeanstalkComponent.COMMAND_BURY); + endpoint.setCommand(BeanstalkCommand.bury); Producer producer = endpoint.createProducer(); assertNotNull("Producer", producer); assertThat("Producer class", producer, instanceOf(BeanstalkProducer.class)); @@ -158,7 +158,7 @@ public class ProducerTest extends BeanstalkMockTestSupport { @Test public void testBuryNoJobId() throws Exception { - endpoint.setCommand(BeanstalkComponent.COMMAND_BURY); + endpoint.setCommand(BeanstalkCommand.bury); Producer producer = endpoint.createProducer(); assertNotNull("Producer", producer); assertThat("Producer class", producer, instanceOf(BeanstalkProducer.class)); @@ -179,7 +179,7 @@ public class ProducerTest extends BeanstalkMockTestSupport { final long priority = 1000; final long jobId = 111; - endpoint.setCommand(BeanstalkComponent.COMMAND_BURY); + endpoint.setCommand(BeanstalkCommand.bury); Producer producer = endpoint.createProducer(); assertNotNull("Producer", producer); assertThat("Producer class", producer, instanceOf(BeanstalkProducer.class)); @@ -203,7 +203,7 @@ public class ProducerTest extends BeanstalkMockTestSupport { public void testDelete() throws Exception { final long jobId = 111; - endpoint.setCommand(BeanstalkComponent.COMMAND_DELETE); + endpoint.setCommand(BeanstalkCommand.delete); Producer producer = endpoint.createProducer(); assertNotNull("Producer", producer); assertThat("Producer class", producer, instanceOf(BeanstalkProducer.class)); @@ -224,7 +224,7 @@ public class ProducerTest extends BeanstalkMockTestSupport { @Test public void testDeleteNoJobId() throws Exception { - endpoint.setCommand(BeanstalkComponent.COMMAND_DELETE); + endpoint.setCommand(BeanstalkCommand.delete); Producer producer = endpoint.createProducer(); assertNotNull("Producer", producer); assertThat("Producer class", producer, instanceOf(BeanstalkProducer.class)); @@ -246,7 +246,7 @@ public class ProducerTest extends BeanstalkMockTestSupport { final int delay = BeanstalkComponent.DEFAULT_DELAY; final long jobId = 111; - endpoint.setCommand(BeanstalkComponent.COMMAND_RELEASE); + endpoint.setCommand(BeanstalkCommand.release); Producer producer = endpoint.createProducer(); assertNotNull("Producer", producer); assertThat("Producer class", producer, instanceOf(BeanstalkProducer.class)); @@ -267,7 +267,7 @@ public class ProducerTest extends BeanstalkMockTestSupport { @Test public void testReleaseNoJobId() throws Exception { - endpoint.setCommand(BeanstalkComponent.COMMAND_RELEASE); + endpoint.setCommand(BeanstalkCommand.release); Producer producer = endpoint.createProducer(); assertNotNull("Producer", producer); assertThat("Producer class", producer, instanceOf(BeanstalkProducer.class)); @@ -289,7 +289,7 @@ public class ProducerTest extends BeanstalkMockTestSupport { final int delay = 124; final long jobId = 111; - endpoint.setCommand(BeanstalkComponent.COMMAND_RELEASE); + endpoint.setCommand(BeanstalkCommand.release); Producer producer = endpoint.createProducer(); assertNotNull("Producer", producer); assertThat("Producer class", producer, instanceOf(BeanstalkProducer.class)); @@ -314,7 +314,7 @@ public class ProducerTest extends BeanstalkMockTestSupport { public void testTouch() throws Exception { final long jobId = 111; - endpoint.setCommand(BeanstalkComponent.COMMAND_TOUCH); + endpoint.setCommand(BeanstalkCommand.touch); Producer producer = endpoint.createProducer(); assertNotNull("Producer", producer); assertThat("Producer class", producer, instanceOf(BeanstalkProducer.class)); @@ -335,7 +335,7 @@ public class ProducerTest extends BeanstalkMockTestSupport { @Test public void testTouchNoJobId() throws Exception { - endpoint.setCommand(BeanstalkComponent.COMMAND_TOUCH); + endpoint.setCommand(BeanstalkCommand.touch); Producer producer = endpoint.createProducer(); assertNotNull("Producer", producer); assertThat("Producer class", producer, instanceOf(BeanstalkProducer.class)); @@ -407,7 +407,7 @@ public class ProducerTest extends BeanstalkMockTestSupport { when(client.touch(jobId)) .thenThrow(new BeanstalkException("test")); - endpoint.setCommand(BeanstalkComponent.COMMAND_TOUCH); + endpoint.setCommand(BeanstalkCommand.touch); final Exchange exchange = template.send(endpoint, ExchangePattern.InOnly, new Processor() { public void process(Exchange exchange) { exchange.getIn().setHeader(Headers.JOB_ID, jobId);