You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2013/06/28 21:54:18 UTC
git commit: CAMEL-6493 - add additional options for consuming messages
Updated Branches:
refs/heads/master 6c0c2c170 -> 29d8db8fa
CAMEL-6493 - add additional options for consuming messages
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/29d8db8f
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/29d8db8f
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/29d8db8f
Branch: refs/heads/master
Commit: 29d8db8fa235b490fbb76930693b87022c2aaa07
Parents: 6c0c2c1
Author: Jonathan Anstey <ja...@gmail.com>
Authored: Fri Jun 28 17:23:55 2013 -0230
Committer: Jonathan Anstey <ja...@gmail.com>
Committed: Fri Jun 28 17:23:55 2013 -0230
----------------------------------------------------------------------
.../component/yammer/YammerConfiguration.java | 89 +++++++++++++++++---
.../yammer/YammerConsumerMessageLimitTest.java | 44 ----------
.../YammerMessagesConsumerOptionTest.java | 42 +++++++++
3 files changed, 119 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/29d8db8f/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerConfiguration.java b/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerConfiguration.java
index f3e3117..f758c37 100644
--- a/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerConfiguration.java
+++ b/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.yammer;
import org.apache.camel.spi.UriParam;
import org.apache.camel.spi.UriParams;
+import org.apache.camel.util.ObjectHelper;
@UriParams
public class YammerConfiguration {
@@ -40,6 +41,15 @@ public class YammerConfiguration {
@UriParam
private int limit = -1; // default is unlimited
+ @UriParam
+ private int olderThan = -1;
+
+ @UriParam
+ private int newerThan = -1;
+
+ @UriParam
+ private String threaded;
+
private ApiRequestor requestor;
public String getConsumerKey() {
@@ -83,35 +93,66 @@ public class YammerConfiguration {
}
public String getApiUrl() throws Exception {
- StringBuilder sb = new StringBuilder();
+ StringBuilder url = new StringBuilder();
switch (YammerFunctionType.fromUri(function)) {
case MESSAGES:
- sb.append(YammerConstants.YAMMER_BASE_API_URL);
- sb.append(function);
- sb.append(".json");
+ url.append(YammerConstants.YAMMER_BASE_API_URL);
+ url.append(function);
+ url.append(".json");
break;
case ALGO:
case FOLLOWING:
case MY_FEED:
case PRIVATE:
case SENT:
- sb.append(YammerConstants.YAMMER_BASE_API_URL);
- sb.append("messages/");
- sb.append(function);
- sb.append(".json");
+ url.append(YammerConstants.YAMMER_BASE_API_URL);
+ url.append("messages/");
+ url.append(function);
+ url.append(".json");
break;
default:
throw new Exception(String.format("%s is not a valid Yammer function type.", function));
}
+ StringBuilder args = new StringBuilder();
+
if (limit > 0) {
- sb.append("?");
- sb.append("limit=");
- sb.append(limit);
+ args.append("limit=");
+ args.append(limit);
+ }
+
+ if (getOlderThan() > 0) {
+ if (args.length() > 0) {
+ args.append("&");
+ }
+ args.append("older_than=");
+ args.append(getOlderThan());
+ }
+
+ if (getNewerThan() > 0) {
+ if (args.length() > 0) {
+ args.append("&");
+ }
+ args.append("newer_than=");
+ args.append(getNewerThan());
+ }
+
+ if (ObjectHelper.isNotEmpty(getThreaded())
+ && ("true".equals(getThreaded()) || "extended".equals(getThreaded()))) {
+ if (args.length() > 0) {
+ args.append("&");
+ }
+ args.append("threaded=");
+ args.append(getThreaded());
}
- return sb.toString();
+ if (args.length() > 0) {
+ url.append("?");
+ url.append(args);
+ }
+
+ return url.toString();
}
public boolean isUseJson() {
@@ -141,4 +182,28 @@ public class YammerConfiguration {
this.limit = limit;
}
+ public int getOlderThan() {
+ return olderThan;
+ }
+
+ public void setOlderThan(int olderThan) {
+ this.olderThan = olderThan;
+ }
+
+ public int getNewerThan() {
+ return newerThan;
+ }
+
+ public void setNewerThan(int newerThan) {
+ this.newerThan = newerThan;
+ }
+
+ public String getThreaded() {
+ return threaded;
+ }
+
+ public void setThreaded(String threaded) {
+ this.threaded = threaded;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/camel/blob/29d8db8f/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerConsumerMessageLimitTest.java
----------------------------------------------------------------------
diff --git a/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerConsumerMessageLimitTest.java b/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerConsumerMessageLimitTest.java
deleted file mode 100644
index f014d17..0000000
--- a/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerConsumerMessageLimitTest.java
+++ /dev/null
@@ -1,44 +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.yammer;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
-
-public class YammerConsumerMessageLimitTest extends YammerComponentTestSupport {
-
- @Test
- public void testConsumerMessageLimit() throws Exception {
- MockEndpoint mock = getMockEndpoint("mock:result");
- mock.expectedMinimumMessageCount(1);
- assertMockEndpointsSatisfied();
-
- // now check if limit option got applied
- assertEquals(1, yammerComponent.getConfig().getLimit());
- }
-
- @Override
- protected RouteBuilder createRouteBuilder() throws Exception {
- return new RouteBuilder() {
- public void configure() {
- // using dummy keys here since we are mocking out calls to yammer.com with static json; in a real app, please use your own keys!
- from("yammer:messages?consumerKey=aConsumerKey&consumerSecret=aConsumerSecretKey&accessToken=aAccessToken&limit=1").to("mock:result");
- }
- };
- }
-}
http://git-wip-us.apache.org/repos/asf/camel/blob/29d8db8f/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerMessagesConsumerOptionTest.java
----------------------------------------------------------------------
diff --git a/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerMessagesConsumerOptionTest.java b/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerMessagesConsumerOptionTest.java
new file mode 100644
index 0000000..728fdf9
--- /dev/null
+++ b/components/camel-yammer/src/test/java/org/apache/camel/component/yammer/YammerMessagesConsumerOptionTest.java
@@ -0,0 +1,42 @@
+/**
+ * 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.yammer;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.junit.Test;
+
+public class YammerMessagesConsumerOptionTest extends YammerComponentTestSupport {
+
+ @Test
+ public void testOptions() throws Exception {
+ // now check if options got applied
+ assertEquals(1, yammerComponent.getConfig().getLimit());
+ assertEquals("true", yammerComponent.getConfig().getThreaded());
+ assertEquals(130, yammerComponent.getConfig().getOlderThan());
+ assertEquals(127, yammerComponent.getConfig().getNewerThan());
+ assertEquals(YammerConstants.YAMMER_BASE_API_URL + "messages.json?limit=1&older_than=130&newer_than=127&threaded=true", yammerComponent.getConfig().getApiUrl());
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ public void configure() {
+ from("yammer:messages?consumerKey=aConsumerKey&consumerSecret=aConsumerSecretKey&accessToken=aAccessToken&limit=1&threaded=true&olderThan=130&newerThan=127").to("mock:result");
+ }
+ };
+ }
+}