[rules-users] unable to update the changes (guvnor rules) to application using changeset
Esteban Aliverti
esteban.aliverti at gmail.com
Thu Jan 12 04:24:59 EST 2012
Which version of Guvnor/Drools are you using? There was a known bug that
affected even 5.3 where knowledge packages in Guvnor were marked as
removed: https://issues.jboss.org/browse/GUVNOR-1699
This issue should be solved now.
Best Regards,
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Esteban Aliverti
- Developer @ http://www.plugtree.com
- Blog @ http://ilesteban.wordpress.com
On Thu, Jan 12, 2012 at 7:44 AM, srinivasasanda <srinivasasanda at gmail.com>wrote:
> Hi All
>
>
> I am not able to get the updated rules still i used change set , can any
> one
> plz sort out this problem
>
> The source code is
>
> using this program i am printing the rule name in package for every five
> seconds.
> for first time it prints rule names in package, after that packages are not
> available in kbase...
>
> import org.drools.KnowledgeBase;
> import org.drools.KnowledgeBaseFactory;
> import org.drools.agent.KnowledgeAgent;
> import org.drools.agent.KnowledgeAgentFactory;
> import org.drools.builder.KnowledgeBuilder;
> import org.drools.builder.KnowledgeBuilderError;
> import org.drools.builder.KnowledgeBuilderErrors;
> import org.drools.builder.KnowledgeBuilderFactory;
> import org.drools.builder.ResourceType;
> import org.drools.definition.KnowledgePackage;
> import org.drools.io.ResourceChangeScannerConfiguration;
> import org.drools.io.ResourceFactory;
> import org.drools.logger.KnowledgeRuntimeLogger;
> import org.drools.logger.KnowledgeRuntimeLoggerFactory;
> import org.drools.runtime.StatefulKnowledgeSession;
> import org.drools.runtime.StatelessKnowledgeSession;
> import org.drools.agent.*;
>
> public class ChangeSet1
> {
>
> private ChangeSet1()
> {
>
> }
>
>
> public static synchronized ChangeSet1 start()
> {
> try{
> if ( _instance == null)
> {
>
> _instance = new ChangeSet1();
> String
> url="file:H:\\RuleFiles\\ChangeSet.xml";
> _kagent =
> KnowledgeAgentFactory.newKnowledgeAgent( "MyAgent" );
> System.out.println("after creating kagent");
>
> _kagent.applyChangeSet(ResourceFactory.newUrlResource(url));
> System.out.println("after apply change set");
> //Create Knowledge Base
> _kbase = _kagent.getKnowledgeBase();
> ResourceChangeScannerConfiguration sconf=
>
>
> ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
>
> sconf.setProperty("drools.resource.scanner.interval", "5");
>
> ResourceFactory.getResourceChangeScannerService().configure(sconf);
>
> ResourceFactory.getResourceChangeNotifierService().start();
>
> ResourceFactory.getResourceChangeScannerService().start();
> System.out.println("After starting
> Notification service");
> }
> }catch(Exception e)
> {
> System.out.println(e.getMessage());
> }
> return _instance;
> }
>
> private static KnowledgeAgent _kagent;
> private static ChangeSet1 _instance;
> private static KnowledgeBase _kbase=null;
> private static StatelessKnowledgeSession _ksession=null;
>
> public static void main(String[] args)
> {
> int counter=0;
> try
> {
> System.out.println("Before rule engine start ");
> ChangeSet1.start();
> System.out.println("After rule engine start ");
> do{
> _kbase = _kagent.getKnowledgeBase();
> Collection<KnowledgePackage> kpackages =
> _kbase.getKnowledgePackages();
> System.out.println("no of packages"+kpackages.size());
> for(KnowledgePackage kpackage : kpackages)
> {
> for(org.drools.definition.rule.Rule rule1
> :kpackage.getRules())
> {
> String packname= rule1.getPackageName();
> String rulename=rule1.getName();
> System.out.println("This is : "+packname+"
> Packages and
> RuleName is " +rulename);
> }
> }
> counter++;
>
> try{
> Thread.sleep(10000);
> }catch (InterruptedException e){
> System.out.println("Sleep exception occured");
> }
>
> }while(counter < 10000);
>
> }catch (Throwable t){
> t.printStackTrace();
> }
> }
>
>
> }
>
>
>
>
> This is my changeset.xml
>
> <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='
> http://localhost:8080/guvnor-5.3.0.Final-jboss-as-5.1/rest/packages/pricing/source
> '
> type='DRL' />
> <resource
> source='
> http://localhost:8080/guvnor-5.3.0.Final-jboss-as-5.1/rest/packages/search/source
> '
> type='DRL' />
> </add>
> </change-set>
>
>
>
> Output:--
> Before rule engine start
> after creating kagent
> after apply change set
> After starting Notification service
> After rule engine start
> no of packages2
> This is : pricing Packages and RuleName is ageprice
> This is : pricing Packages and RuleName is incomeprice
> This is : pricing Packages and RuleName is cpvprice
> This is : search Packages and RuleName is age
> This is : search Packages and RuleName is income
> This is : search Packages and RuleName is cpv
> no of packages0
> <after updating package count is 0 so no rules>
> no of packages0
> no of packages0
>
>
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/unable-to-update-the-changes-guvnor-rules-to-application-using-changeset-tp3652824p3652824.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20120112/90d44d40/attachment.html
More information about the rules-users
mailing list