[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