From c3aec2ae2dcf4b6448b20fbe43839983d3b3527f Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Tue, 26 Oct 2010 12:01:16 -0400 Subject: [PATCH] INT-1471 more polishing --- .../twitter/config/ConnectionParser.java | 26 ++++++++------- .../InboundDirectMessageEndpointParser.java | 26 +++++++-------- .../config/InboundMentionEndpointParser.java | 4 +-- .../InboundTimelineUpdateEndpointParser.java | 5 ++- ...oundDirectMessageMessageHandlerParser.java | 3 +- ...undTimelineUpdateMessageHandlerParser.java | 2 +- .../twitter/core/DirectMessage.java | 1 - .../twitter/core/Twitter4jDecorator.java | 1 - ...ctInboundTwitterStatusEndpointSupport.java | 4 +-- .../inbound/InboundDirectMessageEndpoint.java | 2 -- .../inbound/InboundMentionEndpoint.java | 1 - .../OutboundDirectMessageMessageHandler.java | 11 +++---- .../OutboundStatusUpdateMessageMapper.java | 32 +++++++------------ .../SimpleTwitterTestClient-context.xml | 17 ---------- ...stSendingUpdatesUsingNamespace-context.xml | 17 ---------- 15 files changed, 50 insertions(+), 102 deletions(-) diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/ConnectionParser.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/ConnectionParser.java index f50cb2c758..9805725080 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/ConnectionParser.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/ConnectionParser.java @@ -1,17 +1,17 @@ /* - * Copyright 2010 the original author or authors + * Copyright 2002-2010 the original author or authors. * - * Licensed 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 + * Licensed 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 + * 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. + * 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.springframework.integration.twitter.config; @@ -21,7 +21,11 @@ import org.springframework.beans.factory.xml.ParserContext; import org.w3c.dom.Element; import static org.springframework.integration.twitter.config.TwitterNamespaceHandler.BASE_PACKAGE; - +/** + * Parser for 'twitter-connection' element + * @author Josh Long + * @since 2.0 + */ public class ConnectionParser extends AbstractSingleBeanDefinitionParser { @Override protected String getBeanClassName(Element element) { diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/InboundDirectMessageEndpointParser.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/InboundDirectMessageEndpointParser.java index a6efef2447..dbd11dac39 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/InboundDirectMessageEndpointParser.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/InboundDirectMessageEndpointParser.java @@ -1,30 +1,30 @@ /* - * Copyright 2010 the original author or authors + * Copyright 2002-2010 the original author or authors. * - * Licensed 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 + * Licensed 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 + * 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. + * 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.springframework.integration.twitter.config; +import static org.springframework.integration.twitter.config.TwitterNamespaceHandler.BASE_PACKAGE; + import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.integration.config.xml.IntegrationNamespaceUtils; import org.w3c.dom.Element; -import static org.springframework.integration.twitter.config.TwitterNamespaceHandler.BASE_PACKAGE; - /** - * A parser for a {@link org.springframework.integration.twitter.inbound.InboundDirectMessageEndpoint} instance. + * A parser for a 'inbound-dm-channel' element * * @author Josh Long * @since 2.0 diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/InboundMentionEndpointParser.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/InboundMentionEndpointParser.java index 9adf8840ac..5b7d0b096b 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/InboundMentionEndpointParser.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/InboundMentionEndpointParser.java @@ -24,9 +24,7 @@ import org.w3c.dom.Element; import static org.springframework.integration.twitter.config.TwitterNamespaceHandler.BASE_PACKAGE; /** - * a parser for the {@link org.springframework.integration.twitter.inbound.InboundMentionEndpoint} endpoint. - * The parser exepcts an outbound channel and a reference to a connection, as typically factoried by a - * {@link org.springframework.integration.twitter.config.ConnectionParser} + * Parser for 'inbound-mention-channel-adapter' element * * @author Josh Long * @since 2.0 diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/InboundTimelineUpdateEndpointParser.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/InboundTimelineUpdateEndpointParser.java index 3085c4ada8..cd2ae1ed43 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/InboundTimelineUpdateEndpointParser.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/InboundTimelineUpdateEndpointParser.java @@ -24,9 +24,8 @@ import org.w3c.dom.Element; import static org.springframework.integration.twitter.config.TwitterNamespaceHandler.BASE_PACKAGE; /** - * A parser for the {@link org.springframework.integration.twitter.inbound.InboundTimelineUpdateEndpoint} endpoint. The endpoint takes a channel and a reference to - * the appropriate connection, typically factoried by {@link org.springframework.integration.twitter.config.ConnectionParser} - * + * A parser for InboundTimelineUpdateEndpoint endpoint. + * * @author Josh Long * @since 2.0 */ diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/OutboundDirectMessageMessageHandlerParser.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/OutboundDirectMessageMessageHandlerParser.java index 2863f892fb..faf5e544c9 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/OutboundDirectMessageMessageHandlerParser.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/OutboundDirectMessageMessageHandlerParser.java @@ -25,8 +25,7 @@ import org.w3c.dom.Element; import static org.springframework.integration.twitter.config.TwitterNamespaceHandler.BASE_PACKAGE; /** - * a parser for a {@link org.springframework.integration.twitter.outbound.OutboundDirectMessageMessageHandler} instance. - * The parser expects a reference to a Twitter connection, as typically factoried by a {@link org.springframework.integration.twitter.config.ConnectionParser}. + * Parser for 'outbound-dm-channel-adapter' element * * @author Josh Long * @since 2.0 diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/OutboundTimelineUpdateMessageHandlerParser.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/OutboundTimelineUpdateMessageHandlerParser.java index f91e477bf4..efe3017b67 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/OutboundTimelineUpdateMessageHandlerParser.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/OutboundTimelineUpdateMessageHandlerParser.java @@ -26,7 +26,7 @@ import static org.springframework.integration.twitter.config.TwitterNamespaceHan /** * - * this outbound adapter updates the twitter status for an account + * Parsers for 'outbound-update-channel-adapter' element * * @author Josh Long * @since 2.0 diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/core/DirectMessage.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/core/DirectMessage.java index 28434a6543..74f0c9d10e 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/core/DirectMessage.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/core/DirectMessage.java @@ -15,7 +15,6 @@ */ package org.springframework.integration.twitter.core; -import java.util.Date; /** * Describes a direct-message in twitter. (Also known as a "DM"). diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/core/Twitter4jDecorator.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/core/Twitter4jDecorator.java index 127d1098b4..c0bd05efc9 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/core/Twitter4jDecorator.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/core/Twitter4jDecorator.java @@ -47,7 +47,6 @@ class Twitter4jDecorator implements MethodInterceptor { /* (non-Javadoc) * @see org.aopalliance.intercept.MethodInterceptor#invoke(org.aopalliance.intercept.MethodInvocation) */ - @Override public Object invoke(MethodInvocation invocation) throws Throwable { Class twitter4jClass = twitterObject.getClass(); Object[] args = invocation.getArguments(); diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/AbstractInboundTwitterStatusEndpointSupport.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/AbstractInboundTwitterStatusEndpointSupport.java index fb2efc68d6..86a30c0f78 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/AbstractInboundTwitterStatusEndpointSupport.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/AbstractInboundTwitterStatusEndpointSupport.java @@ -22,12 +22,12 @@ import java.util.List; import org.springframework.integration.twitter.core.Status; import org.springframework.integration.twitter.core.TwitterFactory; - /** * Simple base class for the reply and timeline cases (as well as any other {@link twitter4j.Status} implementations of * {@link twitter4j.TwitterResponse}. * * @author Josh Long + * @author Oleg ZHurakousky */ abstract public class AbstractInboundTwitterStatusEndpointSupport extends AbstractInboundTwitterEndpointSupport { @@ -40,8 +40,6 @@ abstract public class AbstractInboundTwitterStatusEndpointSupport extends Abstra protected List fromTwitter4jStatuses(List stats) { List fwd = new ArrayList(); for (twitter4j.Status s : stats) { -// ProxyFactory factory = new ProxyFactory(Status.class, EmptyTargetSource.INSTANCE); -// factory.addAdvice(new Twitter4jDecorator(s)); fwd.add((Status) TwitterFactory.formTwitter4jMessage(s)); } return fwd; diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/InboundDirectMessageEndpoint.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/InboundDirectMessageEndpoint.java index 0c816d1047..9733ae91ec 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/InboundDirectMessageEndpoint.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/InboundDirectMessageEndpoint.java @@ -77,8 +77,6 @@ public class InboundDirectMessageEndpoint extends AbstractInboundTwitterEndpoint List dmsToFwd = new ArrayList(); for( twitter4j.DirectMessage dm : dms) { -// ProxyFactory factory = new ProxyFactory(DirectMessage.class, EmptyTargetSource.INSTANCE); -// factory.addAdvice(new Twitter4jDecorator(dm)); dmsToFwd.add((DirectMessage) TwitterFactory.formTwitter4jMessage(dm)); } forwardAll(dmsToFwd); diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/InboundMentionEndpoint.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/InboundMentionEndpoint.java index a06bda5b66..4d427e6a24 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/InboundMentionEndpoint.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/InboundMentionEndpoint.java @@ -42,7 +42,6 @@ public class InboundMentionEndpoint extends AbstractInboundTwitterStatusEndpoint List stats = (!hasMarkedStatus()) ? twitter.getMentions() : twitter.getMentions(new Paging(sinceId)); - System.out.println("Polling. . . ."); forwardAll( fromTwitter4jStatuses( stats)); } catch (Exception e) { if (e instanceof RuntimeException){ diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/outbound/OutboundDirectMessageMessageHandler.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/outbound/OutboundDirectMessageMessageHandler.java index b93d6c994e..18639115d4 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/outbound/OutboundDirectMessageMessageHandler.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/outbound/OutboundDirectMessageMessageHandler.java @@ -41,14 +41,13 @@ public class OutboundDirectMessageMessageHandler extends AbstractOutboundTwitter Object payload = (String) message.getPayload(); Assert.isInstanceOf(String.class, payload, "Only payload of type String is supported. If your payload " + "is not of type String you may want to introduce transformer"); - Object toUser = message.getHeaders().containsKey(TwitterHeaders.TWITTER_DM_TARGET_USER_ID) ? - message.getHeaders().get(TwitterHeaders.TWITTER_DM_TARGET_USER_ID) : - null; - - Assert.notNull(toUser, "the header '" + TwitterHeaders.TWITTER_DM_TARGET_USER_ID + "' must be present"); + Assert.isTrue(message.getHeaders().containsKey(TwitterHeaders.TWITTER_DM_TARGET_USER_ID), + "You must provide '" + TwitterHeaders.TWITTER_DM_TARGET_USER_ID + "' header"); + Object toUser = message.getHeaders().get(TwitterHeaders.TWITTER_DM_TARGET_USER_ID); Assert.state(toUser instanceof String || toUser instanceof Integer, - "the header '" + TwitterHeaders.TWITTER_DM_TARGET_USER_ID + "' must be either a String (a screenname) or an int (a user ID)"); + "the header '" + TwitterHeaders.TWITTER_DM_TARGET_USER_ID + + "' must be either a String (a screenname) or an int (a user ID)"); if (toUser instanceof Integer) { this.twitter.sendDirectMessage((Integer) toUser, (String) payload); diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/outbound/OutboundStatusUpdateMessageMapper.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/outbound/OutboundStatusUpdateMessageMapper.java index 65f37688b3..2b8ce71630 100644 --- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/outbound/OutboundStatusUpdateMessageMapper.java +++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/outbound/OutboundStatusUpdateMessageMapper.java @@ -18,6 +18,7 @@ package org.springframework.integration.twitter.outbound; import org.springframework.integration.Message; import org.springframework.integration.MessageHandlingException; import org.springframework.integration.mapping.OutboundMessageMapper; +import org.springframework.integration.twitter.core.GeoLocation; import org.springframework.integration.twitter.core.TwitterHeaders; import org.springframework.util.StringUtils; @@ -33,17 +34,6 @@ import twitter4j.StatusUpdate; * @since 2.0 */ public class OutboundStatusUpdateMessageMapper implements OutboundMessageMapper { -// /** -// * convenient, interface-oriented way of obtaining a reference to a {@link org.springframework.integration.twitter.core.twitter.Twitter4jGeoLocation} -// * -// * @param lat the latitude -// * @param lon the longitude -// * @return a {@link org.springframework.integration.twitter.core.GeoLocation} instance -// */ -// public org.springframework.integration.twitter.core.GeoLocation fromLatitudeLongitudePair(double lat, double lon) { -// return new Twitter4jGeoLocation(lat, lon); -// } - /** * {@link StatusUpdate} instances are used to drive status updates. * @@ -79,16 +69,16 @@ public class OutboundStatusUpdateMessageMapper implements OutboundMessageMapper< if (message.getHeaders().containsKey(TwitterHeaders.TWITTER_GEOLOCATION)) { -// org.springframework.integration.twitter.core.GeoLocation geoLocation = (org.springframework.integration.twitter.core.GeoLocation) message.getHeaders() -// .get(TwitterHeaders.TWITTER_GEOLOCATION); -// twitter4j.GeoLocation gl = null; -// -// if (geoLocation instanceof Twitter4jGeoLocation) { -// gl = ((Twitter4jGeoLocation) geoLocation).getGeoLocation(); -// if (null != gl) { -// statusUpdate.location(gl); -// } -// } + org.springframework.integration.twitter.core.GeoLocation geoLocation = (org.springframework.integration.twitter.core.GeoLocation) message.getHeaders() + .get(TwitterHeaders.TWITTER_GEOLOCATION); + twitter4j.GeoLocation gl = null; + + if (geoLocation instanceof GeoLocation) { + gl = new twitter4j.GeoLocation(geoLocation.getLatitude(), geoLocation.getLongitude()); + if (null != gl) { + statusUpdate.location(gl); + } + } } if (message.getHeaders() diff --git a/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/SimpleTwitterTestClient-context.xml b/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/SimpleTwitterTestClient-context.xml index 5e33b3fc45..d7b3f4c3b1 100644 --- a/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/SimpleTwitterTestClient-context.xml +++ b/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/SimpleTwitterTestClient-context.xml @@ -1,21 +1,4 @@ - - - - - -