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(); } + } }
