http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTwitterActivityConverter.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTwitterActivityConverter.java b/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTwitterActivityConverter.java deleted file mode 100644 index 408e936..0000000 --- a/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTwitterActivityConverter.java +++ /dev/null @@ -1,272 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. -*/ -package org.apache.streams.datasift.serializer; - - -import com.google.common.base.Joiner; -import com.google.common.base.Optional; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import org.apache.streams.datasift.Datasift; -import org.apache.streams.datasift.interaction.Author; -import org.apache.streams.datasift.interaction.Interaction; -import org.apache.streams.datasift.twitter.DatasiftTwitterUser; -import org.apache.streams.datasift.twitter.Retweet; -import org.apache.streams.datasift.twitter.Twitter; -import org.apache.streams.pojo.json.Activity; -import org.apache.streams.pojo.json.Actor; -import org.apache.streams.pojo.json.Image; -import org.apache.streams.twitter.serializer.util.TwitterActivityUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static org.apache.streams.data.util.ActivityUtil.ensureExtensions; - -/** - * - */ -public class DatasiftTwitterActivityConverter extends DatasiftInteractionActivityConverter { - - private static final Logger LOGGER = LoggerFactory.getLogger(DatasiftTwitterActivityConverter.class); - - private static DatasiftTwitterActivityConverter instance = new DatasiftTwitterActivityConverter(); - - public static DatasiftTwitterActivityConverter getInstance() { - return instance; - } - - @Override - public Activity convert(Datasift event) { - Activity activity = new Activity(); - Twitter twitter = event.getTwitter(); - boolean retweet = twitter.getRetweet() != null; - - activity.setActor(buildActor(event, twitter)); //TODO - if(retweet) { - activity.setVerb("share"); - } else { - activity.setVerb("post"); - } - activity.setObject(buildActivityObject(event.getInteraction())); - activity.setId(formatId(activity.getVerb(), event.getInteraction().getId())); - activity.setTarget(buildTarget(event.getInteraction())); - activity.setPublished(event.getInteraction().getCreatedAt()); - activity.setGenerator(buildGenerator(event.getInteraction())); - activity.setIcon(getIcon(event.getInteraction())); - activity.setProvider(TwitterActivityUtil.getProvider()); - activity.setTitle(event.getInteraction().getTitle()); - activity.setContent(event.getInteraction().getContent()); - activity.setUrl(event.getInteraction().getLink()); - if(retweet) - activity.setLinks(getLinks(twitter.getRetweet())); - else - activity.setLinks(getLinks(twitter)); - addDatasiftExtension(activity, event); - if( twitter.getGeo() != null) { - addLocationExtension(activity, twitter); - } - addTwitterExtensions(activity, twitter, event.getInteraction()); - return activity; - } - - /** - * Get the links from this tweet as a list - * @param twitter - * @return the links from the tweet - */ - public List<String> getLinks(Twitter twitter) { - return getLinks(twitter.getLinks()); - } - - /** - * Get the links from this tweet as a list - * @param retweet - * @return the links from the tweet - */ - public List<String> getLinks(Retweet retweet) { - return getLinks(retweet.getLinks()); - } - - /** - * Converts the list of objects to a list of strings - * @param links - * @return - */ - private List<String> getLinks(List<Object> links) { - if(links == null) - return Lists.newArrayList(); - List<String> result = Lists.newLinkedList(); - for(Object obj : links) { - if(obj instanceof String) { - result.add((String) obj); - } else { - LOGGER.warn("Links is not instance of String : {}", obj.getClass().getName()); - } - } - return result; - } - - public Actor buildActor(Datasift event, Twitter twitter) { - DatasiftTwitterUser user = twitter.getUser(); - Actor actor = super.buildActor(event.getInteraction()); - if(user == null) { - user = twitter.getRetweet().getUser(); - } - - actor.setDisplayName(user.getName()); - actor.setId(formatId(Optional.fromNullable( - user.getIdStr()) - .or(Optional.of(user.getId().toString())) - .orNull())); - actor.setSummary(user.getDescription()); - try { - actor.setPublished(user.getCreatedAt()); - } catch (Exception e) { - LOGGER.warn("Exception trying to parse date : {}", e); - } - - if(user.getUrl() != null) { - actor.setUrl(user.getUrl()); - } - - Map<String, Object> extensions = new HashMap<String,Object>(); - extensions.put("location", user.getLocation()); - extensions.put("posts", user.getStatusesCount()); - extensions.put("followers", user.getFollowersCount()); - extensions.put("screenName", user.getScreenName()); - if(user.getAdditionalProperties() != null) { - extensions.put("favorites", user.getFavouritesCount()); - } - - Image profileImage = new Image(); - String profileUrl = null; - Author author = event.getInteraction().getAuthor(); - if( author != null ) - profileUrl = author.getAvatar(); - if(profileUrl == null && user.getProfileImageUrlHttps() != null) { - Object url = user.getProfileImageUrlHttps(); - if(url instanceof String) - profileUrl = (String) url; - } - if(profileUrl == null) { - profileUrl = user.getProfileImageUrl(); - } - profileImage.setUrl(profileUrl); - actor.setImage(profileImage); - - actor.setAdditionalProperty("extensions", extensions); - return actor; - } - - public void addLocationExtension(Activity activity, Twitter twitter) { - Map<String, Object> extensions = ensureExtensions(activity); - Map<String, Object> location = Maps.newHashMap(); - double[] coordiantes = new double[] { twitter.getGeo().getLongitude(), twitter.getGeo().getLatitude() }; - Map<String, Object> coords = Maps.newHashMap(); - coords.put("coordinates", coordiantes); - coords.put("type", "geo_point"); - location.put("coordinates", coords); - extensions.put("location", location); - } - - public void addTwitterExtensions(Activity activity, Twitter twitter, Interaction interaction) { - Retweet retweet = twitter.getRetweet(); - Map<String, Object> extensions = ensureExtensions(activity); - List<String> hashTags = Lists.newLinkedList(); - List<Object> hts = Lists.newLinkedList(); - if(twitter.getHashtags() != null) { - hts = twitter.getHashtags(); - } else if (retweet != null) { - hts = retweet.getHashtags(); - } - if(hts != null) { - for(Object ht : twitter.getHashtags()) { - if(ht instanceof String) { - hashTags.add((String) ht); - } else { - LOGGER.warn("Hashtag was not instance of String : {}", ht.getClass().getName()); - } - } - } - extensions.put("hashtags", hashTags); - - - if(retweet != null) { - Map<String, Object> rebroadcasts = Maps.newHashMap(); - rebroadcasts.put("perspectival", true); - rebroadcasts.put("count", retweet.getCount()); - extensions.put("rebroadcasts", rebroadcasts); - } - - if(interaction.getAdditionalProperties() != null) { - ArrayList<Map<String,Object>> userMentions = createUserMentions(interaction); - - if(userMentions.size() > 0) - extensions.put("user_mentions", userMentions); - } - - extensions.put("keywords", interaction.getContent()); - } - - /** - * Returns an ArrayList of all UserMentions in this interaction - * Note: The ID list and the handle lists do not necessarily correspond 1:1 for this provider - * If those lists are the same size, then they will be merged into individual UserMention - * objects. However, if they are not the same size, a new UserMention object will be created - * for each entry in both lists. - * - * @param interaction - * @return - */ - private ArrayList<Map<String,Object>> createUserMentions(Interaction interaction) { - ArrayList<String> mentions = (ArrayList<String>) interaction.getAdditionalProperties().get("mentions"); - ArrayList<Long> mentionIds = (ArrayList<Long>) interaction.getAdditionalProperties().get("mention_ids"); - ArrayList<Map<String,Object>> userMentions = new ArrayList<Map<String,Object>>(); - - if(mentions != null && !mentions.isEmpty()) { - for(int x = 0; x < mentions.size(); x ++) { - Map<String, Object> actor = new HashMap<String, Object>(); - actor.put("displayName", mentions.get(x)); - actor.put("handle", mentions.get(x)); - - userMentions.add(actor); - } - } - if(mentionIds != null && !mentionIds.isEmpty()) { - for(int x = 0; x < mentionIds.size(); x ++) { - Map<String, Object> actor = new HashMap<String, Object>(); - actor.put("id", "id:twitter:" + mentionIds.get(x)); - - userMentions.add(actor); - } - } - - return userMentions; - } - - public static String formatId(String... idparts) { - return Joiner.on(":").join(Lists.asList("id:twitter", idparts)); - } - -}
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTwitterActivitySerializer.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTwitterActivitySerializer.java b/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTwitterActivitySerializer.java new file mode 100644 index 0000000..8ac84f6 --- /dev/null +++ b/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/serializer/DatasiftTwitterActivitySerializer.java @@ -0,0 +1,272 @@ +/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/ +package org.apache.streams.datasift.serializer; + + +import com.google.common.base.Joiner; +import com.google.common.base.Optional; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.apache.streams.datasift.Datasift; +import org.apache.streams.datasift.interaction.Author; +import org.apache.streams.datasift.interaction.Interaction; +import org.apache.streams.datasift.twitter.DatasiftTwitterUser; +import org.apache.streams.datasift.twitter.Retweet; +import org.apache.streams.datasift.twitter.Twitter; +import org.apache.streams.pojo.json.Activity; +import org.apache.streams.pojo.json.Actor; +import org.apache.streams.pojo.json.Image; +import org.apache.streams.twitter.serializer.util.TwitterActivityUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.apache.streams.data.util.ActivityUtil.ensureExtensions; + +/** + * + */ +public class DatasiftTwitterActivitySerializer extends DatasiftInteractionActivitySerializer { + + private static final Logger LOGGER = LoggerFactory.getLogger(DatasiftTwitterActivitySerializer.class); + + private static DatasiftTwitterActivitySerializer instance = new DatasiftTwitterActivitySerializer(); + + public static DatasiftTwitterActivitySerializer getInstance() { + return instance; + } + + @Override + public Activity convert(Datasift event) { + Activity activity = new Activity(); + Twitter twitter = event.getTwitter(); + boolean retweet = twitter.getRetweet() != null; + + activity.setActor(buildActor(event, twitter)); //TODO + if(retweet) { + activity.setVerb("share"); + } else { + activity.setVerb("post"); + } + activity.setObject(buildActivityObject(event.getInteraction())); + activity.setId(formatId(activity.getVerb(), event.getInteraction().getId())); + activity.setTarget(buildTarget(event.getInteraction())); + activity.setPublished(event.getInteraction().getCreatedAt()); + activity.setGenerator(buildGenerator(event.getInteraction())); + activity.setIcon(getIcon(event.getInteraction())); + activity.setProvider(TwitterActivityUtil.getProvider()); + activity.setTitle(event.getInteraction().getTitle()); + activity.setContent(event.getInteraction().getContent()); + activity.setUrl(event.getInteraction().getLink()); + if(retweet) + activity.setLinks(getLinks(twitter.getRetweet())); + else + activity.setLinks(getLinks(twitter)); + addDatasiftExtension(activity, event); + if( twitter.getGeo() != null) { + addLocationExtension(activity, twitter); + } + addTwitterExtensions(activity, twitter, event.getInteraction()); + return activity; + } + + /** + * Get the links from this tweet as a list + * @param twitter + * @return the links from the tweet + */ + public List<String> getLinks(Twitter twitter) { + return getLinks(twitter.getLinks()); + } + + /** + * Get the links from this tweet as a list + * @param retweet + * @return the links from the tweet + */ + public List<String> getLinks(Retweet retweet) { + return getLinks(retweet.getLinks()); + } + + /** + * Converts the list of objects to a list of strings + * @param links + * @return + */ + private List<String> getLinks(List<Object> links) { + if(links == null) + return Lists.newArrayList(); + List<String> result = Lists.newLinkedList(); + for(Object obj : links) { + if(obj instanceof String) { + result.add((String) obj); + } else { + LOGGER.warn("Links is not instance of String : {}", obj.getClass().getName()); + } + } + return result; + } + + public Actor buildActor(Datasift event, Twitter twitter) { + DatasiftTwitterUser user = twitter.getUser(); + Actor actor = super.buildActor(event.getInteraction()); + if(user == null) { + user = twitter.getRetweet().getUser(); + } + + actor.setDisplayName(user.getName()); + actor.setId(formatId(Optional.fromNullable( + user.getIdStr()) + .or(Optional.of(user.getId().toString())) + .orNull())); + actor.setSummary(user.getDescription()); + try { + actor.setPublished(user.getCreatedAt()); + } catch (Exception e) { + LOGGER.warn("Exception trying to parse date : {}", e); + } + + if(user.getUrl() != null) { + actor.setUrl(user.getUrl()); + } + + Map<String, Object> extensions = new HashMap<String,Object>(); + extensions.put("location", user.getLocation()); + extensions.put("posts", user.getStatusesCount()); + extensions.put("followers", user.getFollowersCount()); + extensions.put("screenName", user.getScreenName()); + if(user.getAdditionalProperties() != null) { + extensions.put("favorites", user.getFavouritesCount()); + } + + Image profileImage = new Image(); + String profileUrl = null; + Author author = event.getInteraction().getAuthor(); + if( author != null ) + profileUrl = author.getAvatar(); + if(profileUrl == null && user.getProfileImageUrlHttps() != null) { + Object url = user.getProfileImageUrlHttps(); + if(url instanceof String) + profileUrl = (String) url; + } + if(profileUrl == null) { + profileUrl = user.getProfileImageUrl(); + } + profileImage.setUrl(profileUrl); + actor.setImage(profileImage); + + actor.setAdditionalProperty("extensions", extensions); + return actor; + } + + public void addLocationExtension(Activity activity, Twitter twitter) { + Map<String, Object> extensions = ensureExtensions(activity); + Map<String, Object> location = Maps.newHashMap(); + double[] coordiantes = new double[] { twitter.getGeo().getLongitude(), twitter.getGeo().getLatitude() }; + Map<String, Object> coords = Maps.newHashMap(); + coords.put("coordinates", coordiantes); + coords.put("type", "geo_point"); + location.put("coordinates", coords); + extensions.put("location", location); + } + + public void addTwitterExtensions(Activity activity, Twitter twitter, Interaction interaction) { + Retweet retweet = twitter.getRetweet(); + Map<String, Object> extensions = ensureExtensions(activity); + List<String> hashTags = Lists.newLinkedList(); + List<Object> hts = Lists.newLinkedList(); + if(twitter.getHashtags() != null) { + hts = twitter.getHashtags(); + } else if (retweet != null) { + hts = retweet.getHashtags(); + } + if(hts != null) { + for(Object ht : twitter.getHashtags()) { + if(ht instanceof String) { + hashTags.add((String) ht); + } else { + LOGGER.warn("Hashtag was not instance of String : {}", ht.getClass().getName()); + } + } + } + extensions.put("hashtags", hashTags); + + + if(retweet != null) { + Map<String, Object> rebroadcasts = Maps.newHashMap(); + rebroadcasts.put("perspectival", true); + rebroadcasts.put("count", retweet.getCount()); + extensions.put("rebroadcasts", rebroadcasts); + } + + if(interaction.getAdditionalProperties() != null) { + ArrayList<Map<String,Object>> userMentions = createUserMentions(interaction); + + if(userMentions.size() > 0) + extensions.put("user_mentions", userMentions); + } + + extensions.put("keywords", interaction.getContent()); + } + + /** + * Returns an ArrayList of all UserMentions in this interaction + * Note: The ID list and the handle lists do not necessarily correspond 1:1 for this provider + * If those lists are the same size, then they will be merged into individual UserMention + * objects. However, if they are not the same size, a new UserMention object will be created + * for each entry in both lists. + * + * @param interaction + * @return + */ + private ArrayList<Map<String,Object>> createUserMentions(Interaction interaction) { + ArrayList<String> mentions = (ArrayList<String>) interaction.getAdditionalProperties().get("mentions"); + ArrayList<Long> mentionIds = (ArrayList<Long>) interaction.getAdditionalProperties().get("mention_ids"); + ArrayList<Map<String,Object>> userMentions = new ArrayList<Map<String,Object>>(); + + if(mentions != null && !mentions.isEmpty()) { + for(int x = 0; x < mentions.size(); x ++) { + Map<String, Object> actor = new HashMap<String, Object>(); + actor.put("displayName", mentions.get(x)); + actor.put("handle", mentions.get(x)); + + userMentions.add(actor); + } + } + if(mentionIds != null && !mentionIds.isEmpty()) { + for(int x = 0; x < mentionIds.size(); x ++) { + Map<String, Object> actor = new HashMap<String, Object>(); + actor.put("id", "id:twitter:" + mentionIds.get(x)); + + userMentions.add(actor); + } + } + + return userMentions; + } + + public static String formatId(String... idparts) { + return Joiner.on(":").join(Lists.asList("id:twitter", idparts)); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/util/StreamsDatasiftMapper.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/util/StreamsDatasiftMapper.java b/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/util/StreamsDatasiftMapper.java index f771eb1..93ab28b 100644 --- a/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/util/StreamsDatasiftMapper.java +++ b/streams-contrib/streams-provider-datasift/src/main/java/org/apache/streams/datasift/util/StreamsDatasiftMapper.java @@ -32,8 +32,9 @@ import org.joda.time.format.DateTimeFormatter; import java.io.IOException; /** + * Created by sblackmon on 3/27/14. + * * Depracated: Use StreamsJacksonMapper instead - * TODO: find another place to hold DATASIFT_FORMAT and delete this class */ @Deprecated() public class StreamsDatasiftMapper extends StreamsJacksonMapper { http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/test/java17/com/datasift/test/DatasiftSerDeTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/test/java17/com/datasift/test/DatasiftSerDeTest.java b/streams-contrib/streams-provider-datasift/src/test/java17/com/datasift/test/DatasiftSerDeTest.java index aa6a587..750915e 100644 --- a/streams-contrib/streams-provider-datasift/src/test/java17/com/datasift/test/DatasiftSerDeTest.java +++ b/streams-contrib/streams-provider-datasift/src/test/java17/com/datasift/test/DatasiftSerDeTest.java @@ -43,7 +43,7 @@ public class DatasiftSerDeTest { private final static Logger LOGGER = LoggerFactory.getLogger(DatasiftSerDeTest.class); - private ObjectMapper mapper = StreamsJacksonMapper.getInstance(StreamsDatasiftMapper.DATASIFT_FORMAT); + private ObjectMapper mapper = StreamsJacksonMapper.getInstance(Lists.newArrayList(StreamsDatasiftMapper.DATASIFT_FORMAT)); @Test public void Tests() http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftActivityConverterTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftActivityConverterTest.java b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftActivityConverterTest.java deleted file mode 100644 index 057875f..0000000 --- a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftActivityConverterTest.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.apache.streams.datasift.serializer; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.collect.Lists; -import org.apache.commons.lang.StringUtils; -import org.apache.streams.data.ActivityConverter; -import org.apache.streams.datasift.Datasift; -import org.apache.streams.datasift.util.StreamsDatasiftMapper; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.apache.streams.pojo.json.Activity; -import org.apache.streams.pojo.json.Actor; -import org.junit.Before; -import org.junit.Test; - -import java.util.Scanner; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -public class DatasiftActivityConverterTest { - - protected ActivityConverter SERIALIZER; - - protected static ObjectMapper MAPPER = StreamsJacksonMapper.getInstance(StreamsDatasiftMapper.DATASIFT_FORMAT); - - @Before - public void initSerializer() { - SERIALIZER = new DatasiftActivityConverter(); - } - - @Test - public void testConversion() throws Exception { - Scanner scanner = new Scanner(DatasiftActivityConverterTest.class.getResourceAsStream("/rand_sample_datasift_json.txt")); - String line = null; - while(scanner.hasNextLine()) { - try { - line = scanner.nextLine(); - Datasift item = MAPPER.readValue(line, Datasift.class); - testConversion(item); - String json = MAPPER.writeValueAsString(item); - testDeserNoNull(json); - testDeserNoAddProps(json); - } catch (Exception e) { - System.err.println(line); - throw e; - } - } - } - - /** - * Test that the minimum number of things that an activity has - * @param item - */ - protected void testConversion(Datasift item) throws Exception { - Activity activity = SERIALIZER.deserialize(item); - assertNotNull("activity.id", activity.getId()); - assertNotNull("activity.published", activity.getPublished()); - assertNotNull("activity.provider", activity.getProvider()); - assertNotNull("activity.url", activity.getUrl()); - assertNotNull("activity.verb", activity.getVerb()); - Actor actor = activity.getActor(); - assertNotNull("activity.actor", actor); - } - - /** - * Test that null fields are not present - * @param json - */ - protected void testDeserNoNull(String json) throws Exception { - int nulls = StringUtils.countMatches(json, ":null"); - assertEquals(0l, (long)nulls); - - } - - /** - * Test that null fields are not present - * @param json - */ - protected void testDeserNoAddProps(String json) throws Exception { - int nulls = StringUtils.countMatches(json, "additionalProperties:{"); - assertEquals(0l, (long)nulls); - - } - -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftActivitySerializerTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftActivitySerializerTest.java b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftActivitySerializerTest.java new file mode 100644 index 0000000..8f7ad43 --- /dev/null +++ b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftActivitySerializerTest.java @@ -0,0 +1,86 @@ +package org.apache.streams.datasift.serializer; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Lists; +import org.apache.commons.lang.StringUtils; +import org.apache.streams.data.ActivitySerializer; +import org.apache.streams.datasift.Datasift; +import org.apache.streams.datasift.util.StreamsDatasiftMapper; +import org.apache.streams.jackson.StreamsJacksonMapper; +import org.apache.streams.pojo.json.Activity; +import org.apache.streams.pojo.json.Actor; +import org.junit.Before; +import org.junit.Test; + +import java.util.Scanner; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +public class DatasiftActivitySerializerTest { + + protected ActivitySerializer SERIALIZER; + + protected static ObjectMapper MAPPER = StreamsJacksonMapper.getInstance(Lists.newArrayList(StreamsDatasiftMapper.DATASIFT_FORMAT)); + + @Before + public void initSerializer() { + SERIALIZER = new DatasiftActivitySerializer(); + } + + @Test + public void testConversion() throws Exception { + Scanner scanner = new Scanner(DatasiftActivitySerializerTest.class.getResourceAsStream("/rand_sample_datasift_json.txt")); + String line = null; + while(scanner.hasNextLine()) { + try { + line = scanner.nextLine(); + Datasift item = MAPPER.readValue(line, Datasift.class); + testConversion(item); + String json = MAPPER.writeValueAsString(item); + testDeserNoNull(json); + testDeserNoAddProps(json); + } catch (Exception e) { + System.err.println(line); + throw e; + } + } + } + + /** + * Test that the minimum number of things that an activity has + * @param item + */ + protected void testConversion(Datasift item) throws Exception { + Activity activity = SERIALIZER.deserialize(item); + assertNotNull("activity.id", activity.getId()); + assertNotNull("activity.published", activity.getPublished()); + assertNotNull("activity.provider", activity.getProvider()); + assertNotNull("activity.url", activity.getUrl()); + assertNotNull("activity.verb", activity.getVerb()); + Actor actor = activity.getActor(); + assertNotNull("activity.actor", actor); + } + + /** + * Test that null fields are not present + * @param json + */ + protected void testDeserNoNull(String json) throws Exception { + int nulls = StringUtils.countMatches(json, ":null"); + assertEquals(0l, (long)nulls); + + } + + /** + * Test that null fields are not present + * @param json + */ + protected void testDeserNoAddProps(String json) throws Exception { + int nulls = StringUtils.countMatches(json, "additionalProperties:{"); + assertEquals(0l, (long)nulls); + + } + +} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftEventClassifierTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftEventClassifierTest.java b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftEventClassifierTest.java index 06d9046..fda57c4 100644 --- a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftEventClassifierTest.java +++ b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftEventClassifierTest.java @@ -20,8 +20,6 @@ package org.apache.streams.datasift.serializer; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Lists; -import org.apache.streams.data.ActivityConverter; -import org.apache.streams.data.ActivityConverterFactory; import org.apache.streams.datasift.Datasift; import org.apache.streams.datasift.instagram.Instagram; import org.apache.streams.datasift.twitter.Twitter; @@ -32,9 +30,7 @@ import org.junit.Test; import java.util.Scanner; /** - * Test for - * @see {@link org.apache.streams.datasift.serializer.DatasiftEventClassifier} - * + * Created by sblackmon on 12/13/13. */ public class DatasiftEventClassifierTest { @@ -42,33 +38,25 @@ public class DatasiftEventClassifierTest { @Test public void testTwitterDetection() throws Exception { - Scanner scanner = new Scanner(DatasiftActivityConverterTest.class.getResourceAsStream("/twitter_datasift_json.txt")); + Scanner scanner = new Scanner(DatasiftActivitySerializerTest.class.getResourceAsStream("/twitter_datasift_json.txt")); String line = null; while(scanner.hasNextLine()) { line = scanner.nextLine(); Datasift datasift = MAPPER.readValue(line, Datasift.class); - Class detectedClass = DatasiftEventClassifier.getInstance().detectClass(datasift); - assert(detectedClass == Twitter.class); - Class converterClass = DatasiftConverterResolver.getInstance().bestSerializer(detectedClass); - assert(converterClass == DatasiftTwitterActivityConverter.class); - ActivityConverter detectedConverter = ActivityConverterFactory.getInstance(converterClass); - assert(detectedConverter instanceof DatasiftTwitterActivityConverter); + assert(DatasiftEventClassifier.detectClass(datasift) == Twitter.class); + assert(DatasiftEventClassifier.bestSerializer(datasift) instanceof DatasiftTwitterActivitySerializer); } } @Test public void testInstagramDetection() throws Exception { - Scanner scanner = new Scanner(DatasiftActivityConverterTest.class.getResourceAsStream("/instagram_datasift_json.txt")); + Scanner scanner = new Scanner(DatasiftActivitySerializerTest.class.getResourceAsStream("/instagram_datasift_json.txt")); String line = null; while(scanner.hasNextLine()) { line = scanner.nextLine(); Datasift datasift = MAPPER.readValue(line, Datasift.class); - Class detectedClass = DatasiftEventClassifier.getInstance().detectClass(datasift); - assert(detectedClass == Instagram.class); - Class converterClass = DatasiftConverterResolver.getInstance().bestSerializer(detectedClass); - assert(converterClass == DatasiftInstagramActivityConverter.class); - ActivityConverter detectedConverter = ActivityConverterFactory.getInstance(converterClass); - assert(detectedConverter instanceof DatasiftInstagramActivityConverter); + assert(DatasiftEventClassifier.detectClass(datasift) == Instagram.class); + assert(DatasiftEventClassifier.bestSerializer(datasift) instanceof DatasiftInstagramActivitySerializer); } } http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInstagramActivityConverterTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInstagramActivityConverterTest.java b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInstagramActivityConverterTest.java deleted file mode 100644 index 8199319..0000000 --- a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInstagramActivityConverterTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.apache.streams.datasift.serializer; - -import org.apache.streams.datasift.Datasift; -import org.junit.Before; -import org.junit.Test; - -import java.util.Scanner; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -public class DatasiftInstagramActivityConverterTest extends DatasiftActivityConverterTest { - - @Before - @Override - public void initSerializer() { - SERIALIZER = new DatasiftInstagramActivityConverter(); - } - - @Test - @Override - public void testConversion() throws Exception { - Scanner scanner = new Scanner(DatasiftActivityConverterTest.class.getResourceAsStream("/instagram_datasift_json.txt")); - String line = null; - while(scanner.hasNextLine()) { - line = scanner.nextLine(); - Datasift item = MAPPER.readValue(line, Datasift.class); - testConversion(item); - String json = MAPPER.writeValueAsString(item); - testDeserNoNull(json); - testDeserNoAddProps(json); - } - } - -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInstagramActivitySerializerTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInstagramActivitySerializerTest.java b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInstagramActivitySerializerTest.java new file mode 100644 index 0000000..5350d74 --- /dev/null +++ b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInstagramActivitySerializerTest.java @@ -0,0 +1,43 @@ +package org.apache.streams.datasift.serializer; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Lists; +import org.apache.commons.lang.StringUtils; +import org.apache.streams.datasift.Datasift; +import org.apache.streams.datasift.util.StreamsDatasiftMapper; +import org.apache.streams.jackson.StreamsJacksonMapper; +import org.apache.streams.pojo.json.Activity; +import org.apache.streams.pojo.json.Actor; +import org.junit.Before; +import org.junit.Test; + +import java.util.Scanner; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +public class DatasiftInstagramActivitySerializerTest extends DatasiftActivitySerializerTest { + + @Before + @Override + public void initSerializer() { + SERIALIZER = new DatasiftInstagramActivitySerializer(); + } + + @Test + @Override + public void testConversion() throws Exception { + Scanner scanner = new Scanner(DatasiftActivitySerializerTest.class.getResourceAsStream("/instagram_datasift_json.txt")); + String line = null; + while(scanner.hasNextLine()) { + line = scanner.nextLine(); + Datasift item = MAPPER.readValue(line, Datasift.class); + testConversion(item); + String json = MAPPER.writeValueAsString(item); + testDeserNoNull(json); + testDeserNoAddProps(json); + } + } + +} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInteractionActivityConverterTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInteractionActivityConverterTest.java b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInteractionActivityConverterTest.java deleted file mode 100644 index c79db35..0000000 --- a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInteractionActivityConverterTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.apache.streams.datasift.serializer; - -import org.apache.streams.datasift.Datasift; -import org.junit.Before; -import org.junit.Test; - -import java.util.Scanner; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -public class DatasiftInteractionActivityConverterTest extends DatasiftActivityConverterTest { - - @Before - @Override - public void initSerializer() { - SERIALIZER = new DatasiftInteractionActivityConverter(); - } - - @Test - @Override - public void testConversion() throws Exception { - Scanner scanner = new Scanner(DatasiftInteractionActivityConverterTest.class.getResourceAsStream("/rand_sample_datasift_json.txt")); - String line = null; - while(scanner.hasNextLine()) { - try { - line = scanner.nextLine(); - Datasift item = MAPPER.readValue(line, Datasift.class); - testConversion(item); - String json = MAPPER.writeValueAsString(item); - testDeserNoNull(json); - testDeserNoAddProps(json); - } catch (Exception e) { - System.err.println(line); - throw e; - } - } - } - -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInteractionActivitySerializerTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInteractionActivitySerializerTest.java b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInteractionActivitySerializerTest.java new file mode 100644 index 0000000..21d4ebb --- /dev/null +++ b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftInteractionActivitySerializerTest.java @@ -0,0 +1,48 @@ +package org.apache.streams.datasift.serializer; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Lists; +import org.apache.commons.lang.StringUtils; +import org.apache.streams.datasift.Datasift; +import org.apache.streams.datasift.util.StreamsDatasiftMapper; +import org.apache.streams.jackson.StreamsJacksonMapper; +import org.apache.streams.pojo.json.Activity; +import org.apache.streams.pojo.json.Actor; +import org.junit.Before; +import org.junit.Test; + +import java.util.Scanner; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +public class DatasiftInteractionActivitySerializerTest extends DatasiftActivitySerializerTest { + + @Before + @Override + public void initSerializer() { + SERIALIZER = new DatasiftInteractionActivitySerializer(); + } + + @Test + @Override + public void testConversion() throws Exception { + Scanner scanner = new Scanner(DatasiftInteractionActivitySerializerTest.class.getResourceAsStream("/rand_sample_datasift_json.txt")); + String line = null; + while(scanner.hasNextLine()) { + try { + line = scanner.nextLine(); + Datasift item = MAPPER.readValue(line, Datasift.class); + testConversion(item); + String json = MAPPER.writeValueAsString(item); + testDeserNoNull(json); + testDeserNoAddProps(json); + } catch (Exception e) { + System.err.println(line); + throw e; + } + } + } + +} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftTwitterActivityConverterTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftTwitterActivityConverterTest.java b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftTwitterActivityConverterTest.java deleted file mode 100644 index 3b123ec..0000000 --- a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftTwitterActivityConverterTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.apache.streams.datasift.serializer; - -import org.apache.streams.datasift.Datasift; -import org.junit.Before; -import org.junit.Test; - -import java.util.Scanner; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -public class DatasiftTwitterActivityConverterTest extends DatasiftActivityConverterTest { - - @Before - @Override - public void initSerializer() { - SERIALIZER = new DatasiftTwitterActivityConverter(); - } - - @Test - @Override - public void testConversion() throws Exception { - Scanner scanner = new Scanner(DatasiftTwitterActivityConverterTest.class.getResourceAsStream("/twitter_datasift_json.txt")); - String line = null; - while(scanner.hasNextLine()) { - line = scanner.nextLine(); - Datasift item = MAPPER.readValue(line, Datasift.class); - testConversion(item); - String json = MAPPER.writeValueAsString(item); - testDeserNoNull(json); - testDeserNoAddProps(json); - } - } - -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftTwitterActivitySerializerTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftTwitterActivitySerializerTest.java b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftTwitterActivitySerializerTest.java new file mode 100644 index 0000000..33b1f77 --- /dev/null +++ b/streams-contrib/streams-provider-datasift/src/test/java17/org/apache/streams/datasift/serializer/DatasiftTwitterActivitySerializerTest.java @@ -0,0 +1,43 @@ +package org.apache.streams.datasift.serializer; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Lists; +import org.apache.commons.lang.StringUtils; +import org.apache.streams.datasift.Datasift; +import org.apache.streams.datasift.util.StreamsDatasiftMapper; +import org.apache.streams.jackson.StreamsJacksonMapper; +import org.apache.streams.pojo.json.Activity; +import org.apache.streams.pojo.json.Actor; +import org.junit.Before; +import org.junit.Test; + +import java.util.Scanner; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +public class DatasiftTwitterActivitySerializerTest extends DatasiftActivitySerializerTest { + + @Before + @Override + public void initSerializer() { + SERIALIZER = new DatasiftTwitterActivitySerializer(); + } + + @Test + @Override + public void testConversion() throws Exception { + Scanner scanner = new Scanner(DatasiftTwitterActivitySerializerTest.class.getResourceAsStream("/twitter_datasift_json.txt")); + String line = null; + while(scanner.hasNextLine()) { + line = scanner.nextLine(); + Datasift item = MAPPER.readValue(line, Datasift.class); + testConversion(item); + String json = MAPPER.writeValueAsString(item); + testDeserNoNull(json); + testDeserNoAddProps(json); + } + } + +} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPageActivityConverter.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPageActivityConverter.java b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPageActivityConverter.java deleted file mode 100644 index 9f74909..0000000 --- a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPageActivityConverter.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.streams.facebook.api; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.commons.lang.NotImplementedException; -import org.apache.streams.data.ActivityConverter; -import org.apache.streams.exceptions.ActivitySerializerException; -import org.apache.streams.facebook.serializer.FacebookActivityUtil; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.apache.streams.pojo.json.*; -import org.apache.streams.facebook.Page; - -import java.util.List; - -/** - * Serializes activity posts - * sblackmon: This class needs a rewrite - */ -public class FacebookPageActivityConverter implements ActivityConverter<Page> { - - public FacebookPageActivityConverter() { - - } - - private static FacebookPageActivityConverter instance = new FacebookPageActivityConverter(); - - public static FacebookPageActivityConverter getInstance() { - return instance; - } - - public static ObjectMapper mapper; - static { - mapper = StreamsJacksonMapper.getInstance(); - } - - @Override - public String serializationFormat() { - return "facebook_post_json_v1"; - } - - @Override - public Page serialize(Activity deserialized) throws ActivitySerializerException { - throw new NotImplementedException("Not currently supported by this deserializer"); - } - - @Override - public Activity deserialize(Page page) throws ActivitySerializerException { - Activity activity = new Activity(); - - FacebookActivityUtil.updateActivity(page, activity); - - return activity; - } - - @Override - public List<Activity> deserializeAll(List<Page> serializedList) { - throw new NotImplementedException("Not currently supported by this deserializer"); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPageActivitySerializer.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPageActivitySerializer.java b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPageActivitySerializer.java new file mode 100644 index 0000000..f59ab1e --- /dev/null +++ b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPageActivitySerializer.java @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.streams.facebook.api; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.lang.NotImplementedException; +import org.apache.streams.data.ActivitySerializer; +import org.apache.streams.exceptions.ActivitySerializerException; +import org.apache.streams.facebook.serializer.FacebookActivityUtil; +import org.apache.streams.jackson.StreamsJacksonMapper; +import org.apache.streams.pojo.json.*; +import org.apache.streams.facebook.Page; + +import java.util.List; + +/** + * Serializes activity posts + * sblackmon: This class needs a rewrite + */ +public class FacebookPageActivitySerializer implements ActivitySerializer<Page> { + + public static ObjectMapper mapper; + static { + mapper = StreamsJacksonMapper.getInstance(); + } + + @Override + public String serializationFormat() { + return "facebook_post_json_v1"; + } + + @Override + public Page serialize(Activity deserialized) throws ActivitySerializerException { + throw new NotImplementedException("Not currently supported by this deserializer"); + } + + @Override + public Activity deserialize(Page page) throws ActivitySerializerException { + Activity activity = new Activity(); + + FacebookActivityUtil.updateActivity(page, activity); + + return activity; + } + + @Override + public List<Activity> deserializeAll(List<Page> serializedList) { + throw new NotImplementedException("Not currently supported by this deserializer"); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPostActivityConverter.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPostActivityConverter.java b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPostActivityConverter.java deleted file mode 100644 index db6f369..0000000 --- a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPostActivityConverter.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.streams.facebook.api; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.commons.lang.NotImplementedException; -import org.apache.streams.data.ActivityConverter; -import org.apache.streams.exceptions.ActivitySerializerException; -import org.apache.streams.facebook.Post; -import org.apache.streams.facebook.serializer.FacebookActivityUtil; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.apache.streams.pojo.json.*; -import org.joda.time.format.DateTimeFormat; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.ISODateTimeFormat; - -import java.util.List; - -public class FacebookPostActivityConverter implements ActivityConverter<Post> { - - public FacebookPostActivityConverter() { - - } - - private static FacebookPostActivityConverter instance = new FacebookPostActivityConverter(); - - public static FacebookPostActivityConverter getInstance() { - return instance; - } - - public static final DateTimeFormatter FACEBOOK_FORMAT = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZ"); - public static final DateTimeFormatter ACTIVITY_FORMAT = ISODateTimeFormat.basicDateTime(); - - public static final String PROVIDER_NAME = "Facebook"; - - public static ObjectMapper mapper; - static { - mapper = StreamsJacksonMapper.getInstance(); - } - - @Override - public String serializationFormat() { - return "facebook_post_json_v1"; - } - - @Override - public Post serialize(Activity deserialized) throws ActivitySerializerException { - throw new NotImplementedException("Not currently supported by this deserializer"); - } - - @Override - public Activity deserialize(Post post) throws ActivitySerializerException { - Activity activity = new Activity(); - - FacebookActivityUtil.updateActivity(post, activity); - - return activity; - } - - @Override - public List<Activity> deserializeAll(List<Post> serializedList) { - throw new NotImplementedException("Not currently supported by this deserializer"); - } -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPostActivitySerializer.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPostActivitySerializer.java b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPostActivitySerializer.java new file mode 100644 index 0000000..2bc0867 --- /dev/null +++ b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/api/FacebookPostActivitySerializer.java @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.streams.facebook.api; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.lang.NotImplementedException; +import org.apache.streams.data.ActivitySerializer; +import org.apache.streams.exceptions.ActivitySerializerException; +import org.apache.streams.facebook.Post; +import org.apache.streams.facebook.serializer.FacebookActivityUtil; +import org.apache.streams.jackson.StreamsJacksonMapper; +import org.apache.streams.pojo.json.*; +import org.joda.time.format.DateTimeFormat; +import org.joda.time.format.DateTimeFormatter; +import org.joda.time.format.ISODateTimeFormat; + +import java.util.List; + +public class FacebookPostActivitySerializer implements ActivitySerializer<org.apache.streams.facebook.Post> { + + public static final DateTimeFormatter FACEBOOK_FORMAT = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZ"); + public static final DateTimeFormatter ACTIVITY_FORMAT = ISODateTimeFormat.basicDateTime(); + + public static final String PROVIDER_NAME = "Facebook"; + + public static ObjectMapper mapper; + static { + mapper = StreamsJacksonMapper.getInstance(); + } + + @Override + public String serializationFormat() { + return "facebook_post_json_v1"; + } + + @Override + public Post serialize(Activity deserialized) throws ActivitySerializerException { + throw new NotImplementedException("Not currently supported by this deserializer"); + } + + @Override + public Activity deserialize(Post post) throws ActivitySerializerException { + Activity activity = new Activity(); + + FacebookActivityUtil.updateActivity(post, activity); + + return activity; + } + + @Override + public List<Activity> deserializeAll(List<Post> serializedList) { + throw new NotImplementedException("Not currently supported by this deserializer"); + } +} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/processor/FacebookTypeConverter.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/processor/FacebookTypeConverter.java b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/processor/FacebookTypeConverter.java index 87ac059..d247e51 100644 --- a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/processor/FacebookTypeConverter.java +++ b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/processor/FacebookTypeConverter.java @@ -29,9 +29,9 @@ import org.apache.streams.core.StreamsDatum; import org.apache.streams.core.StreamsProcessor; import org.apache.streams.exceptions.ActivitySerializerException; import org.apache.streams.facebook.Post; -import org.apache.streams.facebook.api.FacebookPageActivityConverter; -import org.apache.streams.facebook.api.FacebookPostActivityConverter; -import org.apache.streams.facebook.serializer.FacebookDocumentClassifier; +import org.apache.streams.facebook.api.FacebookPageActivitySerializer; +import org.apache.streams.facebook.api.FacebookPostActivitySerializer; +import org.apache.streams.facebook.provider.FacebookEventClassifier; import org.apache.streams.jackson.StreamsJacksonMapper; import org.apache.streams.pojo.json.Activity; import org.slf4j.Logger; @@ -41,10 +41,6 @@ import java.io.IOException; import java.util.List; import java.util.Queue; -/* - * Deprecated: Use TypeConverterProcessor - */ -@Deprecated public class FacebookTypeConverter implements StreamsProcessor { public final static String STREAMS_ID = "FacebookTypeConverter"; @@ -59,8 +55,8 @@ public class FacebookTypeConverter implements StreamsProcessor { private Class inClass; private Class outClass; - private FacebookPostActivityConverter facebookPostActivitySerializer; - private FacebookPageActivityConverter facebookPageActivitySerializer; + private FacebookPostActivitySerializer facebookPostActivitySerializer; + private FacebookPageActivitySerializer facebookPageActivitySerializer; private int count = 0; @@ -160,7 +156,7 @@ public class FacebookTypeConverter implements StreamsProcessor { // since data is coming from outside provider, we don't know what type the events are // for now we'll assume post - Class inClass = FacebookDocumentClassifier.getInstance().detectClass((String) item); + Class inClass = FacebookEventClassifier.detectClass((String) item); Object out = convert(node, inClass, outClass); @@ -173,7 +169,7 @@ public class FacebookTypeConverter implements StreamsProcessor { // first check for valid json node = (ObjectNode)mapper.valueToTree(item); - Class inClass = FacebookDocumentClassifier.getInstance().detectClass(mapper.writeValueAsString(item)); + Class inClass = FacebookEventClassifier.detectClass(mapper.writeValueAsString(item)); Object out = convert(node, inClass, outClass); @@ -202,8 +198,8 @@ public class FacebookTypeConverter implements StreamsProcessor { public void prepare(Object o) { mapper = new StreamsJacksonMapper(); - facebookPageActivitySerializer = new FacebookPageActivityConverter(); - facebookPostActivitySerializer = new FacebookPostActivityConverter(); + facebookPageActivitySerializer = new FacebookPageActivitySerializer(); + facebookPostActivitySerializer = new FacebookPostActivitySerializer(); } @Override http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/provider/FacebookEventClassifier.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/provider/FacebookEventClassifier.java b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/provider/FacebookEventClassifier.java new file mode 100644 index 0000000..16e2a25 --- /dev/null +++ b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/provider/FacebookEventClassifier.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.streams.facebook.provider; + +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.google.common.base.Preconditions; +import org.apache.commons.lang.StringUtils; + +import java.io.IOException; + +import org.apache.streams.facebook.Page; +import org.apache.streams.facebook.Post; +import org.apache.streams.jackson.StreamsJacksonMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class FacebookEventClassifier { + + private final static Logger LOGGER = LoggerFactory.getLogger(FacebookEventClassifier.class); + + public static Class detectClass( String json ) { + + Preconditions.checkNotNull(json); + Preconditions.checkArgument(StringUtils.isNotEmpty(json)); + + ObjectNode objectNode; + try { + objectNode = (ObjectNode) StreamsJacksonMapper.getInstance().readTree(json); + } catch (IOException e) { + LOGGER.error("Exception while trying to detect class: {}", e.getMessage()); + return null; + } + + if( objectNode.findValue("about") != null) + return Page.class; + else if( objectNode.findValue("statusType") != null ) + return Post.class; + else + return Post.class; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookConverterResolver.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookConverterResolver.java b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookConverterResolver.java deleted file mode 100644 index a5a3fd1..0000000 --- a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookConverterResolver.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.streams.facebook.serializer; - -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.base.Preconditions; -import org.apache.commons.lang.StringUtils; -import org.apache.streams.data.ActivityConverter; -import org.apache.streams.data.ActivityConverterResolver; -import org.apache.streams.data.DocumentClassifier; -import org.apache.streams.exceptions.ActivitySerializerException; -import org.apache.streams.facebook.Page; -import org.apache.streams.facebook.Post; -import org.apache.streams.facebook.api.FacebookPageActivityConverter; -import org.apache.streams.facebook.api.FacebookPostActivityConverter; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; - -public class FacebookConverterResolver implements ActivityConverterResolver { - - private final static Logger LOGGER = LoggerFactory.getLogger(FacebookConverterResolver.class); - - public FacebookConverterResolver() { - - } - - private static FacebookConverterResolver instance = new FacebookConverterResolver(); - - public static FacebookConverterResolver getInstance() { - return instance; - } - - @Override - public Class bestSerializer(Class documentClass) throws ActivitySerializerException { - - if (documentClass == Page.class) - return FacebookPageActivityConverter.class; - else if (documentClass == Post.class) - return FacebookPostActivityConverter.class; - - return FacebookPostActivityConverter.class; - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookDocumentClassifier.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookDocumentClassifier.java b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookDocumentClassifier.java deleted file mode 100644 index 459be30..0000000 --- a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookDocumentClassifier.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.streams.facebook.serializer; - -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.base.Preconditions; -import org.apache.commons.lang.StringUtils; - -import java.io.IOException; - -import org.apache.streams.data.ActivityConverter; -import org.apache.streams.data.DocumentClassifier; -import org.apache.streams.facebook.Page; -import org.apache.streams.facebook.Post; -import org.apache.streams.facebook.api.FacebookPageActivityConverter; -import org.apache.streams.facebook.api.FacebookPostActivityConverter; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class FacebookDocumentClassifier implements DocumentClassifier { - - public FacebookDocumentClassifier() { - - } - - private static FacebookDocumentClassifier instance = new FacebookDocumentClassifier(); - - public static FacebookDocumentClassifier getInstance() { - return instance; - } - - private final static Logger LOGGER = LoggerFactory.getLogger(FacebookDocumentClassifier.class); - - public Class detectClass(Object document) { - - Preconditions.checkNotNull(document); - Preconditions.checkArgument(document instanceof String); - - String json = (String)document; - Preconditions.checkArgument(StringUtils.isNotEmpty(json)); - - ObjectNode objectNode; - try { - objectNode = (ObjectNode) StreamsJacksonMapper.getInstance().readTree(json); - } catch (IOException e) { - LOGGER.error("Exception while trying to detect class: {}", e.getMessage()); - return null; - } - - if (objectNode.findValue("about") != null) - return Page.class; - else if (objectNode.findValue("statusType") != null) - return Post.class; - else - return Post.class; - } - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookStreamsPostConverter.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookStreamsPostConverter.java b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookStreamsPostConverter.java deleted file mode 100644 index 464df94..0000000 --- a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookStreamsPostConverter.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.apache.streams.facebook.serializer; - -import org.apache.streams.data.ActivityConverter; -import org.apache.streams.exceptions.ActivitySerializerException; -import org.apache.streams.facebook.Post; -import org.apache.streams.pojo.json.Activity; -import org.apache.streams.pojo.json.Actor; -import org.apache.streams.pojo.json.Provider; - -import java.util.List; - -/** - * Converts {@link org.apache.streams.facebook.Post} to {@link org.apache.streams.pojo.json.Activity} - */ -public class FacebookStreamsPostConverter implements ActivityConverter<Post> { - - private static final String FACEBOOK_STREAMS_ID = "id:provider:facebook"; - private static final String ID_PREFIX = "id:facebook:"; - private static final String PROVIDER_DISPLAY = "Facebook"; - - @Override - public String serializationFormat() { - return null; - } - - @Override - public Post serialize(Activity deserialized) throws ActivitySerializerException { - return null; - } - - @Override - public Activity deserialize(Post post) throws ActivitySerializerException { - Activity activity = new Activity(); - activity.setActor(createActor(post)); - - activity.setId(post.getId()); - activity.setContent(post.getMessage()); - return null; - } - - @Override - public List<Activity> deserializeAll(List<Post> serializedList) { - return null; - } - - public Actor createActor(Post post) { - Actor actor = new Actor(); - actor.setDisplayName(post.getFrom().getName()); - actor.setId(ID_PREFIX+post.getFrom().getId()); - return actor; - } - - public Provider createProvider(Post post) { - Provider provider = new Provider(); - provider.setId(FACEBOOK_STREAMS_ID); - provider.setDisplayName(PROVIDER_DISPLAY); - return provider; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookStreamsPostSerializer.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookStreamsPostSerializer.java b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookStreamsPostSerializer.java new file mode 100644 index 0000000..3c5cae6 --- /dev/null +++ b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookStreamsPostSerializer.java @@ -0,0 +1,60 @@ +package org.apache.streams.facebook.serializer; + +import org.apache.streams.data.ActivitySerializer; +import org.apache.streams.exceptions.ActivitySerializerException; +import org.apache.streams.facebook.Post; +import org.apache.streams.pojo.json.Activity; +import org.apache.streams.pojo.json.Actor; +import org.apache.streams.pojo.json.Provider; + +import java.util.List; + +/** + * Converts {@link org.apache.streams.facebook.Post} to {@link org.apache.streams.pojo.json.Activity} + */ +public class FacebookStreamsPostSerializer implements ActivitySerializer<Post> { + + private static final String FACEBOOK_STREAMS_ID = "id:provider:facebook"; + private static final String ID_PREFIX = "id:facebook:"; + private static final String PROVIDER_DISPLAY = "Facebook"; + + @Override + public String serializationFormat() { + return null; + } + + @Override + public Post serialize(Activity deserialized) throws ActivitySerializerException { + return null; + } + + @Override + public Activity deserialize(Post post) throws ActivitySerializerException { + Activity activity = new Activity(); + activity.setActor(createActor(post)); + + activity.setId(post.getId()); + activity.setContent(post.getMessage()); + return null; + } + + @Override + public List<Activity> deserializeAll(List<Post> serializedList) { + return null; + } + + public Actor createActor(Post post) { + Actor actor = new Actor(); + actor.setDisplayName(post.getFrom().getName()); + actor.setId(ID_PREFIX+post.getFrom().getId()); + return actor; + } + + public Provider createProvider(Post post) { + Provider provider = new Provider(); + provider.setId(FACEBOOK_STREAMS_ID); + provider.setDisplayName(PROVIDER_DISPLAY); + return provider; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookActivityActorSerDeTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookActivityActorSerDeTest.java b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookActivityActorSerDeTest.java index 6188be1..38e6860 100644 --- a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookActivityActorSerDeTest.java +++ b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookActivityActorSerDeTest.java @@ -19,14 +19,16 @@ package org.apache.streams.facebook.test; import org.apache.streams.facebook.Page; -import org.apache.streams.facebook.api.FacebookPageActivityConverter; +import org.apache.streams.facebook.api.FacebookPageActivitySerializer; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Joiner; import org.apache.commons.io.IOUtils; import org.apache.commons.io.input.BoundedInputStream; +import org.apache.streams.facebook.Post; import org.apache.streams.jackson.StreamsJacksonMapper; import org.apache.streams.pojo.json.Activity; +import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,7 +38,7 @@ import java.io.InputStream; public class FacebookActivityActorSerDeTest { private final static Logger LOGGER = LoggerFactory.getLogger(FacebookActivityActorSerDeTest.class); - private FacebookPageActivityConverter serializer = new FacebookPageActivityConverter(); + private FacebookPageActivitySerializer serializer = new FacebookPageActivitySerializer(); private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); @Test http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookActivitySerDeTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookActivitySerDeTest.java b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookActivitySerDeTest.java index 0eba10c..13623cf 100644 --- a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookActivitySerDeTest.java +++ b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookActivitySerDeTest.java @@ -18,7 +18,7 @@ package org.apache.streams.facebook.test; -import org.apache.streams.facebook.api.FacebookPostActivityConverter; +import org.apache.streams.facebook.api.FacebookPostActivitySerializer; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Joiner; @@ -37,7 +37,7 @@ import java.io.InputStream; public class FacebookActivitySerDeTest { private final static Logger LOGGER = LoggerFactory.getLogger(FacebookActivitySerDeTest.class); - private FacebookPostActivityConverter serializer = new FacebookPostActivityConverter(); + private FacebookPostActivitySerializer serializer = new FacebookPostActivitySerializer(); private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); @Test
