Hi,

I'm trying to get drools-core and drools-compiler 5.1 running on spring dm-server. Does anyone have the minimal list of OSGi bundles as maven dependencies handy?

Thanks,
Dave 

On 25 June 2010 13:59, mmarmol <marcelo.marmol@gmail.com> wrote:

Hi, I have managed to install Drools-core and Drools-compiler in my Equinox
osgi environment, I can compile rules and execute them just fine, I was just
wandering how to configure a KnowledgeAgent using
KnowledgeBuilderFactoryService and KnowledgeBaseFactoryService. I managed to
configure one but i am not able to reload rules when they change at runtime.
I have started ResourceChangeScannerService and
ResourceChangeNotifierService, changeset related to the rules file gets read
but no change gets implemented. An idea?


Here is the code:

               ResourceFactory.getResourceChangeScannerService().start();
               ResourceFactory.getResourceChangeNotifierService().start();

               ServiceReference serviceRef = bc
                               .getServiceReference(ServiceRegistry.class.getName());
               ServiceRegistry registry = (ServiceRegistry) bc.getService(serviceRef);

               KnowledgeBuilderFactoryService knowledgeBuilderFactoryService = registry
                               .get(KnowledgeBuilderFactoryService.class);

               KnowledgeBaseFactoryService knowledgeBaseFactoryService = registry
                               .get(KnowledgeBaseFactoryService.class);
               ResourceFactoryService resourceFactoryService = registry
                               .get(ResourceFactoryService.class);

               KnowledgeBuilderConfiguration kbConf = knowledgeBuilderFactoryService
                               .newKnowledgeBuilderConfiguration(null, getClass()
                                               .getClassLoader());

               KnowledgeBuilder kbuilder = knowledgeBuilderFactoryService
                               .newKnowledgeBuilder(kbConf);
               ResourceFactoryService resource = resourceFactoryService;
               kbuilder.add(resource.newFileSystemResource(filePath),
                               ResourceType.CHANGE_SET);

               if (kbuilder.hasErrors()) {
                       System.out.println(kbuilder.getErrors());
                       throw new RuntimeException(kbuilder.getErrors().toString());
               }

               KnowledgeBaseConfiguration kbaseConf = knowledgeBaseFactoryService
                               .newKnowledgeBaseConfiguration(null, getClass()
                                               .getClassLoader());

               KnowledgeBase kbase = knowledgeBaseFactoryService
                               .newKnowledgeBase(kbaseConf);
               kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());

               KnowledgeAgentConfiguration aconf =
               KnowledgeAgentFactory.newKnowledgeAgentConfiguration();
               aconf.setProperty("drools.agent.scanDirectories", "true");
               aconf.setProperty("drools.agent.scanResources", "true");
               aconf.setProperty("drools.agent.newInstance", "false");

               kagent = KnowledgeAgentFactory.newKnowledgeAgent( "CoreDroolsAgent",kbase,
aconf);
               kagent.applyChangeSet(resource.newFileSystemResource(filePath));

Thanks in advance!

Cheers
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/KnowledgeAgent-and-OSGI-tp921989p921989.html
Sent from the Drools - User mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users