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 2016/11/25 20:25:09 UTC
[28/42] incubator-streams git commit: STREAMS-440: custom
checkstyle.xml, address compliance
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusActivityDeserializer.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusActivityDeserializer.java b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusActivityDeserializer.java
index 7ff1d1e..79f1815 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusActivityDeserializer.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusActivityDeserializer.java
@@ -27,6 +27,7 @@ import com.fasterxml.jackson.databind.JsonNode;
import com.google.api.client.util.DateTime;
import com.google.api.client.util.Lists;
import com.google.api.services.plus.model.Activity;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -34,130 +35,137 @@ import java.io.IOException;
import java.util.List;
/**
- * Custom deserializer for GooglePlus' Person model
+ * Custom deserializer for GooglePlus' Person model.
*/
public class GPlusActivityDeserializer extends JsonDeserializer<Activity> {
- private final static Logger LOGGER = LoggerFactory.getLogger(GPlusActivityDeserializer.class);
-
- /**
- * Because the GooglePlus Activity object {@link com.google.api.services.plus.model.Activity} contains complex objects
- * within its hierarchy, we have to use a custom deserializer
- *
- * @param jsonParser
- * @param deserializationContext
- * @return The deserialized {@link com.google.api.services.plus.model.Activity} object
- * @throws IOException
- * @throws JsonProcessingException
- */
- @Override
- public Activity deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
-
- JsonNode node = jsonParser.getCodec().readTree(jsonParser);
- Activity activity = new Activity();
-
- try {
- activity.setUrl(node.get("url").asText());
- activity.setEtag(node.get("etag").asText());
- activity.setTitle(node.get("title").asText());
- activity.setPublished(DateTime.parseRfc3339(node.get("published").asText()));
- activity.setUpdated(DateTime.parseRfc3339(node.get("updated").asText()));
- activity.setId(node.get("id").asText());
- activity.setVerb(node.get("verb").asText());
-
- activity.setActor(buildActor(node));
-
- activity.setObject(buildPlusObject(node));
- } catch (Exception e) {
- LOGGER.error("Exception while trying to deserialize activity object: {}", e);
- }
- return activity;
+ private static final Logger LOGGER = LoggerFactory.getLogger(GPlusActivityDeserializer.class);
+
+ /**
+ * Because the GooglePlus Activity object {@link com.google.api.services.plus.model.Activity} contains complex objects
+ * within its hierarchy, we have to use a custom deserializer
+ *
+ * @param jsonParser jsonParser
+ * @param deserializationContext deserializationContext
+ * @return The deserialized {@link com.google.api.services.plus.model.Activity} object
+ * @throws IOException IOException
+ * @throws JsonProcessingException JsonProcessingException
+ */
+ @Override
+ public Activity deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
+
+ JsonNode node = jsonParser.getCodec().readTree(jsonParser);
+ Activity activity = new Activity();
+
+ try {
+ activity.setUrl(node.get("url").asText());
+ activity.setEtag(node.get("etag").asText());
+ activity.setTitle(node.get("title").asText());
+ activity.setPublished(DateTime.parseRfc3339(node.get("published").asText()));
+ activity.setUpdated(DateTime.parseRfc3339(node.get("updated").asText()));
+ activity.setId(node.get("id").asText());
+ activity.setVerb(node.get("verb").asText());
+
+ activity.setActor(buildActor(node));
+
+ activity.setObject(buildPlusObject(node));
+ } catch (Exception ex) {
+ LOGGER.error("Exception while trying to deserialize activity object: {}", ex);
}
- /**
- * Given a raw JsonNode, build out the G+ {@link com.google.api.services.plus.model.Activity.Actor} object
- *
- * @param node
- * @return {@link com.google.api.services.plus.model.Activity.Actor} object
- */
- private Activity.Actor buildActor(JsonNode node) {
- Activity.Actor actor = new Activity.Actor();
- JsonNode actorNode = node.get("actor");
-
- actor.setId(actorNode.get("id").asText());
- actor.setDisplayName(actorNode.get("displayName").asText());
- actor.setUrl(actorNode.get("url").asText());
-
- Activity.Actor.Image image = new Activity.Actor.Image();
- JsonNode imageNode = actorNode.get("image");
- image.setUrl(imageNode.get("url").asText());
-
- actor.setImage(image);
-
- return actor;
- }
+ return activity;
+ }
+
+ /**
+ * Given a raw JsonNode, build out the G+ {@link com.google.api.services.plus.model.Activity.Actor} object
+ *
+ * @param node node
+ * @return {@link com.google.api.services.plus.model.Activity.Actor} object
+ */
+ private Activity.Actor buildActor(JsonNode node) {
+ Activity.Actor actor = new Activity.Actor();
+ JsonNode actorNode = node.get("actor");
+
+ actor.setId(actorNode.get("id").asText());
+ actor.setDisplayName(actorNode.get("displayName").asText());
+ actor.setUrl(actorNode.get("url").asText());
+
+ Activity.Actor.Image image = new Activity.Actor.Image();
+ JsonNode imageNode = actorNode.get("image");
+ image.setUrl(imageNode.get("url").asText());
+
+ actor.setImage(image);
+
+ return actor;
+ }
+
+ /**
+ * Given a JsonNode, build out all aspects of the {@link com.google.api.services.plus.model.Activity.PlusObject} object
+ *
+ * @param node node
+ * @return {@link com.google.api.services.plus.model.Activity.PlusObject} object
+ */
+ private Activity.PlusObject buildPlusObject(JsonNode node) {
+ Activity.PlusObject object = new Activity.PlusObject();
+ JsonNode objectNode = node.get("object");
+ object.setObjectType(objectNode.get("objectType").asText());
+ object.setContent(objectNode.get("content").asText());
+ object.setUrl(objectNode.get("url").asText());
+
+ Activity.PlusObject.Replies replies = new Activity.PlusObject.Replies();
+ JsonNode repliesNode = objectNode.get("replies");
+ replies.setTotalItems(repliesNode.get("totalItems").asLong());
+ replies.setSelfLink(repliesNode.get("selfLink").asText());
+ object.setReplies(replies);
+
+ Activity.PlusObject.Plusoners plusoners = new Activity.PlusObject.Plusoners();
+ JsonNode plusonersNode = objectNode.get("plusoners");
+ plusoners.setTotalItems(plusonersNode.get("totalItems").asLong());
+ plusoners.setSelfLink(plusonersNode.get("selfLink").asText());
+ object.setPlusoners(plusoners);
+
+ Activity.PlusObject.Resharers resharers = new Activity.PlusObject.Resharers();
+ JsonNode resharersNode = objectNode.get("resharers");
+ resharers.setTotalItems(resharersNode.get("totalItems").asLong());
+ resharers.setSelfLink(resharersNode.get("selfLink").asText());
+ object.setResharers(resharers);
+
+ object.setAttachments(buildAttachments(objectNode));//attachments);
+
+ return object;
+ }
+
+ /**
+ * Given a raw JsonNode representation of an Activity's attachments, build out that
+ * list of {@link com.google.api.services.plus.model.Activity.PlusObject.Attachments} objects
+ *
+ * @param objectNode objectNode
+ * @return list of {@link com.google.api.services.plus.model.Activity.PlusObject.Attachments} objects
+ */
+ private List<Activity.PlusObject.Attachments> buildAttachments(JsonNode objectNode) {
+ List<Activity.PlusObject.Attachments> attachments = Lists.newArrayList();
+ if ( objectNode.has("attachments") ) {
+ for (JsonNode attachmentNode : objectNode.get("attachments")) {
+ Activity.PlusObject.Attachments attachments1 = new Activity.PlusObject.Attachments();
+ attachments1.setObjectType(attachmentNode.get("objectType").asText());
+ if (attachmentNode.has("displayName")) {
+ attachments1.setDisplayName(attachmentNode.get("displayName").asText());
+ }
+ if (attachmentNode.has("content")) {
+ attachments1.setContent(attachmentNode.get("content").asText());
+ }
+ if (attachmentNode.has("url")) {
+ attachments1.setUrl(attachmentNode.get("url").asText());
+ }
- /**
- * Given a JsonNode, build out all aspects of the {@link com.google.api.services.plus.model.Activity.PlusObject} object
- *
- * @param node
- * @return {@link com.google.api.services.plus.model.Activity.PlusObject} object
- */
- private Activity.PlusObject buildPlusObject(JsonNode node) {
- Activity.PlusObject object = new Activity.PlusObject();
- JsonNode objectNode = node.get("object");
- object.setObjectType(objectNode.get("objectType").asText());
- object.setContent(objectNode.get("content").asText());
- object.setUrl(objectNode.get("url").asText());
-
- Activity.PlusObject.Replies replies = new Activity.PlusObject.Replies();
- JsonNode repliesNode = objectNode.get("replies");
- replies.setTotalItems(repliesNode.get("totalItems").asLong());
- replies.setSelfLink(repliesNode.get("selfLink").asText());
- object.setReplies(replies);
-
- Activity.PlusObject.Plusoners plusoners = new Activity.PlusObject.Plusoners();
- JsonNode plusonersNode = objectNode.get("plusoners");
- plusoners.setTotalItems(plusonersNode.get("totalItems").asLong());
- plusoners.setSelfLink(plusonersNode.get("selfLink").asText());
- object.setPlusoners(plusoners);
-
- Activity.PlusObject.Resharers resharers = new Activity.PlusObject.Resharers();
- JsonNode resharersNode = objectNode.get("resharers");
- resharers.setTotalItems(resharersNode.get("totalItems").asLong());
- resharers.setSelfLink(resharersNode.get("selfLink").asText());
- object.setResharers(resharers);
-
- object.setAttachments(buildAttachments(objectNode));//attachments);
-
- return object;
- }
+ Activity.PlusObject.Attachments.Image image1 = new Activity.PlusObject.Attachments.Image();
+ JsonNode imageNode1 = attachmentNode.get("image");
+ image1.setUrl(imageNode1.get("url").asText());
+ attachments1.setImage(image1);
- /**
- * Given a raw JsonNode representation of an Activity's attachments, build out that
- * list of {@link com.google.api.services.plus.model.Activity.PlusObject.Attachments} objects
- *
- * @param objectNode
- * @return list of {@link com.google.api.services.plus.model.Activity.PlusObject.Attachments} objects
- */
- private List<Activity.PlusObject.Attachments> buildAttachments(JsonNode objectNode) {
- List<Activity.PlusObject.Attachments> attachments = Lists.newArrayList();
- if( objectNode.has("attachments") )
- for (JsonNode attachmentNode : objectNode.get("attachments")) {
- Activity.PlusObject.Attachments attachments1 = new Activity.PlusObject.Attachments();
- attachments1.setObjectType(attachmentNode.get("objectType").asText());
- if( attachmentNode.has("displayName")) attachments1.setDisplayName(attachmentNode.get("displayName").asText());
- if( attachmentNode.has("content")) attachments1.setContent(attachmentNode.get("content").asText());
- if( attachmentNode.has("url")) attachments1.setUrl(attachmentNode.get("url").asText());
-
- Activity.PlusObject.Attachments.Image image1 = new Activity.PlusObject.Attachments.Image();
- JsonNode imageNode1 = attachmentNode.get("image");
- image1.setUrl(imageNode1.get("url").asText());
- attachments1.setImage(image1);
-
- attachments.add(attachments1);
- }
-
- return attachments;
+ attachments.add(attachments1);
+ }
}
+ return attachments;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusCommentDeserializer.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusCommentDeserializer.java b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusCommentDeserializer.java
index 956309a..d143419 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusCommentDeserializer.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusCommentDeserializer.java
@@ -19,6 +19,8 @@
package com.google.gplus.serializer.util;
+import org.apache.streams.jackson.StreamsJacksonMapper;
+
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
@@ -28,71 +30,76 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.api.client.util.DateTime;
import com.google.api.client.util.Lists;
import com.google.api.services.plus.model.Comment;
-import org.apache.streams.jackson.StreamsJacksonMapper;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.List;
+/**
+ * GPlusCommentDeserializer converts gplus comments to as1 comments.
+ */
public class GPlusCommentDeserializer extends JsonDeserializer<Comment> {
- private final static Logger LOGGER = LoggerFactory.getLogger(GPlusActivityDeserializer.class);
-
- /**
- * Because the GooglePlus Comment object {@link com.google.api.services.plus.model.Comment} contains complex objects
- * within its hierarchy, we have to use a custom deserializer
- *
- * @param jsonParser
- * @param deserializationContext
- * @return The deserialized {@link com.google.api.services.plus.model.Comment} object
- * @throws java.io.IOException
- * @throws com.fasterxml.jackson.core.JsonProcessingException
- */
- @Override
- public Comment deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
-
- JsonNode node = jsonParser.getCodec().readTree(jsonParser);
- ObjectMapper objectMapper = StreamsJacksonMapper.getInstance();
- Comment comment = new Comment();
-
- try {
- comment.setEtag(node.get("etag").asText());
- comment.setVerb(node.get("verb").asText());
- comment.setId(node.get("id").asText());
- comment.setPublished(DateTime.parseRfc3339(node.get("published").asText()));
- comment.setUpdated(DateTime.parseRfc3339(node.get("updated").asText()));
-
- Comment.Actor actor = new Comment.Actor();
- JsonNode actorNode = node.get("actor");
- actor.setDisplayName(actorNode.get("displayName").asText());
- actor.setUrl(actorNode.get("url").asText());
-
- Comment.Actor.Image image = new Comment.Actor.Image();
- JsonNode imageNode = actorNode.get("image");
- image.setUrl(imageNode.get("url").asText());
-
- actor.setImage(image);
-
- comment.setObject(objectMapper.readValue(objectMapper.writeValueAsString(node.get("object")), Comment.PlusObject.class));
-
- comment.setSelfLink(node.get("selfLink").asText());
-
- List<Comment.InReplyTo> replies = Lists.newArrayList();
- for(JsonNode reply : node.get("inReplyTo")) {
- Comment.InReplyTo r = objectMapper.readValue(objectMapper.writeValueAsString(reply), Comment.InReplyTo.class);
- replies.add(r);
- }
-
- comment.setInReplyTo(replies);
-
- Comment.Plusoners plusoners = new Comment.Plusoners();
- JsonNode plusonersNode = node.get("plusoners");
- plusoners.setTotalItems(plusonersNode.get("totalItems").asLong());
- comment.setPlusoners(plusoners);
- } catch (Exception e) {
- LOGGER.error("Exception while trying to deserialize activity object: {}", e);
- }
-
- return comment;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(GPlusActivityDeserializer.class);
+
+ /**
+ * Because the GooglePlus Comment object {@link com.google.api.services.plus.model.Comment} contains complex objects
+ * within its hierarchy, we have to use a custom deserializer
+ *
+ * @param jsonParser jsonParser
+ * @param deserializationContext deserializationContext
+ * @return The deserialized {@link com.google.api.services.plus.model.Comment} object
+ * @throws java.io.IOException IOException
+ * @throws com.fasterxml.jackson.core.JsonProcessingException JsonProcessingException
+ */
+ @Override
+ public Comment deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
+ throws IOException, JsonProcessingException {
+
+ JsonNode node = jsonParser.getCodec().readTree(jsonParser);
+ ObjectMapper objectMapper = StreamsJacksonMapper.getInstance();
+ Comment comment = new Comment();
+
+ try {
+ comment.setEtag(node.get("etag").asText());
+ comment.setVerb(node.get("verb").asText());
+ comment.setId(node.get("id").asText());
+ comment.setPublished(DateTime.parseRfc3339(node.get("published").asText()));
+ comment.setUpdated(DateTime.parseRfc3339(node.get("updated").asText()));
+
+ Comment.Actor actor = new Comment.Actor();
+ JsonNode actorNode = node.get("actor");
+ actor.setDisplayName(actorNode.get("displayName").asText());
+ actor.setUrl(actorNode.get("url").asText());
+
+ Comment.Actor.Image image = new Comment.Actor.Image();
+ JsonNode imageNode = actorNode.get("image");
+ image.setUrl(imageNode.get("url").asText());
+
+ actor.setImage(image);
+
+ comment.setObject(objectMapper.readValue(objectMapper.writeValueAsString(node.get("object")), Comment.PlusObject.class));
+
+ comment.setSelfLink(node.get("selfLink").asText());
+
+ List<Comment.InReplyTo> replies = Lists.newArrayList();
+ for (JsonNode reply : node.get("inReplyTo")) {
+ Comment.InReplyTo irt = objectMapper.readValue(objectMapper.writeValueAsString(reply), Comment.InReplyTo.class);
+ replies.add(irt);
+ }
+
+ comment.setInReplyTo(replies);
+
+ Comment.Plusoners plusoners = new Comment.Plusoners();
+ JsonNode plusonersNode = node.get("plusoners");
+ plusoners.setTotalItems(plusonersNode.get("totalItems").asLong());
+ comment.setPlusoners(plusoners);
+ } catch (Exception ex) {
+ LOGGER.error("Exception while trying to deserialize activity object: {}", ex);
}
+
+ return comment;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusEventClassifier.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusEventClassifier.java b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusEventClassifier.java
index 3dfac33..6e04dc9 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusEventClassifier.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusEventClassifier.java
@@ -18,40 +18,50 @@
package com.google.gplus.serializer.util;
+import org.apache.streams.jackson.StreamsJacksonMapper;
+
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.api.services.plus.model.Activity;
import com.google.api.services.plus.model.Person;
import com.google.common.base.Preconditions;
import org.apache.commons.lang.StringUtils;
-import org.apache.streams.jackson.StreamsJacksonMapper;
import java.io.IOException;
import java.io.Serializable;
+/**
+ * GPlusEventClassifier classifies GPlus Events.
+ */
public class GPlusEventClassifier implements Serializable {
- private static ObjectMapper mapper = StreamsJacksonMapper.getInstance();
- private static final String ACTIVITY_IDENTIFIER = "\"plus#activity\"";
- private static final String PERSON_IDENTIFIER = "\"plus#person\"";
-
- public static Class detectClass(String json) {
- Preconditions.checkNotNull(json);
- Preconditions.checkArgument(StringUtils.isNotEmpty(json));
-
- ObjectNode objectNode;
- try {
- objectNode = (ObjectNode) mapper.readTree(json);
- } catch (IOException e) {
- e.printStackTrace();
- return null;
- }
-
- if (objectNode.findValue("kind") != null && objectNode.get("kind").toString().equals(ACTIVITY_IDENTIFIER)) {
- return Activity.class;
- } else if(objectNode.findValue("kind") != null && objectNode.get("kind").toString().equals(PERSON_IDENTIFIER)) {
- return Person.class;
- } else {
- return ObjectNode.class;
- }
+
+ private static ObjectMapper mapper = StreamsJacksonMapper.getInstance();
+ private static final String ACTIVITY_IDENTIFIER = "\"plus#activity\"";
+ private static final String PERSON_IDENTIFIER = "\"plus#person\"";
+
+ /**
+ * Detect likely class of String json.
+ * @param json String json
+ * @return likely class
+ */
+ public static Class detectClass(String json) {
+ Preconditions.checkNotNull(json);
+ Preconditions.checkArgument(StringUtils.isNotEmpty(json));
+
+ ObjectNode objectNode;
+ try {
+ objectNode = (ObjectNode) mapper.readTree(json);
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ return null;
+ }
+
+ if (objectNode.findValue("kind") != null && objectNode.get("kind").toString().equals(ACTIVITY_IDENTIFIER)) {
+ return Activity.class;
+ } else if (objectNode.findValue("kind") != null && objectNode.get("kind").toString().equals(PERSON_IDENTIFIER)) {
+ return Person.class;
+ } else {
+ return ObjectNode.class;
}
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusPersonDeserializer.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusPersonDeserializer.java b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusPersonDeserializer.java
index e562d4f..f70335b 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusPersonDeserializer.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusPersonDeserializer.java
@@ -19,6 +19,8 @@
package com.google.gplus.serializer.util;
+import org.apache.streams.jackson.StreamsJacksonMapper;
+
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
@@ -28,7 +30,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.IntNode;
import com.google.api.client.util.Lists;
import com.google.api.services.plus.model.Person;
-import org.apache.streams.jackson.StreamsJacksonMapper;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,74 +38,80 @@ import java.io.IOException;
import java.util.List;
/**
- * Custom deserializer for GooglePlus' Person model
+ * Custom deserializer for GooglePlus' Person model.
*/
public class GPlusPersonDeserializer extends JsonDeserializer<Person> {
- private final static Logger LOGGER = LoggerFactory.getLogger(GPlusPersonDeserializer.class);
-
- /**
- * Because the GooglePlus Person object contains complex objects within its hierarchy, we have to use
- * a custom deserializer
- *
- * @param jsonParser
- * @param deserializationContext
- * @return The deserialized {@link com.google.api.services.plus.model.Person} object
- * @throws IOException
- * @throws JsonProcessingException
- */
- @Override
- public Person deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
- ObjectMapper m = StreamsJacksonMapper.getInstance();
-
- JsonNode node = jsonParser.getCodec().readTree(jsonParser);
- Person person = new Person();
- try {
-
- person.setCircledByCount((Integer) ((IntNode) node.get("circledByCount")).numberValue());
- person.setDisplayName(node.get("displayName").asText());
- person.setEtag(node.get("etag").asText());
- person.setGender(node.get("gender").asText());
- person.setId(node.get("id").asText());
-
- Person.Image image = new Person.Image();
- JsonNode imageNode = node.get("image");
- image.setIsDefault(imageNode.get("isDefault").asBoolean());
- image.setUrl(imageNode.get("url").asText());
- person.setImage(image);
-
- person.setIsPlusUser(node.get("isPlusUser").asBoolean());
- person.setKind(node.get("kind").asText());
-
- JsonNode nameNode = node.get("name");
- Person.Name name = m.readValue(m.writeValueAsString(nameNode), Person.Name.class);
- person.setName(name);
-
- person.setObjectType(node.get("objectType").asText());
-
- List<Person.Organizations> organizations = Lists.newArrayList();
- for (JsonNode orgNode : node.get("organizations")) {
- Person.Organizations org = m.readValue(m.writeValueAsString(orgNode), Person.Organizations.class);
- organizations.add(org);
- }
- person.setOrganizations(organizations);
-
- person.setUrl(node.get("url").asText());
- person.setVerified(node.get("verified").asBoolean());
-
- List<Person.Emails> emails = Lists.newArrayList();
- if( node.has("emails")) {
- for (JsonNode emailNode : node.get("emails")) {
- Person.Emails email = m.readValue(m.writeValueAsString(emailNode), Person.Emails.class);
- emails.add(email);
- }
- }
-
- if( node.has("tagline")) person.setTagline(node.get("tagline").asText());
- if( node.has("aboutMe")) person.setAboutMe(node.get("aboutMe").asText());
- } catch (Exception e) {
- LOGGER.error("Exception while trying to deserialize a Person object: {}", e);
- }
- return person;
+ private static final Logger LOGGER = LoggerFactory.getLogger(GPlusPersonDeserializer.class);
+
+ /**
+ * Because the GooglePlus Person object contains complex objects within its hierarchy, we have to use
+ * a custom deserializer
+ *
+ * @param jsonParser jsonParser
+ * @param deserializationContext deserializationContext
+ * @return The deserialized {@link com.google.api.services.plus.model.Person} object
+ * @throws IOException IOException
+ * @throws JsonProcessingException JsonProcessingException
+ */
+ @Override
+ public Person deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
+ ObjectMapper mapper = StreamsJacksonMapper.getInstance();
+
+ JsonNode node = jsonParser.getCodec().readTree(jsonParser);
+ Person person = new Person();
+ try {
+
+ person.setCircledByCount((Integer) ((IntNode) node.get("circledByCount")).numberValue());
+ person.setDisplayName(node.get("displayName").asText());
+ person.setEtag(node.get("etag").asText());
+ person.setGender(node.get("gender").asText());
+ person.setId(node.get("id").asText());
+
+ Person.Image image = new Person.Image();
+ JsonNode imageNode = node.get("image");
+ image.setIsDefault(imageNode.get("isDefault").asBoolean());
+ image.setUrl(imageNode.get("url").asText());
+ person.setImage(image);
+
+ person.setIsPlusUser(node.get("isPlusUser").asBoolean());
+ person.setKind(node.get("kind").asText());
+
+ JsonNode nameNode = node.get("name");
+ Person.Name name = mapper.readValue(mapper.writeValueAsString(nameNode), Person.Name.class);
+ person.setName(name);
+
+ person.setObjectType(node.get("objectType").asText());
+
+ List<Person.Organizations> organizations = Lists.newArrayList();
+ for (JsonNode orgNode : node.get("organizations")) {
+ Person.Organizations org = mapper.readValue(mapper.writeValueAsString(orgNode), Person.Organizations.class);
+ organizations.add(org);
+ }
+ person.setOrganizations(organizations);
+
+ person.setUrl(node.get("url").asText());
+ person.setVerified(node.get("verified").asBoolean());
+
+ List<Person.Emails> emails = Lists.newArrayList();
+
+ if ( node.has("emails")) {
+ for (JsonNode emailNode : node.get("emails")) {
+ Person.Emails email = mapper.readValue(mapper.writeValueAsString(emailNode), Person.Emails.class);
+ emails.add(email);
+ }
+ }
+
+ if ( node.has("tagline")) {
+ person.setTagline(node.get("tagline").asText());
+ }
+ if ( node.has("aboutMe")) {
+ person.setAboutMe(node.get("aboutMe").asText());
+ }
+ } catch (Exception ex) {
+ LOGGER.error("Exception while trying to deserialize a Person object: {}", ex);
}
+
+ return person;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GooglePlusActivityUtil.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GooglePlusActivityUtil.java b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GooglePlusActivityUtil.java
index cdc7e8f..1293d18 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GooglePlusActivityUtil.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GooglePlusActivityUtil.java
@@ -19,17 +19,19 @@
package com.google.gplus.serializer.util;
-import com.google.api.services.plus.model.Comment;
-import com.google.api.services.plus.model.Person;
-import com.google.common.base.Joiner;
-import com.google.common.base.Optional;
-import com.google.common.collect.Lists;
import org.apache.streams.exceptions.ActivitySerializerException;
import org.apache.streams.pojo.extensions.ExtensionUtil;
import org.apache.streams.pojo.json.Activity;
import org.apache.streams.pojo.json.ActivityObject;
import org.apache.streams.pojo.json.Image;
import org.apache.streams.pojo.json.Provider;
+
+import com.google.api.services.plus.model.Comment;
+import com.google.api.services.plus.model.Person;
+import com.google.common.base.Joiner;
+import com.google.common.base.Optional;
+import com.google.common.collect.Lists;
+
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,258 +41,263 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+/**
+ * GooglePlusActivityUtil helps convert c.g.Person and c.g.Activity into o.a.s.p.j.o.Page and o.a.s.p.j.Activity.
+ */
public class GooglePlusActivityUtil {
- private static final Logger LOGGER = LoggerFactory.getLogger(GooglePlusActivityUtil.class);
-
- /**
- * Given a {@link com.google.api.services.plus.model.Person} object and an
- * {@link org.apache.streams.pojo.json.Activity} object, fill out the appropriate details
- *
- * @param item
- * @param activity
- * @throws ActivitySerializerException
- */
- public static void updateActivity(Person item, Activity activity) throws ActivitySerializerException {
- activity.setActor(buildActor(item));
- activity.setVerb("update");
-
- activity.setId(formatId(activity.getVerb(),
- Optional.fromNullable(
- item.getId())
- .orNull()));
-
- activity.setProvider(getProvider());
- }
-
- /**
- * Given a {@link List} of {@link com.google.api.services.plus.model.Comment} objects and an
- * {@link org.apache.streams.pojo.json.Activity}, update that Activity to contain all comments
- *
- * @param comments
- * @param activity
- */
- public static void updateActivity(List<Comment> comments, Activity activity) {
- for(Comment comment : comments) {
- addComment(activity, comment);
- }
- Map<String, Object> extensions = ExtensionUtil.getInstance().ensureExtensions(activity);
- extensions.put("comment_count", comments.size());
+ private static final Logger LOGGER = LoggerFactory.getLogger(GooglePlusActivityUtil.class);
+
+ /**
+ * Given a {@link com.google.api.services.plus.model.Person} object and an
+ * {@link org.apache.streams.pojo.json.Activity} object, fill out the appropriate details.
+ *
+ * @param item Person
+ * @param activity Activity
+ * @throws ActivitySerializerException ActivitySerializerException
+ */
+ public static void updateActivity(Person item, Activity activity) throws ActivitySerializerException {
+ activity.setActor(buildActor(item));
+ activity.setVerb("update");
+
+ activity.setId(formatId(activity.getVerb(),
+ Optional.fromNullable(
+ item.getId())
+ .orNull()));
+
+ activity.setProvider(getProvider());
+ }
+
+ /**
+ * Given a {@link List} of {@link com.google.api.services.plus.model.Comment} objects and an
+ * {@link org.apache.streams.pojo.json.Activity}, update that Activity to contain all comments
+ *
+ * @param comments input List of Comment
+ * @param activity output Activity
+ */
+ public static void updateActivity(List<Comment> comments, Activity activity) {
+ for (Comment comment : comments) {
+ addComment(activity, comment);
}
- /**
- * Given a Google Plus {@link com.google.api.services.plus.model.Activity},
- * convert that into an Activity streams formatted {@link org.apache.streams.pojo.json.Activity}
- *
- * @param gPlusActivity
- * @param activity
- */
- public static void updateActivity(com.google.api.services.plus.model.Activity gPlusActivity, Activity activity) {
- activity.setActor(buildActor(gPlusActivity.getActor()));
- activity.setVerb("post");
- activity.setTitle(gPlusActivity.getTitle());
- activity.setUrl(gPlusActivity.getUrl());
- activity.setProvider(getProvider());
-
- if(gPlusActivity.getObject() != null) {
- activity.setContent(gPlusActivity.getObject().getContent());
- }
-
- activity.setId(formatId(activity.getVerb(),
- Optional.fromNullable(
- gPlusActivity.getId())
- .orNull()));
-
- DateTime published = new DateTime(String.valueOf(gPlusActivity.getPublished()));
- activity.setPublished(published);
-
- setObject(activity, gPlusActivity.getObject());
- addGPlusExtensions(activity, gPlusActivity);
+ Map<String, Object> extensions = ExtensionUtil.getInstance().ensureExtensions(activity);
+ extensions.put("comment_count", comments.size());
+ }
+
+ /**
+ * Given a Google Plus {@link com.google.api.services.plus.model.Activity},
+ * convert that into an Activity streams formatted {@link org.apache.streams.pojo.json.Activity}
+ *
+ * @param gPlusActivity input c.g.a.s.p.m.Activity
+ * @param activity output o.a.s.p.j.Activity
+ */
+ public static void updateActivity(com.google.api.services.plus.model.Activity gPlusActivity, Activity activity) {
+ activity.setActor(buildActor(gPlusActivity.getActor()));
+ activity.setVerb("post");
+ activity.setTitle(gPlusActivity.getTitle());
+ activity.setUrl(gPlusActivity.getUrl());
+ activity.setProvider(getProvider());
+
+ if (gPlusActivity.getObject() != null) {
+ activity.setContent(gPlusActivity.getObject().getContent());
}
- /**
- * Adds a single {@link com.google.api.services.plus.model.Comment} to the Object.Attachments
- * section of the passed in {@link org.apache.streams.pojo.json.Activity}
- *
- * @param activity
- * @param comment
- */
- private static void addComment(Activity activity, Comment comment) {
- ActivityObject obj = new ActivityObject();
-
- obj.setId(comment.getId());
- obj.setPublished(new DateTime(String.valueOf(comment.getPublished())));
- obj.setUpdated(new DateTime(String.valueOf(comment.getUpdated())));
- obj.setContent(comment.getObject().getContent());
- obj.setObjectType(comment.getObject().getObjectType());
-
- Map<String, Object> extensions = new HashMap<>();
- extensions.put("googlePlus", comment);
-
- obj.setAdditionalProperty("extensions", extensions);
-
- if(activity.getObject() == null) {
- activity.setObject(new ActivityObject());
- }
- if(activity.getObject().getAttachments() == null) {
- activity.getObject().setAttachments(new ArrayList<ActivityObject>());
- }
-
- activity.getObject().getAttachments().add(obj);
+ activity.setId(formatId(activity.getVerb(),
+ Optional.fromNullable(
+ gPlusActivity.getId())
+ .orNull()));
+
+ DateTime published = new DateTime(String.valueOf(gPlusActivity.getPublished()));
+ activity.setPublished(published);
+
+ setObject(activity, gPlusActivity.getObject());
+ addGPlusExtensions(activity, gPlusActivity);
+ }
+
+ /**
+ * Adds a single {@link com.google.api.services.plus.model.Comment} to the Object.Attachments
+ * section of the passed in {@link org.apache.streams.pojo.json.Activity}
+ *
+ * @param activity output o.a.s.p.j.Activity
+ * @param comment input c.g.a.s.p.m.Comment
+ */
+ private static void addComment(Activity activity, Comment comment) {
+ ActivityObject obj = new ActivityObject();
+
+ obj.setId(comment.getId());
+ obj.setPublished(new DateTime(String.valueOf(comment.getPublished())));
+ obj.setUpdated(new DateTime(String.valueOf(comment.getUpdated())));
+ obj.setContent(comment.getObject().getContent());
+ obj.setObjectType(comment.getObject().getObjectType());
+
+ Map<String, Object> extensions = new HashMap<>();
+ extensions.put("googlePlus", comment);
+
+ obj.setAdditionalProperty("extensions", extensions);
+
+ if (activity.getObject() == null) {
+ activity.setObject(new ActivityObject());
}
-
- /**
- * Add in necessary extensions from the passed in {@link com.google.api.services.plus.model.Activity} to the
- * {@link org.apache.streams.pojo.json.Activity} object
- *
- * @param activity
- * @param gPlusActivity
- */
- private static void addGPlusExtensions(Activity activity, com.google.api.services.plus.model.Activity gPlusActivity) {
-
- activity.getAdditionalProperties().put("googlePlus", gPlusActivity);
-
- Map<String, Object> extensions = ExtensionUtil.getInstance().ensureExtensions(activity);
-
- com.google.api.services.plus.model.Activity.PlusObject object = gPlusActivity.getObject();
-
- if(object != null) {
- com.google.api.services.plus.model.Activity.PlusObject.Plusoners plusoners = object.getPlusoners();
- if(plusoners != null) {
- Map<String, Object> likes = new HashMap<>();
- likes.put("count", plusoners.getTotalItems());
- extensions.put("likes", likes);
- }
-
- com.google.api.services.plus.model.Activity.PlusObject.Resharers resharers = object.getResharers();
- if(resharers != null) {
- Map<String, Object> rebroadcasts = new HashMap<>();
- rebroadcasts.put("count", resharers.getTotalItems());
- extensions.put("rebroadcasts", rebroadcasts);
- }
-
- extensions.put("keywords", object.getContent());
- }
+ if (activity.getObject().getAttachments() == null) {
+ activity.getObject().setAttachments(new ArrayList<ActivityObject>());
}
- /**
- * Set the {@link org.apache.streams.pojo.json.ActivityObject} field given the passed in
- * {@link com.google.api.services.plus.model.Activity.PlusObject}
- *
- * @param activity
- * @param object
- */
- private static void setObject(Activity activity, com.google.api.services.plus.model.Activity.PlusObject object) {
- if(object != null) {
- ActivityObject activityObject = new ActivityObject();
+ activity.getObject().getAttachments().add(obj);
+ }
- activityObject.setContent(object.getContent());
- activityObject.setObjectType(object.getObjectType());
+ /**
+ * Add in necessary extensions from the passed in {@link com.google.api.services.plus.model.Activity} to the
+ * {@link org.apache.streams.pojo.json.Activity} object
+ *
+ * @param activity output o.a.s.p.j.Activity
+ * @param gPlusActivity input c.g.a.s.p.m.Activity
+ */
+ private static void addGPlusExtensions(Activity activity, com.google.api.services.plus.model.Activity gPlusActivity) {
- java.util.List<ActivityObject> attachmentsList = new ArrayList<>();
- for (com.google.api.services.plus.model.Activity.PlusObject.Attachments attachments : object.getAttachments()) {
- ActivityObject attach = new ActivityObject();
+ activity.getAdditionalProperties().put("googlePlus", gPlusActivity);
- attach.setContent(attachments.getContent());
- attach.setDisplayName(attachments.getDisplayName());
- attach.setObjectType(attachments.getObjectType());
- attach.setUrl(attachments.getUrl());
+ Map<String, Object> extensions = ExtensionUtil.getInstance().ensureExtensions(activity);
- Image image = new Image();
- com.google.api.services.plus.model.Activity.PlusObject.Attachments.Image image1 = attachments.getImage();
+ com.google.api.services.plus.model.Activity.PlusObject object = gPlusActivity.getObject();
- if (image1 != null) {
- image.setUrl(image1.getUrl());
- attach.setImage(image);
- }
+ if (object != null) {
+ com.google.api.services.plus.model.Activity.PlusObject.Plusoners plusoners = object.getPlusoners();
+ if (plusoners != null) {
+ Map<String, Object> likes = new HashMap<>();
+ likes.put("count", plusoners.getTotalItems());
+ extensions.put("likes", likes);
+ }
- attachmentsList.add(attach);
- }
+ com.google.api.services.plus.model.Activity.PlusObject.Resharers resharers = object.getResharers();
+ if (resharers != null) {
+ Map<String, Object> rebroadcasts = new HashMap<>();
+ rebroadcasts.put("count", resharers.getTotalItems());
+ extensions.put("rebroadcasts", rebroadcasts);
+ }
- activityObject.setAttachments(attachmentsList);
-
- activity.setObject(activityObject);
- }
+ extensions.put("keywords", object.getContent());
}
-
- /**
- * Given a {@link com.google.api.services.plus.model.Activity.Actor} object, return a fully fleshed
- * out {@link org.apache.streams.pojo.json.ActivityObject} actor
- *
- * @param gPlusActor
- * @return {@link ActivityObject}
- */
- private static ActivityObject buildActor(com.google.api.services.plus.model.Activity.Actor gPlusActor) {
- ActivityObject actor = new ActivityObject();
-
- actor.setDisplayName(gPlusActor.getDisplayName());
- actor.setId(formatId(String.valueOf(gPlusActor.getId())));
- actor.setUrl(gPlusActor.getUrl());
+ }
+
+ /**
+ * Set the {@link org.apache.streams.pojo.json.ActivityObject} field given the passed in
+ * {@link com.google.api.services.plus.model.Activity.PlusObject}
+ *
+ * @param activity output $.object as o.a.s.p.j.ActivityObject
+ * @param plusObject input c.g.a.s.p.m.Activity.PlusObject
+ */
+ private static void setObject(Activity activity, com.google.api.services.plus.model.Activity.PlusObject plusObject) {
+ if (plusObject != null) {
+ ActivityObject activityObject = new ActivityObject();
+
+ activityObject.setContent(plusObject.getContent());
+ activityObject.setObjectType(plusObject.getObjectType());
+
+ java.util.List<ActivityObject> attachmentsList = new ArrayList<>();
+ for (com.google.api.services.plus.model.Activity.PlusObject.Attachments attachments : plusObject.getAttachments()) {
+ ActivityObject attach = new ActivityObject();
+
+ attach.setContent(attachments.getContent());
+ attach.setDisplayName(attachments.getDisplayName());
+ attach.setObjectType(attachments.getObjectType());
+ attach.setUrl(attachments.getUrl());
Image image = new Image();
- com.google.api.services.plus.model.Activity.Actor.Image googlePlusImage = gPlusActor.getImage();
+ com.google.api.services.plus.model.Activity.PlusObject.Attachments.Image image1 = attachments.getImage();
- if(googlePlusImage != null) {
- image.setUrl(googlePlusImage.getUrl());
+ if (image1 != null) {
+ image.setUrl(image1.getUrl());
+ attach.setImage(image);
}
- actor.setImage(image);
- return actor;
- }
- /**
- * Extract the relevant details from the passed in {@link com.google.api.services.plus.model.Person} object and build
- * an actor with them
- *
- * @param person
- * @return Actor constructed with relevant Person details
- */
- private static ActivityObject buildActor(Person person) {
- ActivityObject actor = new ActivityObject();
-
- actor.setUrl(person.getUrl());
- actor.setDisplayName(person.getDisplayName());
- actor.setId(formatId(String.valueOf(person.getId())));
-
- if(person.getAboutMe() != null) {
- actor.setSummary(person.getAboutMe());
- } else if(person.getTagline() != null) {
- actor.setSummary(person.getTagline());
- }
-
- Image image = new Image();
- Person.Image googlePlusImage = person.getImage();
-
- if(googlePlusImage != null) {
- image.setUrl(googlePlusImage.getUrl());
- }
- actor.setImage(image);
+ attachmentsList.add(attach);
+ }
- Map<String, Object> extensions = new HashMap<>();
+ activityObject.setAttachments(attachmentsList);
- extensions.put("followers", person.getCircledByCount());
- extensions.put("googleplus", person);
- actor.setAdditionalProperty("extensions", extensions);
-
- return actor;
+ activity.setObject(activityObject);
}
-
- /**
- * Gets the common googleplus {@link org.apache.streams.pojo.json.Provider} object
- * @return a provider object representing GooglePlus
- */
- public static Provider getProvider() {
- Provider provider = new Provider();
- provider.setId("id:providers:googleplus");
- provider.setDisplayName("GooglePlus");
- return provider;
+ }
+
+ /**
+ * Given a {@link com.google.api.services.plus.model.Activity.Actor} object, return a fully fleshed
+ * out {@link org.apache.streams.pojo.json.ActivityObject} actor
+ *
+ * @param gPlusActor input c.g.a.s.p.m.Activity.Actor
+ * @return {@link ActivityObject} output $.actor as o.a.s.p.j.ActivityObject
+ */
+ private static ActivityObject buildActor(com.google.api.services.plus.model.Activity.Actor gPlusActor) {
+ ActivityObject actor = new ActivityObject();
+
+ actor.setDisplayName(gPlusActor.getDisplayName());
+ actor.setId(formatId(String.valueOf(gPlusActor.getId())));
+ actor.setUrl(gPlusActor.getUrl());
+
+ Image image = new Image();
+ com.google.api.services.plus.model.Activity.Actor.Image googlePlusImage = gPlusActor.getImage();
+
+ if (googlePlusImage != null) {
+ image.setUrl(googlePlusImage.getUrl());
}
+ actor.setImage(image);
+
+ return actor;
+ }
+
+ /**
+ * Extract the relevant details from the passed in {@link com.google.api.services.plus.model.Person} object and build
+ * an actor with them
+ *
+ * @param person Person
+ * @return Actor constructed with relevant Person details
+ */
+ private static ActivityObject buildActor(Person person) {
+ ActivityObject actor = new ActivityObject();
+
+ actor.setUrl(person.getUrl());
+ actor.setDisplayName(person.getDisplayName());
+ actor.setId(formatId(String.valueOf(person.getId())));
+
+ if (person.getAboutMe() != null) {
+ actor.setSummary(person.getAboutMe());
+ } else if (person.getTagline() != null) {
+ actor.setSummary(person.getTagline());
+ }
+
+ Image image = new Image();
+ Person.Image googlePlusImage = person.getImage();
- /**
- * Formats the ID to conform with the Apache Streams activity ID convention
- * @param idparts the parts of the ID to join
- * @return a valid Activity ID in format "id:googleplus:part1:part2:...partN"
- */
- public static String formatId(String... idparts) {
- return Joiner.on(":").join(Lists.asList("id:googleplus", idparts));
+ if (googlePlusImage != null) {
+ image.setUrl(googlePlusImage.getUrl());
}
+ actor.setImage(image);
+
+ Map<String, Object> extensions = new HashMap<>();
+
+ extensions.put("followers", person.getCircledByCount());
+ extensions.put("googleplus", person);
+ actor.setAdditionalProperty("extensions", extensions);
+
+ return actor;
+ }
+
+ /**
+ * Gets the common googleplus {@link org.apache.streams.pojo.json.Provider} object
+ * @return a provider object representing GooglePlus
+ */
+ public static Provider getProvider() {
+ Provider provider = new Provider();
+ provider.setId("id:providers:googleplus");
+ provider.setDisplayName("GooglePlus");
+ return provider;
+ }
+
+ /**
+ * Formats the ID to conform with the Apache Streams activity ID convention
+ * @param idparts the parts of the ID to join
+ * @return a valid Activity ID in format "id:googleplus:part1:part2:...partN"
+ */
+ public static String formatId(String... idparts) {
+ return Joiner.on(":").join(Lists.asList("id:googleplus", idparts));
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/GooglePlusCommentSerDeIT.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/GooglePlusCommentSerDeIT.java b/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/GooglePlusCommentSerDeIT.java
index df15251..28b4db8 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/GooglePlusCommentSerDeIT.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/GooglePlusCommentSerDeIT.java
@@ -19,6 +19,9 @@
package com.google.gplus;
+import org.apache.streams.jackson.StreamsJacksonMapper;
+import org.apache.streams.pojo.json.Activity;
+
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
@@ -26,10 +29,9 @@ import com.google.api.client.util.Lists;
import com.google.api.services.plus.model.Comment;
import com.google.gplus.serializer.util.GPlusCommentDeserializer;
import com.google.gplus.serializer.util.GooglePlusActivityUtil;
+
import org.apache.commons.lang.StringUtils;
-import org.apache.streams.jackson.StreamsJacksonMapper;
-import org.apache.streams.pojo.json.Activity;
-import org.junit.*;
+import org.junit.Before;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -44,74 +46,77 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
/**
- * Tests conversion of gplus inputs to Activity
+ * Tests conversion of gplus inputs to Activity.
*/
public class GooglePlusCommentSerDeIT {
- private final static Logger LOGGER = LoggerFactory.getLogger(GooglePlusCommentSerDeIT.class);
- private ObjectMapper objectMapper;
- private GooglePlusActivityUtil googlePlusActivityUtil;
-
- @Before
- public void setup() {
- objectMapper = StreamsJacksonMapper.getInstance();
- SimpleModule simpleModule = new SimpleModule();
- simpleModule.addDeserializer(Comment.class, new GPlusCommentDeserializer());
- objectMapper.registerModule(simpleModule);
- objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-
- googlePlusActivityUtil = new GooglePlusActivityUtil();
- }
-
- @org.junit.Test
- public void testCommentObjects() {
- InputStream is = GooglePlusCommentSerDeIT.class.getResourceAsStream("/google_plus_comments_jsons.txt");
- InputStreamReader isr = new InputStreamReader(is);
- BufferedReader br = new BufferedReader(isr);
-
- Activity activity = new Activity();
- List<Comment> comments = Lists.newArrayList();
-
- try {
- while (br.ready()) {
- String line = br.readLine();
- if (!StringUtils.isEmpty(line)) {
- LOGGER.info("raw: {}", line);
- Comment comment = objectMapper.readValue(line, Comment.class);
-
- LOGGER.info("comment: {}", comment);
-
- assertNotNull(comment);
- assertNotNull(comment.getEtag());
- assertNotNull(comment.getId());
- assertNotNull(comment.getInReplyTo());
- assertNotNull(comment.getObject());
- assertNotNull(comment.getPlusoners());
- assertNotNull(comment.getPublished());
- assertNotNull(comment.getUpdated());
- assertNotNull(comment.getSelfLink());
- assertEquals(comment.getVerb(), "post");
-
- comments.add(comment);
- }
- }
-
- assertEquals(comments.size(), 3);
-
- googlePlusActivityUtil.updateActivity(comments, activity);
- assertNotNull(activity);
- assertNotNull(activity.getObject());
- assertEquals(activity.getObject().getAttachments().size(), 3);
- } catch (Exception e) {
- LOGGER.error("Exception while testing serializability: {}", e);
+ private static final Logger LOGGER = LoggerFactory.getLogger(GooglePlusCommentSerDeIT.class);
+ private ObjectMapper objectMapper;
+ private GooglePlusActivityUtil googlePlusActivityUtil;
+
+ /**
+ * setup.
+ */
+ @Before
+ public void setup() {
+ objectMapper = StreamsJacksonMapper.getInstance();
+ SimpleModule simpleModule = new SimpleModule();
+ simpleModule.addDeserializer(Comment.class, new GPlusCommentDeserializer());
+ objectMapper.registerModule(simpleModule);
+ objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+ googlePlusActivityUtil = new GooglePlusActivityUtil();
+ }
+
+ @org.junit.Test
+ public void testCommentObjects() {
+ InputStream is = GooglePlusCommentSerDeIT.class.getResourceAsStream("/google_plus_comments_jsons.txt");
+ InputStreamReader isr = new InputStreamReader(is);
+ BufferedReader br = new BufferedReader(isr);
+
+ Activity activity = new Activity();
+ List<Comment> comments = Lists.newArrayList();
+
+ try {
+ while (br.ready()) {
+ String line = br.readLine();
+ if (!StringUtils.isEmpty(line)) {
+ LOGGER.info("raw: {}", line);
+ Comment comment = objectMapper.readValue(line, Comment.class);
+
+ LOGGER.info("comment: {}", comment);
+
+ assertNotNull(comment);
+ assertNotNull(comment.getEtag());
+ assertNotNull(comment.getId());
+ assertNotNull(comment.getInReplyTo());
+ assertNotNull(comment.getObject());
+ assertNotNull(comment.getPlusoners());
+ assertNotNull(comment.getPublished());
+ assertNotNull(comment.getUpdated());
+ assertNotNull(comment.getSelfLink());
+ assertEquals(comment.getVerb(), "post");
+
+ comments.add(comment);
}
+ }
+
+ assertEquals(comments.size(), 3);
+
+ googlePlusActivityUtil.updateActivity(comments, activity);
+ assertNotNull(activity);
+ assertNotNull(activity.getObject());
+ assertEquals(activity.getObject().getAttachments().size(), 3);
+ } catch (Exception ex) {
+ LOGGER.error("Exception while testing serializability: {}", ex);
}
+ }
- @org.junit.Test
- public void testEmptyComments() {
- Activity activity = new Activity();
+ @org.junit.Test
+ public void testEmptyComments() {
+ Activity activity = new Activity();
- googlePlusActivityUtil.updateActivity(new ArrayList<Comment>(), activity);
+ googlePlusActivityUtil.updateActivity(new ArrayList<Comment>(), activity);
- assertNull(activity.getObject());
- }
+ assertNull(activity.getObject());
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/GooglePlusPersonSerDeIT.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/GooglePlusPersonSerDeIT.java b/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/GooglePlusPersonSerDeIT.java
index 0b101e9..be54aa1 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/GooglePlusPersonSerDeIT.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/GooglePlusPersonSerDeIT.java
@@ -19,18 +19,20 @@
package com.google.gplus;
-import com.fasterxml.jackson.databind.*;
+import org.apache.streams.jackson.StreamsJacksonMapper;
+import org.apache.streams.pojo.json.Activity;
+import org.apache.streams.pojo.json.ActivityObject;
+import org.apache.streams.pojo.json.Provider;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.google.api.services.plus.model.Person;
import com.google.gplus.serializer.util.GPlusPersonDeserializer;
import com.google.gplus.serializer.util.GooglePlusActivityUtil;
+
import org.apache.commons.lang.StringUtils;
-import org.apache.streams.jackson.StreamsJacksonMapper;
-import org.apache.streams.pojo.json.Activity;
-import org.apache.streams.pojo.json.ActivityObject;
-import org.apache.streams.pojo.json.Provider;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,59 +45,62 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
/**
- * Tests conversion of gplus inputs to Activity
+ * Tests conversion of gplus inputs to Activity.
*/
public class GooglePlusPersonSerDeIT {
- private final static Logger LOGGER = LoggerFactory.getLogger(GooglePlusPersonSerDeIT.class);
- private ObjectMapper objectMapper;
- private GooglePlusActivityUtil googlePlusActivityUtil;
-
- @Before
- public void setup() {
- objectMapper = StreamsJacksonMapper.getInstance();
- SimpleModule simpleModule = new SimpleModule();
- simpleModule.addDeserializer(Person.class, new GPlusPersonDeserializer());
- objectMapper.registerModule(simpleModule);
- objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-
- googlePlusActivityUtil = new GooglePlusActivityUtil();
- }
+ private static final Logger LOGGER = LoggerFactory.getLogger(GooglePlusPersonSerDeIT.class);
+ private ObjectMapper objectMapper;
+ private GooglePlusActivityUtil googlePlusActivityUtil;
+
+ /**
+ * setup.
+ */
+ @Before
+ public void setup() {
+ objectMapper = StreamsJacksonMapper.getInstance();
+ SimpleModule simpleModule = new SimpleModule();
+ simpleModule.addDeserializer(Person.class, new GPlusPersonDeserializer());
+ objectMapper.registerModule(simpleModule);
+ objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+ googlePlusActivityUtil = new GooglePlusActivityUtil();
+ }
+
+ @Test
+ public void testPersonObjects() {
+ InputStream is = GooglePlusPersonSerDeIT.class.getResourceAsStream("/google_plus_person_jsons.txt");
+ InputStreamReader isr = new InputStreamReader(is);
+ BufferedReader br = new BufferedReader(isr);
+
+ try {
+ while (br.ready()) {
+ String line = br.readLine();
+ if (!StringUtils.isEmpty(line)) {
+ LOGGER.info("raw: {}", line);
+ Activity activity = new Activity();
+
+ Person person = objectMapper.readValue(line, Person.class);
+
+ googlePlusActivityUtil.updateActivity(person, activity);
+ LOGGER.info("activity: {}", activity);
+
+ assertNotNull(activity);
+ assert (activity.getId().contains("id:googleplus:update"));
+ assertEquals(activity.getVerb(), "update");
+
+ Provider provider = activity.getProvider();
+ assertEquals(provider.getId(), "id:providers:googleplus");
+ assertEquals(provider.getDisplayName(), "GooglePlus");
+
+ ActivityObject actor = activity.getActor();
+ assertNotNull(actor.getImage());
+ assert (actor.getId().contains("id:googleplus:"));
+ assertNotNull(actor.getUrl());
- @Test
- public void TestPersonObjects() {
- InputStream is = GooglePlusPersonSerDeIT.class.getResourceAsStream("/google_plus_person_jsons.txt");
- InputStreamReader isr = new InputStreamReader(is);
- BufferedReader br = new BufferedReader(isr);
-
- try {
- while (br.ready()) {
- String line = br.readLine();
- if (!StringUtils.isEmpty(line)) {
- LOGGER.info("raw: {}", line);
- Activity activity = new Activity();
-
- Person person = objectMapper.readValue(line, Person.class);
-
- googlePlusActivityUtil.updateActivity(person, activity);
- LOGGER.info("activity: {}", activity);
-
- assertNotNull(activity);
- assert(activity.getId().contains("id:googleplus:update"));
- assertEquals(activity.getVerb(), "update");
-
- Provider provider = activity.getProvider();
- assertEquals(provider.getId(), "id:providers:googleplus");
- assertEquals(provider.getDisplayName(), "GooglePlus");
-
- ActivityObject actor = activity.getActor();
- assertNotNull(actor.getImage());
- assert(actor.getId().contains("id:googleplus:"));
- assertNotNull(actor.getUrl());
-
- }
- }
- } catch (Exception e) {
- LOGGER.error("Exception while testing serializability: {}", e);
}
+ }
+ } catch (Exception ex) {
+ LOGGER.error("Exception while testing serializability: {}", ex);
}
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/processor/GooglePlusActivitySerDeIT.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/processor/GooglePlusActivitySerDeIT.java b/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/processor/GooglePlusActivitySerDeIT.java
index 8ffec0b..d86001c 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/processor/GooglePlusActivitySerDeIT.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/processor/GooglePlusActivitySerDeIT.java
@@ -19,17 +19,19 @@
package com.google.gplus.processor;
+import org.apache.streams.jackson.StreamsJacksonMapper;
+import org.apache.streams.pojo.extensions.ExtensionUtil;
+import org.apache.streams.pojo.json.Activity;
+import org.apache.streams.pojo.json.ActivityObject;
+import org.apache.streams.pojo.json.Provider;
+
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.google.gplus.serializer.util.GPlusActivityDeserializer;
import com.google.gplus.serializer.util.GooglePlusActivityUtil;
+
import org.apache.commons.lang.StringUtils;
-import org.apache.streams.jackson.StreamsJacksonMapper;
-import org.apache.streams.pojo.extensions.ExtensionUtil;
-import org.apache.streams.pojo.json.Activity;
-import org.apache.streams.pojo.json.ActivityObject;
-import org.apache.streams.pojo.json.Provider;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
@@ -44,71 +46,75 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
/**
- * Tests conversion of gplus inputs to Activity
+ * Tests conversion of gplus inputs to Activity.
*/
public class GooglePlusActivitySerDeIT {
- private final static Logger LOGGER = LoggerFactory.getLogger(GooglePlusActivitySerDeIT.class);
- private ObjectMapper objectMapper;
-
- @Before
- public void setup() {
- objectMapper = StreamsJacksonMapper.getInstance();
- SimpleModule simpleModule = new SimpleModule();
- simpleModule.addDeserializer(com.google.api.services.plus.model.Activity.class, new GPlusActivityDeserializer());
- objectMapper.registerModule(simpleModule);
- objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- }
-
- @Test
- @SuppressWarnings("unchecked")
- public void TestActivityObjects() {
- InputStream is = GooglePlusActivitySerDeIT.class.getResourceAsStream("/google_plus_activity_jsons.txt");
- InputStreamReader isr = new InputStreamReader(is);
- BufferedReader br = new BufferedReader(isr);
-
- try {
- while (br.ready()) {
- String line = br.readLine();
- if (!StringUtils.isEmpty(line)) {
- LOGGER.info("raw: {}", line);
- Activity activity = new Activity();
-
- com.google.api.services.plus.model.Activity gPlusActivity = objectMapper.readValue(line, com.google.api.services.plus.model.Activity.class);
-
- GooglePlusActivityUtil.updateActivity(gPlusActivity, activity);
- LOGGER.info("activity: {}", activity);
-
- assertNotNull(activity);
- assert(activity.getId().contains("id:googleplus:post"));
- assertEquals(activity.getVerb(), "post");
-
- Provider provider = activity.getProvider();
- assertEquals(provider.getId(), "id:providers:googleplus");
- assertEquals(provider.getDisplayName(), "GooglePlus");
-
- ActivityObject actor = activity.getActor();
- assertNotNull(actor.getImage());
- assert(actor.getId().contains("id:googleplus:"));
- assertNotNull(actor.getUrl());
-
- assertNotNull(activity.getPublished());
- assertNotNull(activity.getTitle());
- assertNotNull(activity.getUrl());
-
- Map<String, Object> extensions = ExtensionUtil.getInstance().getExtensions(activity);
- assertNotNull(extensions);
-
- if(activity.getContent() != null) {
- assertNotNull(extensions.get("rebroadcasts"));
- assertNotNull(extensions.get("keywords"));
- assertNotNull(extensions.get("likes"));
- assert (((Map<String, Object>) extensions.get("rebroadcasts")).containsKey("count"));
- assert (((Map<String, Object>) extensions.get("likes")).containsKey("count"));
- }
- }
- }
- } catch (Exception e) {
- LOGGER.error("Exception while testing serializability: {}", e);
+ private static final Logger LOGGER = LoggerFactory.getLogger(GooglePlusActivitySerDeIT.class);
+ private ObjectMapper objectMapper;
+
+ /**
+ * setup.
+ */
+ @Before
+ public void setup() {
+ objectMapper = StreamsJacksonMapper.getInstance();
+ SimpleModule simpleModule = new SimpleModule();
+ simpleModule.addDeserializer(com.google.api.services.plus.model.Activity.class, new GPlusActivityDeserializer());
+ objectMapper.registerModule(simpleModule);
+ objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ }
+
+ @Test
+ @SuppressWarnings("unchecked")
+ public void testActivityObjects() {
+ InputStream is = GooglePlusActivitySerDeIT.class.getResourceAsStream("/google_plus_activity_jsons.txt");
+ InputStreamReader isr = new InputStreamReader(is);
+ BufferedReader br = new BufferedReader(isr);
+
+ try {
+ while (br.ready()) {
+ String line = br.readLine();
+ if (!StringUtils.isEmpty(line)) {
+ LOGGER.info("raw: {}", line);
+ Activity activity = new Activity();
+
+ com.google.api.services.plus.model.Activity googlePlusActivity =
+ objectMapper.readValue(line, com.google.api.services.plus.model.Activity.class);
+
+ GooglePlusActivityUtil.updateActivity(googlePlusActivity, activity);
+ LOGGER.info("activity: {}", activity);
+
+ assertNotNull(activity);
+ assert (activity.getId().contains("id:googleplus:post"));
+ assertEquals(activity.getVerb(), "post");
+
+ Provider provider = activity.getProvider();
+ assertEquals(provider.getId(), "id:providers:googleplus");
+ assertEquals(provider.getDisplayName(), "GooglePlus");
+
+ ActivityObject actor = activity.getActor();
+ assertNotNull(actor.getImage());
+ assert (actor.getId().contains("id:googleplus:"));
+ assertNotNull(actor.getUrl());
+
+ assertNotNull(activity.getPublished());
+ assertNotNull(activity.getTitle());
+ assertNotNull(activity.getUrl());
+
+ Map<String, Object> extensions = ExtensionUtil.getInstance().getExtensions(activity);
+ assertNotNull(extensions);
+
+ if (activity.getContent() != null) {
+ assertNotNull(extensions.get("rebroadcasts"));
+ assertNotNull(extensions.get("keywords"));
+ assertNotNull(extensions.get("likes"));
+ assert (((Map<String, Object>) extensions.get("rebroadcasts")).containsKey("count"));
+ assert (((Map<String, Object>) extensions.get("likes")).containsKey("count"));
+ }
}
+ }
+ } catch (Exception ex) {
+ LOGGER.error("Exception while testing serializability: {}", ex);
}
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/processor/GooglePlusTypeConverterTest.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/processor/GooglePlusTypeConverterTest.java b/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/processor/GooglePlusTypeConverterTest.java
index 59bb6bf..c27351c 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/processor/GooglePlusTypeConverterTest.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/test/java/com/google/gplus/processor/GooglePlusTypeConverterTest.java
@@ -18,6 +18,11 @@
package com.google.gplus.processor;
+import org.apache.streams.core.StreamsDatum;
+import org.apache.streams.exceptions.ActivitySerializerException;
+import org.apache.streams.jackson.StreamsJacksonMapper;
+import org.apache.streams.pojo.json.Activity;
+
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
@@ -25,11 +30,8 @@ import com.google.api.services.plus.model.Person;
import com.google.gplus.serializer.util.GPlusActivityDeserializer;
import com.google.gplus.serializer.util.GPlusPersonDeserializer;
import com.google.gplus.serializer.util.GooglePlusActivityUtil;
+
import org.apache.commons.lang.StringUtils;
-import org.apache.streams.core.StreamsDatum;
-import org.apache.streams.exceptions.ActivitySerializerException;
-import org.apache.streams.jackson.StreamsJacksonMapper;
-import org.apache.streams.pojo.json.Activity;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
@@ -46,85 +48,89 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
/**
- * Tests conversion of gplus inputs to Activity
+ * Tests conversion of gplus inputs to Activity.
*/
@Ignore("ignore until test resources are available.")
public class GooglePlusTypeConverterTest {
- private final static Logger LOGGER = LoggerFactory.getLogger(GooglePlusTypeConverterTest.class);
- private GooglePlusTypeConverter googlePlusTypeConverter;
- private ObjectMapper objectMapper;
-
- @Before
- public void setup() {
- objectMapper = StreamsJacksonMapper.getInstance();
- SimpleModule simpleModule = new SimpleModule();
- simpleModule.addDeserializer(Person.class, new GPlusPersonDeserializer());
- simpleModule.addDeserializer(com.google.api.services.plus.model.Activity.class, new GPlusActivityDeserializer());
- objectMapper.registerModule(simpleModule);
- objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-
- googlePlusTypeConverter = new GooglePlusTypeConverter();
- googlePlusTypeConverter.prepare(null);
+ private static final Logger LOGGER = LoggerFactory.getLogger(GooglePlusTypeConverterTest.class);
+ private GooglePlusTypeConverter googlePlusTypeConverter;
+ private ObjectMapper objectMapper;
+
+ /**
+ * setup.
+ */
+ @Before
+ public void setup() {
+ objectMapper = StreamsJacksonMapper.getInstance();
+ SimpleModule simpleModule = new SimpleModule();
+ simpleModule.addDeserializer(Person.class, new GPlusPersonDeserializer());
+ simpleModule.addDeserializer(com.google.api.services.plus.model.Activity.class, new GPlusActivityDeserializer());
+ objectMapper.registerModule(simpleModule);
+ objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+ googlePlusTypeConverter = new GooglePlusTypeConverter();
+ googlePlusTypeConverter.prepare(null);
+ }
+
+ @Test
+ public void testProcessPerson() throws IOException, ActivitySerializerException {
+ InputStream is = GooglePlusTypeConverterTest.class.getResourceAsStream("/google_plus_person_jsons.txt");
+ InputStreamReader isr = new InputStreamReader(is);
+ BufferedReader br = new BufferedReader(isr);
+
+ while (br.ready()) {
+ String line = br.readLine();
+ if (!StringUtils.isEmpty(line)) {
+ LOGGER.info("raw: {}", line);
+ Activity activity = new Activity();
+
+ Person person = objectMapper.readValue(line, Person.class);
+ StreamsDatum streamsDatum = new StreamsDatum(person);
+
+ assertNotNull(streamsDatum.getDocument());
+
+ List<StreamsDatum> retList = googlePlusTypeConverter.process(streamsDatum);
+ GooglePlusActivityUtil.updateActivity(person, activity);
+
+ assertEquals(retList.size(), 1);
+ assert (retList.get(0).getDocument() instanceof Activity);
+ assertEquals(activity, retList.get(0).getDocument());
+ }
}
+ }
- @Test
- public void testProcessPerson() throws IOException, ActivitySerializerException {
- InputStream is = GooglePlusTypeConverterTest.class.getResourceAsStream("/google_plus_person_jsons.txt");
- InputStreamReader isr = new InputStreamReader(is);
- BufferedReader br = new BufferedReader(isr);
+ @Test
+ public void testProcessActivity() throws IOException, ActivitySerializerException {
+ InputStream is = GooglePlusTypeConverterTest.class.getResourceAsStream("/google_plus_activity_jsons.txt");
+ InputStreamReader isr = new InputStreamReader(is);
+ BufferedReader br = new BufferedReader(isr);
- while (br.ready()) {
- String line = br.readLine();
- if (!StringUtils.isEmpty(line)) {
- LOGGER.info("raw: {}", line);
- Activity activity = new Activity();
+ while (br.ready()) {
+ String line = br.readLine();
+ if (!StringUtils.isEmpty(line)) {
+ LOGGER.info("raw: {}", line);
+ Activity activity = new Activity();
- Person person = objectMapper.readValue(line, Person.class);
- StreamsDatum streamsDatum = new StreamsDatum(person);
+ com.google.api.services.plus.model.Activity gPlusActivity =
+ objectMapper.readValue(line, com.google.api.services.plus.model.Activity.class);
+ StreamsDatum streamsDatum = new StreamsDatum(gPlusActivity);
- assertNotNull(streamsDatum.getDocument());
+ assertNotNull(streamsDatum.getDocument());
- List<StreamsDatum> retList = googlePlusTypeConverter.process(streamsDatum);
- GooglePlusActivityUtil.updateActivity(person, activity);
+ List<StreamsDatum> retList = googlePlusTypeConverter.process(streamsDatum);
+ GooglePlusActivityUtil.updateActivity(gPlusActivity, activity);
- assertEquals(retList.size(), 1);
- assert(retList.get(0).getDocument() instanceof Activity);
- assertEquals(activity, retList.get(0).getDocument());
- }
- }
+ assertEquals(retList.size(), 1);
+ assert (retList.get(0).getDocument() instanceof Activity);
+ assertEquals(activity, retList.get(0).getDocument());
+ }
}
+ }
- @Test
- public void testProcessActivity() throws IOException, ActivitySerializerException{
- InputStream is = GooglePlusTypeConverterTest.class.getResourceAsStream("/google_plus_activity_jsons.txt");
- InputStreamReader isr = new InputStreamReader(is);
- BufferedReader br = new BufferedReader(isr);
-
- while (br.ready()) {
- String line = br.readLine();
- if (!StringUtils.isEmpty(line)) {
- LOGGER.info("raw: {}", line);
- Activity activity = new Activity();
-
- com.google.api.services.plus.model.Activity gPlusActivity = objectMapper.readValue(line, com.google.api.services.plus.model.Activity.class);
- StreamsDatum streamsDatum = new StreamsDatum(gPlusActivity);
-
- assertNotNull(streamsDatum.getDocument());
-
- List<StreamsDatum> retList = googlePlusTypeConverter.process(streamsDatum);
- GooglePlusActivityUtil.updateActivity(gPlusActivity, activity);
+ @Test
+ public void testEmptyProcess() {
+ List<StreamsDatum> retList = googlePlusTypeConverter.process(null);
- assertEquals(retList.size(), 1);
- assert(retList.get(0).getDocument() instanceof Activity);
- assertEquals(activity, retList.get(0).getDocument());
- }
- }
- }
-
- @Test
- public void testEmptyProcess() {
- List<StreamsDatum> retList = googlePlusTypeConverter.process(null);
-
- assertEquals(retList.size(), 0);
- }
+ assertEquals(retList.size(), 0);
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/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 f7b3dfb..4cae4c0 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
@@ -19,82 +19,83 @@
package com.google.gplus.provider;
-import com.carrotsearch.randomizedtesting.RandomizedTest;
-import com.carrotsearch.randomizedtesting.annotations.Repeat;
-import com.google.api.services.plus.Plus;
-import com.google.common.collect.Lists;
import org.apache.streams.core.StreamsDatum;
import org.apache.streams.google.gplus.GPlusConfiguration;
import org.apache.streams.google.gplus.GPlusOAuthConfiguration;
import org.apache.streams.google.gplus.configuration.UserInfo;
import org.apache.streams.util.api.requests.backoff.BackOffStrategy;
+
+import com.carrotsearch.randomizedtesting.RandomizedTest;
+import com.carrotsearch.randomizedtesting.annotations.Repeat;
+import com.google.api.services.plus.Plus;
+import com.google.common.collect.Lists;
+
import org.junit.Test;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.BlockingQueue;
-import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
/**
* Unit tests for {@link com.google.gplus.provider.AbstractGPlusProvider}
*/
-public class TestAbstractGPlusProvider extends RandomizedTest{
+public class TestAbstractGPlusProvider extends RandomizedTest {
- /**
- * Test that every collector will be run and that data queued from the collectors will be processed.
- */
- @Test
- @Repeat(iterations = 3)
- public void testDataCollectorRunsPerUser() {
- int numUsers = randomIntBetween(1, 1000);
- List<UserInfo> userList = Lists.newLinkedList();
- for(int i=0; i < numUsers; ++i) {
- userList.add(new UserInfo());
- }
- GPlusConfiguration config = new GPlusConfiguration();
- GPlusOAuthConfiguration oauth = new GPlusOAuthConfiguration();
- oauth.setAppName("a");
- oauth.setPathToP12KeyFile("a");
- oauth.setServiceAccountEmailAddress("a");
- config.setOauth(oauth);
- config.setGooglePlusUsers(userList);
- AbstractGPlusProvider provider = new AbstractGPlusProvider(config) {
+ /**
+ * Test that every collector will be run and that data queued from the collectors will be processed.
+ */
+ @Test
+ @Repeat(iterations = 3)
+ public void testDataCollectorRunsPerUser() {
+ int numUsers = randomIntBetween(1, 1000);
+ List<UserInfo> userList = Lists.newLinkedList();
+ for (int i = 0; i < numUsers; ++i) {
+ userList.add(new UserInfo());
+ }
+ GPlusConfiguration config = new GPlusConfiguration();
+ GPlusOAuthConfiguration oauth = new GPlusOAuthConfiguration();
+ oauth.setAppName("a");
+ oauth.setPathToP12KeyFile("a");
+ oauth.setServiceAccountEmailAddress("a");
+ config.setOauth(oauth);
+ config.setGooglePlusUsers(userList);
+ AbstractGPlusProvider provider = new AbstractGPlusProvider(config) {
- @Override
- protected Plus createPlusClient() throws IOException {
- return mock(Plus.class);
- }
+ @Override
+ protected Plus createPlusClient() throws IOException {
+ return mock(Plus.class);
+ }
- @Override
- protected Runnable getDataCollector(BackOffStrategy strategy, BlockingQueue<StreamsDatum> queue, Plus plus, UserInfo userInfo) {
- final BlockingQueue<StreamsDatum> q = queue;
- return new Runnable() {
- @Override
- public void run() {
- try {
- q.put(new StreamsDatum(null));
- } catch (InterruptedException ie) {
- fail("Test was interrupted");
- }
- }
- };
+ @Override
+ protected Runnable getDataCollector(BackOffStrategy strategy, BlockingQueue<StreamsDatum> queue, Plus plus, UserInfo userInfo) {
+ final BlockingQueue<StreamsDatum> q = queue;
+ return new Runnable() {
+ @Override
+ public void run() {
+ try {
+ q.put(new StreamsDatum(null));
+ } catch (InterruptedException ie) {
+ fail("Test was interrupted");
}
+ }
};
+ }
+ };
- try {
- provider.prepare(null);
- provider.startStream();
- int datumCount = 0;
- while(provider.isRunning()) {
- datumCount += provider.readCurrent().size();
- }
- assertEquals(numUsers, datumCount);
- } finally {
- provider.cleanUp();
- }
+ try {
+ provider.prepare(null);
+ provider.startStream();
+ int datumCount = 0;
+ while (provider.isRunning()) {
+ datumCount += provider.readCurrent().size();
+ }
+ assertEquals(numUsers, datumCount);
+ } finally {
+ provider.cleanUp();
}
+ }
}