http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookActivityUtil.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookActivityUtil.java b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookActivityUtil.java index 2cf2a7c..93ac199 100644 --- a/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookActivityUtil.java +++ b/streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/serializer/FacebookActivityUtil.java @@ -18,11 +18,6 @@ package org.apache.streams.facebook.serializer; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.base.Joiner; -import com.google.common.base.Optional; -import com.google.common.collect.Lists; import org.apache.streams.data.util.ActivityUtil; import org.apache.streams.exceptions.ActivitySerializerException; import org.apache.streams.facebook.Cover; @@ -38,6 +33,13 @@ 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.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.google.common.base.Joiner; +import com.google.common.base.Optional; +import com.google.common.collect.Lists; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,158 +48,163 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +/** + * FacebookActivityUtil helps convert facebook data to activity formats. + */ public class FacebookActivityUtil { - private static final Logger LOGGER = LoggerFactory.getLogger(FacebookActivityUtil.class); - - /** - * Updates the given Activity object with the values from the Page - * @param page the object to use as the source - * @param activity the target of the updates. Will receive all values from the Page. - * @throws org.apache.streams.exceptions.ActivitySerializerException - */ - public static void updateActivity(Page page, Activity activity) throws ActivitySerializerException { - activity.setActor(buildActor(page)); - activity.setId(null); - activity.setProvider(getProvider()); + private static final Logger LOGGER = LoggerFactory.getLogger(FacebookActivityUtil.class); + + /** + * Updates the given Activity object with the values from the Page. + * @param page the object to use as the source + * @param activity the target of the updates. Will receive all values from the Page. + * @throws ActivitySerializerException + */ + public static void updateActivity(Page page, Activity activity) throws ActivitySerializerException { + activity.setActor(buildActor(page)); + activity.setId(null); + activity.setProvider(getProvider()); + } + + /** + * Updates the given Activity object with the values from the Post. + * @param post post + * @param activity activity + * @throws ActivitySerializerException + */ + public static void updateActivity(Post post, Activity activity) throws ActivitySerializerException { + activity.setActor(buildActor(post)); + activity.setId(formatId(post.getId())); + activity.setProvider(getProvider()); + activity.setUpdated(post.getUpdatedTime()); + activity.setPublished(post.getCreatedTime()); + + if (post.getLink() != null && post.getLink().length() > 0) { + List<String> links = new ArrayList<>(); + links.add(post.getLink()); + activity.setLinks(links); } - /** - * Updates the given Activity object with the values from the Post - * @param post - * @param activity - * @throws ActivitySerializerException - */ - public static void updateActivity(Post post, Activity activity) throws ActivitySerializerException { - activity.setActor(buildActor(post)); - activity.setId(formatId(post.getId())); - activity.setProvider(getProvider()); - activity.setUpdated(post.getUpdatedTime()); - activity.setPublished(post.getCreatedTime()); - - if(post.getLink() != null && post.getLink().length() > 0) { - List<String> links = new ArrayList<>(); - links.add(post.getLink()); - activity.setLinks(links); - } - - activity.setContent(post.getMessage()); - - activity.setVerb("post"); - activity.setObject(buildObject(post)); - buildExtensions(activity, post); + activity.setContent(post.getMessage()); + + activity.setVerb("post"); + activity.setObject(buildObject(post)); + buildExtensions(activity, post); + } + + /** + * Builds out the {@link org.apache.streams.pojo.json.ActivityObject} from the given {@link Post}. + * @param post + * @return {@link org.apache.streams.pojo.json.ActivityObject} + */ + public static ActivityObject buildObject(Post post) { + ActivityObject activityObject = new ActivityObject(); + + try { + activityObject.setContent(post.getMessage()); + activityObject.setPublished(post.getCreatedTime()); + activityObject.setUpdated(post.getUpdatedTime()); + activityObject.setDisplayName(post.getFrom().getName()); + activityObject.setId(formatId(post.getId())); + activityObject.setObjectType(post.getType()); + activityObject.setUrl(post.getLink()); + + if (activityObject.getObjectType().equals("photo")) { + Image image = new Image(); + image.setUrl(activityObject.getUrl()); + activityObject.setImage(image); + } + } catch (Exception ex) { + LOGGER.error("Exception while trying to build Activity object for post: {}, exception: {}", post, ex); } - /** - * Builds out the {@link org.apache.streams.pojo.json.ActivityObject} from the given {@link Post} - * @param post - * @return {@link org.apache.streams.pojo.json.ActivityObject} - */ - public static ActivityObject buildObject(Post post) { - ActivityObject activityObject = new ActivityObject(); - - try { - activityObject.setContent(post.getMessage()); - activityObject.setPublished(post.getCreatedTime()); - activityObject.setUpdated(post.getUpdatedTime()); - activityObject.setDisplayName(post.getFrom().getName()); - activityObject.setId(formatId(post.getId())); - activityObject.setObjectType(post.getType()); - activityObject.setUrl(post.getLink()); - - if(activityObject.getObjectType().equals("photo")) { - Image image = new Image(); - image.setUrl(activityObject.getUrl()); - activityObject.setImage(image); - } - } catch (Exception e) { - LOGGER.error("Exception while trying to build Activity object for post: {}, exception: {}", post, e); - } - - return activityObject; + return activityObject; + } + + /** + * Gets the common facebook {@link org.apache.streams.pojo.json.Provider} object. + * @return a provider object representing Facebook + */ + public static Provider getProvider() { + Provider provider = new Provider(); + provider.setId("id:providers:facebook"); + provider.setDisplayName("Facebook"); + + return provider; + } + + /** + * Builds the activity {@link org.apache.streams.pojo.json.ActivityObject} actor from the Page. + * @param page the object to use as the source + * @return a valid Actor populated from the Page + */ + public static ActivityObject buildActor(Page page) { + ActivityObject actor = new ActivityObject(); + actor.setId(formatId( + Optional.fromNullable( + page.getId()) + .or(Optional.of(page.getId().toString())) + .orNull() + )); + + actor.setDisplayName(page.getName()); + actor.setAdditionalProperty("handle", page.getUsername()); + actor.setSummary(page.getAbout()); + + if (page.getLink() != null) { + actor.setUrl(page.getLink()); } - /** - * Gets the common facebook {@link org.apache.streams.pojo.json.Provider} object - * @return a provider object representing Facebook - */ - public static Provider getProvider() { - Provider provider = new Provider(); - provider.setId("id:providers:facebook"); - provider.setDisplayName("Facebook"); + Image profileImage = new Image(); + Cover cover = page.getCover(); - return provider; + if (cover != null) { + profileImage.setUrl(cover.getSource()); } - - /** - * Builds the activity {@link org.apache.streams.pojo.json.ActivityObject} actor from the Page - * @param page the object to use as the source - * @return a valid Actor populated from the Page - */ - public static ActivityObject buildActor(Page page) { - ActivityObject actor = new ActivityObject(); - actor.setId(formatId( - Optional.fromNullable( - page.getId()) - .or(Optional.of(page.getId().toString())) - .orNull() - )); - - actor.setDisplayName(page.getName()); - actor.setAdditionalProperty("handle", page.getUsername()); - actor.setSummary(page.getAbout()); - - if (page.getLink()!=null){ - actor.setUrl(page.getLink()); - } - - Image profileImage = new Image(); - Cover cover = page.getCover(); - - if(cover != null) - profileImage.setUrl(cover.getSource()); - actor.setImage(profileImage); - - buildExtensions(actor, page); - - return actor; + actor.setImage(profileImage); + + buildExtensions(actor, page); + + return actor; + } + + /** + * Builds an {@link org.apache.streams.pojo.json.ActivityObject} object from the {@link Post}. + * @param post post + * @return {@link org.apache.streams.pojo.json.ActivityObject} + */ + public static ActivityObject buildActor(Post post) { + ActivityObject actor = new ActivityObject(); + + try { + actor.setId(formatId( + Optional.fromNullable( + post.getFrom().getId()) + .or(Optional.of(post.getFrom().getId())) + .orNull() + )); + + actor.setDisplayName(post.getFrom().getName()); + actor.setAdditionalProperty("handle", post.getFrom().getName()); + } catch (Exception ex) { + LOGGER.error("Exception trying to build actor for Post: {}, {}", post, ex); } - /** - * Builds an {@link org.apache.streams.pojo.json.ActivityObject} object from the {@link Post} - * @param post - * @return {@link org.apache.streams.pojo.json.ActivityObject} - */ - public static ActivityObject buildActor(Post post) { - ActivityObject actor = new ActivityObject(); - - try { - actor.setId(formatId( - Optional.fromNullable( - post.getFrom().getId()) - .or(Optional.of(post.getFrom().getId())) - .orNull() - )); - - actor.setDisplayName(post.getFrom().getName()); - actor.setAdditionalProperty("handle", post.getFrom().getName()); - } catch (Exception e) { - LOGGER.error("Exception trying to build actor for Post: {}, {}", post, e); - } - - return actor; - } + return actor; + } - /** - * Builds the actor extensions given the page object - * @param actor - * @param page - */ - public static void buildExtensions(ActivityObject actor, Page page) { - Map<String, Object> extensions = new HashMap<>(); - Location location = page.getLocation(); + /** + * Builds the actor extensions given the page object. + * @param actor actor + * @param page page + */ + public static void buildExtensions(ActivityObject actor, Page page) { + Map<String, Object> extensions = new HashMap<>(); + Location location = page.getLocation(); - if(location != null) - extensions.put("location", page.getLocation().toString()); + if (location != null) { + extensions.put("location", page.getLocation().toString()); + } extensions.put("favorites", page.getTalkingAboutCount()); extensions.put("followers", page.getFanCount());
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/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 index f829b08..772af83 100644 --- 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 @@ -27,52 +27,63 @@ 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"; + 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 String serializationFormat() { + return null; + } - @Override - public Post serialize(Activity deserialized) throws ActivitySerializerException { - 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)); + @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; - } + activity.setId(post.getId()); + activity.setContent(post.getMessage()); + return null; + } - @Override - public List<Activity> deserializeAll(List<Post> serializedList) { - return null; - } + @Override + public List<Activity> deserializeAll(List<Post> serializedList) { + return null; + } - public ActivityObject createActor(Post post) { - ActivityObject actor = new ActivityObject(); - actor.setDisplayName(post.getFrom().getName()); - actor.setId(ID_PREFIX+post.getFrom().getId()); - return actor; - } + /** + * createActor. + * @param post post + * @return ActivityObject + */ + public ActivityObject createActor(Post post) { + ActivityObject actor = new ActivityObject(); + 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; - } + /** + * Provider. + * @param post post + * @return Provider + */ + 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/5dffd5c3/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookEventClassifierTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookEventClassifierTest.java b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookEventClassifierTest.java index 076aca9..9d7604a 100644 --- a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookEventClassifierTest.java +++ b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/FacebookEventClassifierTest.java @@ -21,37 +21,38 @@ package org.apache.streams.facebook.test; import org.apache.streams.facebook.Page; import org.apache.streams.facebook.Post; import org.apache.streams.facebook.provider.FacebookEventClassifier; + import org.junit.Test; import static org.junit.Assert.assertEquals; public class FacebookEventClassifierTest { - private String empty = ""; - private String def = "{}"; - private String post = "{\"metadata\":null,\"id\":\"687664828_10153082499914829\",\"from\":{\"metadata\":null,\"id\":\"687664828\",\"name\":\"Steve Blackmon\",\"category\":null,\"createdTime\":null},\"message\":null,\"picture\":\"https://fbexternal-a.akamaihd.net/app_full_proxy.php?app=184136951108&v=1&size=z&cksum=7f4094dff37cedd69072cd2c0b3728b7&src=https%3A%2F%2Fstatic.tripit.com%2Fimages%2Fplaces%2Fsantamonica.jpg%3Fv%3D2014-08-13\",\"link\":\"http://www.tripit.com/trip/show/id/130372979/traveler_fb_uid/687664828?us=fc&um=fa&un=fd\",\"name\":\"Steve is about to leave on a trip to Santa Monica, CA.\",\"caption\":\"Aug 2014 for 3 days\",\"description\":\"TripIt - Free online trip planner and free travel itinerary website for organizing vacations, group trips or business travel\",\"source\":null,\"icon\":\"https://fbcdn-photos-d-a.akamaihd.net/hphotos-ak-xpa1/t39.2080-0/851580_10151367869221109_1073679965_n.gif\",\"actions\":[{\"name\":\"Comment\",\"link\":\"https://www.facebook .com/687664828/posts/10153082499914829\"},{\"name\":\"Like\",\"link\":\"https://www.facebook.com/687664828/posts/10153082499914829\"},{\"name\":\"Plan a trip on TripIt\",\"link\":\"http://www.tripit.com/?us=fc&um=fa&un=fd\"}],\"privacy\":{\"value\":\"ALL_FRIENDS\",\"friends\":\"EMPTY\",\"description\":[\"Your friends\"]},\"type\":\"link\",\"sharesCount\":null,\"place\":null,\"statusType\":\"app_created_story\",\"story\":null,\"objectId\":null,\"application\":{\"id\":\"184136951108\",\"name\":\"TripIt\",\"description\":null,\"category\":null,\"company\":null,\"iconUrl\":null,\"subcategory\":null,\"link\":null,\"logoUrl\":null,\"dailyActiveUsers\":null,\"weeklyActiveUsers\":null,\"monthlyActiveUsers\":null,\"namespace\":\"tripitcom\",\"authDialogDataHelpUrl\":null,\"authDialogDescription\":null,\"authDialogHeadline\":null,\"authDialogPermsExplanation\":null,\"authReferralDefaultActivityPrivacy\":null,\"authReferralResponseType\":null,\"canvasUrl\":null,\"contactEmail\":null,\"createdT ime\":null,\"creatorUid\":null,\"deauthCallbackUrl\":null,\"iphoneAppStoreId\":null,\"hostingUrl\":null,\"mobileWebUrl\":null,\"pageTabDefaultName\":null,\"pageTabUrl\":null,\"privacyPolicyUrl\":null,\"secureCanvasUrl\":null,\"securePageTabUrl\":null,\"serverIpWhitelist\":null,\"termsOfServiceUrl\":null,\"userSupportEmail\":null,\"userSupportUrl\":null,\"websiteUrl\":null,\"canvasName\":null},\"createdTime\":\"2014-08-13T12:22:20.000+0000\",\"updatedTime\":\"2014-08-13T12:22:20.000+0000\",\"scheduledPublishTime\":null,\"targeting\":null,\"published\":null}"; - private String page = "{\"metadata\":null,\"id\":\"142803045874943\",\"name\":\"Senator Angus S. King, Jr.\",\"category\":\"Government official\",\"createdTime\":null,\"link\":\"https://www.facebook.com/SenatorAngusSKingJr\",\"likes\":10246,\"location\":{\"street\":\"359 Dirksen Senate Office Building\",\"city\":\"Washington, District of Columbia\",\"state\":\"DC\",\"country\":\"United States\",\"zip\":\"20510\",\"latitude\":null,\"longitude\":null,\"text\":null},\"phone\":\"202-224-5344\",\"checkins\":0,\"picture\":null,\"cover\":{\"id\":null,\"source\":\"https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-xpa1/v/t1.0-9/10288792_321537751334804_8200105519500362465_n.jpg?oh=fbcde9b3e1e011dfa3e699628629bc53&oe=546FB617&__gda__=1416717487_3fa5781d7d9c3d58f2bc798a36ac6fc0\",\"offsetY\":9},\"website\":\"http://www.king.senate.gov\",\"talkingAboutCount\":5034,\"accessToken\":null,\"wereHereCount\":0,\"about\":\"Welcome to the official Facebook page of Senator Angus S. King, Jr. (I-ME). \\nhttp://king.senate.gov\\nhttps://twitter.com/SenAngusKing\\nhttps://www.youtube.com/SenatorAngusKing\",\"username\":\"SenatorAngusSKingJr\",\"published\":true,\"communityPage\":false}"; - - - @Test(expected=IllegalArgumentException.class) - public void emptyJSONTest() { - Class inClass = FacebookEventClassifier.detectClass(empty); - } - - @Test - public void defaultDetectTest() { - Class inClass = FacebookEventClassifier.detectClass(post); - assertEquals(inClass, Post.class); - } - - @Test - public void postDetectTest() { - Class inClass = FacebookEventClassifier.detectClass(post); - assertEquals(inClass, Post.class); - } - - @Test - public void pageDetectTest() { - Class inClass = FacebookEventClassifier.detectClass(page); - assertEquals(inClass, Page.class); - } + + private String empty = ""; + private String def = "{}"; + private String post = "{\"metadata\":null,\"id\":\"687664828_10153082499914829\",\"from\":{\"metadata\":null,\"id\":\"687664828\",\"name\":\"Steve Blackmon\",\"category\":null,\"createdTime\":null},\"message\":null,\"picture\":\"https://fbexternal-a.akamaihd.net/app_full_proxy.php?app=184136951108&v=1&size=z&cksum=7f4094dff37cedd69072cd2c0b3728b7&src=https%3A%2F%2Fstatic.tripit.com%2Fimages%2Fplaces%2Fsantamonica.jpg%3Fv%3D2014-08-13\",\"link\":\"http://www.tripit.com/trip/show/id/130372979/traveler_fb_uid/687664828?us=fc&um=fa&un=fd\",\"name\":\"Steve is about to leave on a trip to Santa Monica, CA.\",\"caption\":\"Aug 2014 for 3 days\",\"description\":\"TripIt - Free online trip planner and free travel itinerary website for organizing vacations, group trips or business travel\",\"source\":null,\"icon\":\"https://fbcdn-photos-d-a.akamaihd.net/hphotos-ak-xpa1/t39.2080-0/851580_10151367869221109_1073679965_n.gif\",\"actions\":[{\"name\":\"Comment\",\"link\":\"https://www.facebook.c om/687664828/posts/10153082499914829\"},{\"name\":\"Like\",\"link\":\"https://www.facebook.com/687664828/posts/10153082499914829\"},{\"name\":\"Plan a trip on TripIt\",\"link\":\"http://www.tripit.com/?us=fc&um=fa&un=fd\"}],\"privacy\":{\"value\":\"ALL_FRIENDS\",\"friends\":\"EMPTY\",\"description\":[\"Your friends\"]},\"type\":\"link\",\"sharesCount\":null,\"place\":null,\"statusType\":\"app_created_story\",\"story\":null,\"objectId\":null,\"application\":{\"id\":\"184136951108\",\"name\":\"TripIt\",\"description\":null,\"category\":null,\"company\":null,\"iconUrl\":null,\"subcategory\":null,\"link\":null,\"logoUrl\":null,\"dailyActiveUsers\":null,\"weeklyActiveUsers\":null,\"monthlyActiveUsers\":null,\"namespace\":\"tripitcom\",\"authDialogDataHelpUrl\":null,\"authDialogDescription\":null,\"authDialogHeadline\":null,\"authDialogPermsExplanation\":null,\"authReferralDefaultActivityPrivacy\":null,\"authReferralResponseType\":null,\"canvasUrl\":null,\"contactEmail\":null,\"createdTim e\":null,\"creatorUid\":null,\"deauthCallbackUrl\":null,\"iphoneAppStoreId\":null,\"hostingUrl\":null,\"mobileWebUrl\":null,\"pageTabDefaultName\":null,\"pageTabUrl\":null,\"privacyPolicyUrl\":null,\"secureCanvasUrl\":null,\"securePageTabUrl\":null,\"serverIpWhitelist\":null,\"termsOfServiceUrl\":null,\"userSupportEmail\":null,\"userSupportUrl\":null,\"websiteUrl\":null,\"canvasName\":null},\"createdTime\":\"2014-08-13T12:22:20.000+0000\",\"updatedTime\":\"2014-08-13T12:22:20.000+0000\",\"scheduledPublishTime\":null,\"targeting\":null,\"published\":null}"; + private String page = "{\"metadata\":null,\"id\":\"142803045874943\",\"name\":\"Senator Angus S. King, Jr.\",\"category\":\"Government official\",\"createdTime\":null,\"link\":\"https://www.facebook.com/SenatorAngusSKingJr\",\"likes\":10246,\"location\":{\"street\":\"359 Dirksen Senate Office Building\",\"city\":\"Washington, District of Columbia\",\"state\":\"DC\",\"country\":\"United States\",\"zip\":\"20510\",\"latitude\":null,\"longitude\":null,\"text\":null},\"phone\":\"202-224-5344\",\"checkins\":0,\"picture\":null,\"cover\":{\"id\":null,\"source\":\"https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-xpa1/v/t1.0-9/10288792_321537751334804_8200105519500362465_n.jpg?oh=fbcde9b3e1e011dfa3e699628629bc53&oe=546FB617&__gda__=1416717487_3fa5781d7d9c3d58f2bc798a36ac6fc0\",\"offsetY\":9},\"website\":\"http://www.king.senate.gov\",\"talkingAboutCount\":5034,\"accessToken\":null,\"wereHereCount\":0,\"about\":\"Welcome to the official Facebook page of Senator Angus S. King, Jr. (I-ME).\\ nhttp://king.senate.gov\\nhttps://twitter.com/SenAngusKing\\nhttps://www.youtube.com/SenatorAngusKing\",\"username\":\"SenatorAngusSKingJr\",\"published\":true,\"communityPage\":false}"; + + @Test(expected=IllegalArgumentException.class) + public void emptyJSONTest() { + Class inClass = FacebookEventClassifier.detectClass(empty); + } + + @Test + public void defaultDetectTest() { + Class inClass = FacebookEventClassifier.detectClass(post); + assertEquals(inClass, Post.class); + } + + @Test + public void postDetectTest() { + Class inClass = FacebookEventClassifier.detectClass(post); + assertEquals(inClass, Post.class); + } + + @Test + public void pageDetectTest() { + Class inClass = FacebookEventClassifier.detectClass(page); + assertEquals(inClass, Page.class); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/SimplePageTest.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/SimplePageTest.java b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/SimplePageTest.java index 45864ef..36d3b16 100644 --- a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/SimplePageTest.java +++ b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/SimplePageTest.java @@ -18,15 +18,17 @@ package org.apache.streams.facebook.test; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; import org.apache.streams.core.StreamsDatum; import org.apache.streams.facebook.Page; import org.apache.streams.facebook.api.FacebookPageActivitySerializer; import org.apache.streams.facebook.processor.FacebookTypeConverter; 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.node.ObjectNode; + import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -37,7 +39,9 @@ import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; -import static org.hamcrest.CoreMatchers.*; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertThat; /** @@ -45,33 +49,33 @@ import static org.junit.Assert.assertThat; */ @Ignore("ignore until test resources are available.") public class SimplePageTest { - private final static Logger LOGGER = LoggerFactory.getLogger(SimplePageTest.class); - private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); - private ObjectNode event; + private static final Logger LOGGER = LoggerFactory.getLogger(SimplePageTest.class); + private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); + private ObjectNode event; private static final String FACEBOOK_JSON= "{\"about\":\"The Facebook Page celebrates how our friends inspire us, support us, and help us discover the world when we connect.\",\"username\":\"facebook\",\"birthday\":\"02/04/2004\",\"category\":\"Product/Service\",\"can_checkin\":true,\"can_post\":false,\"checkins\":12,\"cover\":{\"id\":\"10154345508521729\",\"source\":\"https://scontent.xx.fbcdn.net/v/t1.0-9/s720x720/12573693_10154345508521729_8347370496501004621_n.png?oh=b75f9ec17e7e8d6c84658f5a1eb1f724&oe=58BFB505\",\"cover_id\":\"10154345508521729\",\"offset_x\":0,\"offset_y\":0},\"display_subtext\":\"12 people checked in here\",\"displayed_message_response_time\":\"AUTOMATIC\",\"engagement\":{\"count\":174813083,\"social_sentence\":\"You and 174M others like this.\"},\"fan_count\":174813083,\"founded\":\"February 4, 2004\",\"general_info\":\"Your ideas and suggestions help us to constantly improve Facebookâs features. Let us know how we can improve your experience. \\n \\n www.facebook.com/help/feedback\\n\",\"global_brand_root_id\":\"1499730620315598\",\"id\":\"20531316728\",\"is_community_page\":false,\"is_always_open\":false,\"is_permanently_closed\":false,\"is_published\":true,\"is_unclaimed\":false,\"is_webhooks_subscribed\":false,\"leadgen_tos_accepted\":false,\"link\":\"https://www.facebook.com/facebook/\",\"mission\":\"Founded in 2004, Facebookâs mission is to give people the power to share and make the world more open and connected. People use Facebook to stay connected with friends and family, to discover whatâs going on in the world, and to share and express what matters to them.\",\"parking\":{\"lot\":0,\"street\":0,\"valet\":0},\"name\":\"Facebook\",\"name_with_location_descriptor\":\"Facebook\",\"overall_star_rating\":0,\"rating_count\":0,\"talking_about_count\":367210,\"voip_info\":{\"has_mobile_app\":false,\"has_permission\":false,\"is_callable\":false,\"is_callable_webrtc\":false,\"is_pushable\":false,\"reason_code\":1356044,\"rea son_description\":\"This person isn't available right now.\"},\"verification_status\":\"blue_verified\",\"website\":\"http://www.facebook.com\",\"were_here_count\":0,\"app_links\":{\"android\":[{\"app_name\":\"Facebook\",\"package\":\"com.facebook.katana\",\"url\":\"fb://page/20531316728\"}],\"ios\":[{\"app_name\":\"Facebook\",\"app_store_id\":\"284882215\",\"url\":\"fb://page/?id=20531316728\"}]},\"featured_video\":{\"updated_time\":\"2016-05-17T15:57:33+0000\",\"description\":\"Explore Grand Central Terminal and the stories that unfold there in the first film shot with the new Facebook Surround 360 camera. Watch the film in standard monoscopic 360 here, or find it in the Oculus Video app to watch in full 3D-360 with Gear VR.\",\"id\":\"10154659446236729\"},\"context\":{\"friends_who_like\":{\"summary\":{\"total_count\":0,\"social_sentence\":\"0 of your friends like this.\"},\"data\":[]},\"id\":\"b3Blbl9ncmFwaF9jb250ZAXh0OjIwNTMxMzE2NzI4\"},\"global_brand_page_name\":\"Facebook\",\ "has_added_app\":false,\"is_verified\":true}\n"; - private FacebookPageActivitySerializer facebookPageActivitySerializer = new FacebookPageActivitySerializer(); + private FacebookPageActivitySerializer facebookPageActivitySerializer = new FacebookPageActivitySerializer(); - @Before - public void setUp() throws Exception { - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.TRUE); - mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, Boolean.TRUE); - mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, Boolean.TRUE); + @Before + public void setUp() throws Exception { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.TRUE); + mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, Boolean.TRUE); + mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, Boolean.TRUE); - InputStream is = SimplePageTest.class.getResourceAsStream("/testpage.json"); - InputStreamReader isr = new InputStreamReader(is); - BufferedReader br = new BufferedReader(isr); + InputStream is = SimplePageTest.class.getResourceAsStream("/testpage.json"); + InputStreamReader isr = new InputStreamReader(is); + BufferedReader br = new BufferedReader(isr); - event = null; - event = (ObjectNode) mapper.readTree(FACEBOOK_JSON); - } + event = null; + event = (ObjectNode) mapper.readTree(FACEBOOK_JSON); + } - @Test - public void TestSerialization() { - assertThat(event, is(not(nullValue()))); + @Test + public void TestSerialization() { + assertThat(event, is(not(nullValue()))); - Page page = mapper.convertValue(event, Page.class); + Page page = mapper.convertValue(event, Page.class); assertThat(page, is(not(nullValue()))); assertThat(page.getAbout(), is(not(nullValue()))); @@ -79,25 +83,25 @@ public class SimplePageTest { assertThat(page.getTalkingAboutCount(), is(not(nullValue()))); } - @Test - public void TestDeserialization() throws Exception { - Page page = mapper.convertValue(event, Page.class); + @Test + public void TestDeserialization() throws Exception { + Page page = mapper.convertValue(event, Page.class); - Activity activity = null; - activity = facebookPageActivitySerializer.deserialize(page); + Activity activity = null; + activity = facebookPageActivitySerializer.deserialize(page); - assertThat(activity, is(not(nullValue()))); + assertThat(activity, is(not(nullValue()))); - assertThat(activity.getActor(), is(not(nullValue()))); - assertThat(activity.getActor().getId(), is(not(nullValue()))); - assertThat(activity.getVerb(), is(not(nullValue()))); - assertThat(activity.getProvider(), is(not(nullValue()))); - } + assertThat(activity.getActor(), is(not(nullValue()))); + assertThat(activity.getActor().getId(), is(not(nullValue()))); + assertThat(activity.getVerb(), is(not(nullValue()))); + assertThat(activity.getProvider(), is(not(nullValue()))); + } - @Test - public void TestConverter() throws Exception { - FacebookTypeConverter converter = new FacebookTypeConverter(String.class, Activity.class); - converter.prepare(null); - converter.process(new StreamsDatum(FACEBOOK_JSON)); - } + @Test + public void TestConverter() throws Exception { + FacebookTypeConverter converter = new FacebookTypeConverter(String.class, Activity.class); + converter.prepare(null); + converter.process(new StreamsDatum(FACEBOOK_JSON)); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/TestPage.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/TestPage.java b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/TestPage.java index d3a00b6..620f31f 100644 --- a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/TestPage.java +++ b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/TestPage.java @@ -17,129 +17,129 @@ */ package org.apache.streams.facebook.test; +import java.net.URL; +import java.util.Date; + import facebook4j.Cover; import facebook4j.Page; import facebook4j.Place; -import java.net.URL; -import java.util.Date; - public class TestPage implements Page { - private String id; - private String name; - - public TestPage(String id, String name) { - this.id = id; - this.name = name; - } - - @Override - public String getId() { - return id; - } - - @Override - public String getName() { - return name; - } - - @Override - public URL getLink() { - return null; - } - - @Override - public String getCategory() { - return null; - } - - @Override - public Boolean isPublished() { - return null; - } - - @Override - public Boolean canPost() { - return null; - } - - @Override - public Integer getLikes() { - return null; - } - - @Override - public Place.Location getLocation() { - return null; - } - - @Override - public String getPhone() { - return null; - } - - @Override - public Integer getCheckins() { - return null; - } - - @Override - public URL getPicture() { - return null; - } - - @Override - public Cover getCover() { - return null; - } - - @Override - public String getWebsite() { - return null; - } - - @Override - public String getCompanyOverview() { - return null; - } - - @Override - public Integer getTalkingAboutCount() { - return null; - } - - @Override - public String getAccessToken() { - return null; - } - - @Override - public Boolean isCommunityPage() { - return null; - } - - @Override - public Integer getWereHereCount() { - return null; - } - - @Override - public Integer getFanCount() { - return null; - } - - @Override - public Date getCreatedTime() { - return null; - } - - @Override - public String getAbout() { - return null; - } - - @Override - public String getUsername() { - return null; - } + private String id; + private String name; + + public TestPage(String id, String name) { + this.id = id; + this.name = name; + } + + @Override + public String getId() { + return id; + } + + @Override + public String getName() { + return name; + } + + @Override + public URL getLink() { + return null; + } + + @Override + public String getCategory() { + return null; + } + + @Override + public Boolean isPublished() { + return null; + } + + @Override + public Boolean canPost() { + return null; + } + + @Override + public Integer getLikes() { + return null; + } + + @Override + public Place.Location getLocation() { + return null; + } + + @Override + public String getPhone() { + return null; + } + + @Override + public Integer getCheckins() { + return null; + } + + @Override + public URL getPicture() { + return null; + } + + @Override + public Cover getCover() { + return null; + } + + @Override + public String getWebsite() { + return null; + } + + @Override + public String getCompanyOverview() { + return null; + } + + @Override + public Integer getTalkingAboutCount() { + return null; + } + + @Override + public String getAccessToken() { + return null; + } + + @Override + public Boolean isCommunityPage() { + return null; + } + + @Override + public Integer getWereHereCount() { + return null; + } + + @Override + public Integer getFanCount() { + return null; + } + + @Override + public Date getCreatedTime() { + return null; + } + + @Override + public String getAbout() { + return null; + } + + @Override + public String getUsername() { + return null; + } } http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookActivityActorSerDeIT.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookActivityActorSerDeIT.java b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookActivityActorSerDeIT.java index fff060a..7b50535 100644 --- a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookActivityActorSerDeIT.java +++ b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookActivityActorSerDeIT.java @@ -18,15 +18,17 @@ package org.apache.streams.facebook.test.data; +import org.apache.streams.facebook.Page; +import org.apache.streams.facebook.api.FacebookPageActivitySerializer; +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.google.common.base.Joiner; + import org.apache.commons.io.IOUtils; import org.apache.commons.io.input.BoundedInputStream; -import org.apache.streams.facebook.Page; -import org.apache.streams.facebook.api.FacebookPageActivitySerializer; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.apache.streams.pojo.json.Activity; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,29 +40,29 @@ import java.io.InputStream; */ public class FacebookActivityActorSerDeIT { - private final static Logger LOGGER = LoggerFactory.getLogger(FacebookActivityActorSerDeIT.class); - private FacebookPageActivitySerializer serializer = new FacebookPageActivitySerializer(); - private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); + private static final Logger LOGGER = LoggerFactory.getLogger(FacebookActivityActorSerDeIT.class); + private FacebookPageActivitySerializer serializer = new FacebookPageActivitySerializer(); + private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); - @Test - public void Tests() throws Exception - { - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.TRUE); - mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, Boolean.TRUE); - mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, Boolean.TRUE); + @Test + public void Tests() throws Exception + { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.TRUE); + mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, Boolean.TRUE); + mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, Boolean.TRUE); - InputStream is = FacebookActivityActorSerDeIT.class.getResourceAsStream("/testpage.json"); - Joiner joiner = Joiner.on(" ").skipNulls(); - is = new BoundedInputStream(is, 10000); - String json; + InputStream is = FacebookActivityActorSerDeIT.class.getResourceAsStream("/testpage.json"); + Joiner joiner = Joiner.on(" ").skipNulls(); + is = new BoundedInputStream(is, 10000); + String json; - json = joiner.join(IOUtils.readLines(is)); - LOGGER.debug(json); + json = joiner.join(IOUtils.readLines(is)); + LOGGER.debug(json); - Page page = mapper.readValue(json, Page.class); + Page page = mapper.readValue(json, Page.class); - Activity activity = serializer.deserialize(page); + Activity activity = serializer.deserialize(page); - LOGGER.debug(mapper.writeValueAsString(activity)); - } + LOGGER.debug(mapper.writeValueAsString(activity)); + } } http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookActivitySerDeIT.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookActivitySerDeIT.java b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookActivitySerDeIT.java index 3d9e3e1..8112d59 100644 --- a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookActivitySerDeIT.java +++ b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookActivitySerDeIT.java @@ -18,15 +18,17 @@ package org.apache.streams.facebook.test.data; +import org.apache.streams.facebook.Post; import org.apache.streams.facebook.api.FacebookPostActivitySerializer; +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.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; @@ -39,35 +41,35 @@ import java.io.InputStream; */ public class FacebookActivitySerDeIT { - private final static Logger LOGGER = LoggerFactory.getLogger(FacebookActivitySerDeIT.class); - private FacebookPostActivitySerializer serializer = new FacebookPostActivitySerializer(); - private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); + private static final Logger LOGGER = LoggerFactory.getLogger(FacebookActivitySerDeIT.class); + private FacebookPostActivitySerializer serializer = new FacebookPostActivitySerializer(); + private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); - @Test - public void Tests() - { - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.TRUE); - mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, Boolean.TRUE); - mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, Boolean.TRUE); + @Test + public void Tests() + { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.TRUE); + mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, Boolean.TRUE); + mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, Boolean.TRUE); - InputStream is = FacebookActivitySerDeIT.class.getResourceAsStream("/testpost.json"); - Joiner joiner = Joiner.on(" ").skipNulls(); - is = new BoundedInputStream(is, 10000); - String json; + InputStream is = FacebookActivitySerDeIT.class.getResourceAsStream("/testpost.json"); + Joiner joiner = Joiner.on(" ").skipNulls(); + is = new BoundedInputStream(is, 10000); + String json; - try { - json = joiner.join(IOUtils.readLines(is)); - LOGGER.debug(json); + try { + json = joiner.join(IOUtils.readLines(is)); + LOGGER.debug(json); - Post post = mapper.readValue(json, Post.class); + Post post = mapper.readValue(json, Post.class); - Activity activity = serializer.deserialize(post); + Activity activity = serializer.deserialize(post); - LOGGER.debug(mapper.writeValueAsString(activity)); + LOGGER.debug(mapper.writeValueAsString(activity)); - } catch( Exception e ) { - LOGGER.error("Exception: ", e); - Assert.fail(); - } + } catch( Exception e ) { + LOGGER.error("Exception: ", e); + Assert.fail(); } + } } http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookPageSerDeIT.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookPageSerDeIT.java b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookPageSerDeIT.java index 3499a67..2a2ef6e 100644 --- a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookPageSerDeIT.java +++ b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookPageSerDeIT.java @@ -18,13 +18,15 @@ package org.apache.streams.facebook.test.data; +import org.apache.streams.facebook.Page; +import org.apache.streams.jackson.StreamsJacksonMapper; + 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.Page; -import org.apache.streams.jackson.StreamsJacksonMapper; import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; @@ -37,40 +39,40 @@ import java.io.InputStream; */ public class FacebookPageSerDeIT { - private final static Logger LOGGER = LoggerFactory.getLogger(FacebookPageSerDeIT.class); - private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); + private static final Logger LOGGER = LoggerFactory.getLogger(FacebookPageSerDeIT.class); + private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); - @Test - public void Tests() - { - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.TRUE); - mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, Boolean.TRUE); - mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, Boolean.TRUE); + @Test + public void Tests() + { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.TRUE); + mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, Boolean.TRUE); + mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, Boolean.TRUE); - InputStream is = FacebookPageSerDeIT.class.getResourceAsStream("/testpage.json"); - Joiner joiner = Joiner.on(" ").skipNulls(); - is = new BoundedInputStream(is, 10000); - String json; + InputStream is = FacebookPageSerDeIT.class.getResourceAsStream("/testpage.json"); + Joiner joiner = Joiner.on(" ").skipNulls(); + is = new BoundedInputStream(is, 10000); + String json; - try { - json = joiner.join(IOUtils.readLines(is)); - LOGGER.debug(json); + try { + json = joiner.join(IOUtils.readLines(is)); + LOGGER.debug(json); - Page ser = mapper.readValue(json, Page.class); + Page ser = mapper.readValue(json, Page.class); - String de = mapper.writeValueAsString(ser); + String de = mapper.writeValueAsString(ser); - LOGGER.debug(de); + LOGGER.debug(de); - Page serde = mapper.readValue(de, Page.class); + Page serde = mapper.readValue(de, Page.class); - Assert.assertEquals(ser, serde); + Assert.assertEquals(ser, serde); - LOGGER.debug(mapper.writeValueAsString(serde)); + LOGGER.debug(mapper.writeValueAsString(serde)); - } catch( Exception e ) { - LOGGER.error("Exception: ", e); - Assert.fail(); - } + } catch( Exception e ) { + LOGGER.error("Exception: ", e); + Assert.fail(); } + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookPostSerDeIT.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookPostSerDeIT.java b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookPostSerDeIT.java index 1c9a620..3ae6749 100644 --- a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookPostSerDeIT.java +++ b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/data/FacebookPostSerDeIT.java @@ -40,60 +40,60 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; /** - * Tests serialization of Facebook Post inputs. + * Tests serialization of Facebook Post inputs */ public class FacebookPostSerDeIT { - private static final Logger LOGGER = LoggerFactory.getLogger(FacebookPostSerDeIT.class); - private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); + private final static Logger LOGGER = LoggerFactory.getLogger(FacebookPostSerDeIT.class); + private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); - @Test - public void Tests() - { - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.TRUE); - mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, Boolean.TRUE); - mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, Boolean.TRUE); + @Test + public void Tests() + { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.TRUE); + mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, Boolean.TRUE); + mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, Boolean.TRUE); - InputStream is = FacebookPostSerDeIT.class.getResourceAsStream("/testpost.json"); - Joiner joiner = Joiner.on(" ").skipNulls(); - is = new BoundedInputStream(is, 10000); - String json; + InputStream is = FacebookPostSerDeIT.class.getResourceAsStream("/testpost.json"); + Joiner joiner = Joiner.on(" ").skipNulls(); + is = new BoundedInputStream(is, 10000); + String json; - try { - json = joiner.join(IOUtils.readLines(is)); - LOGGER.debug(json); + try { + json = joiner.join(IOUtils.readLines(is)); + LOGGER.debug(json); - Post ser = mapper.readValue(json, Post.class); + Post ser = mapper.readValue(json, Post.class); - String de = mapper.writeValueAsString(ser); + String de = mapper.writeValueAsString(ser); - LOGGER.debug(de); + LOGGER.debug(de); - Post serde = mapper.readValue(de, Post.class); + Post serde = mapper.readValue(de, Post.class); - assertEquals(ser, serde); + assertEquals(ser, serde); - LOGGER.debug(mapper.writeValueAsString(serde)); + LOGGER.debug(mapper.writeValueAsString(serde)); - Activity activity = new Activity(); - FacebookActivityUtil.updateActivity(ser, activity); + Activity activity = new Activity(); + FacebookActivityUtil.updateActivity(ser, activity); - assertNotNull(activity); - assertNotNull(activity.getActor().getId()); - assertNotNull(activity.getActor().getDisplayName()); - assertNotNull(activity.getId()); - assert(activity.getVerb().equals("post")); - assertNotNull(activity.getObject()); - assertNotNull(activity.getUpdated()); - assertNotNull(activity.getPublished()); - assertEquals(activity.getProvider().getId(), "id:providers:facebook"); - assertEquals(activity.getProvider().getDisplayName(), "Facebook"); - assertEquals(activity.getLinks().size(), 1); - assertNotNull(activity.getAdditionalProperties().get("facebook")); + assertNotNull(activity); + assertNotNull(activity.getActor().getId()); + assertNotNull(activity.getActor().getDisplayName()); + assertNotNull(activity.getId()); + assert(activity.getVerb().equals("post")); + assertNotNull(activity.getObject()); + assertNotNull(activity.getUpdated()); + assertNotNull(activity.getPublished()); + assertEquals(activity.getProvider().getId(), "id:providers:facebook"); + assertEquals(activity.getProvider().getDisplayName(), "Facebook"); + assertEquals(activity.getLinks().size(), 1); + assertNotNull(activity.getAdditionalProperties().get("facebook")); - } catch( Exception e ) { - LOGGER.error("Exception: ", e); - Assert.fail(); + } catch( Exception e ) { + LOGGER.error("Exception: ", e); + Assert.fail(); + } } - } } http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/TestFacebookProvider.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/TestFacebookProvider.java b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/TestFacebookProvider.java index 8416186..929366d 100644 --- a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/TestFacebookProvider.java +++ b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/TestFacebookProvider.java @@ -22,74 +22,78 @@ import org.apache.streams.facebook.FacebookConfiguration; import org.apache.streams.facebook.IdConfig; import org.apache.streams.facebook.provider.FacebookDataCollector; import org.apache.streams.facebook.provider.FacebookProvider; + import org.junit.Test; import java.util.concurrent.BlockingQueue; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; /** * Unit Tests For {@link org.apache.streams.facebook.provider.FacebookProvider} */ public class TestFacebookProvider { - @Test - public void testFacebookProvider() throws Exception { - //Test that streams starts and shut downs. - final CyclicBarrier barrier = new CyclicBarrier(2); - FacebookProvider provider = new FacebookProvider(new FacebookConfiguration()) { - @Override - protected FacebookDataCollector getDataCollector() { - return new TestFacebookDataCollector(barrier, super.configuration, super.datums); - } - }; - provider.prepare(null); - provider.startStream(); - assertTrue(provider.isRunning()); - barrier.await(); - assertTrue(provider.isRunning()); - assertEquals(5, provider.readCurrent().size()); - barrier.await(); - assertEquals(0, provider.readCurrent().size()); - assertFalse(provider.isRunning()); - provider.cleanUp(); - } + @Test + public void testFacebookProvider() throws Exception { + //Test that streams starts and shut downs. + final CyclicBarrier barrier = new CyclicBarrier(2); + FacebookProvider provider = new FacebookProvider(new FacebookConfiguration()) { + @Override + protected FacebookDataCollector getDataCollector() { + return new TestFacebookDataCollector(barrier, super.configuration, super.datums); + } + }; + provider.prepare(null); + provider.startStream(); + assertTrue(provider.isRunning()); + barrier.await(); + assertTrue(provider.isRunning()); + assertEquals(5, provider.readCurrent().size()); + barrier.await(); + assertEquals(0, provider.readCurrent().size()); + assertFalse(provider.isRunning()); + provider.cleanUp(); + } - private class TestFacebookDataCollector extends FacebookDataCollector { + private class TestFacebookDataCollector extends FacebookDataCollector { - private CyclicBarrier barrier; - private BlockingQueue<StreamsDatum> queue; + private CyclicBarrier barrier; + private BlockingQueue<StreamsDatum> queue; - public TestFacebookDataCollector(CyclicBarrier barrier, FacebookConfiguration config, BlockingQueue<StreamsDatum> queue) { - super(config, queue); - this.barrier = barrier; - this.queue = queue; + public TestFacebookDataCollector(CyclicBarrier barrier, FacebookConfiguration config, BlockingQueue<StreamsDatum> queue) { + super(config, queue); + this.barrier = barrier; + this.queue = queue; - } + } - @Override - protected void getData(IdConfig id) throws Exception { + @Override + protected void getData(IdConfig id) throws Exception { - } + } - @Override - public void run() { - try { - for(int i=0; i < 5; ++i) { - super.outputData(new Integer(i), ""+i); - } - this.barrier.await(); - super.isComplete.set(true); - this.barrier.await(); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } catch (BrokenBarrierException bbe) { - fail(); - } + @Override + public void run() { + try { + for(int i=0; i < 5; ++i) { + super.outputData(new Integer(i), ""+i); } + this.barrier.await(); + super.isComplete.set(true); + this.barrier.await(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } catch (BrokenBarrierException bbe) { + fail(); + } } + } http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/page/FacebookPageProviderIT.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/page/FacebookPageProviderIT.java b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/page/FacebookPageProviderIT.java index 43dcb1f..f78f2e5 100644 --- a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/page/FacebookPageProviderIT.java +++ b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/page/FacebookPageProviderIT.java @@ -18,8 +18,10 @@ package org.apache.streams.facebook.test.providers.page; -import com.google.common.collect.Lists; import org.apache.streams.facebook.provider.page.FacebookPageProvider; + +import com.google.common.collect.Lists; + import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,43 +32,43 @@ import java.io.LineNumberReader; public class FacebookPageProviderIT { - private static final Logger LOGGER = LoggerFactory.getLogger(FacebookPageProviderIT.class); + private static final Logger LOGGER = LoggerFactory.getLogger(FacebookPageProviderIT.class); - @Test - public void testFacebookPageProvider() throws Exception { + @Test + public void testFacebookPageProvider() throws Exception { - String configfile = "./target/test-classes/FacebookPageProviderIT.conf"; - String outfile = "./target/test-classes/FacebookPageProviderIT.stdout.txt"; + String configfile = "./target/test-classes/FacebookPageProviderIT.conf"; + String outfile = "./target/test-classes/FacebookPageProviderIT.stdout.txt"; - String[] args = new String[2]; - args[0] = configfile; - args[1] = outfile; + String[] args = new String[2]; + args[0] = configfile; + args[1] = outfile; - Thread testThread = new Thread((Runnable) () -> { - try { - FacebookPageProvider.main(args); - } catch( Exception e ) { - LOGGER.error("Test Exception!", e); - } - }); - testThread.start(); - testThread.join(60000); + Thread testThread = new Thread((Runnable) () -> { + try { + FacebookPageProvider.main(args); + } catch( Exception e ) { + LOGGER.error("Test Exception!", e); + } + }); + testThread.start(); + testThread.join(60000); - FacebookPageProvider.main(Lists.newArrayList(configfile, outfile).toArray(new String[2])); + FacebookPageProvider.main(Lists.newArrayList(configfile, outfile).toArray(new String[2])); - File out = new File(outfile); - assert (out.exists()); - assert (out.canRead()); - assert (out.isFile()); + File out = new File(outfile); + assert (out.exists()); + assert (out.canRead()); + assert (out.isFile()); - FileReader outReader = new FileReader(out); - LineNumberReader outCounter = new LineNumberReader(outReader); + FileReader outReader = new FileReader(out); + LineNumberReader outCounter = new LineNumberReader(outReader); - while(outCounter.readLine() != null) {} + while(outCounter.readLine() != null) {} - assert (outCounter.getLineNumber() >= 1); + assert (outCounter.getLineNumber() >= 1); - } + } } http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/pagefeed/FacebookPageFeedProviderIT.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/pagefeed/FacebookPageFeedProviderIT.java b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/pagefeed/FacebookPageFeedProviderIT.java index 4ddb83b..0aa4ad3 100644 --- a/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/pagefeed/FacebookPageFeedProviderIT.java +++ b/streams-contrib/streams-provider-facebook/src/test/java/org/apache/streams/facebook/test/providers/pagefeed/FacebookPageFeedProviderIT.java @@ -19,6 +19,7 @@ package org.apache.streams.facebook.test.providers.pagefeed; import org.apache.streams.facebook.provider.pagefeed.FacebookPageFeedProvider; + import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,39 +30,39 @@ import java.io.LineNumberReader; public class FacebookPageFeedProviderIT { - private static final Logger LOGGER = LoggerFactory.getLogger(FacebookPageFeedProviderIT.class); + private static final Logger LOGGER = LoggerFactory.getLogger(FacebookPageFeedProviderIT.class); - @Test - public void testFacebookPageFeedProvider() throws Exception { + @Test + public void testFacebookPageFeedProvider() throws Exception { - String configfile = "./target/test-classes/FacebookPageFeedProviderIT.conf"; - String outfile = "./target/test-classes/FacebookPageFeedProviderIT.stdout.txt"; + String configfile = "./target/test-classes/FacebookPageFeedProviderIT.conf"; + String outfile = "./target/test-classes/FacebookPageFeedProviderIT.stdout.txt"; - String[] args = new String[2]; - args[0] = configfile; - args[1] = outfile; + String[] args = new String[2]; + args[0] = configfile; + args[1] = outfile; - Thread testThread = new Thread((Runnable) () -> { - try { - FacebookPageFeedProvider.main(args); - } catch( Exception e ) { - LOGGER.error("Test Exception!", e); - } - }); - testThread.start(); - testThread.join(60000); + Thread testThread = new Thread((Runnable) () -> { + try { + FacebookPageFeedProvider.main(args); + } catch( Exception e ) { + LOGGER.error("Test Exception!", e); + } + }); + testThread.start(); + testThread.join(60000); - File out = new File(outfile); - assert (out.exists()); - assert (out.canRead()); - assert (out.isFile()); + File out = new File(outfile); + assert (out.exists()); + assert (out.canRead()); + assert (out.isFile()); - FileReader outReader = new FileReader(out); - LineNumberReader outCounter = new LineNumberReader(outReader); + FileReader outReader = new FileReader(out); + LineNumberReader outCounter = new LineNumberReader(outReader); - while(outCounter.readLine() != null) {} + while(outCounter.readLine() != null) {} - assert (outCounter.getLineNumber() >= 1000); + assert (outCounter.getLineNumber() >= 1000); - } + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-google/google-gmail/src/main/java/com/google/gmail/provider/GMailImapProviderTask.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-google/google-gmail/src/main/java/com/google/gmail/provider/GMailImapProviderTask.java b/streams-contrib/streams-provider-google/google-gmail/src/main/java/com/google/gmail/provider/GMailImapProviderTask.java index 2beeb88..a0aac9b 100644 --- a/streams-contrib/streams-provider-google/google-gmail/src/main/java/com/google/gmail/provider/GMailImapProviderTask.java +++ b/streams-contrib/streams-provider-google/google-gmail/src/main/java/com/google/gmail/provider/GMailImapProviderTask.java @@ -18,47 +18,46 @@ package com.google.gmail.provider; -import com.googlecode.gmail4j.GmailClient; -import com.googlecode.gmail4j.GmailMessage; import org.apache.streams.core.StreamsDatum; import org.apache.streams.pojo.json.Activity; import org.apache.streams.util.ComponentUtils; + +import com.googlecode.gmail4j.GmailMessage; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Calendar; -import java.util.GregorianCalendar; import java.util.List; /** - * Created by sblackmon on 12/10/13. + * GMailImapProviderTask collects Gmail via IMAP driver. */ public class GMailImapProviderTask implements Runnable { - private final static Logger LOGGER = LoggerFactory.getLogger(GMailImapProviderTask.class); + private final static Logger LOGGER = LoggerFactory.getLogger(GMailImapProviderTask.class); - private GMailProvider provider; + private GMailProvider provider; - public GMailImapProviderTask(GMailProvider provider) { - this.provider = provider; - } - - @Override - public void run() { + public GMailImapProviderTask(GMailProvider provider) { + this.provider = provider; + } - final List<GmailMessage> messages = this.provider.imapClient.getUnreadMessages(); + @Override + public void run() { - for (GmailMessage message : messages) { + final List<GmailMessage> messages = this.provider.imapClient.getUnreadMessages(); - Activity activity; - GMailMessageActivitySerializer serializer = new GMailMessageActivitySerializer( this.provider ); - activity = serializer.deserialize(message); - StreamsDatum entry = new StreamsDatum(activity); - ComponentUtils.offerUntilSuccess(entry, this.provider.providerQueue); + for (GmailMessage message : messages) { - } + Activity activity; + GMailMessageActivitySerializer serializer = new GMailMessageActivitySerializer( this.provider ); + activity = serializer.deserialize(message); + StreamsDatum entry = new StreamsDatum(activity); + ComponentUtils.offerUntilSuccess(entry, this.provider.providerQueue); } + } + } http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5dffd5c3/streams-contrib/streams-provider-google/google-gmail/src/main/java/com/google/gmail/provider/GMailMessageActivitySerializer.java ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-provider-google/google-gmail/src/main/java/com/google/gmail/provider/GMailMessageActivitySerializer.java b/streams-contrib/streams-provider-google/google-gmail/src/main/java/com/google/gmail/provider/GMailMessageActivitySerializer.java index e2b5501..acc745d 100644 --- a/streams-contrib/streams-provider-google/google-gmail/src/main/java/com/google/gmail/provider/GMailMessageActivitySerializer.java +++ b/streams-contrib/streams-provider-google/google-gmail/src/main/java/com/google/gmail/provider/GMailMessageActivitySerializer.java @@ -18,6 +18,14 @@ package com.google.gmail.provider; +import org.apache.streams.data.ActivitySerializer; +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.Generator; +import org.apache.streams.pojo.json.Icon; +import org.apache.streams.pojo.json.Provider; + import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonManagedReference; @@ -33,85 +41,83 @@ import com.googlecode.gmail4j.javamail.JavaMailGmailMessage; import com.sun.mail.imap.IMAPFolder; import com.sun.mail.imap.IMAPMessage; import com.sun.mail.imap.IMAPSSLStore; + import org.apache.commons.lang.NotImplementedException; -import org.apache.streams.data.ActivitySerializer; -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.Generator; -import org.apache.streams.pojo.json.Icon; -import org.apache.streams.pojo.json.Provider; import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.mail.internet.MimeMultipart; import java.util.List; import java.util.Map; -public class GMailMessageActivitySerializer implements ActivitySerializer<GmailMessage> { - - private static final Logger LOGGER = LoggerFactory.getLogger(GMailMessageActivitySerializer.class); - - private GMailProvider provider; - - public GMailMessageActivitySerializer(GMailProvider provider) { - - this.provider = provider; - - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, Boolean.FALSE); - - mapper.addMixInAnnotations(IMAPSSLStore.class, MessageMixIn.class); - mapper.addMixInAnnotations(IMAPFolder.class, MessageMixIn.class); - mapper.addMixInAnnotations(IMAPMessage.class, MessageMixIn.class); - mapper.addMixInAnnotations(MimeMultipart.class, MessageMixIn.class); - mapper.addMixInAnnotations(JavaMailGmailMessage.class, MessageMixIn.class); - - } +import javax.mail.internet.MimeMultipart; - public GMailMessageActivitySerializer() { - } +/** + * GMailMessageActivitySerializer converts a GMail message to Activity. + */ +public class GMailMessageActivitySerializer implements ActivitySerializer<GmailMessage> { - @Override - public String serializationFormat() { - return "gmail.v1"; + private static final Logger LOGGER = LoggerFactory.getLogger(GMailMessageActivitySerializer.class); + + private GMailProvider provider; + + public GMailMessageActivitySerializer(GMailProvider provider) { + + this.provider = provider; + + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, Boolean.FALSE); + + mapper.addMixInAnnotations(IMAPSSLStore.class, MessageMixIn.class); + mapper.addMixInAnnotations(IMAPFolder.class, MessageMixIn.class); + mapper.addMixInAnnotations(IMAPMessage.class, MessageMixIn.class); + mapper.addMixInAnnotations(MimeMultipart.class, MessageMixIn.class); + mapper.addMixInAnnotations(JavaMailGmailMessage.class, MessageMixIn.class); + + } + + public GMailMessageActivitySerializer() { + } + + @Override + public String serializationFormat() { + return "gmail.v1"; + } + + @Override + public GmailMessage serialize(Activity activity) { + return null; + } + + @Override + public Activity deserialize(GmailMessage gmailMessage) { + + Activity activity = new Activity(); + activity.setId(formatId(this.provider.getConfig().getUserName(), String.valueOf(gmailMessage.getMessageNumber()))); + activity.setPublished(new DateTime(gmailMessage.getSendDate())); + Provider provider = new Provider(); + provider.setId("http://gmail.com"); + provider.setDisplayName("GMail"); + activity.setProvider(provider); + ActivityObject actor = new ActivityObject(); + actor.setId(gmailMessage.getFrom().getEmail()); + actor.setDisplayName(gmailMessage.getFrom().getName()); + activity.setActor(actor); + activity.setVerb("email"); + ActivityObject object = new ActivityObject(); + try { + object.setId(gmailMessage.getTo().get(0).getEmail()); + object.setDisplayName(gmailMessage.getTo().get(0).getName()); + } catch( GmailException e ) { + LOGGER.warn(e.getMessage()); } - - @Override - public GmailMessage serialize(Activity activity) { - return null; + activity.setTitle(gmailMessage.getSubject()); + try { + activity.setContent(gmailMessage.getContentText()); + } catch( GmailException e ) { + LOGGER.warn(e.getMessage()); } - - @Override - public Activity deserialize(GmailMessage gmailMessage) { - - Activity activity = new Activity(); - activity.setId(formatId(this.provider.getConfig().getUserName(), String.valueOf(gmailMessage.getMessageNumber()))); - activity.setPublished(new DateTime(gmailMessage.getSendDate())); - Provider provider = new Provider(); - provider.setId("http://gmail.com"); - provider.setDisplayName("GMail"); - activity.setProvider(provider); - ActivityObject actor = new ActivityObject(); - actor.setId(gmailMessage.getFrom().getEmail()); - actor.setDisplayName(gmailMessage.getFrom().getName()); - activity.setActor(actor); - activity.setVerb("email"); - ActivityObject object = new ActivityObject(); - try { - object.setId(gmailMessage.getTo().get(0).getEmail()); - object.setDisplayName(gmailMessage.getTo().get(0).getName()); - } catch( GmailException e ) { - LOGGER.warn(e.getMessage()); - } - activity.setTitle(gmailMessage.getSubject()); - try { - activity.setContent(gmailMessage.getContentText()); - } catch( GmailException e ) { - LOGGER.warn(e.getMessage()); - } - activity.setObject(object); + activity.setObject(object); // try { // // if jackson can't serialize the object, find out now @@ -126,72 +132,72 @@ public class GMailMessageActivitySerializer implements ActivitySerializer<GmailM // e.printStackTrace(); // } - return activity; - } - - @Override - public List<Activity> deserializeAll(List<GmailMessage> serializedList) { - throw new NotImplementedException("Not currently implemented"); - } - - public Activity convert(ObjectNode event) { - return null; - } - - public static Generator buildGenerator(ObjectNode event) { - return null; - } - - public static Icon getIcon(ObjectNode event) { - return null; - } - - public static Provider buildProvider(ObjectNode event) { - Provider provider = new Provider(); - provider.setId("id:providers:gmail"); - return provider; - } - - public static List<Object> getLinks(ObjectNode event) { - return null; - } - - public static String getUrls(ObjectNode event) { - return null; - } - - public static void addGMailExtension(Activity activity, GmailMessage gmailMessage) { - Map<String, Object> extensions = ExtensionUtil.getInstance().ensureExtensions(activity); - extensions.put("gmail", gmailMessage); - } - - public static String formatId(String... idparts) { - return Joiner.on(":").join(Lists.asList("id:gmail", idparts)); - } - - interface MessageMixIn { - @JsonManagedReference - @JsonIgnore - IMAPSSLStore getDefaultFolder(); // we don't need it! - @JsonManagedReference - @JsonIgnore - IMAPSSLStore getPersonalNamespaces(); // we don't need it! - @JsonManagedReference - @JsonIgnore - IMAPFolder getStore(); // we don't need it! - // @JsonManagedReference + return activity; + } + + @Override + public List<Activity> deserializeAll(List<GmailMessage> serializedList) { + throw new NotImplementedException("Not currently implemented"); + } + + public Activity convert(ObjectNode event) { + return null; + } + + public static Generator buildGenerator(ObjectNode event) { + return null; + } + + public static Icon getIcon(ObjectNode event) { + return null; + } + + public static Provider buildProvider(ObjectNode event) { + Provider provider = new Provider(); + provider.setId("id:providers:gmail"); + return provider; + } + + public static List<Object> getLinks(ObjectNode event) { + return null; + } + + public static String getUrls(ObjectNode event) { + return null; + } + + public static void addGMailExtension(Activity activity, GmailMessage gmailMessage) { + Map<String, Object> extensions = ExtensionUtil.getInstance().ensureExtensions(activity); + extensions.put("gmail", gmailMessage); + } + + public static String formatId(String... idparts) { + return Joiner.on(":").join(Lists.asList("id:gmail", idparts)); + } + + interface MessageMixIn { + @JsonManagedReference + @JsonIgnore + IMAPSSLStore getDefaultFolder(); // we don't need it! + @JsonManagedReference + @JsonIgnore + IMAPSSLStore getPersonalNamespaces(); // we don't need it! + @JsonManagedReference + @JsonIgnore + IMAPFolder getStore(); // we don't need it! + // @JsonManagedReference // @JsonIgnore // @JsonBackReference - //IMAPFolder getParent(); // we don't need it! - @JsonManagedReference - @JsonIgnore - @JsonBackReference - IMAPMessage getFolder(); // we don't need it! - @JsonManagedReference - @JsonIgnore - @JsonProperty("parent") - @JsonBackReference - MimeMultipart getParent(); - } + //IMAPFolder getParent(); // we don't need it! + @JsonManagedReference + @JsonIgnore + @JsonBackReference + IMAPMessage getFolder(); // we don't need it! + @JsonManagedReference + @JsonIgnore + @JsonProperty("parent") + @JsonBackReference + MimeMultipart getParent(); + } }
