[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