[jboss-svn-commits] JBL Code SVN: r34925 - in labs/jbossrules/trunk/drools-container/drools-spring/src: main/java/org/drools/container/spring/namespace and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Aug 27 12:08:27 EDT 2010
Author: eaa
Date: 2010-08-27 12:08:26 -0400 (Fri, 27 Aug 2010)
New Revision: 34925
Added:
labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.1.0.xsd
Modified:
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/beans/DroolsResourceAdapter.java
labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/ResourceDefinitionParser.java
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/org/drools/container/spring/beans.xml
Log:
JBRULES-2678: The current Drools-Spring does not provide User Name, Password, basicAuthentication attributes in kagent
- Added support for basic-authentication, username and password for <drools:resource> element
Modified: labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/beans/DroolsResourceAdapter.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/beans/DroolsResourceAdapter.java 2010-08-27 15:52:34 UTC (rev 34924)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/beans/DroolsResourceAdapter.java 2010-08-27 16:08:26 UTC (rev 34925)
@@ -52,6 +52,31 @@
}
}
+
+ public void setBasicAuthenticationEnabled(Boolean enabled){
+ if (enabled && !(this.resource instanceof UrlResource)){
+ throw new IllegalArgumentException("Authentication Attributes are only valid for URL Resources");
+ }
+
+ if (this.resource instanceof UrlResource){
+ ((UrlResource)this.resource).setBasicAuthentication(enabled?"enabled":"disabled");
+ }
+ }
+
+ public void setBasicAuthenticationUsername(String username){
+ if (!(this.resource instanceof UrlResource)){
+ throw new IllegalArgumentException("Authentication Attributes are only valid for URL Resources");
+ }
+ ((UrlResource)this.resource).setUsername(username);
+ }
+
+ public void setBasicAuthenticationPassword(String password){
+ if (!(this.resource instanceof UrlResource)){
+ throw new IllegalArgumentException("Authentication Attributes are only valid for URL Resources");
+ }
+ ((UrlResource)this.resource).setPassword(password);
+ }
+
public DroolsResourceAdapter(String resource,
ResourceType resourceType) {
this( resource,
Modified: labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/ResourceDefinitionParser.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/ResourceDefinitionParser.java 2010-08-27 15:52:34 UTC (rev 34924)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/java/org/drools/container/spring/namespace/ResourceDefinitionParser.java 2010-08-27 16:08:26 UTC (rev 34925)
@@ -36,6 +36,9 @@
private static final String INPUT_TYPE_ATTRIBUTE = "input-type";
private static final String TYPE_ATTRIBUTE = "type";
private static final String SOURCE_ATTRIBUTE = "source";
+ private static final String BASIC_AUTHENTICATION_ATTRIBUTE = "basic-authentication";
+ private static final String USERNAME_ATTRIBUTE = "username";
+ private static final String PASSWORD_ATTRIBUTE = "password";
private static final String REF = "ref";
@@ -67,6 +70,17 @@
factory.addPropertyValue( "resourceType",
resourceType );
+ boolean basicAuthenticationEnabled = element.getAttribute( BASIC_AUTHENTICATION_ATTRIBUTE ) != null && element.getAttribute( BASIC_AUTHENTICATION_ATTRIBUTE ).equalsIgnoreCase("enabled");
+ factory.addPropertyValue("basicAuthenticationEnabled", basicAuthenticationEnabled);
+
+ if (basicAuthenticationEnabled){
+ String username = element.getAttribute( USERNAME_ATTRIBUTE );
+ factory.addPropertyValue("basicAuthenticationUsername", username);
+
+ String password = element.getAttribute( PASSWORD_ATTRIBUTE );
+ factory.addPropertyValue("basicAuthenticationPassword", password);
+ }
+
if ( "xsd".equals( resourceType.toLowerCase() ) ) {
XsdParser.parse( element, parserContext, factory );
} else if ( "dtable".equals( resourceType.toLowerCase() ) ) {
Added: labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.1.0.xsd
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.1.0.xsd (rev 0)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.1.0.xsd 2010-08-27 16:08:26 UTC (rev 34925)
@@ -0,0 +1,438 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://drools.org/schema/drools-spring"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://drools.org/schema/drools-spring"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified">
+
+ <xsd:element name="connection">
+ <xsd:complexType>
+ <xsd:attribute name="id" use="required" type="xsd:ID"/>
+ <xsd:attribute name="type" use="required" type="connectionTypeEnum"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="execution-node">
+ <xsd:complexType>
+ <xsd:attribute name="id" use="required" type="xsd:ID"/>
+ <xsd:attribute name="connection" use="optional" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="resource-change-scanner">
+ <xsd:complexType>
+ <xsd:attribute name="id" use="required" type="xsd:ID"/>
+ <xsd:attribute name="interval" use="optional" type="xsd:integer"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="resources">
+ <xsd:complexType>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="resource" />
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="resource">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="resourceType">
+ <xsd:attribute name="id" use="optional" type="xsd:ID"/>
+ <xsd:attribute name="basic-authentication" use="optional" type="xsd:string"/>
+ <xsd:attribute name="username" use="optional" type="xsd:string"/>
+ <xsd:attribute name="password" use="optional" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+
+ <xsd:element name="kbase">
+ <xsd:complexType>
+ <xsd:all minOccurs="0">
+ <xsd:element ref="resources" minOccurs="0" maxOccurs="1" />
+
+ <xsd:element name="configuration" minOccurs="0" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:all minOccurs="0">
+ <xsd:element name="advanced-process-rule-integration" minOccurs="0">
+ <xsd:complexType>
+ <xsd:attribute name="enabled" type="xsd:boolean"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="multithread" minOccurs="0">
+ <xsd:complexType>
+ <xsd:attribute name="enabled" type="xsd:boolean"/>
+ <xsd:attribute name="max-threads" type="xsd:positiveInteger"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="mbeans" minOccurs="0">
+ <xsd:complexType>
+ <xsd:attribute name="enabled" type="xsd:boolean"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="event-processing-mode" minOccurs="0">
+ <xsd:complexType>
+ <xsd:attribute name="mode" type="cloudModeEnum"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="assert-behavior" minOccurs="0">
+ <xsd:complexType>
+ <xsd:attribute name="mode" type="assertBehaviorEnum"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="accumulate-functions" minOccurs="0">
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:element name="accumulate-function" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:attribute name="name" use="required" type="xsd:string"/>
+ <xsd:attribute name="ref" use="required" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="evaluators" minOccurs="0">
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:element name="evaluator" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:attribute name="name" use="required" type="xsd:string"/>
+ <xsd:attribute name="ref" use="required" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="consequenceExceptionHandler" minOccurs="0">
+ <xsd:complexType>
+ <xsd:attribute name="handler" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:all>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:all>
+ <xsd:attribute name="id" use="optional" type="xsd:ID"/>
+ <xsd:attribute name="node" use="optional" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="kagent">
+ <xsd:complexType>
+ <xsd:all>
+ <xsd:element ref="resources" minOccurs="0" maxOccurs="1" />
+ </xsd:all>
+ <xsd:attribute name="id" use="required" type="xsd:ID"/>
+ <xsd:attribute name="kbase" use="required" type="xsd:string"/>
+ <xsd:attribute name="new-instance" use="optional" type="xsd:boolean"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="kstore" />
+
+ <xsd:element name="ksession">
+ <xsd:complexType>
+ <xsd:all minOccurs="0">
+ <xsd:element name="batch" minOccurs="0" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="command" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="script" minOccurs="0" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="command" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="configuration" minOccurs="0" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:all minOccurs="0">
+ <xsd:element ref="persistence" minOccurs="0"/>
+
+ <xsd:element name="keep-reference" minOccurs="0">
+ <xsd:complexType>
+ <xsd:attribute name="enabled" type="xsd:boolean"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="clock-type" minOccurs="0">
+ <xsd:complexType>
+ <xsd:attribute name="type" type="clockTypeEnum"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="work-item-handlers" minOccurs="0">
+ <xsd:complexType>
+ <xsd:choice>
+ <xsd:element name="work-item-handler" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:attribute name="name" use="required" type="xsd:string"/>
+ <xsd:attribute name="ref" use="required" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:all>
+ </xsd:complexType>
+ </xsd:element>
+
+ </xsd:all>
+
+ <xsd:attribute name="type" use="required" type="knowledgeSessionTypeEnum"/>
+ <xsd:attribute name="kbase" use="required" type="xsd:string"/>
+ <xsd:attribute name="id" use="required" type="xsd:ID"/>
+ <xsd:attribute name="node" use="optional" type="xsd:string"/>
+ <xsd:attribute name="name" use="optional" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:simpleType name="connectionTypeEnum">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="local" />
+ <xsd:enumeration value="remote" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="knowledgeSessionTypeEnum">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="stateful" />
+ <xsd:enumeration value="stateless" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="resourceTypeEnum">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="DRL" />
+ <xsd:enumeration value="BPMN2" />
+ <xsd:enumeration value="XDRL" />
+ <xsd:enumeration value="DSL" />
+ <xsd:enumeration value="DSLR" />
+ <xsd:enumeration value="DRF" />
+ <xsd:enumeration value="DTABLE" />
+ <xsd:enumeration value="PKG" />
+ <xsd:enumeration value="BRL" />
+ <xsd:enumeration value="CHANGE_SET" />
+ <xsd:enumeration value="XSD" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="languageTypeEnum">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="DTD" />
+ <xsd:enumeration value="RELAXNG" />
+ <xsd:enumeration value="RELAXNG_COMPACT" />
+ <xsd:enumeration value="WSDL" />
+ <xsd:enumeration value="XMLSCHEMA" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="cloudModeEnum">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="STREAM" />
+ <xsd:enumeration value="CLOUD" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+ <xsd:simpleType name="assertBehaviorEnum">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="IDENTITY" />
+ <xsd:enumeration value="EQUALITY" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="clockTypeEnum">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="REALTIME" />
+ <xsd:enumeration value="PSEUDO" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+ <xsd:complexType name="resourceType">
+ <xsd:choice minOccurs="0" maxOccurs="1">
+ <xsd:element name="decisiontable-conf">
+ <xsd:complexType>
+ <xsd:attribute name="input-type" use="required" type="xsd:string"/>
+ <xsd:attribute name="worksheet-name" use="required" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="jaxb-conf">
+ <xsd:complexType>
+ <xsd:attribute name="system-id" use="optional" type="xsd:string" />
+ <xsd:attribute name="schema-language" type="languageTypeEnum" use="optional" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ <xsd:attribute name="source" use="optional" type="xsd:string"/>
+ <xsd:attribute name="type" use="optional" type="resourceTypeEnum"/>
+ <xsd:attribute name="ref" use="optional" type="xsd:string"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="resourceRefType">
+ <xsd:attribute name="id" use="required" type="xsd:string"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="classesType">
+ <xsd:sequence>
+ <xsd:element name="class" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="persisterType">
+ <xsd:attribute name="for-class" use="required" type="xsd:string"/>
+ <xsd:attribute name="implementation" use="required" type="xsd:string"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="variablePersistersType">
+ <xsd:sequence>
+ <xsd:element name="persister" type="persisterType" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="jpaSessionServiceFactory">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="variablePersisters" type="variablePersistersType" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" use="optional" type="xsd:ID"/>
+ <xsd:attribute name="kbase" use="required" type="xsd:string"/>
+ <xsd:attribute name="entityManagerFactory" use="required" type="xsd:string"/>
+ <xsd:attribute name="transactionManager" use="required" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- Persistence -->
+ <xsd:element name="persistence" type="persistenceType" abstract="true"/>
+
+ <xsd:complexType name="persistenceType">
+ </xsd:complexType>
+
+ <xsd:element name="jpa-persistence" substitutionGroup="persistence" >
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="persistenceType">
+ <xsd:all>
+ <xsd:element name="variable-persisters" type="variablePersistersType" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="transaction-manager" minOccurs="1" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:attribute name="ref" use="required" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="entity-manager-factory" minOccurs="1" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:attribute name="ref" use="required" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:all>
+ <xsd:attribute name="load" use="optional" type="xsd:integer"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- Commands -->
+ <xsd:element name="command" type="commandType" abstract="true"/>
+
+ <xsd:complexType name="commandType">
+ </xsd:complexType>
+
+ <xsd:element name="insert-object" substitutionGroup="command" >
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="commandType">
+ <xsd:sequence>
+ <xsd:any minOccurs="0" maxOccurs="1" />
+ </xsd:sequence>
+ <xsd:attribute name="ref" use="optional" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="set-global" substitutionGroup="command" >
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="commandType">
+ <xsd:sequence>
+ <xsd:any minOccurs="0" maxOccurs="1" />
+ </xsd:sequence>
+ <xsd:attribute name="ref" use="optional" type="xsd:string"/>
+ <xsd:attribute name="identifier" use="required" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="fire-all-rules" substitutionGroup="command" >
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="commandType">
+ <xsd:attribute name="max" use="optional" type="xsd:integer"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="fire-until-halt" substitutionGroup="command" >
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="commandType">
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="start-process" substitutionGroup="command" >
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="commandType">
+ <xsd:sequence>
+ <xsd:element name="parameter" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:any minOccurs="0" maxOccurs="1" />
+ </xsd:sequence>
+ <xsd:attribute name="ref" use="optional" type="xsd:string"/>
+ <xsd:attribute name="identifier" use="required" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="process-id" use="required" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="signal-event" substitutionGroup="command" >
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="commandType">
+ <xsd:sequence>
+ <xsd:any minOccurs="0" maxOccurs="1" />
+ </xsd:sequence>
+ <xsd:attribute name="ref" use="optional" type="xsd:string"/>
+ <xsd:attribute name="event-type" use="required" type="xsd:string"/>
+ <xsd:attribute name="process-instance-id" use="optional" type="xsd:integer"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+</xsd:schema>
Modified: 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 2010-08-27 15:52:34 UTC (rev 34924)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/test/java/org/drools/container/spring/SpringDroolsTest.java 2010-08-27 16:08:26 UTC (rev 34925)
@@ -31,12 +31,15 @@
import org.drools.builder.DirectoryLookupFactoryService;
import org.drools.common.InternalRuleBase;
import org.drools.conf.EventProcessingOption;
+import org.drools.container.spring.beans.DroolsResourceAdapter;
import org.drools.grid.ExecutionNode;
import org.drools.impl.KnowledgeBaseImpl;
import org.drools.impl.StatefulKnowledgeSessionImpl;
import org.drools.impl.StatelessKnowledgeSessionImpl;
+import org.drools.io.Resource;
import org.drools.io.ResourceFactory;
import org.drools.io.impl.ResourceChangeScannerImpl;
+import org.drools.io.impl.UrlResource;
import org.drools.process.instance.impl.humantask.HumanTaskHandler;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.StatelessKnowledgeSession;
@@ -59,7 +62,7 @@
ExecutionNode node2 = (ExecutionNode) context.getBean( "node2" );
assertNotNull( node2 );
}
-
+
public void testNoNodeKSessions() throws Exception {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "org/drools/container/spring/no-node-beans.xml" );
@@ -214,4 +217,34 @@
}
+
+ public void testResourceAuthenication() throws Exception {
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "org/drools/container/spring/beans.xml" );
+
+ //Secure Resource
+ DroolsResourceAdapter resourceAdapter = (DroolsResourceAdapter) context.getBean( "secureResource" );
+ assertNotNull( resourceAdapter );
+
+ Resource resource = resourceAdapter.getDroolsResource();
+ assertTrue(resource instanceof UrlResource);
+
+ UrlResource ur = (UrlResource)resource;
+
+ assertEquals("enabled",ur.getBasicAuthentication());
+ assertEquals("someUser",ur.getUsername());
+ assertEquals("somePassword",ur.getPassword());
+
+ //Insecure Resource
+ resourceAdapter = (DroolsResourceAdapter) context.getBean( "insecureResource" );
+ assertNotNull( resourceAdapter );
+
+ resource = resourceAdapter.getDroolsResource();
+ assertTrue(resource instanceof UrlResource);
+
+ ur = (UrlResource)resource;
+
+ assertEquals("disabled",ur.getBasicAuthentication());
+ assertEquals("",ur.getUsername());
+ assertEquals("",ur.getPassword());
+ }
}
Modified: 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 2010-08-27 15:52:34 UTC (rev 34924)
+++ labs/jbossrules/trunk/drools-container/drools-spring/src/test/resources/org/drools/container/spring/beans.xml 2010-08-27 16:08:26 UTC (rev 34925)
@@ -3,7 +3,7 @@
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 http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd
+ http://drools.org/schema/drools-spring http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.1.0.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<drools:connection id="connection1" type="local" />
@@ -13,6 +13,9 @@
<drools:execution-node id="node2" />
<drools:resource id="resource1" type="DRL" source="classpath:org/drools/container/spring/testSpring.drl"/>
+
+ <drools:resource id="secureResource" basic-authentication="enabled" username="someUser" password="somePassword" type="DRL" source="http://someHost:1234/someDRLResource.drl"/>
+ <drools:resource id="insecureResource" type="DRL" source="http://someHost:1234/someOtherDRLResource.drl"/>
<drools:kbase id="kbase1" node="node1">
<drools:resources>
More information about the jboss-svn-commits
mailing list