[jboss-jira] [JBoss JIRA] (JBRULES-3630) ClassPathResources within ChangeSet are loaded using wrong ClassLoader

Chris Rankin (JIRA) jira-events at lists.jboss.org
Sat Sep 22 07:06:35 EDT 2012


     [ https://issues.jboss.org/browse/JBRULES-3630?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chris Rankin updated JBRULES-3630:
----------------------------------

    Summary: ClassPathResources within ChangeSet are loaded using wrong ClassLoader  (was: Nested ClassPathResources within ChangeSet use wrong ClassLoader)

    
> ClassPathResources within ChangeSet are loaded using wrong ClassLoader
> ----------------------------------------------------------------------
>
>                 Key: JBRULES-3630
>                 URL: https://issues.jboss.org/browse/JBRULES-3630
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: drools-core
>    Affects Versions: 5.1.1.FINAL, 5.4.0.Final
>         Environment: Win7 / Java6 / JBoss6
>            Reporter: Chris Rankin
>            Assignee: Mark Proctor
>         Attachments: ResourceHandler.diff
>
>
> I am trying to load a "rules" JAR dynamically. This JAR contains a {{change-set.xml}} and all of its DRL files:
> {code:XML}
> <?xml version="1.0" encoding="UTF-8"?>
> <change-set xmlns='http://drools.org/drools-5.0/change-set'
>     xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'
>     xs:schemaLocation='http://drools.org/drools-5.0/change-set http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd'>
>     <add>
>         <resource source='classpath:com/my/stuff/rules/Stuff.drl' type='DRL' />
>     </add>
> </change-set>
> {code}
> I am loading the JAR dynamically via {{URLClassLoader}} and _successfully_ creating the ChangeSet resource:
> {code}
> Resource changeSet = ResourceFactory.newClassPathResource("change-set.xml", classLoader);{code}
> However, it then always explodes when I try to add the resource to the {{KnowledgeBuilder}}, complaining that "'com/my/stuff/rules/Stuff.drl' cannot be opened because it does not exist".
> I am suspecting that the {{KnowledgeBuilder}} is not using my class loader to load {{Stuff.drl}}, despite me passing the correct class loader in via {{KnowledgeBuilderConfiguration}}. (And the "changeset:" handling in {{org.drools.xml.changeset.ResourceHandler}} would seem to support my theory.)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list