[overlord-commits] Overlord SVN: r239 - in sam/trunk: modules/core/src/main/java/org/jboss/sam/internal/drools and 8 other directories.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Wed Aug 13 05:39:31 EDT 2008


Author: heiko.braun at jboss.com
Date: 2008-08-13 05:39:31 -0400 (Wed, 13 Aug 2008)
New Revision: 239

Added:
   sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/SAMAdapter.java
   sam/trunk/modules/core/src/test/resources/adapter/invm/sam-cfg.xml
   sam/trunk/modules/core/src/test/resources/database/test.drl
Removed:
   sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/DroolsAdapter.java
   sam/trunk/modules/core/src/test/resources/adapter/invm/test.drl
Modified:
   sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/DroolsEventProcessorImpl.java
   sam/trunk/modules/core/src/test/java/org/jboss/test/sam/SamTestSetup.java
   sam/trunk/modules/core/src/test/java/org/jboss/test/sam/adapter/invm/InVMAdapterTestCase.java
   sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/DatabaseTestCase.java
   sam/trunk/modules/core/src/test/resources/database/sam-cfg.xml
   sam/trunk/modules/core/src/test/resources/drools/aggregate.drl
   sam/trunk/modules/core/src/test/resources/drools/forward.drl
   sam/trunk/modules/core/src/test/resources/drools/simple.drl
   sam/trunk/modules/sim/src/test/java/org/jboss/test/sam/BufferedStreamOutput.java
   sam/trunk/modules/sim/src/test/resources/simulation/test.drl
   sam/trunk/sam-trunk.iml
Log:
Introduce global SAMAdapter->'SAM', that bridges into SAM extension points

Deleted: sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/DroolsAdapter.java
===================================================================
--- sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/DroolsAdapter.java	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/DroolsAdapter.java	2008-08-13 09:39:31 UTC (rev 239)
@@ -1,62 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This 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 software 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.sam.internal.drools;
-
-import org.drools.StatefulSession;
-import org.drools.WorkingMemoryEntryPoint;
-
-import java.util.Map;
-
-/**
- * Will be injected into WorkingMemory to give access drools entities that
- * are relevant to the SAM processing model.
- * 
- * @author Heiko.Braun <heiko.braun at jboss.com>
- */
-public class DroolsAdapter
-{
-   private StatefulSession session;
-   private Map<String, StreamOutputAdapter> outputAdapters;
-
-   public DroolsAdapter(StatefulSession session, Map<String, StreamOutputAdapter> outputAdapters)
-   {
-      this.session = session;
-      this.outputAdapters = outputAdapters;
-   }
-
-   public WorkingMemoryEntryPoint getStream(String name)
-   {
-      WorkingMemoryEntryPoint memoryEntryPoint = this.session.getWorkingMemoryEntryPoint(name);
-      if(null==memoryEntryPoint)
-         throw new IllegalArgumentException("Unknown stream " + name);
-      
-      return memoryEntryPoint;
-   }
-
-   public UpdateListener getListener(String name)
-   {
-      StreamOutputAdapter adapter = this.outputAdapters.get(name);
-      if(null==adapter)
-         throw new IllegalArgumentException("Unknown listener '" + name +"'");
-      return adapter;
-   }
-}

Modified: sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/DroolsEventProcessorImpl.java
===================================================================
--- sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/DroolsEventProcessorImpl.java	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/DroolsEventProcessorImpl.java	2008-08-13 09:39:31 UTC (rev 239)
@@ -95,9 +95,9 @@
       Object global = null;
 
       // TODO: Please note that there is also 'drools', revisit!
-      if("Drools".equals(key))
+      if("SAM".equals(key))
       {
-         global = new DroolsAdapter(this.session, this.outputAdapters);
+         global = new SAMAdapter(this.session, this.outputAdapters);
       }
       else
       {

Copied: sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/SAMAdapter.java (from rev 196, sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/DroolsAdapter.java)
===================================================================
--- sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/SAMAdapter.java	                        (rev 0)
+++ sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/SAMAdapter.java	2008-08-13 09:39:31 UTC (rev 239)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This 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 software 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.sam.internal.drools;
+
+import org.drools.StatefulSession;
+import org.drools.WorkingMemoryEntryPoint;
+
+import java.util.Map;
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * Will be injected into WorkingMemory to give access drools entities that
+ * are relevant to the SAM processing model. This class basically acts as a workaround for
+ * features that we would like to see:
+ *
+ * <ul>
+ * <li>Hidden behind a custom SAM DSL
+ * <li>or provided by Drools Fusion directly (JIRA) 
+ * </ul>
+ *  
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class SAMAdapter
+{
+   private StatefulSession session;
+   private Map<String, StreamOutputAdapter> outputAdapters;
+
+   public SAMAdapter(StatefulSession session, Map<String, StreamOutputAdapter> outputAdapters)
+   {
+      this.session = session;
+      this.outputAdapters = outputAdapters;
+   }
+
+   public WorkingMemoryEntryPoint getStream(String name)
+   {
+      WorkingMemoryEntryPoint memoryEntryPoint = this.session.getWorkingMemoryEntryPoint(name);
+      if(null==memoryEntryPoint)
+         throw new IllegalArgumentException("Unknown stream " + name);
+      
+      return memoryEntryPoint;
+   }
+
+   public UpdateListener getListener(String name)
+   {
+      StreamOutputAdapter adapter = this.outputAdapters.get(name);
+      if(null==adapter)
+         throw new IllegalArgumentException("Unknown listener '" + name +"'");
+      return adapter;
+   }
+
+   public List executeSQL(String dbName, String sql)
+   {
+      System.out.println("SQL: " + sql);
+      ArrayList results = new ArrayList();
+      results.add("Hello");
+      results.add("World");
+      return results;
+   }   
+}


Property changes on: sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/SAMAdapter.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: sam/trunk/modules/core/src/test/java/org/jboss/test/sam/SamTestSetup.java
===================================================================
--- sam/trunk/modules/core/src/test/java/org/jboss/test/sam/SamTestSetup.java	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/modules/core/src/test/java/org/jboss/test/sam/SamTestSetup.java	2008-08-13 09:39:31 UTC (rev 239)
@@ -64,10 +64,10 @@
       // Stream input and output
       streamInput = new InVMStreamInput("InVM").start();
       dispatcher = new InVMDispatcher(streamInput.getStreamName());
-      
+
       bufferedOutput = new BufferedStreamOutput("InVM").start();
       eventProcessor.addInput(streamInput);
-      eventProcessor.addOutput(bufferedOutput);     
+      eventProcessor.addOutput(bufferedOutput);
    }
 
    /**

Modified: sam/trunk/modules/core/src/test/java/org/jboss/test/sam/adapter/invm/InVMAdapterTestCase.java
===================================================================
--- sam/trunk/modules/core/src/test/java/org/jboss/test/sam/adapter/invm/InVMAdapterTestCase.java	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/modules/core/src/test/java/org/jboss/test/sam/adapter/invm/InVMAdapterTestCase.java	2008-08-13 09:39:31 UTC (rev 239)
@@ -31,15 +31,11 @@
 {
    public void setUp()
    {
-      createProcessorWithDefaultIO("InVMAdapterTestCase", null);
+      createProcessorWithDefaultIO("InVMAdapterTestCase", "adapter/invm/sam-cfg.xml");
    }
    
    public void testAdapter() throws Exception
-   {
-      // setup
-      String stmt = getDRLFromResource("adapter/invm/test.drl");
-      ProcessingStatement view = eventProcessor.registerBoundStatement("InVM","AlertTest", stmt);
-
+   {      
       // fire event
       generateInVMEvent( new Alert("sensor1", "Threshold exceeded") );
 

Modified: sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/DatabaseTestCase.java
===================================================================
--- sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/DatabaseTestCase.java	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/DatabaseTestCase.java	2008-08-13 09:39:31 UTC (rev 239)
@@ -61,7 +61,7 @@
       db.update("INSERT INTO quotes (symbol, name, price) VALUES('GOOG', 'Goole', 572.51)");
 
       // database dump
-      db.query("SELECT symbol, price FROM quotes");
+      //db.query("SELECT symbol, price FROM quotes");
    }
 
    protected void tearDown() throws Exception
@@ -75,10 +75,9 @@
    public void testTriggeredSQLQuery() throws Exception
    {
       // setup
-      /*String epl = "select symbol, price from Query.win:length(1) as query," +
-        " sql:SamTestDB ['SELECT symbol, price FROM quotes WHERE symbol like (${query.criteria})']";
+      String epl = getDRLFromResource("database/test.drl");
 
-      eventProcessor.registerBoundStatement("InVM","TriggerSQL", epl);
+      eventProcessor.registerBoundStatement("InVM","PullSQL", epl);
 
       // trigger
       generateInVMEvent( new Query("%") );
@@ -86,17 +85,16 @@
       // evaluate
       assertTrue("Listener not invoked", bufferedOutput.isInvoked());
       EventMessage[] eventMessages = bufferedOutput.getLastNewData();
-      assertTrue(eventMessages.length==7);
 
       for(EventMessage event : eventMessages)
       {
-         System.out.println("symbol/price -> " + event.getProperty("symbol") + "/" + event.getProperty("price"));
-      } */
+         System.out.println("!! " + event.getUnderlying() );
+      } 
    }
 
    public void testEsperPullAPI() throws Exception
    {
-      System.out.println("FIXME ESPER-254: testPullAPI on database queries");
+      System.out.println("FIXME: testPullAPI on database queries");
 
       /*See http://jira.codehaus.org/browse/ESPER-254
       

Added: sam/trunk/modules/core/src/test/resources/adapter/invm/sam-cfg.xml
===================================================================
--- sam/trunk/modules/core/src/test/resources/adapter/invm/sam-cfg.xml	                        (rev 0)
+++ sam/trunk/modules/core/src/test/resources/adapter/invm/sam-cfg.xml	2008-08-13 09:39:31 UTC (rev 239)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
+<ns2:processingNode name="InVMAdapterTestCase"
+                    domain="http://org.jboss.sam/test/database"
+                    xmlns:ns2="http://org.jboss.sam/08/2008/">
+   <statements>
+      <statement name="ExampleStatement" bindTo="VMOutput">
+         <epl lang="drl"><![CDATA[
+package org.jboss.test.sam.drools;
+
+         import org.jboss.test.sam.adapter.invm.Alert;
+         global org.jboss.sam.internal.drools.SAMAdapter SAM;
+
+         rule "Select any Alert"
+         when
+            $event: Alert()
+         then
+            SAM.getListener("InVM").update($event);
+         end
+         ]]></epl>
+      </statement>
+   </statements>
+</ns2:processingNode>
\ No newline at end of file


Property changes on: sam/trunk/modules/core/src/test/resources/adapter/invm/sam-cfg.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Deleted: sam/trunk/modules/core/src/test/resources/adapter/invm/test.drl
===================================================================
--- sam/trunk/modules/core/src/test/resources/adapter/invm/test.drl	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/modules/core/src/test/resources/adapter/invm/test.drl	2008-08-13 09:39:31 UTC (rev 239)
@@ -1,11 +0,0 @@
-package org.jboss.test.sam.drools;
-
-import org.jboss.test.sam.adapter.invm.Alert;
-global org.jboss.sam.internal.drools.DroolsAdapter Drools;
-
-rule "Select any Alert"
-when
-   $event: Alert()
-then
-   Drools.getListener("InVM").update($event);
-end

Modified: sam/trunk/modules/core/src/test/resources/database/sam-cfg.xml
===================================================================
--- sam/trunk/modules/core/src/test/resources/database/sam-cfg.xml	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/modules/core/src/test/resources/database/sam-cfg.xml	2008-08-13 09:39:31 UTC (rev 239)
@@ -2,28 +2,7 @@
 <ns2:processingNode name="DatabaseTestCase"
                     domain="http://org.jboss.sam/test/database" 
                     xmlns:ns2="http://org.jboss.sam/08/2008/">
-   <config/>
-   <inputs>                        
-      <input name="VMInput" clazz="org.jboss.sam.internal.stream.InVMStreamInput"/>
-   </inputs>
-   <outputs>
-      <output name="VMOutput" clazz="org.jboss.test.sam.BufferedStreamOutput"/>
-   </outputs>
-   <statements>
-      <statement name="ExampleStatement">
-         <epl lang="drl"><![CDATA[
-package org.jboss.test.sam.drools;
 
-import org.jboss.test.sam.drools.StockTick;
-global org.jboss.sam.internal.drools.DroolsAdapter Drools;
-
-rule "Check event"
-when
-   $st: StockTick(symbol == "ACME")
-then
-   Drools.getListener("InVM").update($st);
-end
-]]></epl>
-      </statement>
-   </statements>
+   <statements/>
+   
 </ns2:processingNode>
\ No newline at end of file

Added: sam/trunk/modules/core/src/test/resources/database/test.drl
===================================================================
--- sam/trunk/modules/core/src/test/resources/database/test.drl	                        (rev 0)
+++ sam/trunk/modules/core/src/test/resources/database/test.drl	2008-08-13 09:39:31 UTC (rev 239)
@@ -0,0 +1,16 @@
+package org.jboss.test.sam.database;
+
+import java.util.ArrayList;
+
+global org.jboss.sam.internal.drools.SAMAdapter SAM;
+
+rule "Simple SQL pull"
+when
+   $query: Query();
+   $sqlStream: ArrayList() from collect (
+      String() from SAM.executeSQL("hsqlDB", "SELECT * FROM StockQuotes WHERE symbol=$query.criteria")
+      );
+then
+   System.out.println("Query is: " + $query.criteria);
+   SAM.getListener("InVM").update($sqlStream);
+end
\ No newline at end of file

Modified: sam/trunk/modules/core/src/test/resources/drools/aggregate.drl
===================================================================
--- sam/trunk/modules/core/src/test/resources/drools/aggregate.drl	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/modules/core/src/test/resources/drools/aggregate.drl	2008-08-13 09:39:31 UTC (rev 239)
@@ -2,11 +2,11 @@
 
 import org.jboss.test.sam.drools.StockTick;
 
-global org.jboss.sam.internal.drools.DroolsAdapter Drools;
+global org.jboss.sam.internal.drools.SAMAdapter SAM;
 
 rule "Aggregate any stock tick into AllTicks"
    when
       $event: StockTick();
    then     
-      Drools.getStream("AllTicks").insert($event);
+      SAM.getStream("AllTicks").insert($event);
 end   

Modified: sam/trunk/modules/core/src/test/resources/drools/forward.drl
===================================================================
--- sam/trunk/modules/core/src/test/resources/drools/forward.drl	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/modules/core/src/test/resources/drools/forward.drl	2008-08-13 09:39:31 UTC (rev 239)
@@ -2,11 +2,11 @@
 
 import org.jboss.test.sam.drools.StockTick;
 
-global org.jboss.sam.internal.drools.DroolsAdapter Drools;
+global org.jboss.sam.internal.drools.SAMAdapter SAM;
 
 rule "Forward all stock ticks to listener"
    when      
       $event: StockTick() from entry-point "AllTicks";
    then
-      Drools.getListener("InVM").update($event);
+      SAM.getListener("InVM").update($event);
 end

Modified: sam/trunk/modules/core/src/test/resources/drools/simple.drl
===================================================================
--- sam/trunk/modules/core/src/test/resources/drools/simple.drl	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/modules/core/src/test/resources/drools/simple.drl	2008-08-13 09:39:31 UTC (rev 239)
@@ -1,11 +1,11 @@
 package org.jboss.test.sam.drools;
 
 import org.jboss.test.sam.drools.StockTick;
-global org.jboss.sam.internal.drools.DroolsAdapter Drools;
+global org.jboss.sam.internal.drools.SAMAdapter SAM;
 
 rule "Check event"
 when
    $st: StockTick(symbol == "ACME")
 then
-   Drools.getListener("InVM").update($st);
+   SAM.getListener("InVM").update($st);
 end

Modified: sam/trunk/modules/sim/src/test/java/org/jboss/test/sam/BufferedStreamOutput.java
===================================================================
--- sam/trunk/modules/sim/src/test/java/org/jboss/test/sam/BufferedStreamOutput.java	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/modules/sim/src/test/java/org/jboss/test/sam/BufferedStreamOutput.java	2008-08-13 09:39:31 UTC (rev 239)
@@ -82,8 +82,14 @@
    public String getStreamName()
    {
       return this.streamName;
-   }   
+   }
 
+
+   public void setStreamName(String name)
+   {
+      this.streamName = name;
+   }
+
    public void write(EventMessage[] args)
    {
       update(args, new EventMessage[]{});               

Modified: sam/trunk/modules/sim/src/test/resources/simulation/test.drl
===================================================================
--- sam/trunk/modules/sim/src/test/resources/simulation/test.drl	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/modules/sim/src/test/resources/simulation/test.drl	2008-08-13 09:39:31 UTC (rev 239)
@@ -2,11 +2,11 @@
 
 import org.jboss.test.sam.simulation.SensorEventMessage;
 
-global org.jboss.sam.internal.drools.DroolsAdapter Drools;
+global org.jboss.sam.internal.drools.SAMAdapter SAM;
 
 rule "Pick all sensor event messages"
 when
    $event: SensorEventMessage()
 then
-   Drools.getListener("EventSink_B").update($event);
+   SAM.getListener("EventSink_B").update($event);
 end

Modified: sam/trunk/sam-trunk.iml
===================================================================
--- sam/trunk/sam-trunk.iml	2008-08-13 08:56:17 UTC (rev 238)
+++ sam/trunk/sam-trunk.iml	2008-08-13 09:39:31 UTC (rev 239)
@@ -154,18 +154,18 @@
       </library>
     </orderEntry>
     <orderEntry type="module-library">
-      <library name="M2 Dep: javax.xml:jaxb-impl:jar:2.1:compile">
+      <library name="M2 Dep: javax.xml.stream:stax-api:jar:1.0-2:compile">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../.m2/repository/javax/xml/jaxb-impl/2.1/jaxb-impl-2.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../../.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
     <orderEntry type="module-library">
-      <library name="M2 Dep: javax.xml.stream:stax-api:jar:1.0-2:compile">
+      <library name="M2 Dep: com.sun.xml.bind:jaxb-impl:jar:2.1.6:compile">
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../../.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../../.m2/repository/com/sun/xml/bind/jaxb-impl/2.1.6/jaxb-impl-2.1.6.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />




More information about the overlord-commits mailing list