[overlord-commits] Overlord SVN: r682 - in sam/trunk: modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter and 1 other directories.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Mon Jul 27 10:44:27 EDT 2009


Author: heiko.braun at jboss.com
Date: 2009-07-27 10:44:27 -0400 (Mon, 27 Jul 2009)
New Revision: 682

Modified:
   sam/trunk/SAMM.iws
   sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/BarChart.java
   sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/CVTOutput.java
   sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/Main.java
   sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/SearchInput.java
   sam/trunk/modules/examples/twitter/src/main/resources/iran-tweets.drl
Log:
Complete twitter example

Modified: sam/trunk/SAMM.iws
===================================================================
--- sam/trunk/SAMM.iws	2009-07-27 13:33:12 UTC (rev 681)
+++ sam/trunk/SAMM.iws	2009-07-27 14:44:27 UTC (rev 682)
@@ -18,15 +18,13 @@
   <component name="ChangeListManager">
     <list default="true" name="Default" comment="">
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/SAMM.iws" afterPath="$PROJECT_DIR$/SAMM.iws" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/examples/twitter/src/main/resources/sam-cfg.xml" afterPath="$PROJECT_DIR$/modules/examples/twitter/src/main/resources/sam-cfg.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/examples/twitter/twitter.iml" afterPath="$PROJECT_DIR$/modules/examples/twitter/twitter.iml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/SAMM.ipr" afterPath="$PROJECT_DIR$/SAMM.ipr" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/Main.java" afterPath="$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/Main.java" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/modules/examples/twitter/src/main/resources/search-jboss.json" afterPath="" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/CVTOutput.java" afterPath="$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/CVTOutput.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/examples/twitter/src/main/resources/iran-tweets.drl" afterPath="$PROJECT_DIR$/modules/examples/twitter/src/main/resources/iran-tweets.drl" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/BarChart.java" afterPath="$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/BarChart.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/toplevel.iml" afterPath="$PROJECT_DIR$/toplevel.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/sim/sim.iml" afterPath="$PROJECT_DIR$/modules/sim/sim.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/core/core.iml" afterPath="$PROJECT_DIR$/modules/core/core.iml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/SearchInput.java" afterPath="$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/SearchInput.java" />
     </list>
   </component>
   <component name="ChangeListSynchronizer" />
@@ -98,7 +96,7 @@
   </component>
   <component name="DebuggerManager">
     <line_breakpoints>
-      <breakpoint url="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/CVTOutput.java" line="64" class="org.jboss.sam.examples.twitter.CVTOutput" package="org.jboss.sam.examples.twitter">
+      <breakpoint url="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/BarChart.java" line="99" class="org.jboss.sam.examples.twitter.BarChart" package="org.jboss.sam.examples.twitter">
         <option name="ENABLED" value="true" />
         <option name="SUSPEND_POLICY" value="SuspendAll" />
         <option name="LOG_ENABLED" value="false" />
@@ -186,7 +184,7 @@
       <file leaf-file-name="Main.java" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/Main.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="101" column="19" selection-start="2770" selection-end="2770" vertical-scroll-proportion="0.642409">
+            <state line="92" column="44" selection-start="2634" selection-end="2634" vertical-scroll-proportion="0.78293604">
               <folding>
                 <element signature="imports" expanded="true" />
               </folding>
@@ -194,28 +192,39 @@
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="CVTOutput.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/CVTOutput.java">
+      <file leaf-file-name="BarChart.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/BarChart.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="39" column="0" selection-start="1435" selection-end="1435" vertical-scroll-proportion="0.12438424">
+            <state line="77" column="48" selection-start="2587" selection-end="2587" vertical-scroll-proportion="0.3927227">
+              <folding>
+                <element signature="imports" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="SearchInput.java" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/SearchInput.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state line="78" column="42" selection-start="2313" selection-end="2313" vertical-scroll-proportion="0.3546798">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="iran-tweets.drl" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/resources/iran-tweets.drl">
+      <file leaf-file-name="CVTOutput.java" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/CVTOutput.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="25" column="0" selection-start="516" selection-end="516" vertical-scroll-proportion="0.49261084">
+            <state line="64" column="0" selection-start="1871" selection-end="1871" vertical-scroll-proportion="0.5073892">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="sam-cfg.xml" pinned="false" current="true" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/resources/sam-cfg.xml">
+      <file leaf-file-name="iran-tweets.drl" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/resources/iran-tweets.drl">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="12" column="0" selection-start="367" selection-end="367" vertical-scroll-proportion="0.2364532">
+            <state line="42" column="25" selection-start="967" selection-end="967" vertical-scroll-proportion="0.8431619">
               <folding />
             </state>
           </provider>
@@ -628,7 +637,13 @@
       <option name="ALTERNATIVE_JRE_PATH" />
       <option name="ENABLE_SWING_INSPECTOR" value="false" />
       <module name="twitter" />
+      <RunnerSettings RunnerId="Debug">
+        <option name="DEBUG_PORT" value="50528" />
+        <option name="TRANSPORT" value="0" />
+        <option name="LOCAL" value="true" />
+      </RunnerSettings>
       <RunnerSettings RunnerId="Run" />
+      <ConfigurationWrapper RunnerId="Debug" />
       <ConfigurationWrapper RunnerId="Run" />
       <method>
         <option name="Make" value="false" />
@@ -956,53 +971,62 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/SearchInput.java">
+    <entry file="file://$PROJECT_DIR$/modules/core/src/main/java/org/jboss/sam/util/CurrentValueTable.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="78" column="26" selection-start="2301" selection-end="2301" vertical-scroll-proportion="0.66871923">
+        <state line="57" column="57" selection-start="1654" selection-end="1654" vertical-scroll-proportion="0.6699507">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/core/src/main/java/org/jboss/sam/util/CurrentValueTable.java">
+    <entry file="file://$PROJECT_DIR$/modules/examples/twitter/pom.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="57" column="57" selection-start="1654" selection-end="1654" vertical-scroll-proportion="0.6699507">
+        <state line="33" column="36" selection-start="1102" selection-end="1102" vertical-scroll-proportion="0.6624843">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/examples/twitter/pom.xml">
+    <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/resources/sam-cfg.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="33" column="36" selection-start="1102" selection-end="1102" vertical-scroll-proportion="0.6624843">
+        <state line="12" column="0" selection-start="367" selection-end="367" vertical-scroll-proportion="0.2364532">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/Main.java">
+    <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/resources/iran-tweets.drl">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="101" column="19" selection-start="2770" selection-end="2770" vertical-scroll-proportion="0.642409">
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
+        <state line="42" column="25" selection-start="967" selection-end="967" vertical-scroll-proportion="0.8431619">
+          <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/CVTOutput.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="39" column="0" selection-start="1435" selection-end="1435" vertical-scroll-proportion="0.12438424">
+        <state line="64" column="0" selection-start="1871" selection-end="1871" vertical-scroll-proportion="0.5073892">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/resources/iran-tweets.drl">
+    <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/Main.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="25" column="0" selection-start="516" selection-end="516" vertical-scroll-proportion="0.49261084">
-          <folding />
+        <state line="92" column="44" selection-start="2634" selection-end="2634" vertical-scroll-proportion="0.78293604">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/resources/sam-cfg.xml">
+    <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/BarChart.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="12" column="0" selection-start="367" selection-end="367" vertical-scroll-proportion="0.2364532">
+        <state line="77" column="48" selection-start="2587" selection-end="2587" vertical-scroll-proportion="0.3927227">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/SearchInput.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="78" column="42" selection-start="2313" selection-end="2313" vertical-scroll-proportion="0.3546798">
           <folding />
         </state>
       </provider>

Modified: sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/BarChart.java
===================================================================
--- sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/BarChart.java	2009-07-27 13:33:12 UTC (rev 681)
+++ sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/BarChart.java	2009-07-27 14:44:27 UTC (rev 682)
@@ -21,41 +21,17 @@
  */
 package org.jboss.sam.examples.twitter;
 
-/*
-    OpenChart2 Java Charting Library and Toolkit
-    Copyright (C) 2005-2007 Approximatrix, LLC
-    Copyright (C) 2001  Sebastian Müller
-    http://www.approximatrix.com
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-    BarChart.java
-
- */
-
 import com.approximatrix.charting.DefaultChart;
 import com.approximatrix.charting.event.ChartDataModelEvent;
 import com.approximatrix.charting.event.ChartDataModelListener;
 import com.approximatrix.charting.model.EditableChartDataModel;
 import com.approximatrix.charting.render.LineChartRenderer;
 import com.approximatrix.charting.swing.ChartPanel;
-import org.jboss.sam.EventMessage;
 
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionListener;
+import java.util.ArrayList;
 
 /** This class implements a simple dialog that displays a bar chart along
  * side a menu.  The chart is rescaled to show 0 to 100 rather than simply
@@ -70,20 +46,38 @@
   ChartPanel panel;
   EditableChartDataModel data;
 
-  double numSamples = 2;
+  double offset = 2;
 
+  private java.util.List<CVTOutput> cvts;
+
+  private String[] rows;
+  private double[][] model;
+  private double[] columns;
+
   /** Initializes the dialog and its chart in a ChartPanel dialog */
-  public BarChart(String query)
+  public BarChart(java.util.List<CVTOutput> cvts)
   {
+
+    this.cvts = cvts;
+    
     // Init some starting data
-    double[][] model = {{1.0, 1.0, 1.0}};
+    model = new double[][] {
+        {1.0, 1.0, 1.0},
+        {1.0, 1.0, 1.0},
+        {1.0, 1.0, 1.0}
+    };
 
-    double[] columns = {0.0, 1.0, 2.0};
+    columns = new double[] {0.0, 1.0, 2.0};
+    
+    rows = new String[cvts.size()];
+    for(int i=0; i<cvts.size();i++)
+    {
+      CVTOutput cvt = cvts.get(i);
+      rows[i] = cvt.getStreamName();
+    }
 
-    String[] rows = {query};
+    String title = "SAM: Twitter example feeds";
 
-    String title = "Tweets per minute";
-
     // Create an editable chart data model
     data = new EditableChartDataModel(model, columns, rows);
 
@@ -92,6 +86,7 @@
     // Adding ChartRenderer as usual
     LineChartRenderer renderer = new LineChartRenderer(panel.getCoordSystem(), data);
     panel.addChartRenderer(renderer, 1);
+    panel.addChartRenderer(renderer, 2);
     // Register EventListener
     data.addChartDataModelListener(this);
 
@@ -100,19 +95,19 @@
 
   }
 
-  public void updateFrom(EventMessage[] tweets)
+  public void refresh()
   {
-    try
+    for(int i=0; i<rows.length; i++)
     {
-      data.insertValue(0, Double.valueOf(tweets.length), Double.valueOf(numSamples));
-      numSamples++;
+
+      CVTOutput cvtout = cvts.get(i);
+      int size = cvtout.getTable().size();
+      data.insertValue(i, Double.valueOf(size), Double.valueOf(offset));
     }
-    catch (Throwable e)
-    {
-      e.printStackTrace();
-    }
-  }
 
+    offset++;
+  }
+ 
   /** Listener for our single menu item.  When clicked, dispose of this
    * dialog
    */
@@ -144,7 +139,7 @@
     }
 
     // Construct our bar chart dialog
-    BarChart temp = new BarChart("Micheal Jackson");
+    BarChart temp = new BarChart(new ArrayList());
 
     // Make the dialog visible
     temp.setVisible(true);

Modified: sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/CVTOutput.java
===================================================================
--- sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/CVTOutput.java	2009-07-27 13:33:12 UTC (rev 681)
+++ sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/CVTOutput.java	2009-07-27 14:44:27 UTC (rev 682)
@@ -75,4 +75,9 @@
   {
     //
   }
+
+  public CurrentValueTable getTable()
+  {
+    return cvt;
+  }
 }

Modified: sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/Main.java
===================================================================
--- sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/Main.java	2009-07-27 13:33:12 UTC (rev 681)
+++ sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/Main.java	2009-07-27 14:44:27 UTC (rev 682)
@@ -29,6 +29,8 @@
 
 import java.io.InputStream;
 import java.util.UUID;
+import java.util.List;
+import java.util.ArrayList;
 
 /**
  * @author Heiko.Braun <heiko.braun at jboss.com>
@@ -41,6 +43,10 @@
 
   private Thread mainThread;
   private boolean running = true;
+
+  private BarChart ui;
+
+  private List<CVTOutput> cvts = new ArrayList<CVTOutput>();
   
   public static void main(String[] args)
   {
@@ -67,19 +73,30 @@
    */
   private void bootstrap()
   {
+    // input
     SearchInput twitterSearchInput = new SearchInput("iran");
-    CVTOutput output1 = new CVTOutput("iran results");
-    CVTOutput output2 = new CVTOutput("us results");
-
-    // input and output
     eventProcessor.addInput(twitterSearchInput);
-    eventProcessor.addOutput(output1);
-    //eventProcessor.addOutput(output2);
 
-    // rules
+    // output
+    CVTOutput output1 = createAndRegisterCVT("iran results");
+    CVTOutput output2 = createAndRegisterCVT("us involved");
+    CVTOutput output3 = createAndRegisterCVT("israel involved");
+
+    // processing rules
     loadDRL("iran-tweets.drl");
+
+    // user interface
+    ui = new BarChart(cvts);
   }
 
+  private CVTOutput createAndRegisterCVT(String name)
+  {
+    CVTOutput cvt = new CVTOutput(name);
+    eventProcessor.addOutput(cvt);
+    cvts.add(cvt);
+    return cvt;
+  }
+
   private void loadDRL(String resource)
   {
     InputStream in = IO.loadDRL(resource);
@@ -89,7 +106,8 @@
   public void start()
   {
     eventProcessor.start();
-
+    ui.setVisible(true);
+    
     mainThread = new Thread(
         new Runnable()
         {
@@ -106,6 +124,8 @@
               {
                 e.printStackTrace();  
               }
+
+              ui.refresh();
             }
 
             System.out.println("Stopped event processor");

Modified: sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/SearchInput.java
===================================================================
--- sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/SearchInput.java	2009-07-27 13:33:12 UTC (rev 681)
+++ sam/trunk/modules/examples/twitter/src/main/java/org/jboss/sam/examples/twitter/SearchInput.java	2009-07-27 14:44:27 UTC (rev 682)
@@ -56,7 +56,7 @@
   {
     this.twitter = new Twitter();
     this.queryString = queryString;
-    
+
     watchdog = new Thread(
         new Runnable(){
 
@@ -76,7 +76,7 @@
                 if(lastUpdate >0)
                   query.setSinceId(lastUpdate);
 
-                QueryResult result = new Twitter().search(query);
+                QueryResult result = twitter.search(query);
 
                 System.out.println("Search results: " + result.getTweets().size());
 
@@ -98,7 +98,7 @@
                 if(!tweets.isEmpty())
                 {
                   Tweet last = tweets.get(0);
-                  lastUpdate = last.getId();                  
+                  lastUpdate = last.getId();
                 }
 
                 try

Modified: sam/trunk/modules/examples/twitter/src/main/resources/iran-tweets.drl
===================================================================
--- sam/trunk/modules/examples/twitter/src/main/resources/iran-tweets.drl	2009-07-27 13:33:12 UTC (rev 681)
+++ sam/trunk/modules/examples/twitter/src/main/resources/iran-tweets.drl	2009-07-27 14:44:27 UTC (rev 682)
@@ -5,7 +5,6 @@
 
 global org.jboss.sam.internal.drools.SAMAdapter SAM;
 
-# default dialect for the semantic code will be MVEL
 dialect "mvel"
 
 # flag as event
@@ -23,3 +22,23 @@
 then      
    SAM.getListener("iran results").update($tweets);
 end
+
+rule "U.S. involvement tweets"
+when
+    $tweets: List() from accumulate(
+      $t : Tweet(text matches "(.*)(U.S.)(.*)") over window:time(15s) from entry-point "iran tweets",
+      collectList( $t )
+   )
+then
+   SAM.getListener("us involved").update($tweets);
+end
+
+rule "Isreal involvement tweets"
+when
+    $tweets: List() from accumulate(
+      $t : Tweet(text matches "(.*)(Israel)(.*)") over window:time(15s) from entry-point "iran tweets",
+      collectList( $t )
+   )
+then
+   SAM.getListener("israel involved").update($tweets);
+end



More information about the overlord-commits mailing list