[jboss-svn-commits] JBL Code SVN: r29733 - in labs/jbossrules/trunk: drools-container and 24 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Oct 21 23:44:36 EDT 2009
Author: mark.proctor at jboss.com
Date: 2009-10-21 23:44:35 -0400 (Wed, 21 Oct 2009)
New Revision: 29733
Added:
labs/jbossrules/trunk/drools-container/drools-spring/
labs/jbossrules/trunk/drools-container/drools-spring/.classpath
labs/jbossrules/trunk/drools-container/drools-spring/.project
labs/jbossrules/trunk/drools-container/drools-spring/pom.xml
labs/jbossrules/trunk/drools-container/drools-spring/src/
labs/jbossrules/trunk/drools-container/drools-spring/src/main/
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/KnowledgeBaseDefinitionParser.java
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/KnowledgeSessionDefinitionParser.java
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/SpringDroolsFactory.java
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/SpringDroolsHandler.java
labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/
labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/META-INF/
labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/META-INF/spring.handlers
labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/META-INF/spring.schemas
labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/drools-spring.xsd
labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/log4j.properties
labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/
labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/
labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/
labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/
labs/jbossrules/trunk/drools-container/drools-spring/src/test/
labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/
labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/
labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/
labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/Person.java
labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/container/
labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/container/spring/
labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/container/spring/SpringDroolsTest.java
labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/
labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/
labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/
labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/
labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/
labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/.~lock.IntegrationExampleTest.xls#
labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/IntegrationExampleTest.xls
labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/beans.xml
labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/testSpring.drl
labs/jbossrules/trunk/drools-container/pom.xml
Modified:
labs/jbossrules/trunk/pom.xml
Log:
JBRULES-1434 Drools Spring
-Initial spring integration
Property changes on: labs/jbossrules/trunk/drools-container/drools-spring
___________________________________________________________________
Name: svn:ignore
+ .settings
target
Added: labs/jbossrules/trunk/drools-container/drools-spring/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/.classpath (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/.classpath 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry excluding="**/*.java" including="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/jms/jms/1.1/jms-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jexcelapi/jxl/2.4.2/jxl-2.4.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.15/log4j-1.2.15.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/mail/mail/1.4/mail-1.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.9pre2/mvel2-2.0.9pre2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/springframework/spring-beans/2.5.6/spring-beans-2.5.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/springframework/spring-context/2.5.6/spring-context-2.5.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/springframework/spring-core/2.5.6/spring-core-2.5.6.jar"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/drools-api"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/drools-compiler"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/drools-core"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/drools-decisiontables"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/drools-templates"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Added: labs/jbossrules/trunk/drools-container/drools-spring/.project
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/.project (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/.project 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,13 @@
+<projectDescription>
+ <name>drools-spring</name>
+ <comment>A rule production system</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-container/drools-spring/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/pom.xml (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/pom.xml 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,64 @@
+<?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/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>drools</artifactId>
+ <groupId>org.drools</groupId>
+ <version>5.0.0.SNAPSHOT</version>
+ </parent>
+
+ <artifactId>drools-spring</artifactId>
+ <packaging>jar</packaging>
+ <name>Drools :: Spring</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-core</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-compiler</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-decisiontables</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>2.5.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>2.5.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>2.5.6</version>
+ </dependency>
+
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.15</version>
+ </dependency>
+
+ </dependencies>
+
+</project>
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/KnowledgeBaseDefinitionParser.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/KnowledgeBaseDefinitionParser.java (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/KnowledgeBaseDefinitionParser.java 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,107 @@
+package org.drools.container.spring;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.KnowledgeBase;
+import org.drools.builder.DecisionTableInputType;
+import org.drools.builder.ResourceType;
+import org.drools.builder.impl.DecisionTableConfigurationImpl;
+import org.drools.io.InternalResource;
+import org.drools.io.Resource;
+import org.drools.io.impl.ClassPathResource;
+import org.drools.io.impl.KnowledgeResource;
+import org.drools.io.impl.UrlResource;
+import org.drools.xml.ExtensibleXmlParser;
+import org.springframework.beans.factory.config.ConstructorArgumentValues;
+import org.springframework.beans.factory.support.AbstractBeanDefinition;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser;
+import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
+import org.springframework.beans.factory.xml.ParserContext;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+public class KnowledgeBaseDefinitionParser extends AbstractSingleBeanDefinitionParser {
+ protected Class getBeanClass(Element element) {
+ return KnowledgeBase.class;
+ }
+
+ protected void doParse(Element element, BeanDefinitionBuilder bean) {
+ bean.getRawBeanDefinition().setBeanClassName( "org.drools.container.spring.SpringDroolsFactory" );
+ bean.getRawBeanDefinition().setFactoryMethodName( "buildKnowledgeBase" );
+
+ List<Resource> resources = new ArrayList<Resource>();
+
+ NodeList resourcesList = element.getChildNodes();
+ for ( int i = 0, resourcesListLength = resourcesList.getLength(); i < resourcesListLength; i++ ) {
+ Node resourceNode = resourcesList.item( i );
+ if ( resourceNode.getNodeType() == Node.ELEMENT_NODE ) {
+ Element resourceElement = ( Element ) resourceNode;
+ String source = resourceElement.getAttribute( "source" );
+ String type = resourceElement.getAttribute( "type" );
+
+ emptyAttributeCheck( "resource",
+ "source",
+ source );
+
+ emptyAttributeCheck( "resource",
+ "type",
+ type );
+ InternalResource resource = null;
+
+ if ( source.trim().startsWith( "classpath:" ) ) {
+ resource = new ClassPathResource( source.substring( source.indexOf( ':' ) + 1 ), ClassPathResource.class.getClassLoader() );
+ } else {
+ resource = new UrlResource( source );
+ }
+
+ resource.setResourceType( ResourceType.getResourceType( type ) );
+
+ NodeList configurationList = resourceElement.getChildNodes();
+ for ( int j = 0, configurationListLength = configurationList.getLength(); j < configurationListLength; j++ ) {
+ Node configurationNode = configurationList.item( j );
+ if ( configurationNode.getNodeType() == Node.ELEMENT_NODE ) {
+ Element configurationElement = ( Element ) configurationNode;
+ if ( "decisiontable-conf".equals( configurationElement.getLocalName() ) ) {
+ String inputType = configurationElement.getAttribute( "input-type" );
+ String worksheetName = configurationElement.getAttribute( "worksheet-name" );
+
+ DecisionTableConfigurationImpl dtableConf = new DecisionTableConfigurationImpl();
+ dtableConf.setInputType( DecisionTableInputType.valueOf( inputType ) );
+ dtableConf.setWorksheetName( worksheetName );
+ resource.setConfiguration( dtableConf );
+ }
+ }
+ }
+
+ resources.add( resource );
+ }
+ }
+
+ ConstructorArgumentValues values = new ConstructorArgumentValues();
+ values.addGenericArgumentValue( resources );
+
+ bean.getRawBeanDefinition().setConstructorArgumentValues( values );
+ }
+
+ public void emptyAttributeCheck(final String element,
+ final String attributeName,
+ final String attribute) {
+ if ( attribute == null || attribute.trim().equals( "" ) ) {
+ throw new IllegalArgumentException( "<" + element + "> requires a '" + attributeName + "' attribute" );
+ }
+ }
+
+// protected AbstractBeanDefinition parseInternal(Element elm,
+// ParserContext ctx) {
+// System.out.println( elm.getAttribute( "value" ) );
+//
+//
+// return elm.getAttribute( "value" );
+// }
+
+}
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/KnowledgeSessionDefinitionParser.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/KnowledgeSessionDefinitionParser.java (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/KnowledgeSessionDefinitionParser.java 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,51 @@
+package org.drools.container.spring;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.KnowledgeBase;
+import org.drools.builder.ResourceType;
+import org.drools.io.InternalResource;
+import org.drools.io.Resource;
+import org.drools.io.impl.ClassPathResource;
+import org.drools.io.impl.UrlResource;
+import org.drools.runtime.CommandExecutor;
+import org.springframework.beans.factory.config.ConstructorArgumentValues;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class KnowledgeSessionDefinitionParser extends AbstractSingleBeanDefinitionParser {
+ protected Class getBeanClass(Element element) {
+ return CommandExecutor.class;
+ }
+
+ protected void doParse(Element element,
+ BeanDefinitionBuilder bean) {
+ String kbase = element.getAttribute( "kbase" );
+ String sessionType = element.getAttribute( "type" );
+
+ bean.getRawBeanDefinition().setBeanClassName( "org.drools.container.spring.SpringDroolsFactory" );
+
+ if ( "stateful".equals( sessionType ) ) {
+ bean.getRawBeanDefinition().setFactoryMethodName( "newStatefulKnowledgeSession" );
+ } else if ( "stateless".equals( sessionType ) ) {
+ bean.getRawBeanDefinition().setFactoryMethodName( "newStatelessKnowledgeSession" );
+ } else {
+
+ }
+
+ bean.addConstructorArgReference( kbase );
+ }
+
+ public void emptyAttributeCheck(final String element,
+ final String attributeName,
+ final String attribute) {
+ if ( attribute == null || attribute.trim().equals( "" ) ) {
+ throw new IllegalArgumentException( "<" + element + "> requires a '" + attributeName + "' attribute" );
+ }
+ }
+
+}
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/SpringDroolsFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/SpringDroolsFactory.java (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/SpringDroolsFactory.java 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,40 @@
+package org.drools.container.spring;
+
+import java.io.IOException;
+import java.util.Collection;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.io.InternalResource;
+import org.drools.io.Resource;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
+
+public class SpringDroolsFactory {
+ private static KnowledgeBase buildKnowledgeBase(Collection<Resource> resources) {
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ for ( Resource resource : resources ) {
+ if ( ((InternalResource)resource).getConfiguration() == null ) {
+ kbuilder.add( resource, ((InternalResource)resource).getResourceType() );
+ } else {
+ kbuilder.add( resource, ((InternalResource)resource).getResourceType(), ((InternalResource)resource).getConfiguration() );
+ }
+
+ }
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ return kbase;
+ }
+
+ private static StatefulKnowledgeSession newStatefulKnowledgeSession(KnowledgeBase kbase) {
+ return kbase.newStatefulKnowledgeSession();
+ }
+
+ private static StatelessKnowledgeSession newStatelessKnowledgeSession(KnowledgeBase kbase) {
+ return kbase.newStatelessKnowledgeSession();
+ }
+}
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/SpringDroolsHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/SpringDroolsHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/SpringDroolsHandler.java 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,14 @@
+package org.drools.container.spring;
+
+import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
+
+public class SpringDroolsHandler extends NamespaceHandlerSupport {
+
+ public void init() {
+ registerBeanDefinitionParser("kbase", new KnowledgeBaseDefinitionParser());
+
+ registerBeanDefinitionParser("ksession", new KnowledgeSessionDefinitionParser());
+
+ }
+
+}
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/META-INF/spring.handlers
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/META-INF/spring.handlers (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/META-INF/spring.handlers 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1 @@
+http\://drools.org/schema/drools-spring=org.drools.container.spring.SpringDroolsHandler
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/META-INF/spring.schemas
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/META-INF/spring.schemas (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/META-INF/spring.schemas 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1 @@
+http\://drools.org/schema/drools-spring=spring-drools.xsd
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/drools-spring.xsd
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/drools-spring.xsd (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/drools-spring.xsd 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://drools.org/schema/drools-spring"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:beans="http://www.springframework.org/schema/beans"
+ targetNamespace="http://drools.org/schema/drools-spring"
+ elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+ <xsd:element name="kbase">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="resource" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="decisiontable-conf" minOccurs="0" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:attribute name="input-type" use="required" />
+ <xsd:attribute name="worksheet-name " use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="source" use="required" />
+ <xsd:attribute name="type" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="ksession">
+ <xsd:complexType>
+ <xsd:attribute name="type" use="required" />
+ <xsd:attribute name="kbase" use="required" />
+ <xsd:attribute name="id" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+
+</xsd:schema>
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/log4j.properties
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/log4j.properties (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/log4j.properties 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,4 @@
+log4j.rootLogger=DEBUG, stdout
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/Person.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/Person.java (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/Person.java 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,259 @@
+package org.drools;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+
+public class Person
+ implements
+ Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private String name;
+ private String likes;
+ private int age;
+ private BigDecimal bigDecimal;
+ private BigInteger bigInteger;
+ private String hair;
+
+ private char sex;
+
+ private boolean alive;
+ private boolean happy;
+
+ private String status;
+
+ // public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ // name = (String)in.readObject();
+ // likes = (String)in.readObject();
+ // age = in.readInt();
+ // bigDecimal = (BigDecimal)in.readObject();
+ // bigInteger = (BigInteger)in.readObject();
+ // hair = (String)in.readObject();
+ // sex = in.readChar();
+ // alive = in.readBoolean();
+ // status = (String)in.readObject();
+ // cheese = (Cheese)in.readObject();
+ // addresses = (List)in.readObject();
+ // }
+ //
+ // public void writeExternal(ObjectOutput out) throws IOException {
+ // out.writeObject(name);
+ // out.writeObject(likes);
+ // out.writeObject(bigDecimal);
+ // out.writeObject(bigInteger);
+ // out.writeObject(hair);
+ // out.writeChar(sex);
+ // out.writeBoolean(alive);
+ // out.writeObject(status);
+ // out.writeObject(cheese);
+ // out.writeObject(addresses);
+ // }
+
+ public Person() {
+
+ }
+
+ public Person(String name,
+ int age) {
+ super();
+ this.name = name;
+ this.age = age;
+ }
+
+ public Person(final String name) {
+ this( name,
+ "",
+ 0 );
+ }
+
+
+ public Person(final String name,
+ final String likes) {
+ this( name,
+ likes,
+ 0 );
+ }
+
+ public Person(final String name,
+ final String likes,
+ final int age) {
+ this.name = name;
+ this.likes = likes;
+ this.age = age;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#getStatus()
+ */
+ public String getStatus() {
+ return this.status;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#setStatus(java.lang.String)
+ */
+ public void setStatus(final String status) {
+ this.status = status;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#getLikes()
+ */
+ public String getLikes() {
+ return this.likes;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#getName()
+ */
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#getAge()
+ */
+ public int getAge() {
+ return this.age;
+ }
+
+ public void setAge(final int age) {
+ this.age = age;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#isAlive()
+ */
+ public boolean isAlive() {
+ return this.alive;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#setAlive(boolean)
+ */
+ public void setAlive(final boolean alive) {
+ this.alive = alive;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#getSex()
+ */
+ public char getSex() {
+ return this.sex;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#setSex(char)
+ */
+ public void setSex(final char sex) {
+ this.sex = sex;
+ }
+
+ public String getHair() {
+ return this.hair;
+ }
+
+ public void setHair(final String hair) {
+ this.hair = hair;
+ }
+
+ public String toString() {
+ return "[Person name='" + this.name + "']";
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + this.age;
+ result = PRIME * result + (this.alive ? 1231 : 1237);
+ result = PRIME * result + ((this.name == null) ? 0 : this.name.hashCode());
+ result = PRIME * result + this.sex;
+ return result;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public boolean equals(final Object obj) {
+ if ( this == obj ) {
+ return true;
+ }
+ if ( obj == null ) {
+ return false;
+ }
+ if ( getClass() != obj.getClass() ) {
+ return false;
+ }
+ final Person other = (Person) obj;
+ if ( this.age != other.age ) {
+ return false;
+ }
+ if ( this.alive != other.alive ) {
+ return false;
+ }
+ if ( this.name == null ) {
+ if ( other.name != null ) {
+ return false;
+ }
+ } else if ( !this.name.equals( other.name ) ) {
+ return false;
+ }
+ if ( this.sex != other.sex ) {
+ return false;
+ }
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#getBigDecimal()
+ */
+ public BigDecimal getBigDecimal() {
+ return this.bigDecimal;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#setBigDecimal(java.math.BigDecimal)
+ */
+ public void setBigDecimal(final BigDecimal bigDecimal) {
+ this.bigDecimal = bigDecimal;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#getBigInteger()
+ */
+ public BigInteger getBigInteger() {
+ return this.bigInteger;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.PersonInterface#setBigInteger(java.math.BigInteger)
+ */
+ public void setBigInteger(final BigInteger bigInteger) {
+ this.bigInteger = bigInteger;
+ }
+
+ public void setLikes(final String likes) {
+ this.likes = likes;
+ }
+
+ public boolean isHappy() {
+ return happy;
+ }
+
+ public void setHappy(boolean happy) {
+ this.happy = happy;
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/container/spring/SpringDroolsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/container/spring/SpringDroolsTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/container/spring/SpringDroolsTest.java 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,31 @@
+package org.drools.container.spring;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.drools.Person;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.StatelessKnowledgeSession;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class SpringDroolsTest extends TestCase {
+ public void test1() throws Exception {
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "org/drools/container/spring/beans.xml" );
+
+ List list = new ArrayList();
+ StatelessKnowledgeSession kstateless = (StatelessKnowledgeSession) context.getBean( "ksession1" );
+ kstateless.setGlobal( "list", list );
+ kstateless.execute( new Person( "Darth", "Cheddar", 50 ) );
+ assertEquals( 2, list.size() );
+
+
+ list = new ArrayList();
+ StatefulKnowledgeSession kstateful = ( StatefulKnowledgeSession ) ((StatefulKnowledgeSession)context.getBean( "ksession2" ));
+ kstateful.setGlobal( "list", list );
+ kstateful.insert( new Person( "Darth", "Cheddar", 50 ) );
+ kstateful.fireAllRules();
+ assertEquals( 2, list.size() );
+ }
+}
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/.~lock.IntegrationExampleTest.xls#
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/.~lock.IntegrationExampleTest.xls# (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/.~lock.IntegrationExampleTest.xls# 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1 @@
+,Daedalus/mproctor,Daedalus,22.10.2009 04:23,file:///C:/Users/mproctor/AppData/Roaming/OpenOffice.org/3;
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/IntegrationExampleTest.xls
===================================================================
(Binary files differ)
Property changes on: labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/IntegrationExampleTest.xls
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/beans.xml
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/beans.xml (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/beans.xml 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:drools="http://drools.org/schema/drools-spring"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+ http://drools.org/schema/drools-spring drools-spring.xsd">
+
+ <drools:kbase id="kbase1" >
+ <drools:resource source='classpath:org/drools/container/spring/testSpring.drl' type='DRL' />
+ <drools:resource source='classpath:org/drools/container/spring/IntegrationExampleTest.xls' type="DTABLE">
+ <drools:decisiontable-conf input-type="XLS" worksheet-name="Tables_2" />
+ </drools:resource>
+ </drools:kbase>
+
+ <drools:ksession id="ksession1" type="stateless" kbase="kbase1" />
+
+ <drools:ksession id="ksession2" type="stateful" kbase="kbase1" />
+</beans>
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/testSpring.drl
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/testSpring.drl (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/testSpring.drl 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,12 @@
+package org.drools.springframework
+
+import org.drools.Person
+
+global java.util.List list;
+
+rule "rule 1"
+when
+ $p : Person();
+then
+ list.add( $p );
+end
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-container/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-container/pom.xml (rev 0)
+++ labs/jbossrules/trunk/drools-container/pom.xml 2009-10-22 03:44:35 UTC (rev 29733)
@@ -0,0 +1,19 @@
+<?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/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>drools</artifactId>
+ <groupId>org.drools</groupId>
+ <version>5.1.0.SNAPSHOT</version>
+ </parent>
+
+ <artifactId>drools-container</artifactId>
+ <packaging>pom</packaging>
+ <name>Drools :: Container</name>
+
+ <modules>
+ <module>drools-spring</module>
+ </modules>
+
+</project>
Modified: labs/jbossrules/trunk/pom.xml
===================================================================
--- labs/jbossrules/trunk/pom.xml 2009-10-21 18:21:00 UTC (rev 29732)
+++ labs/jbossrules/trunk/pom.xml 2009-10-22 03:44:35 UTC (rev 29733)
@@ -832,7 +832,8 @@
<module>drools-core</module>
<module>drools-compiler</module>
<module>drools-vsm</module>
- <module>drools-pipeline</module>
+ <module>drools-pipeline</module>
+ <module>drools-container</module>
<module>drools-simulator</module>
<module>drools-jsr94</module>
<module>drools-templates</module>
More information about the jboss-svn-commits
mailing list