You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streams.apache.org by sb...@apache.org on 2014/11/19 21:32:40 UTC

[1/5] incubator-streams git commit: Merge pull request #13 from apache/master

Repository: incubator-streams
Updated Branches:
  refs/heads/master 56011e4b6 -> 590b053b9


Merge pull request #13 from apache/master

Merge Apache Master 2014/11/17

Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/f3de6f88
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/f3de6f88
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/f3de6f88

Branch: refs/heads/master
Commit: f3de6f8847f2091f68792e90a9643fd541f4e0dc
Parents: 76763f8 9b89c08
Author: Ryan Ebanks <rb...@users.noreply.github.com>
Authored: Mon Nov 17 10:32:38 2014 -0600
Committer: Ryan Ebanks <rb...@users.noreply.github.com>
Committed: Mon Nov 17 10:32:38 2014 -0600

----------------------------------------------------------------------
 pom.xml                                         |  61 +++++
 streams-components/pom.xml                      |  62 +++++
 streams-components/streams-http/README.md       |  16 ++
 streams-components/streams-http/pom.xml         | 153 +++++++++++
 .../components/http/HttpConfigurator.java       |  62 +++++
 .../http/processor/SimpleHTTPGetProcessor.java  | 268 ++++++++++++++++++
 .../http/provider/SimpleHTTPGetProvider.java    | 230 ++++++++++++++++
 .../components/http/HttpConfiguration.json      |  50 ++++
 .../http/HttpProcessorConfiguration.json        |  28 ++
 .../http/HttpProviderConfiguration.json         |  18 ++
 .../main/jsonschema/StreamsConfiguration.json   |   3 +
 streams-contrib/pom.xml                         |   5 +-
 streams-contrib/streams-persist-console/pom.xml |  34 +++
 .../streams/console/ConsolePersistReader.java   |  11 +-
 .../streams/console/ConsolePersistWriter.java   |  11 +-
 .../streams/jackson/TypeConverterProcessor.java | 112 ++++++++
 .../test/TypeConverterProcessorTest.java        |  95 +++++++
 .../streams-processor-peoplepattern/pom.xml     | 138 ++++++++++
 .../peoplepattern/AccountTypeProcessor.java     |  75 +++++
 .../peoplepattern/DemographicsProcessor.java    |  76 ++++++
 .../streams/peoplepattern/AccountType.json      |  27 ++
 .../streams/peoplepattern/Demographics.json     |  60 ++++
 .../resources/templates/peoplepatternactor.json |  25 ++
 .../DatasiftActivitySerializerProcessor.java    |  89 ++++++
 .../DatasiftTypeConverterProcessor.java         |   7 +-
 .../serializer/DatasiftActivitySerializer.java  |  12 +-
 .../DatasiftDefaultActivitySerializer.java      | 214 ---------------
 .../serializer/DatasiftEventClassifier.java     |  53 ++++
 .../DatasiftInstagramActivitySerializer.java    |   8 +-
 .../DatasiftInteractionActivitySerializer.java  | 222 +++++++++++++++
 .../DatasiftTweetActivitySerializer.java        | 266 ------------------
 .../DatasiftTwitterActivitySerializer.java      | 272 +++++++++++++++++++
 .../datasift/util/StreamsDatasiftMapper.java    |  11 +-
 .../apache/streams/datasift/DatasiftPush.json   |  30 ++
 .../com/datasift/test/DatasiftSerDeTest.java    |  18 +-
 .../DatasiftTypeConverterProcessorTest.java     |  72 -----
 .../DatasiftActivitySerializerTest.java         |  82 +++---
 .../serializer/DatasiftEventClassifierTest.java |  64 +++++
 ...DatasiftInstagramActivitySerializerTest.java |  43 +++
 ...tasiftInteractionActivitySerializerTest.java |  48 ++++
 .../DatasiftTwitterActivitySerializerTest.java  |  43 +++
 .../api/FacebookPostActivitySerializer.java     | 244 +----------------
 .../serializer/FacebookActivityUtil.java        | 153 ++++++++++-
 .../facebook/test/FacebookPostSerDeTest.java    |  28 +-
 .../google-gplus/pom.xml                        |  32 +++
 .../processor/GooglePlusCommentProcessor.java   |  87 ++++++
 .../gplus/provider/AbstractGPlusProvider.java   | 234 ++++++++++++++++
 .../gplus/provider/GPlusActivitySerializer.java |   4 +-
 .../gplus/provider/GPlusDataCollector.java      |  50 ++++
 .../provider/GPlusHistoryProviderTask.java      | 106 --------
 .../google/gplus/provider/GPlusProvider.java    | 189 -------------
 .../provider/GPlusUserActivityCollector.java    | 108 ++++++++
 .../provider/GPlusUserActivityProvider.java     |  18 ++
 .../gplus/provider/GPlusUserDataCollector.java  |  79 ++++++
 .../gplus/provider/GPlusUserDataProvider.java   |  18 ++
 .../util/GPlusCommentDeserializer.java          |  98 +++++++
 .../serializer/util/GooglePlusActivityUtil.java |  50 ++++
 .../com/google/gplus/GPlusConfiguration.json    |  44 ++-
 .../gplus/GooglePlusCommentSerDeTest.java       | 114 ++++++++
 .../provider/TestAbstractGPlusProvider.java     |  82 ++++++
 .../TestGPlusUserActivityCollector.java         | 268 ++++++++++++++++++
 .../provider/TestGPlusUserDataCollector.java    | 131 +++++++++
 .../resources/google_plus_comments_jsons.txt    |   3 +
 streams-contrib/streams-provider-google/pom.xml |   6 +
 .../rss/provider/RssStreamProviderTest.java     |   6 +-
 .../streams-provider-twitter/pom.xml            |  11 +
 .../processor/TwitterEventProcessor.java        | 194 -------------
 .../twitter/processor/TwitterTypeConverter.java | 209 --------------
 .../processor/TwitterUrlApiProcessor.java       |  73 +++++
 .../provider/TwitterEventClassifier.java        |  58 ++--
 .../provider/TwitterTimelineProvider.java       |   7 +-
 .../serializer/StreamsTwitterMapper.java        |  11 +-
 .../TwitterJsonActivitySerializer.java          |  24 +-
 .../TwitterJsonDeleteActivitySerializer.java    |   6 +
 .../TwitterJsonRetweetActivitySerializer.java   |   6 +
 .../TwitterJsonTweetActivitySerializer.java     |   6 +
 .../TwitterJsonUserActivitySerializer.java      |   6 +
 ...erJsonUserstreameventActivitySerializer.java |   6 +
 .../streams/twitter/test/SimpleTweetTest.java   |  11 +-
 .../twitter/test/TweetActivitySerDeTest.java    |   6 +-
 .../streams/twitter/test/TweetSerDeTest.java    |   6 +-
 .../test/TwitterEventClassifierTest.java        |  34 +++
 streams-monitoring/pom.xml                      | 109 ++++++++
 .../jackson/DatumStatusCounterDeserializer.java |  76 ++++++
 .../jackson/MemoryUsageDeserializer.java        |  79 ++++++
 .../jackson/StreamsTaskCounterDeserializer.java |  88 ++++++
 .../jackson/ThroughputQueueDeserializer.java    |  87 ++++++
 .../monitoring/persist/MessagePersister.java    |  34 +++
 .../persist/impl/BroadcastMessagePersister.java |  94 +++++++
 .../tasks/BroadcastMonitorThread.java           | 171 ++++++++++++
 .../org/apache/streams/pojo/json/Broadcast.json |  13 +
 .../pojo/json/DatumStatusCounterBroadcast.json  |  22 ++
 .../streams/pojo/json/MemoryUsageBroadcast.json |  30 ++
 .../pojo/json/StreamsTaskCounterBroadcast.json  |  38 +++
 .../pojo/json/ThroughputQueueBroadcast.json     |  38 +++
 .../jackson/MemoryUsageDeserializerTest.java    |  77 ++++++
 .../impl/BroadcastMessagePersisterTest.java     |  60 ++++
 .../tasks/BroadcastMonitorThreadTest.java       |  55 ++++
 .../src/test/resources/MemoryUsageObjects.json  |   1 +
 streams-pojo-extensions/pom.xml                 |  64 +++++
 .../apache/streams/data/util/ExtensionUtil.java | 108 ++++++++
 .../apache/streams/data/util/ActivityUtil.java  |  14 +-
 .../jackson/StreamsDateTimeDeserializer.java    |  23 +-
 .../streams/jackson/StreamsJacksonMapper.java   |  20 ++
 .../streams/jackson/StreamsJacksonModule.java   |   9 +
 .../org/apache/streams/pojo/json/activity.json  |   3 +-
 .../org/apache/streams/pojo/json/object.json    |   2 +-
 streams-runtimes/streams-runtime-local/pom.xml  |   5 +
 .../local/builders/LocalStreamBuilder.java      |  19 +-
 .../streams/local/tasks/StreamsMergeTask.java   |   7 +
 .../local/tasks/StreamsPersistWriterTask.java   |  18 +-
 .../local/tasks/StreamsProcessorTask.java       |  20 +-
 .../local/tasks/StreamsProviderTask.java        |  15 +
 .../apache/streams/local/tasks/StreamsTask.java |   4 +
 .../local/builders/LocalStreamBuilderTest.java  |  32 ++-
 .../streams/local/tasks/BasicTasksTest.java     |  26 +-
 .../streams/pig/test/PigProcessDatumTest.java   |   2 -
 .../pig/test/PigProcessDocumentTest.java        |   2 -
 .../streams/pig/test/PigSerializerTest.java     |   3 +-
 .../backoff/AbstractBackOffStrategy.java        |  15 +-
 120 files changed, 5800 insertions(+), 1683 deletions(-)
----------------------------------------------------------------------



[4/5] incubator-streams git commit: Added param constructors to GPlus providers

Posted by sb...@apache.org.
Added param constructors to GPlus providers


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/2390c0ee
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/2390c0ee
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/2390c0ee

Branch: refs/heads/master
Commit: 2390c0ee01b1300bf9bb104a619d6e25e2f1d347
Parents: a4005ff
Author: Ryan Ebanks <ry...@gmail.com>
Authored: Tue Nov 18 14:45:46 2014 -0600
Committer: Ryan Ebanks <ry...@gmail.com>
Committed: Tue Nov 18 14:45:46 2014 -0600

----------------------------------------------------------------------
 .../google/gplus/provider/GPlusUserActivityProvider.java | 11 +++++++++++
 .../com/google/gplus/provider/GPlusUserDataProvider.java | 11 +++++++++++
 2 files changed, 22 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/2390c0ee/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusUserActivityProvider.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusUserActivityProvider.java b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusUserActivityProvider.java
index e7f1bec..a80a7ab 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusUserActivityProvider.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusUserActivityProvider.java
@@ -2,6 +2,7 @@ package com.google.gplus.provider;
 
 import com.google.api.services.plus.Plus;
 import org.apache.streams.core.StreamsDatum;
+import org.apache.streams.google.gplus.GPlusConfiguration;
 import org.apache.streams.google.gplus.configuration.UserInfo;
 import org.apache.streams.util.api.requests.backoff.BackOffStrategy;
 
@@ -11,6 +12,16 @@ import java.util.concurrent.BlockingQueue;
  *
  */
 public class GPlusUserActivityProvider extends AbstractGPlusProvider{
+
+
+    public GPlusUserActivityProvider() {
+        super();
+    }
+
+    public GPlusUserActivityProvider(GPlusConfiguration config) {
+        super(config);
+    }
+
     @Override
     protected Runnable getDataCollector(BackOffStrategy strategy, BlockingQueue<StreamsDatum> queue, Plus plus, UserInfo userInfo) {
         return new GPlusUserActivityCollector(plus, queue, strategy, userInfo);

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/2390c0ee/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusUserDataProvider.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusUserDataProvider.java b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusUserDataProvider.java
index 0e2782d..74ed2e7 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusUserDataProvider.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusUserDataProvider.java
@@ -2,6 +2,7 @@ package com.google.gplus.provider;
 
 import com.google.api.services.plus.Plus;
 import org.apache.streams.core.StreamsDatum;
+import org.apache.streams.google.gplus.GPlusConfiguration;
 import org.apache.streams.google.gplus.configuration.UserInfo;
 import org.apache.streams.util.api.requests.backoff.BackOffStrategy;
 
@@ -11,6 +12,16 @@ import java.util.concurrent.BlockingQueue;
  *
  */
 public class GPlusUserDataProvider extends AbstractGPlusProvider{
+
+    public GPlusUserDataProvider(){
+        super();
+    }
+
+    public GPlusUserDataProvider(GPlusConfiguration config) {
+        super(config);
+    }
+
+
     @Override
     protected Runnable getDataCollector(BackOffStrategy strategy, BlockingQueue<StreamsDatum> queue, Plus plus, UserInfo userInfo) {
         return new GPlusUserDataCollector(plus, strategy, queue, userInfo);


[5/5] incubator-streams git commit: Merge commit '2390c0ee01b1300bf9bb104a619d6e25e2f1d347'

Posted by sb...@apache.org.
Merge commit '2390c0ee01b1300bf9bb104a619d6e25e2f1d347'


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/590b053b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/590b053b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/590b053b

Branch: refs/heads/master
Commit: 590b053b97b978c65f8fb8bb4a466b0dbf17f90a
Parents: 56011e4 2390c0e
Author: sblackmon <sb...@apache.org>
Authored: Wed Nov 19 14:32:25 2014 -0600
Committer: sblackmon <sb...@apache.org>
Committed: Wed Nov 19 14:32:25 2014 -0600

----------------------------------------------------------------------
 .../gplus/provider/AbstractGPlusProvider.java   | 31 +++++++++++--------
 .../gplus/provider/GPlusConfigurator.java       | 32 ++++++++++----------
 .../provider/GPlusUserActivityProvider.java     | 11 +++++++
 .../gplus/provider/GPlusUserDataProvider.java   | 11 +++++++
 .../com/google/gplus/GPlusConfiguration.json    | 17 +++++------
 .../provider/TestAbstractGPlusProvider.java     |  7 ++---
 6 files changed, 67 insertions(+), 42 deletions(-)
----------------------------------------------------------------------



[3/5] incubator-streams git commit: Removed commented out code

Posted by sb...@apache.org.
Removed commented out code


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/a4005ff5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/a4005ff5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/a4005ff5

Branch: refs/heads/master
Commit: a4005ff5dae264af8b23547f274ae8e21d793e5c
Parents: 4bc05e2
Author: Ryan Ebanks <ry...@gmail.com>
Authored: Tue Nov 18 09:37:54 2014 -0600
Committer: Ryan Ebanks <ry...@gmail.com>
Committed: Tue Nov 18 09:37:54 2014 -0600

----------------------------------------------------------------------
 .../google/gplus/provider/GPlusConfigurator.java    | 16 ----------------
 1 file changed, 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/a4005ff5/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusConfigurator.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusConfigurator.java b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusConfigurator.java
index 56ad5d9..1999130 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusConfigurator.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusConfigurator.java
@@ -40,22 +40,6 @@ public class GPlusConfigurator {
     private static final ObjectMapper MAPPER = StreamsJacksonMapper.getInstance();
 
     public static GPlusConfiguration detectConfiguration(Config config) {
-//        Config oauth = StreamsConfigurator.config.getConfig("gplus.oauth");
-//
-//        GPlusConfiguration gplusConfiguration = new GPlusConfiguration();
-//
-//        gplusConfiguration.setProtocol(config.getString("protocol"));
-//        gplusConfiguration.setHost(config.getString("host"));
-//        gplusConfiguration.setPort(config.getLong("port"));
-//        gplusConfiguration.setVersion(config.getString("version"));
-//        GPlusOAuthConfiguration gPlusOAuthConfiguration = new GPlusOAuthConfiguration();
-//        gPlusOAuthConfiguration.setConsumerKey(oauth.getString("consumerKey"));
-//        gPlusOAuthConfiguration.setConsumerSecret(oauth.getString("consumerSecret"));
-//        gPlusOAuthConfiguration.setAccessToken(oauth.getString("accessToken"));
-//        gPlusOAuthConfiguration.setAccessTokenSecret(oauth.getString("accessTokenSecret"));
-//        gPlusOAuthConfiguration.setAppName(oauth.getString("appName"));
-//        gplusConfiguration.setOauth(gPlusOAuthConfiguration);
-//
         GPlusConfiguration configuration = null;
         try {
             configuration = MAPPER.readValue(config.root().render(ConfigRenderOptions.concise()), GPlusConfiguration.class);


[2/5] incubator-streams git commit: Fixed Google+ client connection issues. Wrong credentials were being provided

Posted by sb...@apache.org.
Fixed Google+ client connection issues. Wrong credentials were being provided


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/4bc05e24
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/4bc05e24
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/4bc05e24

Branch: refs/heads/master
Commit: 4bc05e241c979e302f7b898b3c4394c4d983adcc
Parents: f3de6f8
Author: Ryan Ebanks <ry...@gmail.com>
Authored: Mon Nov 17 17:35:37 2014 -0600
Committer: Ryan Ebanks <ry...@gmail.com>
Committed: Mon Nov 17 17:35:37 2014 -0600

----------------------------------------------------------------------
 .../gplus/provider/AbstractGPlusProvider.java   | 31 ++++++++-----
 .../gplus/provider/GPlusConfigurator.java       | 48 +++++++++++++-------
 .../com/google/gplus/GPlusConfiguration.json    | 17 +++----
 .../provider/TestAbstractGPlusProvider.java     |  7 ++-
 4 files changed, 61 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/4bc05e24/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/AbstractGPlusProvider.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/AbstractGPlusProvider.java b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/AbstractGPlusProvider.java
index 6e59da2..791afe4 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/AbstractGPlusProvider.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/AbstractGPlusProvider.java
@@ -18,6 +18,7 @@
 
 package com.google.gplus.provider;
 
+import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
 import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
 import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
 import com.google.api.client.googleapis.auth.oauth2.GoogleTokenResponse;
@@ -43,8 +44,14 @@ import org.joda.time.DateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.File;
 import java.io.IOException;
 import java.math.BigInteger;
+import java.security.GeneralSecurityException;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -57,7 +64,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 public abstract class AbstractGPlusProvider implements StreamsProvider {
 
     private final static Logger LOGGER = LoggerFactory.getLogger(AbstractGPlusProvider.class);
-    private final static String SCOPE = "https://www.googleapis.com/auth/plus.stream.read";
+    private final static Set<String> SCOPE = new HashSet<String>() {{ add("https://www.googleapis.com/auth/plus.login");}};
     private final static int MAX_BATCH_SIZE = 1000;
 
     private static final HttpTransport TRANSPORT = new NetHttpTransport();
@@ -88,6 +95,7 @@ public abstract class AbstractGPlusProvider implements StreamsProvider {
 
     @Override
     public void startStream() {
+
         BackOffStrategy backOffStrategy = new ExponentialBackOffStrategy(2);
         for(UserInfo user : this.config.getGooglePlusUsers()) {
             if(this.config.getDefaultAfterDate() != null && user.getAfterDate() == null) {
@@ -138,14 +146,13 @@ public abstract class AbstractGPlusProvider implements StreamsProvider {
     @Override
     public void prepare(Object configurationObject) {
 
-        Preconditions.checkNotNull(config.getOauth().getConsumerKey());
-        Preconditions.checkNotNull(config.getOauth().getConsumerSecret());
-        Preconditions.checkNotNull(config.getOauth().getAccessToken());
-        Preconditions.checkNotNull(config.getOauth().getAccessTokenSecret());
+        Preconditions.checkNotNull(config.getOauth().getPathToP12KeyFile());
+        Preconditions.checkNotNull(config.getOauth().getAppName());
+        Preconditions.checkNotNull(config.getOauth().getServiceAccountEmailAddress());
 
         try {
             this.plus = createPlusClient();
-        } catch (IOException e) {
+        } catch (IOException|GeneralSecurityException e) {
             LOGGER.error("Failed to created oauth for GPlus : {}", e);
             throw new RuntimeException(e);
         }
@@ -159,15 +166,15 @@ public abstract class AbstractGPlusProvider implements StreamsProvider {
     }
 
     @VisibleForTesting
-    protected Plus createPlusClient() throws IOException{
+    protected Plus createPlusClient() throws IOException, GeneralSecurityException {
         credential = new GoogleCredential.Builder()
                 .setJsonFactory(JSON_FACTORY)
                 .setTransport(TRANSPORT)
-                .setClientSecrets(config.getOauth().getConsumerKey(), config.getOauth().getConsumerSecret()).build()
-                .setFromTokenResponse(JSON_FACTORY.fromString(
-                        config.getOauth().getAccessToken(), GoogleTokenResponse.class));
-        credential.refreshToken();
-        return new Plus.Builder(TRANSPORT,JSON_FACTORY, credential).build();
+                .setServiceAccountScopes(SCOPE)
+                .setServiceAccountId(this.config.getOauth().getServiceAccountEmailAddress())
+                .setServiceAccountPrivateKeyFromP12File(new File(this.config.getOauth().getPathToP12KeyFile()))
+                .build();
+        return new Plus.Builder(TRANSPORT,JSON_FACTORY, credential).setApplicationName(this.config.getOauth().getAppName()).build();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/4bc05e24/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusConfigurator.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusConfigurator.java b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusConfigurator.java
index c3237f9..56ad5d9 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusConfigurator.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/provider/GPlusConfigurator.java
@@ -18,37 +18,53 @@
 
 package com.google.gplus.provider;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.base.Preconditions;
 import com.typesafe.config.Config;
+import com.typesafe.config.ConfigRenderOptions;
 import org.apache.streams.config.StreamsConfigurator;
 import org.apache.streams.google.gplus.GPlusConfiguration;
 import org.apache.streams.google.gplus.GPlusOAuthConfiguration;
+import org.apache.streams.jackson.StreamsJacksonMapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.IOException;
+
 /**
  * Created by sblackmon on 12/10/13.
  */
 public class GPlusConfigurator {
 
     private final static Logger LOGGER = LoggerFactory.getLogger(GPlusConfigurator.class);
+    private static final ObjectMapper MAPPER = StreamsJacksonMapper.getInstance();
 
     public static GPlusConfiguration detectConfiguration(Config config) {
-        Config oauth = StreamsConfigurator.config.getConfig("gplus.oauth");
-
-        GPlusConfiguration gplusConfiguration = new GPlusConfiguration();
-
-        gplusConfiguration.setProtocol(config.getString("protocol"));
-        gplusConfiguration.setHost(config.getString("host"));
-        gplusConfiguration.setPort(config.getLong("port"));
-        gplusConfiguration.setVersion(config.getString("version"));
-        GPlusOAuthConfiguration gPlusOAuthConfiguration = new GPlusOAuthConfiguration();
-        gPlusOAuthConfiguration.setConsumerKey(oauth.getString("consumerKey"));
-        gPlusOAuthConfiguration.setConsumerSecret(oauth.getString("consumerSecret"));
-        gPlusOAuthConfiguration.setAccessToken(oauth.getString("accessToken"));
-        gPlusOAuthConfiguration.setAccessTokenSecret(oauth.getString("accessTokenSecret"));
-        gplusConfiguration.setOauth(gPlusOAuthConfiguration);
-
-        return gplusConfiguration;
+//        Config oauth = StreamsConfigurator.config.getConfig("gplus.oauth");
+//
+//        GPlusConfiguration gplusConfiguration = new GPlusConfiguration();
+//
+//        gplusConfiguration.setProtocol(config.getString("protocol"));
+//        gplusConfiguration.setHost(config.getString("host"));
+//        gplusConfiguration.setPort(config.getLong("port"));
+//        gplusConfiguration.setVersion(config.getString("version"));
+//        GPlusOAuthConfiguration gPlusOAuthConfiguration = new GPlusOAuthConfiguration();
+//        gPlusOAuthConfiguration.setConsumerKey(oauth.getString("consumerKey"));
+//        gPlusOAuthConfiguration.setConsumerSecret(oauth.getString("consumerSecret"));
+//        gPlusOAuthConfiguration.setAccessToken(oauth.getString("accessToken"));
+//        gPlusOAuthConfiguration.setAccessTokenSecret(oauth.getString("accessTokenSecret"));
+//        gPlusOAuthConfiguration.setAppName(oauth.getString("appName"));
+//        gplusConfiguration.setOauth(gPlusOAuthConfiguration);
+//
+        GPlusConfiguration configuration = null;
+        try {
+            configuration = MAPPER.readValue(config.root().render(ConfigRenderOptions.concise()), GPlusConfiguration.class);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        Preconditions.checkNotNull(configuration);
+
+        return configuration;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/4bc05e24/streams-contrib/streams-provider-google/google-gplus/src/main/jsonschema/com/google/gplus/GPlusConfiguration.json
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/main/jsonschema/com/google/gplus/GPlusConfiguration.json b/streams-contrib/streams-provider-google/google-gplus/src/main/jsonschema/com/google/gplus/GPlusConfiguration.json
index 87ada8b..0b96694 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/main/jsonschema/com/google/gplus/GPlusConfiguration.json
+++ b/streams-contrib/streams-provider-google/google-gplus/src/main/jsonschema/com/google/gplus/GPlusConfiguration.json
@@ -54,21 +54,18 @@
             "dynamic": "true",
             "javaType" : "org.apache.streams.google.gplus.GPlusOAuthConfiguration",
             "javaInterfaces": ["java.io.Serializable"],
+            "description": "DEPRICATED",
             "properties": {
                 "appName": {
                     "type": "string"
                 },
-                "consumerKey": {
-                    "type": "string"
-                },
-                "consumerSecret": {
-                    "type": "string"
-                },
-                "accessToken": {
-                    "type": "string"
+                "pathToP12KeyFile": {
+                    "type": "string",
+                    "description": "Absolute Path to key file"
                 },
-                "accessTokenSecret": {
-                    "type": "string"
+                "serviceAccountEmailAddress": {
+                    "type": "string",
+                    "description": "Service Account email address for your app"
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/4bc05e24/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/provider/TestAbstractGPlusProvider.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/provider/TestAbstractGPlusProvider.java b/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/provider/TestAbstractGPlusProvider.java
index ced612b..d5cfb2c 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/provider/TestAbstractGPlusProvider.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/provider/TestAbstractGPlusProvider.java
@@ -36,10 +36,9 @@ public class TestAbstractGPlusProvider extends RandomizedTest{
         }
         GPlusConfiguration config = new GPlusConfiguration();
         GPlusOAuthConfiguration oauth = new GPlusOAuthConfiguration();
-        oauth.setAccessToken("a");
-        oauth.setConsumerKey("a");
-        oauth.setConsumerSecret("a");
-        oauth.setAccessTokenSecret("a");
+        oauth.setAppName("a");
+        oauth.setPathToP12KeyFile("a");
+        oauth.setServiceAccountEmailAddress("a");
         config.setOauth(oauth);
         config.setGooglePlusUsers(userList);
         AbstractGPlusProvider provider = new AbstractGPlusProvider(config) {