[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