[overlord-commits] Overlord SVN: r244 - in sam/trunk/modules/core/src: test/java/org/jboss/test/sam/database and 1 other directories.
overlord-commits at lists.jboss.org
overlord-commits at lists.jboss.org
Wed Aug 13 10:54:12 EDT 2008
Author: heiko.braun at jboss.com
Date: 2008-08-13 10:54:11 -0400 (Wed, 13 Aug 2008)
New Revision: 244
Added:
sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/MapMessageAdapter.java
Modified:
sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/ObjectMessageAdaptor.java
sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/SAMAdapter.java
sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/StreamOutputAdapter.java
sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/DatabaseTestCase.java
sam/trunk/modules/core/src/test/resources/database/test.drl
Log:
Added MapMessageAdater to cope with SQL query results as event streams
Added: sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/MapMessageAdapter.java
===================================================================
--- sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/MapMessageAdapter.java (rev 0)
+++ sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/MapMessageAdapter.java 2008-08-13 14:54:11 UTC (rev 244)
@@ -0,0 +1,61 @@
+/*
+ * 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.jboss.sam.EventMessage;
+
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class MapMessageAdapter implements EventMessage
+{
+
+ private Map delegate;
+
+ public MapMessageAdapter(Map delegate)
+ {
+ this.delegate = delegate;
+ }
+
+ public long getTimestamp()
+ {
+ return (Long)delegate.get("timestamp");
+ }
+
+ public Object getProperty(String name)
+ {
+ return delegate.get(name);
+ }
+
+ public Iterator getPropertyNames()
+ {
+ return delegate.keySet().iterator();
+ }
+
+ public Object getUnderlying()
+ {
+ return delegate;
+ }
+}
Property changes on: sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/MapMessageAdapter.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/ObjectMessageAdaptor.java
===================================================================
--- sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/ObjectMessageAdaptor.java 2008-08-13 14:42:18 UTC (rev 243)
+++ sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/ObjectMessageAdaptor.java 2008-08-13 14:54:11 UTC (rev 244)
@@ -56,7 +56,7 @@
}
catch (Exception e)
{
- throw new RuntimeException("Proprty access error: "+methodName, e);
+ throw new RuntimeException("Property access error: "+methodName, e);
}
return returnValue;
}
Modified: sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/SAMAdapter.java
===================================================================
--- sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/SAMAdapter.java 2008-08-13 14:42:18 UTC (rev 243)
+++ sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/SAMAdapter.java 2008-08-13 14:54:11 UTC (rev 244)
@@ -98,13 +98,15 @@
Map row = new HashMap();
for(int i=1;i<=numcols;i++)
{
- row.put(rset.getMetaData().getColumnName(i), rset.getObject(i));
+ // TODO: case handling should be configureable
+ row.put(rset.getMetaData().getColumnName(i).toLowerCase(), rset.getObject(i));
}
results.add(row);
}
}
catch(SQLException e)
{
+ // todo: exeception handling? (Goes back into drools)
e.printStackTrace();
}
finally
Modified: sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/StreamOutputAdapter.java
===================================================================
--- sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/StreamOutputAdapter.java 2008-08-13 14:42:18 UTC (rev 243)
+++ sam/trunk/modules/core/src/main/java/org/jboss/sam/internal/drools/StreamOutputAdapter.java 2008-08-13 14:54:11 UTC (rev 244)
@@ -25,6 +25,7 @@
import org.jboss.sam.EventMessage;
import java.util.Collection;
+import java.util.Map;
/**
* @author Heiko.Braun <heiko.braun at jboss.com>
@@ -60,7 +61,11 @@
events = new EventMessage[c.size()];
for(int i=0; i<c.size(); i++)
{
- events[i] = new ObjectMessageAdaptor(cAr[i]);
+ // TODO: think more thoroughly about payload adoption
+ if(cAr[i] instanceof Map)
+ events[i] = new MapMessageAdapter((Map)cAr[i]);
+ else
+ events[i] = new ObjectMessageAdaptor(cAr[i]);
}
}
else
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 14:42:18 UTC (rev 243)
+++ sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/DatabaseTestCase.java 2008-08-13 14:54:11 UTC (rev 244)
@@ -87,10 +87,11 @@
// evaluate
assertTrue("Listener not invoked", bufferedOutput.isInvoked());
EventMessage[] eventMessages = bufferedOutput.getLastNewData();
+ assertEquals(7, eventMessages.length);
for(EventMessage event : eventMessages)
{
- System.out.println("!! " + event.getUnderlying() );
+ System.out.println(event.getProperty("symbol") + " -> " + event.getProperty("price") );
}
}
Modified: sam/trunk/modules/core/src/test/resources/database/test.drl
===================================================================
--- sam/trunk/modules/core/src/test/resources/database/test.drl 2008-08-13 14:42:18 UTC (rev 243)
+++ sam/trunk/modules/core/src/test/resources/database/test.drl 2008-08-13 14:54:11 UTC (rev 244)
@@ -8,7 +8,7 @@
when
$query: Query();
$sqlStream: ArrayList() from collect (
- Map() from SAM.query("hsqlDB", "SELECT * FROM quotes WHERE symbol='"+$query.criteria+"'")
+ Map() from SAM.query("hsqlDB", "SELECT * FROM quotes")
);
then
SAM.getListener("InVM").update($sqlStream);
More information about the overlord-commits
mailing list