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

Reply via email to