diff --git a/build.gradle b/build.gradle
index bae84a2d1f..5085bc1bae 100644
--- a/build.gradle
+++ b/build.gradle
@@ -385,7 +385,7 @@ project('spring-integration-twitter') {
dependencies {
compile project(":spring-integration-core")
compile "org.springframework:spring-context-support:$springVersion"
- compile "org.twitter4j:twitter4j-core:2.1.10"
+ compile "org.twitter4j:twitter4j-core:2.1.12"
compile("javax.activation:activation:$javaxActivationVersion") { optional = true }
testCompile project(":spring-integration-test")
}
diff --git a/spring-integration-twitter/pom.xml b/spring-integration-twitter/pom.xml
index a6a66027e8..ba1de8bfea 100644
--- a/spring-integration-twitter/pom.xml
+++ b/spring-integration-twitter/pom.xml
@@ -103,7 +103,7 @@
org.twitter4j
twitter4j-core
- 2.1.10
+ 2.1.12
compile
diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/core/Twitter4jTemplate.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/core/Twitter4jTemplate.java
index d1fb72e052..63fcab029b 100644
--- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/core/Twitter4jTemplate.java
+++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/core/Twitter4jTemplate.java
@@ -63,17 +63,25 @@ public class Twitter4jTemplate implements TwitterOperations {
* @param accessToken
* @param accessTokenSecret
*/
+ @SuppressWarnings("deprecation")
public Twitter4jTemplate(String consumerKey, String consumerSecret, String accessToken, String accessTokenSecret) {
Assert.hasText(consumerKey, "'consumerKey' must be provided");
Assert.hasText(consumerSecret, "'consumerSecret' must be provided");
Assert.hasText(accessToken, "'accessToken' must be provided");
Assert.hasText(accessTokenSecret, "'accessTokenSecret' must be provided");
+
AccessToken token = new AccessToken(accessToken, accessTokenSecret);
- Properties properties = new Properties();
- properties.put("oauth.consumerKey", consumerKey);
- properties.put("oauth.consumerSecret", consumerSecret);
- Configuration configuration = new PropertyConfiguration(properties);
- this.twitter = new TwitterFactory(configuration).getInstance(token);
+ this.twitter = new TwitterFactory().getOAuthAuthorizedInstance(consumerKey, consumerSecret, token);
+ /*
+ * We are aware of the fact that the above method is deprecated and the code should really look
+ * like the one below, but we are keeping the deprecated call to address backwards compatibility.
+ * In future versions we won't be relying on Twitter4J in favor of SpringSocial API.
+ */
+// Properties properties = new Properties();
+// properties.put("oauth.consumerKey", consumerKey);
+// properties.put("oauth.consumerSecret", consumerSecret);
+// Configuration configuration = new PropertyConfiguration(properties);
+// this.twitter = new TwitterFactory(configuration).getInstance(token);
}
diff --git a/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/core/Twitter4jTemplateTests.java b/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/core/Twitter4jTemplateTests.java
index 71f5eaaf00..3b50920fb3 100644
--- a/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/core/Twitter4jTemplateTests.java
+++ b/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/core/Twitter4jTemplateTests.java
@@ -61,12 +61,12 @@ public class Twitter4jTemplateTests {
}
@Test
public void testOauthConstructor() throws Exception{
- template = new Twitter4jTemplate("a", "b", "c", "d");
+ template = new Twitter4jTemplate("a", "b", "1234-c", "d");
Twitter twitter = (Twitter) TestUtils.getPropertyValue(template, "twitter");
Authorization auth = twitter.getAuthorization();
assertTrue(twitter.getAuthorization() instanceof OAuthAuthorization);
AccessToken accessToken = ((OAuthAuthorization)auth).getOAuthAccessToken();
- assertEquals("c", accessToken.getToken());
+ assertEquals("1234-c", accessToken.getToken());
assertEquals("d", accessToken.getTokenSecret());
}
diff --git a/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/core/TwitterOperationExceptionTests.java b/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/core/TwitterOperationExceptionTests.java
index 1639a30ae1..07d097ee6c 100644
--- a/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/core/TwitterOperationExceptionTests.java
+++ b/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/core/TwitterOperationExceptionTests.java
@@ -34,15 +34,13 @@ public class TwitterOperationExceptionTests {
@Test
public void test401(){
// will result in exception since a,b,c,d are invalid credentials
- Twitter4jTemplate template = new Twitter4jTemplate("a", "b", "c", "d");
+ Twitter4jTemplate template = new Twitter4jTemplate("a", "b", "1234-c", "d");
try {
template.getProfileId();
fail();
} catch (Exception e) {
assertTrue(e instanceof TwitterOperationException);
assertEquals(401, ((TwitterOperationException)e).getTwitterStatusCode());
- assertTrue(e.getMessage().contains("401:Authentication credentials were missing or incorrect"));
- System.out.println(e.getMessage());
}
}
@Test