streams-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sblack...@apache.org
Subject svn commit: r1556893 [21/25] - in /incubator/streams/branches/sblackmon: ./ streams-config-graph/ streams-config-graph/src/ streams-config-graph/src/main/ streams-config-graph/src/main/java/ streams-config-graph/src/main/java/org/ streams-config-graph/...
Date Thu, 09 Jan 2014 17:27:58 GMT
Added: incubator/streams/branches/sblackmon/streams-contrib/streams-provider-sysomos/src/test/resources/sysomos_xmls.txt
URL: http://svn.apache.org/viewvc/incubator/streams/branches/sblackmon/streams-contrib/streams-provider-sysomos/src/test/resources/sysomos_xmls.txt?rev=1556893&view=auto
==============================================================================
--- incubator/streams/branches/sblackmon/streams-contrib/streams-provider-sysomos/src/test/resources/sysomos_xmls.txt (added)
+++ incubator/streams/branches/sblackmon/streams-contrib/streams-provider-sysomos/src/test/resources/sysomos_xmls.txt Thu Jan  9 17:27:50 2014
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?><beatApi xmlns="http://www.blogscope.net/api/namespace/schema/SearchResponse"><beatRequest><heatbeatID>11199</heatbeatID><startDate>2013-11-17T00:00:00Z</startDate><endDate>2013-11-18T00:00:00Z</endDate><key>KOX5abO6D5TaeB9V-dQARNUeRlEZGZvc3Nhc0B3Y2d3b3JsZC5jb20...</key><size>20</size><offset>0</offset></beatRequest><beatResponse><beat><docid>11199:31511567</docid><mediaType>FACEBOOK</mediaType><time>2013-11-17T18:59:28-05:00</time><title>Lailamoise</title><content>Sony Ericsson P1i Silver/Black Best Price Reviews ? More Detail &gt;&gt; http://tinyurl.com/kux7v75 ? Sony Ericsson P1i Silver/Black best buy stores??TITLE :Sony Ericsson P1i Silver/Black ????Sony Ericsson P1i Silver/Black : Customer Reviews??If you would like Sony Ericsson P1i Silver/Black ?. I inform you to obtain Sony Ericsson.??I do think its a fantastic looking product with the price. ??Sony Ericsson P1i Silver/Black Detail &amp; Feature ??????Read Shopping Onlin
 e:????Sony Ericsson P1i Silver/Black Get Great Deals When You Shop Online Today!??The world wide web is already like a giant mall sometimes. You can aquire each of the items that you would like from your home. There are many stores to learn that you may possibly need assistance receiving a game plan for the best deals. Please read on for a few tips.??Major shopping retailers are usually targeted by hackers and other Sony Ericsson P1i Silver/Black individuals who want to take your personal identification or get into your accounts.??Have a look at customer reviews for almost any new retailer should this be your first time purchasing from them. This will help ensure you a good idea of the caliber of the company's products and customer service. When you notice multiple poor reviews for a retailer, think about shopping with another merchant.??Don't give any information and finances on the site which is unfamiliar or shady. Verisign and/or Cybertrust have security signs you know who to tr
 ust.??Consider the address or URL of your store prior to deciding to input any charge card number. In case the &quot;https&quot; could there be that means your data is being safely encrypted. Should you not see those letters, you happen to be putting yourself vulnerable to fraud.??Use available sizing charts if you're getting clothing. It's Sony Ericsson P1i Silver/Black challenging to determine if clothes will fit while shopping online. This will save you a size which is much too small or big for you.??Browse around on auction sites as well as discount ones just before buying from the big retailer's site. Sites like Amazon and eBay normally have better deals than traditional retailers. This will produce major savings and also little issues.Do make sure you assess the return policies which are in position. This can be different influenced by where you're shopping.??Buying things online will be a lot more affordable Sony Ericsson P1i Silver/Black than buying them at a physical store.
  This simply involves being familiar with the appropriate types of looking for and utilizing deals. This post had plenty of ideas to help you save while you shop online. What exactly are you presently expecting? Get on the web and start shopping!</content><link>http://www.facebook.com/permalink.php?id=651031148281595&amp;v=wall&amp;story_fbid=653391048045605</link><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>0</influenceLevel><sentiment>NONE</sentiment><tag><value>all-verticals</value><displayName>mb1-all-verticals</displayName></tag><tag><value>internet-security</value><displayName>mb1-internet-security</displayName></tag><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1859</value><displayName>1859</displayName><systemType>T</systemType></tag><tag><value>global</value><displayName>mb1-global</displayName></tag><tag><value>all-products</value><displayName>mb1-all-products</disp
 layName></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displayName><systemType>FBC</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>all-messages</value><displayName>mb1-all-messages</displayName></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>k</value><displayName>Facebook</displayName><systemType>SOURCE</systemType></tag><tag><value>amazon</value><displayName>mb1-amazon</displayName></tag><tag><value>wireless</value><displayName>mb1-wireless</displayName></tag><tag><value>651031148281595</value><displayName>651031148281595</displayName><systemType>FBID</systemType></tag><tag><value>unknown</value><displayName>Unknown Gender</displayName><systemType>GENDER</systemType></tag><tag><value>retail</value><displayName>mb1-retail</displayName><
 /tag></beat><beat><docid>11199:31511566</docid><mediaType>FACEBOOK</mediaType><time>2013-11-17T18:59:17-05:00</time><title>Black Friday, Cyber Monday &amp; Holiday Sale 2013</title><content>Are You Seeking for Black Friday Asmyna SAMR830HPCSO306NP Premium Durable Rubberized Protective Case for Samsung Galaxy Axiom R830 - 1 Pack - Retail... Cyber Monday Save NOW!??[BLACK FRIDAY SALE] &gt;&gt; http://tinyurl.com/hlfdfpfd8/B00ARZ16NI??Asmyna SAMR830HPCSO306NP Premium Durable Rubberized Protective Case for Samsung Galaxy Axiom R830 - 1 Pack - Retail... Amazon Super Saver Shipping - Make The Most Of Your Buy Lots of men and women like to get benefit of the potential to store on-line relatively than try out to battle their way by way of malls and big suppliers throughout holiday getaway time. One of the a lot more well known purchasing websites on the internet is Amazon. Asmyna SAMR830HPCSO306NP Premium Durable Rubberized Protective Case for Samsung Galaxy Axiom R830 - 1 Pack - Retail....
  Celluless Massager Cellulite is a challenge that has an effect on the lives of many women of all ages all-around the earth, and this has specified increase to a lot of items turning out to be out there on the sector to consider and combat the affliction. One of the most common and price productive strategies is the Celluless Vacuum Massager. Asmyna SAMR830HPCSO306NP Premium Durable Rubberized Protective Case for Samsung Galaxy Axiom R830 - 1 Pack - Retail.... GPSMap 76 Machine to Use From Garmin GPSMap seventy six from Garmin is one particular of the most highly effective GPS machine out there right now. It is ideal for making use of on land as effectively as on sea. It presents accurate positioning and routing, and with the preloaded maps it is ready to use out of the box.</content><link>http://www.facebook.com/permalink.php?id=546014965477064&amp;v=wall&amp;story_fbid=547954431949784</link><location><country>unknown</country><locationString>unknown</locationString></location><inf
 luenceLevel>0</influenceLevel><sentiment>POS</sentiment><tag><value>all-verticals</value><displayName>mb1-all-verticals</displayName></tag><tag><value>internet-broadband</value><displayName>mb1-internet-broadband</displayName></tag><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1859</value><displayName>1859</displayName><systemType>T</systemType></tag><tag><value>smartphones</value><displayName>mb1-smartphones</displayName></tag><tag><value>all-products</value><displayName>mb1-all-products</displayName></tag><tag><value>546014965477064</value><displayName>546014965477064</displayName><systemType>FBID</systemType></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displayName><systemType>FBC</systemType></tag><tag><value>pos</value><displayName>pos</displayName><systemType>SENTIMENT</systemType></tag><tag><value>none+</value><displayName>No
 t Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>all-messages</value><displayName>mb1-all-messages</displayName></tag><tag><value>k</value><displayName>Facebook</displayName><systemType>SOURCE</systemType></tag><tag><value>amazon</value><displayName>mb1-amazon</displayName></tag><tag><value>wireless</value><displayName>mb1-wireless</displayName></tag><tag><value>emotional</value><displayName>mb1-emotional</displayName></tag><tag><value>unknown</value><displayName>Unknown Gender</displayName><systemType>GENDER</systemType></tag><tag><value>retail</value><displayName>mb1-retail</displayName></tag></beat><beat><docid>11199:31511565</docid><mediaType>FACEBOOK</mediaType><time>2013-11-17T18:59:22-05:00</time><title>Taylor Jo Covyeou</title><content>I'm currently about three thousand percent done with sprint. Anyone want to buyout my contract for me? Not worth it anymore. I'll pay you back I swear!</content><link>http://www.facebook.com/permalink.php?id=100001149
 014212&amp;v=wall&amp;story_fbid=592019207513041</link><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>0</influenceLevel><sentiment>NEG</sentiment><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1859</value><displayName>1859</displayName><systemType>T</systemType></tag><tag><value>neg</value><displayName>neg</displayName><systemType>SENTIMENT</systemType></tag><tag><value>all-products</value><displayName>mb1-all-products</displayName></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displayName><systemType>FBC</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>k</value><displayName>Facebook</displayName><systemType>SOURCE</systemType></tag><tag><value>wireless</value><displayName>mb1-wireless</displayNam
 e></tag><tag><value>100001149014212</value><displayName>100001149014212</displayName><systemType>FBID</systemType></tag><tag><value>unknown</value><displayName>Unknown Gender</displayName><systemType>GENDER</systemType></tag><tag><value>sprint</value><displayName>mb1-sprint</displayName></tag></beat><beat><docid>11199:31511564</docid><mediaType>FACEBOOK</mediaType><time>2013-11-17T18:59:29-05:00</time><title>Raven Woods Animal Sanctuary</title><content>Raven Woods in need of many things from hose nozzles to dog food. Please check out their wish list on Amazon, Every purchase helps. Tks http://www.amazon.com/registry/giftlist/ZO9WDN20J408/ref=cm_sw_r_tw_gln …</content><link>http://www.facebook.com/permalink.php?id=146831718669942&amp;v=wall&amp;story_fbid=698212600198515</link><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>0</influenceLevel><sentiment>NONE</sentiment><tag><value>-1</value><displayName>-1</displayName><syste
 mType>AGE</systemType></tag><tag><value>1859</value><displayName>1859</displayName><systemType>T</systemType></tag><tag><value>146831718669942</value><displayName>146831718669942</displayName><systemType>FBID</systemType></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displayName><systemType>FBC</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>k</value><displayName>Facebook</displayName><systemType>SOURCE</systemType></tag><tag><value>amazon</value><displayName>mb1-amazon</displayName></tag><tag><value>unknown</value><displayName>Unknown Gender</displayName><systemType>GENDER</systemType></tag></beat><beat><docid>11199:31511563</docid><mediaType>FACEBOOK</mediaType><time>2013-11-17T18:59:32-05:00</time><title
 >Mommy Matters - Uncensored</title><content>Ok so AT&amp;T wants a $750 deposit for an iPhone. Not happening lol does anyone have Sprint here? Was there an expensive deposit? I'm probably going to call them tomorrow??-MeghJ</content><link>http://www.facebook.com/permalink.php?id=494062013968286&amp;v=wall&amp;story_fbid=633415140032972</link><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>0</influenceLevel><sentiment>NONE</sentiment><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1859</value><displayName>1859</displayName><systemType>T</systemType></tag><tag><value>smartphones</value><displayName>mb1-smartphones</displayName></tag><tag><value>all-products</value><displayName>mb1-all-products</displayName></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displayName><systemType>FBC</sy
 stemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>k</value><displayName>Facebook</displayName><systemType>SOURCE</systemType></tag><tag><value>494062013968286</value><displayName>494062013968286</displayName><systemType>FBID</systemType></tag><tag><value>wireless</value><displayName>mb1-wireless</displayName></tag><tag><value>at-and-t</value><displayName>mb1-at-and-t</displayName></tag><tag><value>unknown</value><displayName>Unknown Gender</displayName><systemType>GENDER</systemType></tag><tag><value>sprint</value><displayName>mb1-sprint</displayName></tag></beat><beat><docid>11199:31511562</docid><mediaType>FACEBOOK</mediaType><time>2013-11-17T18:59:14-05:00</time><title>Hannah Rebecca Brown</title><content>Interesting random find on Amazon! There are other designs too if (in their words not mine) you want to 
 put some soul into washing up!!</content><link>http://www.facebook.com/permalink.php?id=671140091&amp;v=wall&amp;story_fbid=10153503587495092</link><gender>FEMALE</gender><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>0</influenceLevel><sentiment>NONE</sentiment><tag><value>FEMALE</value><displayName>FEMALE</displayName><systemType>GENDER</systemType></tag><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1859</value><displayName>1859</displayName><systemType>T</systemType></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displayName><systemType>FBC</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>k</value><di
 splayName>Facebook</displayName><systemType>SOURCE</systemType></tag><tag><value>amazon</value><displayName>mb1-amazon</displayName></tag><tag><value>671140091</value><displayName>671140091</displayName><systemType>FBID</systemType></tag></beat><beat><docid>11199:31511561</docid><mediaType>FACEBOOK</mediaType><time>2013-11-17T18:58:36-05:00</time><title>Kathleen Rice Adams</title><content>Cheryl Pierson's Christmas short, &quot;The Keepers of Camelot,&quot; combines Arthurian legend with Old West action. Deservedly nominated for a Peacemaker Award, the story is unusual, heartwarming, and extremely enjoyable. Available for the first time as a standalone at Amazon for only 99 cents. How can you go wrong? (Believe me, it's worth way more than 99 cents. :-) )</content><link>http://www.facebook.com/permalink.php?id=100000653413590&amp;v=wall&amp;story_fbid=662621137102994</link><gender>FEMALE</gender><location><country>unknown</country><locationString>unknown</locationString></location><
 influenceLevel>0</influenceLevel><sentiment>POS</sentiment><tag><value>FEMALE</value><displayName>FEMALE</displayName><systemType>GENDER</systemType></tag><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1858</value><displayName>1858</displayName><systemType>T</systemType></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displayName><systemType>FBC</systemType></tag><tag><value>pos</value><displayName>pos</displayName><systemType>SENTIMENT</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>k</value><displayName>Facebook</displayName><systemType>SOURCE</systemType></tag><tag><value>100000653413590</value><displayName>100000653413590</displayName><systemType>FBID</systemType></tag><tag><value>amazon</value><displayName>mb1-amazon</displayName></tag></beat><beat
 ><docid>11199:31511560</docid><mediaType>FACEBOOK</mediaType><time>2013-11-17T18:59:11-05:00</time><title>Jacob Ohse</title><content>Anyone have a Verizon phone for sale? Looking for a friend. Message me or comment to let me know.</content><link>http://www.facebook.com/permalink.php?id=1148036152&amp;v=wall&amp;story_fbid=10202441847104645</link><gender>MALE</gender><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>0</influenceLevel><sentiment>NONE</sentiment><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1859</value><displayName>1859</displayName><systemType>T</systemType></tag><tag><value>all-products</value><displayName>mb1-all-products</displayName></tag><tag><value>verizon--all</value><displayName>mb1-verizon-all</displayName></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displ
 ayName><systemType>FBC</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>k</value><displayName>Facebook</displayName><systemType>SOURCE</systemType></tag><tag><value>wireless</value><displayName>mb1-wireless</displayName></tag><tag><value>1148036152</value><displayName>1148036152</displayName><systemType>FBID</systemType></tag><tag><value>generic-verizon</value><displayName>mb1-generic-verizon</displayName></tag><tag><value>me</value><displayName>mb1-verizon</displayName></tag><tag><value>MALE</value><displayName>MALE</displayName><systemType>GENDER</systemType></tag></beat><beat><docid>11199:31511559</docid><mediaType>FACEBOOK</mediaType><time>2013-11-17T18:59:07-05:00</time><title>William T. Newton</title><content>NOW A LITTLE SOMETHING FOR THE IMAGINATION.....???Dr. Paul LaViolette: Secrets of Antigravity
  Propulsion?Project Skyvault, superluminal space travel, bases on the moon &amp; other planets.??C2CAM with George Knapp?http://www.youtube.com/watch?v=17g8OBuyXYk??&quot;The whole problem boils down to consciousness and what people believe is possible. ?If we can begin to realize the kind of baloney that's put out daily to the American public and to other countries and start challenging that, and realize there's a new way of thinking; that we're sort of being held in a cage -- a technology cage on purpose for fear of change -- to realize we have got to try to break out of that. It's a matter of consciousness more than it is of whether the technology is possible or exists or economically possible.&quot;?-- Paul LaViolette??MUFON 2011?http://www.youtube.com/watch?v=ifEgGMFK-VU????Secrets of Antigravity Propulsion: Tesla, UFOs, and Classified Aerospace Technology?by Paul A. LaViolette ?http://www.amazon.com/Secrets-Antigravity-Propulsion-Classified-Technology/dp/159143078X/ref=sr_1_sc
 _1?ie=UTF8&amp;qid=1384730930&amp;sr=8-1-spell&amp;keywords=secrets+of+antigravitypropulsion????&quot;We already have the means to travel among the stars, but these technologies are locked up in black projects and it would take an act of God to ever get them out to benefit humanity....&quot;?-- Ben Rich, former Head of Lockheed Skunk Works, January 1995 Secrets of Anti-Gravity Technology www.youtube.com George Knapp was joined by physicist and author Paul LaViolette, who discussed the physics behind anti-gravity propulsion technology and showed how it is not...</content><link>http://www.facebook.com/permalink.php?id=719190134&amp;v=wall&amp;story_fbid=10152041215435135</link><gender>MALE</gender><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>0</influenceLevel><sentiment>NONE</sentiment><tag><value>all-verticals</value><displayName>mb1-all-verticals</displayName></tag><tag><value>technology</value><displayName>mb1-technology</di
 splayName></tag><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1859</value><displayName>1859</displayName><systemType>T</systemType></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displayName><systemType>FBC</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>k</value><displayName>Facebook</displayName><systemType>SOURCE</systemType></tag><tag><value>719190134</value><displayName>719190134</displayName><systemType>FBID</systemType></tag><tag><value>travel-hospitality</value><displayName>mb1-travel-hospitality</displayName></tag><tag><value>MALE</value><displayName>MALE</displayName><systemType>GENDER</systemType></tag></beat><beat><docid>11199:31511558</docid><me
 diaType>FACEBOOK</mediaType><time>2013-11-17T18:59:11-05:00</time><title>Nj Nuttamon</title><content>Amazon destruction up by 28% in year</content><link>http://www.facebook.com/permalink.php?id=100000595233182&amp;v=wall&amp;story_fbid=723443514352150</link><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>0</influenceLevel><sentiment>NEG</sentiment><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1859</value><displayName>1859</displayName><systemType>T</systemType></tag><tag><value>neg</value><displayName>neg</displayName><systemType>SENTIMENT</systemType></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displayName><systemType>FBC</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>k</value><displayName>Fa
 cebook</displayName><systemType>SOURCE</systemType></tag><tag><value>amazon</value><displayName>mb1-amazon</displayName></tag><tag><value>unknown</value><displayName>Unknown Gender</displayName><systemType>GENDER</systemType></tag><tag><value>100000595233182</value><displayName>100000595233182</displayName><systemType>FBID</systemType></tag></beat><beat><docid>11199:31511557</docid><mediaType>FACEBOOK</mediaType><time>2013-11-17T18:58:44-05:00</time><title>Christopher Cashier Cha-Ching</title><content>Ca$hier X Problem Child...#Classic ???My Debut Album &quot;Business B4 Pleasure&quot; is Officially available for Purchase Worldwide!!! iTunes, Amazon, Cdbaby.com...or I can even have it delivered it to you personally...Support Underground Hip-Hop and get your copy today!??We worldwide wit it! LetsGetIt!??!$! Cha ching !$! Cashier &quot;Problem Child&quot; (Official Video) www.youtube.com</content><link>http://www.facebook.com/permalink.php?id=100001238108941&amp;v=wall&amp;story_fbid=
 654611967923401</link><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>0</influenceLevel><sentiment>NONE</sentiment><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>global</value><displayName>mb1-global</displayName></tag><tag><value>all-products</value><displayName>mb1-all-products</displayName></tag><tag><value>1858</value><displayName>1858</displayName><systemType>T</systemType></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displayName><systemType>FBC</systemType></tag><tag><value>all-messages</value><displayName>mb1-all-messages</displayName></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>k</value><displayName>Face
 book</displayName><systemType>SOURCE</systemType></tag><tag><value>amazon</value><displayName>mb1-amazon</displayName></tag><tag><value>wireless</value><displayName>mb1-wireless</displayName></tag><tag><value>unknown</value><displayName>Unknown Gender</displayName><systemType>GENDER</systemType></tag><tag><value>100001238108941</value><displayName>100001238108941</displayName><systemType>FBID</systemType></tag></beat><beat><docid>11199:31511556</docid><mediaType>FACEBOOK</mediaType><time>2013-11-17T18:58:37-05:00</time><title>Randy Mazzuca</title><content>Hey Friends list,? Most of you already know about this kind of thing but I'm just throwing our hat into the ring (that metaphor makes no sense) here. Christmas is coming and I bought like all of Ali's presents through this, it's the dumbest easiest thing to do, so if you wanna take about two extra seconds to signing into Amazon by following this link, it's better than nothing. ?Thanks!</content><link>http://www.facebook.com/permali
 nk.php?id=818465692&amp;v=wall&amp;story_fbid=10153490281715693</link><gender>MALE</gender><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>0</influenceLevel><sentiment>NONE</sentiment><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1858</value><displayName>1858</displayName><systemType>T</systemType></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displayName><systemType>FBC</systemType></tag><tag><value>all-messages</value><displayName>mb1-all-messages</displayName></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>k</value><displayName>Facebook</displayName><systemType>SOURCE</systemType></tag><tag><value>amazon</value>
 <displayName>mb1-amazon</displayName></tag><tag><value>emotional</value><displayName>mb1-emotional</displayName></tag><tag><value>818465692</value><displayName>818465692</displayName><systemType>FBID</systemType></tag><tag><value>rational</value><displayName>mb1-rational</displayName></tag><tag><value>MALE</value><displayName>MALE</displayName><systemType>GENDER</systemType></tag></beat><beat><docid>11199:31511555</docid><mediaType>TWITTER</mediaType><time>2013-11-17T18:57:52-05:00</time><title>RT @ShookShakeSham: T-Mobile: Possibly the worst carrier ever.</title><content>RT @ShookShakeSham T-Mobile: Possibly the worst carrier ever.</content><link>http://twitter.com/payinallnickles/statuses/402224098886971392</link><gender>MALE</gender><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>4</influenceLevel><sentiment>NEG</sentiment><tag><value>R</value><displayName>R</displayName><systemType>TC</systemType></tag><tag><value>1857</valu
 e><displayName>1857</displayName><systemType>T</systemType></tag><tag><value>t</value><displayName>Twitter</displayName><systemType>SOURCE</systemType></tag><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>neg</value><displayName>neg</displayName><systemType>SENTIMENT</systemType></tag><tag><value>all-products</value><displayName>mb1-all-products</displayName></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>t-mobile</value><displayName>mb1-t-mobile</displayName></tag><tag><value>wireless</value><displayName>mb1-wireless</displayName></tag><tag><value>MALE</value><displayName>MALE</displayName><systemType>GENDER</systemType></tag><tweetid>402224098886971392</tweetid><tweetJsonLink>http://api.twitter.com/1.1/statuses/show.json?id=402224098886971392&amp;include_entities=true
 </tweetJsonLink><tweetHbLink>http://hb.sysomos.com/hb2/sidebar/?hid=11199&amp;bid=31511555</tweetHbLink><twitterFollowers>153</twitterFollowers><twitterFollowing>55</twitterFollowing></beat><beat><docid>11199:31511554</docid><mediaType>TWITTER</mediaType><time>2013-11-17T18:57:19-05:00</time><title>@llamacop @zpower @mikehadgis @TMobile just ran this, very typical of the LTE speeds I see (River North) http://t.co/W21bbvrjan</title><content>@llamacop @zpower @mikehadgis @TMobile just ran this, very typical of the LTE speeds I see (River North) http://t.co/W21bbvrjan</content><link>http://twitter.com/jeffreytz/statuses/402223958009069568</link><gender>MALE</gender><location><country>us</country><locationString>chicago;-il</locationString></location><influenceLevel>4</influenceLevel><sentiment>NONE</sentiment><tag><value>1857</value><displayName>1857</displayName><systemType>T</systemType></tag><tag><value>t</value><displayName>Twitter</displayName><systemType>SOURCE</systemType></tag>
 <tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>all-products</value><displayName>mb1-all-products</displayName></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>t-mobile</value><displayName>mb1-t-mobile</displayName></tag><tag><value>C</value><displayName>C</displayName><systemType>TC</systemType></tag><tag><value>telecommunications</value><displayName>mb1-telecommunications</displayName></tag><tag><value>wireless</value><displayName>mb1-wireless</displayName></tag><tag><value>MALE</value><displayName>MALE</displayName><systemType>GENDER</systemType></tag><tweetid>402223958009069568</tweetid><tweetJsonLink>http://api.twitter.com/1.1/statuses/show.json?id=402223958009069568&amp;i
 nclude_entities=true</tweetJsonLink><tweetHbLink>http://hb.sysomos.com/hb2/sidebar/?hid=11199&amp;bid=31511554</tweetHbLink><twitterFollowers>198</twitterFollowers><twitterFollowing>346</twitterFollowing></beat><beat><docid>11199:31511553</docid><mediaType>TWITTER</mediaType><time>2013-11-17T18:57:12-05:00</time><title>RT @FCDallas: You have until tonight to vote for Michel's olimpico in AT&amp;amp;T Goal of the Year voting! ---&amp;gt; http://t.co/vMp8AeAfjS #DTID</title><content>RT @FCDallas You have until tonight to vote for Michel's olimpico in AT&amp;T Goal of the Year voting! ---&gt; http://t.co/vMp8AeAfjS #DTID</content><link>http://twitter.com/BrandonWalker/statuses/402223931014123520</link><gender>MALE</gender><location><country>us</country><locationString>henderson;-tx</locationString></location><influenceLevel>3</influenceLevel><sentiment>NONE</sentiment><tag><value>R</value><displayName>R</displayName><systemType>TC</systemType></tag><tag><value>1857</value><displayName>
 1857</displayName><systemType>T</systemType></tag><tag><value>t</value><displayName>Twitter</displayName><systemType>SOURCE</systemType></tag><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>at-and-t</value><displayName>mb1-at-and-t</displayName></tag><tag><value>MALE</value><displayName>MALE</displayName><systemType>GENDER</systemType></tag><tweetid>402223931014123520</tweetid><tweetJsonLink>http://api.twitter.com/1.1/statuses/show.json?id=402223931014123520&amp;include_entities=true</tweetJsonLink><tweetHbLink>http://hb.sysomos.com/hb2/sidebar/?hid=11199&amp;bid=31511553</tweetHbLink><twitterFollowers>85</twitterFollowers><twitterFollowing>108</t
 witterFollowing></beat><beat><docid>11199:31511552</docid><mediaType>TWITTER</mediaType><time>2013-11-17T18:57:33-05:00</time><title>NEW 5&quot; Multi-Touch Android 4.0 Smart Phone Dual SIM WIFI Unlocked AT&amp;amp;T T-Mobile http://t.co/w4WP455D2O #android</title><content>NEW 5&quot; Multi-Touch Android 4.0 Smart Phone Dual SIM WIFI Unlocked AT&amp;T T-Mobile http://t.co/w4WP455D2O #android</content><link>http://twitter.com/GaryTinan/statuses/402224017396236288</link><gender>MALE</gender><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>2</influenceLevel><sentiment>NONE</sentiment><tag><value>1857</value><displayName>1857</displayName><systemType>T</systemType></tag><tag><value>t</value><displayName>Twitter</displayName><systemType>SOURCE</systemType></tag><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>T</value><displayName>T</displayName><systemType>TC</systemType></tag><tag><val
 ue>smartphones</value><displayName>mb1-smartphones</displayName></tag><tag><value>all-products</value><displayName>mb1-all-products</displayName></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>t-mobile</value><displayName>mb1-t-mobile</displayName></tag><tag><value>wireless</value><displayName>mb1-wireless</displayName></tag><tag><value>at-and-t</value><displayName>mb1-at-and-t</displayName></tag><tag><value>wireless-network-access</value><displayName>mb1-wireless-network-access</displayName></tag><tag><value>MALE</value><displayName>MALE</displayName><systemType>GENDER</systemType></tag><tweetid>402224017396236288</tweetid><tweetJsonLink>http://api.twitter.com/1.1/statuses/show.json?id=402224017396236288&amp;include_entitie
 s=true</tweetJsonLink><tweetHbLink>http://hb.sysomos.com/hb2/sidebar/?hid=11199&amp;bid=31511552</tweetHbLink><twitterFollowers>1</twitterFollowers><twitterFollowing>34</twitterFollowing></beat><beat><docid>11199:31511551</docid><mediaType>TWITTER</mediaType><time>2013-11-17T18:56:57-05:00</time><title>AT&amp;amp;T U-verse Surpasses 10 Million Broadband Subs | Programming | http://t.co/nMHaIGW4Uw http://t.co/Ek8uycqBVz</title><content>AT&amp;T U-verse Surpasses 10 Million Broadband Subs | Programming | http://t.co/nMHaIGW4Uw http://t.co/Ek8uycqBVz</content><link>http://twitter.com/manffredo77/statuses/402223866933563392</link><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>0</influenceLevel><sentiment>NONE</sentiment><tag><value>mb1-exclusions-test</value><displayName>mb1-exclusions-test</displayName></tag><tag><value>internet-broadband</value><displayName>mb1-internet-broadband</displayName></tag><tag><value>t</value><displayNa
 me>Twitter</displayName><systemType>SOURCE</systemType></tag><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1856</value><displayName>1856</displayName><systemType>T</systemType></tag><tag><value>T</value><displayName>T</displayName><systemType>TC</systemType></tag><tag><value>all-products</value><displayName>mb1-all-products</displayName></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>landline-telephone</value><displayName>mb1-landline-telephone</displayName></tag><tag><value>at-and-t</value><displayName>mb1-at-and-t</displayName></tag><tag><value>unknown</value><displayName>Unknown Gender</displayName><systemType>GENDER</systemType></tag><tag><value>mb1-exclusions</value><di
 splayName>mb1-exclusions</displayName></tag><tweetid>402223866933563392</tweetid><tweetJsonLink>http://api.twitter.com/1.1/statuses/show.json?id=402223866933563392&amp;include_entities=true</tweetJsonLink><tweetHbLink>http://hb.sysomos.com/hb2/sidebar/?hid=11199&amp;bid=31511551</tweetHbLink><twitterFollowers>7</twitterFollowers><twitterFollowing>12</twitterFollowing></beat><beat><docid>11199:31511550</docid><mediaType>TWITTER</mediaType><time>2013-11-17T18:56:50-05:00</time><title>I voted for Carlos Hyde for AT&amp;amp;T All America Player of the Week! Go to http://t.co/mNTgoFxNiz to cast your vote!</title><content>I voted for Carlos Hyde for AT&amp;T All America Player of the Week! Go to http://t.co/mNTgoFxNiz to cast your vote!</content><link>http://twitter.com/BuckeyesGirl33/statuses/402223836235456512</link><location><country>unknown</country><locationString>in-the-huddle</locationString></location><influenceLevel>7</influenceLevel><sentiment>NONE</sentiment><tag><value>t</valu
 e><displayName>Twitter</displayName><systemType>SOURCE</systemType></tag><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1856</value><displayName>1856</displayName><systemType>T</systemType></tag><tag><value>T</value><displayName>T</displayName><systemType>TC</systemType></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>at-and-t</value><displayName>mb1-at-and-t</displayName></tag><tag><value>unknown</value><displayName>Unknown Gender</displayName><systemType>GENDER</systemType></tag><tweetid>402223836235456512</tweetid><tweetJsonLink>http://api.twitter.com/1.1/statuses/show.json?id=402223836235456512&amp;include_entities=true</tweetJsonLink><tweetHbLink>http://hb.sysomos.com/hb2
 /sidebar/?hid=11199&amp;bid=31511550</tweetHbLink><twitterFollowers>3175</twitterFollowers><twitterFollowing>1993</twitterFollowing></beat><beat><docid>11199:31511549</docid><mediaType>TWITTER</mediaType><time>2013-11-17T18:57:10-05:00</time><title>Apple iPhone 4s - 32GB - Black (AT&amp;amp;T) Smartphone (MC923LL/A): $200.00 (0 Bids) End Date: Sunday Nov-17-2013... http://t.co/TkM9zXTbZu</title><content>Apple iPhone 4s - 32GB - Black (AT&amp;T) Smartphone (MC923LL/A): $200.00 (0 Bids) End Date: Sunday Nov-17-2013... http://t.co/TkM9zXTbZu</content><link>http://twitter.com/endriukrzyzanow/statuses/402223920784232448</link><location><country>us</country><locationString>usa</locationString></location><influenceLevel>6</influenceLevel><sentiment>NONE</sentiment><tag><value>1857</value><displayName>1857</displayName><systemType>T</systemType></tag><tag><value>t</value><displayName>Twitter</displayName><systemType>SOURCE</systemType></tag><tag><value>-1</value><displayName>-1</displayName
 ><systemType>AGE</systemType></tag><tag><value>T</value><displayName>T</displayName><systemType>TC</systemType></tag><tag><value>smartphones</value><displayName>mb1-smartphones</displayName></tag><tag><value>all-products</value><displayName>mb1-all-products</displayName></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>telecommunications</value><displayName>mb1-telecommunications</displayName></tag><tag><value>wireless</value><displayName>mb1-wireless</displayName></tag><tag><value>at-and-t</value><displayName>mb1-at-and-t</displayName></tag><tag><value>unknown</value><displayName>Unknown Gender</displayName><systemType>GENDER</systemType></tag><tweetid>402223920784232448</tweetid><tweetJsonLink>http://api.twitter.com/1.1/stat
 uses/show.json?id=402223920784232448&amp;include_entities=true</tweetJsonLink><tweetHbLink>http://hb.sysomos.com/hb2/sidebar/?hid=11199&amp;bid=31511549</tweetHbLink><twitterFollowers>2843</twitterFollowers><twitterFollowing>2384</twitterFollowing></beat><beat><docid>11199:31511548</docid><mediaType>TWITTER</mediaType><time>2013-11-17T18:57:17-05:00</time><title>RT @_DatMan_: Because they'll turn into gwapes...you competing for cutest kid...yes..what place are you in....kindergarten....best AT&amp;amp;T com…</title><content>RT @_DatMan_ Because they'll turn into gwapes...you competing for cutest kid...yes..what place are you in....kindergarten....best AT&amp;T commercial</content><link>http://twitter.com/_JLovee/statuses/402223952040566784</link><location><country>unknown</country><locationString>a-t-l-a-n-t-a-⛅✨</locationString></location><influenceLevel>5</influenceLevel><sentiment>POS</sentiment><tag><value>R</value><displayName>R</displayName><systemType>TC</syste
 mType></tag><tag><value>1857</value><displayName>1857</displayName><systemType>T</systemType></tag><tag><value>t</value><displayName>Twitter</displayName><systemType>SOURCE</systemType></tag><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>pos</value><displayName>pos</displayName><systemType>SENTIMENT</systemType></tag><tag><value>all-messages</value><displayName>mb1-all-messages</displayName></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>at-and-t</value><displayName>mb1-at-and-t</displayName></tag><tag><value>emotional</value><displayName>mb1-emotional</displayName></tag><tag><value>unknown</value><displayName>Unknown Gender</displayName><systemType>GENDER</systemType></tag><tweetid>402223952040566784</tweetid><tweetJsonLink>http://api.twitter.com/1.1/statuses/show.jso
 n?id=402223952040566784&amp;include_entities=true</tweetJsonLink><tweetHbLink>http://hb.sysomos.com/hb2/sidebar/?hid=11199&amp;bid=31511548</tweetHbLink><twitterFollowers>243</twitterFollowers><twitterFollowing>203</twitterFollowing></beat><count>20</count></beatResponse></beatApi>
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?><beatApi xmlns="http://www.blogscope.net/api/namespace/schema/SearchResponse"><beatRequest><heatbeatID>11199</heatbeatID><startDate>2013-11-17T00:00:00Z</startDate><endDate>2013-11-18T00:00:00Z</endDate><key>KOX5abO6D5TaeB9V-dQARNUeRlEZGZvc3Nhc0B3Y2d3b3JsZC5jb20...</key><size>1</size><offset>0</offset></beatRequest><beatResponse><beat><docid>11199:31511567</docid><mediaType>FACEBOOK</mediaType><time>2013-11-17T18:59:28-05:00</time><title>Lailamoise</title><content>Sony Ericsson P1i Silver/Black Best Price Reviews ? More Detail &gt;&gt; http://tinyurl.com/kux7v75 ? Sony Ericsson P1i Silver/Black best buy stores??TITLE :Sony Ericsson P1i Silver/Black ????Sony Ericsson P1i Silver/Black : Customer Reviews??If you would like Sony Ericsson P1i Silver/Black ?. I inform you to obtain Sony Ericsson.??I do think its a fantastic looking product with the price. ??Sony Ericsson P1i Silver/Black Detail &amp; Feature ??????Read Shopping Online
 :????Sony Ericsson P1i Silver/Black Get Great Deals When You Shop Online Today!??The world wide web is already like a giant mall sometimes. You can aquire each of the items that you would like from your home. There are many stores to learn that you may possibly need assistance receiving a game plan for the best deals. Please read on for a few tips.??Major shopping retailers are usually targeted by hackers and other Sony Ericsson P1i Silver/Black individuals who want to take your personal identification or get into your accounts.??Have a look at customer reviews for almost any new retailer should this be your first time purchasing from them. This will help ensure you a good idea of the caliber of the company's products and customer service. When you notice multiple poor reviews for a retailer, think about shopping with another merchant.??Don't give any information and finances on the site which is unfamiliar or shady. Verisign and/or Cybertrust have security signs you know who to tru
 st.??Consider the address or URL of your store prior to deciding to input any charge card number. In case the &quot;https&quot; could there be that means your data is being safely encrypted. Should you not see those letters, you happen to be putting yourself vulnerable to fraud.??Use available sizing charts if you're getting clothing. It's Sony Ericsson P1i Silver/Black challenging to determine if clothes will fit while shopping online. This will save you a size which is much too small or big for you.??Browse around on auction sites as well as discount ones just before buying from the big retailer's site. Sites like Amazon and eBay normally have better deals than traditional retailers. This will produce major savings and also little issues.Do make sure you assess the return policies which are in position. This can be different influenced by where you're shopping.??Buying things online will be a lot more affordable Sony Ericsson P1i Silver/Black than buying them at a physical store. 
 This simply involves being familiar with the appropriate types of looking for and utilizing deals. This post had plenty of ideas to help you save while you shop online. What exactly are you presently expecting? Get on the web and start shopping!</content><link>http://www.facebook.com/permalink.php?id=651031148281595&amp;v=wall&amp;story_fbid=653391048045605</link><location><country>unknown</country><locationString>unknown</locationString></location><influenceLevel>0</influenceLevel><sentiment>NONE</sentiment><tag><value>all-verticals</value><displayName>mb1-all-verticals</displayName></tag><tag><value>internet-security</value><displayName>mb1-internet-security</displayName></tag><tag><value>-1</value><displayName>-1</displayName><systemType>AGE</systemType></tag><tag><value>1859</value><displayName>1859</displayName><systemType>T</systemType></tag><tag><value>global</value><displayName>mb1-global</displayName></tag><tag><value>all-products</value><displayName>mb1-all-products</displ
 ayName></tag><tag><value>EN</value><displayName>English</displayName><systemType>LANGUAGE</systemType></tag><tag><value>P</value><displayName>(wall post)</displayName><systemType>FBC</systemType></tag><tag><value>none</value><displayName>none</displayName><systemType>SENTIMENT</systemType></tag><tag><value>all-messages</value><displayName>mb1-all-messages</displayName></tag><tag><value>none+</value><displayName>Not Assigned</displayName><systemType>ASSIGNED</systemType></tag><tag><value>k</value><displayName>Facebook</displayName><systemType>SOURCE</systemType></tag><tag><value>amazon</value><displayName>mb1-amazon</displayName></tag><tag><value>wireless</value><displayName>mb1-wireless</displayName></tag><tag><value>651031148281595</value><displayName>651031148281595</displayName><systemType>FBID</systemType></tag><tag><value>unknown</value><displayName>Unknown Gender</displayName><systemType>GENDER</systemType></tag><tag><value>retail</value><displayName>mb1-retail</displayName></
 tag></beat><count>1</count></beatResponse></beatApi>

[... 6 lines stripped ...]
Added: incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/README.markdown
URL: http://svn.apache.org/viewvc/incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/README.markdown?rev=1556893&view=auto
==============================================================================
--- incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/README.markdown (added)
+++ incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/README.markdown Thu Jan  9 17:27:50 2014
@@ -0,0 +1,48 @@
+streams-provider-twitter
+
+Purpose
+
+  Module connects to the twitter streaming API, collects events, and passes each message downstream.
+
+Options
+
+  Sample - supported, tested
+  Firehose - supported, not tested
+  Site - not currently supported
+
+Capabilities
+
+  Validation
+
+    Optionally, module will validate each message
+
+  Simplification
+
+    Optionally, module can output messages as basic text
+
+  Normalization
+
+    Optionally, module can output messages as other json objects such as Activity
+
+  Deletion
+
+    By default, module will submit delete the object from each directly connected persist step (not implemented)
+
+Run-modes
+
+  Standalone
+
+    Runs in a java process.
+    Writes to standard out.
+
+    Placeholder for how
+      Configure via property file
+      Configure via command line
+
+  Storm
+
+    Runs as a spout.
+
+    Placeholder for how
+      Configure via property file
+      Configure via command line
\ No newline at end of file

Added: incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/pom.xml
URL: http://svn.apache.org/viewvc/incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/pom.xml?rev=1556893&view=auto
==============================================================================
--- incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/pom.xml (added)
+++ incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/pom.xml Thu Jan  9 17:27:50 2014
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>org.apache.streams</groupId>
+        <artifactId>streams-contrib</artifactId>
+        <version>0.1-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>streams-provider-twitter</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.typesafe</groupId>
+            <artifactId>config</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-annotations</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.jsonschema2pojo</groupId>
+            <artifactId>jsonschema2pojo-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-pojo</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.jayway.jsonpath</groupId>
+            <artifactId>json-path</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.jayway.jsonpath</groupId>
+            <artifactId>json-path-assert</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.twitter</groupId>
+            <artifactId>hbc-core</artifactId> <!-- or hbc-twitter4j -->
+            <version>1.4.2</version> <!-- or whatever the latest version is -->
+        </dependency>
+        <!--<dependency>-->
+            <!--<groupId>com.twitter</groupId>-->
+            <!--<artifactId>finagle-core_2.10</artifactId>-->
+            <!--<version>6.9.0</version>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+            <!--<groupId>com.twitter</groupId>-->
+            <!--<artifactId>finagle-http_2.10</artifactId>-->
+            <!--<version>6.9.0</version>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+            <!--<groupId>com.twitter</groupId>-->
+            <!--<artifactId>finagle-stream_2.10</artifactId>-->
+            <!--<version>6.9.0</version>-->
+        <!--</dependency>-->
+    </dependencies>
+
+    <build>
+        <sourceDirectory>src/main/java</sourceDirectory>
+        <testSourceDirectory>src/test/java</testSourceDirectory>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+        </testResources>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <version>1.8</version>
+                <executions>
+                    <execution>
+                        <id>add-source</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-source</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>target/generated-sources/jsonschema2pojo</source>
+                            </sources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.jsonschema2pojo</groupId>
+                <artifactId>jsonschema2pojo-maven-plugin</artifactId>
+                <configuration>
+                    <addCompileSourceRoot>true</addCompileSourceRoot>
+                    <generateBuilders>true</generateBuilders>
+                    <sourcePaths>
+                        <sourcePath>src/main/jsonschema/com/twitter</sourcePath>
+                    </sourcePaths>
+                    <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
+                    <targetPackage>org.apache.streams.twitter.pojo</targetPackage>
+                    <useLongIntegers>true</useLongIntegers>
+                    <useJodaDates>false</useJodaDates>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>generate</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

Added: incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterEventClassifier.java
URL: http://svn.apache.org/viewvc/incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterEventClassifier.java?rev=1556893&view=auto
==============================================================================
--- incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterEventClassifier.java (added)
+++ incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterEventClassifier.java Thu Jan  9 17:27:50 2014
@@ -0,0 +1,29 @@
+package org.apache.streams.twitter.provider;
+
+import com.jayway.jsonassert.JsonAssert;
+import org.apache.streams.twitter.pojo.Delete;
+import org.apache.streams.twitter.pojo.Retweet;
+import org.apache.streams.twitter.pojo.Tweet;
+
+/**
+ * Created by sblackmon on 12/13/13.
+ */
+public class TwitterEventClassifier {
+
+    public static Class detectClass( String json ) {
+
+        try {
+            JsonAssert.with(json).assertNull("$.delete");
+        } catch( AssertionError ae ) {
+            return Delete.class;
+        }
+
+        try {
+            JsonAssert.with(json).assertNull("$.retweeted_status");
+        } catch( AssertionError ae ) {
+            return Retweet.class;
+        }
+
+        return Tweet.class;
+    }
+}

Added: incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterEventProcessor.java
URL: http://svn.apache.org/viewvc/incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterEventProcessor.java?rev=1556893&view=auto
==============================================================================
--- incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterEventProcessor.java (added)
+++ incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterEventProcessor.java Thu Jan  9 17:27:50 2014
@@ -0,0 +1,159 @@
+package org.apache.streams.twitter.provider;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.apache.streams.pojo.json.Activity;
+import org.apache.streams.twitter.pojo.Delete;
+import org.apache.streams.twitter.pojo.Retweet;
+import org.apache.streams.twitter.pojo.Tweet;
+import org.apache.streams.twitter.serializer.TwitterJsonDeleteActivitySerializer;
+import org.apache.streams.twitter.serializer.TwitterJsonRetweetActivitySerializer;
+import org.apache.streams.twitter.serializer.TwitterJsonTweetActivitySerializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.Random;
+import java.util.concurrent.BlockingQueue;
+
+/**
+ * Created by sblackmon on 12/10/13.
+ */
+public class TwitterEventProcessor implements Runnable {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(TwitterEventProcessor.class);
+
+    private ObjectMapper mapper = new ObjectMapper();
+
+    private BlockingQueue<String> inQueue;
+    private BlockingQueue<Object> outQueue;
+
+    private Class inClass;
+    private Class outClass;
+
+    private TwitterJsonTweetActivitySerializer twitterJsonTweetActivitySerializer = new TwitterJsonTweetActivitySerializer();
+    private TwitterJsonRetweetActivitySerializer twitterJsonRetweetActivitySerializer = new TwitterJsonRetweetActivitySerializer();
+    private TwitterJsonDeleteActivitySerializer twitterJsonDeleteActivitySerializer = new TwitterJsonDeleteActivitySerializer();
+
+    public final static String TERMINATE = new String("TERMINATE");
+
+    public TwitterEventProcessor(BlockingQueue<String> inQueue, BlockingQueue<Object> outQueue, Class inClass, Class outClass) {
+        this.inQueue = inQueue;
+        this.outQueue = outQueue;
+        this.inClass = inClass;
+        this.outClass = outClass;
+    }
+
+    public TwitterEventProcessor(BlockingQueue<String> inQueue, BlockingQueue<Object> outQueue, Class outClass) {
+        this.inQueue = inQueue;
+        this.outQueue = outQueue;
+        this.outClass = outClass;
+    }
+
+    @Override
+    public void run() {
+
+        while(true) {
+            try {
+                String item = inQueue.take();
+                Thread.sleep(new Random().nextInt(100));
+                if(item==TERMINATE) {
+                    LOGGER.info("Terminating!");
+                    break;
+                }
+
+                // first check for valid json
+                ObjectNode node = (ObjectNode)mapper.readTree(item);
+
+                // since data is coming from outside provider, we don't know what type the events are
+                Class inClass = TwitterEventClassifier.detectClass(item);
+
+                // if the target is string, just pass-through
+                if( java.lang.String.class.equals(outClass))
+                    outQueue.offer(item);
+                else {
+                    // convert to desired format
+                    Object out = convert(node, inClass, outClass);
+
+                    if( out != null && validate(out, outClass))
+                        outQueue.offer(out);
+                }
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public Object convert(ObjectNode event, Class inClass, Class outClass) {
+
+        LOGGER.debug(event.toString());
+
+        Object result = null;
+
+        if( outClass.equals( Activity.class )) {
+            if( inClass.equals( Delete.class )) {
+                LOGGER.debug("ACTIVITY DELETE");
+                result = twitterJsonDeleteActivitySerializer.convert(event);
+            } else if ( inClass.equals( Retweet.class )) {
+                LOGGER.debug("ACTIVITY RETWEET");
+                result = twitterJsonRetweetActivitySerializer.convert(event);
+            } else if ( inClass.equals( Tweet.class )) {
+                LOGGER.debug("ACTIVITY TWEET");
+                result = twitterJsonTweetActivitySerializer.convert(event);
+            } else {
+                return null;
+            }
+        } else if( outClass.equals( Tweet.class )) {
+            if ( inClass.equals( Tweet.class )) {
+                LOGGER.debug("TWEET");
+                result = mapper.convertValue(event, Tweet.class);
+            }
+        } else if( outClass.equals( Retweet.class )) {
+            if ( inClass.equals( Retweet.class )) {
+                LOGGER.debug("RETWEET");
+                result = mapper.convertValue(event, Retweet.class);
+            }
+        } else if( outClass.equals( Delete.class )) {
+            if ( inClass.equals( Delete.class )) {
+                LOGGER.debug("DELETE");
+                result = mapper.convertValue(event, Delete.class);
+            }
+        }
+
+        // no supported conversion were applied
+        if( result != null )
+            return result;
+
+        LOGGER.debug("CONVERT FAILED");
+
+        return null;
+
+    }
+
+    public boolean validate(Object document, Class klass) {
+
+        // TODO
+        return true;
+    }
+
+    public boolean isValidJSON(final String json) {
+        boolean valid = false;
+        try {
+            final JsonParser parser = new ObjectMapper().getJsonFactory()
+                    .createJsonParser(json);
+            while (parser.nextToken() != null) {
+            }
+            valid = true;
+        } catch (JsonParseException jpe) {
+            LOGGER.warn("validate: {}", jpe);
+        } catch (IOException ioe) {
+            LOGGER.warn("validate: {}", ioe);
+        }
+
+        return valid;
+    }
+
+};

Added: incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterStreamConfigurator.java
URL: http://svn.apache.org/viewvc/incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterStreamConfigurator.java?rev=1556893&view=auto
==============================================================================
--- incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterStreamConfigurator.java (added)
+++ incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterStreamConfigurator.java Thu Jan  9 17:27:50 2014
@@ -0,0 +1,42 @@
+package org.apache.streams.twitter.provider;
+
+import com.typesafe.config.Config;
+import com.typesafe.config.ConfigException;
+import org.apache.streams.config.StreamsConfigurator;
+import org.apache.streams.twitter.TwitterOAuthConfiguration;
+import org.apache.streams.twitter.TwitterStreamConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Created by sblackmon on 12/10/13.
+ */
+public class TwitterStreamConfigurator {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(TwitterStreamConfigurator.class);
+
+    public static TwitterStreamConfiguration detectConfiguration(Config twitter) {
+        Config oauth = StreamsConfigurator.config.getConfig("twitter.oauth");
+
+        TwitterStreamConfiguration twitterStreamConfiguration = new TwitterStreamConfiguration();
+        TwitterOAuthConfiguration twitterOAuthConfiguration = new TwitterOAuthConfiguration();
+        twitterOAuthConfiguration.setConsumerKey(oauth.getString("consumerKey"));
+        twitterOAuthConfiguration.setConsumerSecret(oauth.getString("consumerSecret"));
+        twitterOAuthConfiguration.setAccessToken(oauth.getString("accessToken"));
+        twitterOAuthConfiguration.setAccessTokenSecret(oauth.getString("accessTokenSecret"));
+        twitterStreamConfiguration.setOauth(twitterOAuthConfiguration);
+
+        try {
+            twitterStreamConfiguration.setTrack(twitter.getStringList("track"));
+        } catch( ConfigException ce ) {}
+        try {
+            twitterStreamConfiguration.setFollow(twitter.getLongList("follow"));
+        } catch( ConfigException ce ) {}
+
+        twitterStreamConfiguration.setFilterLevel(twitter.getString("filter-level"));
+        twitterStreamConfiguration.setEndpoint(twitter.getString("endpoint"));
+
+        return twitterStreamConfiguration;
+    }
+
+}

Added: incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterStreamProvider.java
URL: http://svn.apache.org/viewvc/incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterStreamProvider.java?rev=1556893&view=auto
==============================================================================
--- incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterStreamProvider.java (added)
+++ incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterStreamProvider.java Thu Jan  9 17:27:50 2014
@@ -0,0 +1,205 @@
+package org.apache.streams.twitter.provider;
+
+import com.google.common.base.Joiner;
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.common.util.concurrent.MoreExecutors;
+import com.twitter.hbc.ClientBuilder;
+import com.twitter.hbc.core.Constants;
+import com.twitter.hbc.core.endpoint.StatusesFirehoseEndpoint;
+import com.twitter.hbc.core.endpoint.StatusesSampleEndpoint;
+import com.twitter.hbc.core.endpoint.StreamingEndpoint;
+import com.twitter.hbc.core.processor.StringDelimitedProcessor;
+import com.twitter.hbc.httpclient.BasicClient;
+import com.twitter.hbc.httpclient.auth.Authentication;
+import com.twitter.hbc.httpclient.auth.OAuth1;
+import com.typesafe.config.Config;
+import org.apache.streams.config.StreamsConfigurator;
+import org.apache.streams.core.StreamsProvider;
+import org.apache.streams.core.StreamsResultSet;
+import org.apache.streams.twitter.TwitterStreamConfiguration;
+import org.joda.time.DateTime;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.Serializable;
+import java.math.BigInteger;
+import java.util.List;
+import java.util.concurrent.*;
+
+/**
+ * Created by sblackmon on 12/10/13.
+ */
+public class TwitterStreamProvider /*extends BaseRichSpout*/ implements StreamsProvider, Serializable, Runnable {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(TwitterStreamProvider.class);
+
+    private TwitterStreamConfiguration config;
+
+    private Class klass;
+
+    public TwitterStreamConfiguration getConfig() {
+        return config;
+    }
+
+    public void setConfig(TwitterStreamConfiguration config) {
+        this.config = config;
+    }
+
+    BlockingQueue<String> inQueue = new LinkedBlockingQueue<String>(10000);
+
+    private StreamingEndpoint endpoint;
+    private BasicClient client;
+
+    public BlockingQueue<Object> getOutQueue() {
+        return outQueue;
+    }
+
+    BlockingQueue<Object> outQueue = new LinkedBlockingQueue<Object>(10000);
+
+    private ListeningExecutorService executor = MoreExecutors.listeningDecorator(newFixedThreadPoolWithQueueSize(5, 20));
+
+    private static ExecutorService newFixedThreadPoolWithQueueSize(int nThreads, int queueSize) {
+        return new ThreadPoolExecutor(nThreads, nThreads,
+                5000L, TimeUnit.MILLISECONDS,
+                new ArrayBlockingQueue<Runnable>(queueSize, true), new ThreadPoolExecutor.CallerRunsPolicy());
+    }
+
+    public TwitterStreamProvider() {
+        Config config = StreamsConfigurator.config.getConfig("twitter");
+        this.config = TwitterStreamConfigurator.detectConfiguration(config);
+    }
+
+    public TwitterStreamProvider(TwitterStreamConfiguration config) {
+        this.config = config;
+    }
+
+    public TwitterStreamProvider(Class klass) {
+        Config config = StreamsConfigurator.config.getConfig("twitter");
+        this.config = TwitterStreamConfigurator.detectConfiguration(config);
+        this.klass = klass;
+    }
+
+    public TwitterStreamProvider(TwitterStreamConfiguration config, Class klass) {
+        this.config = config;
+        this.klass = klass;
+    }
+
+    private void setup() {
+
+        Preconditions.checkNotNull(this.klass);
+
+        Preconditions.checkNotNull(config.getOauth().getConsumerKey());
+        Preconditions.checkNotNull(config.getOauth().getConsumerSecret());
+        Preconditions.checkNotNull(config.getOauth().getAccessToken());
+        Preconditions.checkNotNull(config.getOauth().getAccessTokenSecret());
+
+        Preconditions.checkNotNull(config.getEndpoint());
+        if(config.getEndpoint().endsWith("sample.json") ) {
+            endpoint = new StatusesSampleEndpoint();
+
+            Optional<List<String>> track = Optional.fromNullable(config.getTrack());
+            Optional<List<Long>> follow = Optional.fromNullable(config.getFollow());
+
+            if( track.isPresent() ) endpoint.addPostParameter("track", Joiner.on(",").join(track.get()));
+            if( follow.isPresent() ) endpoint.addPostParameter("follow", Joiner.on(",").join(follow.get()));
+        }
+        else if( config.getEndpoint().endsWith("firehose.json"))
+            endpoint = new StatusesFirehoseEndpoint();
+        else
+            return;
+
+        Authentication auth = new OAuth1(config.getOauth().getConsumerKey(),
+                config.getOauth().getConsumerSecret(),
+                config.getOauth().getAccessToken(),
+                config.getOauth().getAccessTokenSecret());
+
+        client = new ClientBuilder()
+                .name("apache/streams/streams-contrib/streams-provider-twitter")
+                .hosts(Constants.STREAM_HOST)
+                .endpoint(endpoint)
+                .authentication(auth)
+                .processor(new StringDelimitedProcessor(inQueue))
+                .build();
+
+    }
+
+    @Override
+    public void run() {
+
+        setup();
+
+        for (int i = 0; i < 10; i++) {
+            executor.submit(new TwitterEventProcessor(inQueue, outQueue, klass));
+        }
+
+        client.connect();
+
+    }
+
+    @Override
+    public void start() {
+
+    }
+
+    @Override
+    public void stop() {
+
+    }
+
+    @Override
+    public StreamsResultSet readCurrent() {
+        return null;
+    }
+
+    @Override
+    public StreamsResultSet readNew(BigInteger sequence) {
+        return null;
+    }
+
+    @Override
+    public StreamsResultSet readRange(DateTime start, DateTime end) {
+        return null;
+    }
+//
+//    @Override
+//    public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) {
+//        outputFieldsDeclarer.declare(new Fields("document"));
+//        outputFieldsDeclarer.declare(new Fields("type"));
+//    }
+//
+//    @Override
+//    public void open(Map map, TopologyContext topologyContext, SpoutOutputCollector spoutOutputCollector) {
+//        collector = spoutOutputCollector;
+//        run();
+//    }
+//
+//    @Override
+//    public void nextTuple() {
+//        try {
+//            collector.emit( new Values(outQueue.take(), klass) );
+//        } catch (InterruptedException e) {
+//            e.printStackTrace();
+//        }
+//
+//    }
+
+    public class TwitterStreamCloser implements Runnable {
+
+        BlockingQueue<String> queue;
+
+        public TwitterStreamCloser(BlockingQueue<String> queue) {
+            this.queue = queue;
+        }
+
+        public void run() {
+            for (int i = 0; i < 10; i++) {
+                queue.add(TwitterEventProcessor.TERMINATE);
+            }
+        }
+
+    }
+
+
+}

Added: incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/serializer/TwitterJsonDeleteActivitySerializer.java
URL: http://svn.apache.org/viewvc/incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/serializer/TwitterJsonDeleteActivitySerializer.java?rev=1556893&view=auto
==============================================================================
--- incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/serializer/TwitterJsonDeleteActivitySerializer.java (added)
+++ incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/serializer/TwitterJsonDeleteActivitySerializer.java Thu Jan  9 17:27:50 2014
@@ -0,0 +1,56 @@
+package org.apache.streams.twitter.serializer;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.apache.streams.pojo.json.Activity;
+import org.apache.streams.pojo.json.ActivityObject;
+import org.apache.streams.pojo.json.Actor;
+import org.apache.streams.twitter.pojo.Delete;
+import org.apache.streams.twitter.pojo.Tweet;
+
+/**
+* Created with IntelliJ IDEA.
+* User: mdelaet
+* Date: 9/30/13
+* Time: 9:24 AM
+* To change this template use File | Settings | File Templates.
+*/
+public class TwitterJsonDeleteActivitySerializer extends TwitterJsonEventActivitySerializer {
+
+    public Activity convert(ObjectNode event) {
+
+        Delete delete = null;
+        try {
+            delete = mapper.treeToValue(event, Delete.class);
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+        Activity activity = new Activity();
+        activity.setActor(buildActor(delete));
+        activity.setVerb("delete");
+        activity.setObject(buildActivityObject(delete));
+        activity.setId(formatId(activity.getVerb(), delete.getDelete().getStatus().getIdStr()));
+        activity.setProvider(buildProvider(event));
+        addTwitterExtension(activity, event);
+        return activity;
+    }
+
+    public Actor buildActor(Delete delete) {
+        Actor actor = new Actor();
+        actor.setId(formatId(delete.getDelete().getStatus().getUserIdStr()));
+        return actor;
+    }
+
+    public ActivityObject buildActivityObject(Delete delete) {
+        ActivityObject actObj = new ActivityObject();
+        actObj.setId(formatId(delete.getDelete().getStatus().getIdStr()));
+        actObj.setObjectType("tweet");
+        return actObj;
+    }
+
+    public ActivityObject buildTarget(Tweet tweet) {
+        return null;
+    }
+
+}

Added: incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/serializer/TwitterJsonEventActivitySerializer.java
URL: http://svn.apache.org/viewvc/incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/serializer/TwitterJsonEventActivitySerializer.java?rev=1556893&view=auto
==============================================================================
--- incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/serializer/TwitterJsonEventActivitySerializer.java (added)
+++ incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/serializer/TwitterJsonEventActivitySerializer.java Thu Jan  9 17:27:50 2014
@@ -0,0 +1,130 @@
+package org.apache.streams.twitter.serializer;
+
+import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
+import com.google.common.base.Joiner;
+import com.google.common.collect.Lists;
+import org.apache.commons.lang.NotImplementedException;
+import org.apache.streams.data.ActivitySerializer;
+import org.apache.streams.pojo.json.Activity;
+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 java.io.IOException;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import static org.apache.streams.data.util.ActivityUtil.ensureExtensions;
+
+/**
+* Created with IntelliJ IDEA.
+* User: mdelaet
+* Date: 9/30/13
+* Time: 9:24 AM
+* To change this template use File | Settings | File Templates.
+*/
+public abstract class TwitterJsonEventActivitySerializer implements ActivitySerializer {
+
+    public static final String DATE_FORMAT = "EEE MMM dd HH:mm:ss Z yyyy";
+
+    ObjectMapper mapper = new ObjectMapper();
+
+    @Override
+    public String serializationFormat() {
+        return "application/json+vnd.twitter.com.v1";
+    }
+
+    @Override
+    public String serialize(Activity deserialized) {
+        throw new UnsupportedOperationException("Cannot currently serialize to Twitter JSON");
+    }
+
+    @Override
+    public Activity deserialize(String serialized) {
+        serialized = serialized.replaceAll("\\[[ ]*\\]", "null");
+
+//        System.out.println(serialized);
+
+        AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(mapper.getTypeFactory());
+        mapper.setAnnotationIntrospector(introspector);
+        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, Boolean.FALSE);
+        mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, Boolean.FALSE);
+        mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, Boolean.TRUE);
+        mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, Boolean.TRUE);
+        mapper.configure(DeserializationFeature.WRAP_EXCEPTIONS, Boolean.TRUE);
+
+        try {
+            ObjectNode event = (ObjectNode) mapper.readTree(serialized);
+
+            Activity activity = convert(event);
+
+            return activity;
+
+        } catch (IOException e) {
+            throw new IllegalArgumentException("Unable to deserialize", e);
+        }
+
+    }
+
+    @Override
+    public List<Activity> deserializeAll(String serializedList) {
+        throw new NotImplementedException("Not currently implemented");
+    }
+
+    public abstract Activity convert(ObjectNode event);
+
+    public static Date parse(String str) {
+        Date date;
+        String dstr;
+        DateFormat fmt = new SimpleDateFormat(DATE_FORMAT);
+        DateFormat out = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
+        try {
+            date = fmt.parse(str);
+            dstr = out.format(date);
+            return out.parse(dstr);
+        } catch (ParseException e) {
+            throw new IllegalArgumentException("Invalid date format", e);
+        }
+    }
+
+    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:twitter");
+        return provider;
+    }
+
+    public static List<Object> getLinks(ObjectNode event) {
+        return null;
+    }
+
+    public static String getUrls(ObjectNode event) {
+        return null;
+    }
+
+    public static void addTwitterExtension(Activity activity, ObjectNode event) {
+        Map<String, Object> extensions = ensureExtensions(activity);
+        extensions.put("twitter", event);
+    }
+
+    public static String formatId(String... idparts) {
+        return Joiner.on(":").join(Lists.asList("id:twitter", idparts));
+    }
+
+}

Added: incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/serializer/TwitterJsonRetweetActivitySerializer.java
URL: http://svn.apache.org/viewvc/incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/serializer/TwitterJsonRetweetActivitySerializer.java?rev=1556893&view=auto
==============================================================================
--- incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/serializer/TwitterJsonRetweetActivitySerializer.java (added)
+++ incubator/streams/branches/sblackmon/streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/serializer/TwitterJsonRetweetActivitySerializer.java Thu Jan  9 17:27:50 2014
@@ -0,0 +1,79 @@
+package org.apache.streams.twitter.serializer;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.apache.streams.data.ActivitySerializer;
+import org.apache.streams.pojo.json.Activity;
+import org.apache.streams.pojo.json.ActivityObject;
+import org.apache.streams.pojo.json.Actor;
+import org.apache.streams.twitter.pojo.Retweet;
+import org.apache.streams.twitter.pojo.Tweet;
+import org.apache.streams.twitter.pojo.User;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.apache.streams.data.util.ActivityUtil.ensureExtensions;
+
+/**
+* Created with IntelliJ IDEA.
+* User: mdelaet
+* Date: 9/30/13
+* Time: 9:24 AM
+* To change this template use File | Settings | File Templates.
+*/
+public class TwitterJsonRetweetActivitySerializer extends TwitterJsonEventActivitySerializer implements ActivitySerializer {
+
+    public Activity convert(ObjectNode event) {
+
+        Retweet retweet = null;
+        try {
+            retweet = mapper.treeToValue(event, Retweet.class);
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+        Activity activity = new Activity();
+        activity.setActor(buildActor(retweet));
+        activity.setVerb("share");
+        activity.setObject(buildActivityObject(retweet.getRetweetedStatus()));
+        activity.setId(formatId(activity.getVerb(), retweet.getIdStr()));
+        activity.setPublished(parse(retweet.getCreatedAt()));
+        activity.setGenerator(buildGenerator(event));
+        activity.setIcon(getIcon(event));
+        activity.setProvider(buildProvider(event));
+        activity.setTitle("");
+        activity.setContent(retweet.getRetweetedStatus().getText());
+        addTwitterExtension(activity, event);
+        addLocationExtension(activity, retweet);
+        return activity;
+    }
+
+    public static Actor buildActor(Tweet tweet) {
+        Actor actor = new Actor();
+        User user = tweet.getUser();
+        actor.setId(formatId(user.getIdStr(), tweet.getIdStr()));
+        actor.setDisplayName(user.getScreenName());
+        actor.setId(user.getIdStr());
+        if (user.getUrl()!=null){
+            actor.setUrl(user.getUrl());
+        }
+        return actor;
+    }
+
+    public static ActivityObject buildActivityObject(Tweet tweet) {
+        ActivityObject actObj = new ActivityObject();
+        actObj.setId(formatId(tweet.getIdStr()));
+        actObj.setObjectType("tweet");
+        return actObj;
+    }
+
+    public static void addLocationExtension(Activity activity, Retweet retweet) {
+        Map<String, Object> extensions = ensureExtensions(activity);
+        Map<String, Object> location = new HashMap<String, Object>();
+        location.put("id", formatId(retweet.getIdStr()));
+        location.put("coordinates", retweet.getCoordinates());
+        extensions.put("location", location);
+    }
+
+}



Mime
View raw message