Package org.drools.definition

Examples of org.drools.definition.KnowledgePackage


                                                                           "String()\n" ).getBytes() ),
                      ResourceType.DRL );
        if ( kbuilder.hasErrors() ) {
            fail( kbuilder.getErrors().toString() );
        }
        KnowledgePackage pkg = (KnowledgePackage) kbuilder.getKnowledgePackages().iterator().next();
        writePackage( pkg,
                      pkg1 );

        String xml = "";
        xml += "<change-set xmlns='http://drools.org/drools-5.0/change-set'";
View Full Code Here


                                                                           "String()\n" ).getBytes() ),
                      ResourceType.DRL );
        if ( kbuilder.hasErrors() ) {
            fail( kbuilder.getErrors().toString() );
        }
        KnowledgePackage pkg1 = (KnowledgePackage) kbuilder.getKnowledgePackages().iterator().next();
        writePackage( pkg1,
                      pkgF1 );

        // Add Rule3 in the second package
        File pkgF2 = fileManager.newFile( "pkg2.pkg" );
        kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
        kbuilder.add( ResourceFactory.newByteArrayResource( createDefaultRule( "rule3" ).getBytes() ),
                      ResourceType.DRL );
        if ( kbuilder.hasErrors() ) {
            fail( kbuilder.getErrors().toString() );
        }
        KnowledgePackage pkg2 = (KnowledgePackage) kbuilder.getKnowledgePackages().iterator().next();
        writePackage( pkg2,
                      pkgF2 );

        String xml = "";
        xml += "<change-set xmlns='http://drools.org/drools-5.0/change-set'";
View Full Code Here

                            ResourceFactory.newUrlResource( fxml.toURI().toURL() ) );
            fail( "Knowledge should fail to compile" );
        } catch (Exception e) {
           
        }
        KnowledgePackage knowledgePackage = kbase.getKnowledgePackage( "org.drools.test" );

        //the resource didn't compile because function1 doesn't exist
        assertNull( knowledgePackage );

        //we are going to add function1 now
View Full Code Here

                                ResourceFactory.newUrlResource( fxml.toURI().toURL() ) );
            } catch (Exception e) {
                fail( "Knowledge shouldn't fail to compile" );
            }
   
            KnowledgePackage knowledgePackage = kbase.getKnowledgePackage("org.drools.test");
   
            assertNotNull(knowledgePackage);
   
            Rule allTheStringsQuery = ((KnowledgePackageImp) knowledgePackage).getRule("all the Strings");
   
View Full Code Here

        //Did the agent respected the packges?
        assertEquals(2, kbase.getKnowledgePackages().size());
       
        //some.pkg has 1 rule
        KnowledgePackage somePkg = kbase.getKnowledgePackage("some.pkg");
        assertNotNull(somePkg);
        assertEquals(1, somePkg.getRules().size());
        assertEquals("rule1", somePkg.getRules().iterator().next().getName());
       
        //some.other.pkg has 2 rules
        KnowledgePackage someOtherPkg = kbase.getKnowledgePackage("some.other.pkg");
        assertNotNull(someOtherPkg);
        assertEquals(2, someOtherPkg.getRules().size());
        Iterator<Rule> someOtherPkgRules = someOtherPkg.getRules().iterator();
        assertEquals("rule2", someOtherPkgRules.next().getName());
        assertEquals("rule3", someOtherPkgRules.next().getName());
       
        //Delete rule2.drl content
        this.fileManager.deleteFile(f2);
        scan( kagent );
       
        //the empty package remains in the kbase
        assertEquals(2, kbase.getKnowledgePackages().size());
       
        //some.pkg has 1 rule
        somePkg = kbase.getKnowledgePackage("some.pkg");
        assertNotNull(somePkg);
        assertEquals(1, somePkg.getRules().size());
        assertEquals("rule1", somePkg.getRules().iterator().next().getName());
       
        //some.other.pkg is empty
        someOtherPkg = kbase.getKnowledgePackage("some.other.pkg");
        assertNotNull(someOtherPkg);
        assertTrue(someOtherPkg.getRules().isEmpty());
       
       
        //Add 1 more rule in a different package
        File f3 = fileManager.write( "rule3.drl",
                                        createLhsRule("yet.another.pkg","rule4", "String()") );
       
        xml = "";
        xml += "<change-set xmlns='http://drools.org/drools-5.0/change-set'";
        xml += "    xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'";
        xml += "    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' >";
        xml += "    <add> ";
        xml += "        <resource source='http://localhost:" + this.getPort() + "/rule3.drl' type='DRL' />";
        xml += "    </add> ";
        xml += "</change-set>";
       
        this.applyChangeSet(kagent, xml);
       
        //There should be 3 packages now
        assertEquals(3, kbase.getKnowledgePackages().size());
       
        //some.pkg has 1 rule
        somePkg = kbase.getKnowledgePackage("some.pkg");
        assertNotNull(somePkg);
        assertEquals(1, somePkg.getRules().size());
        assertEquals("rule1", somePkg.getRules().iterator().next().getName());
       
        //some.other.pkg is empty
        someOtherPkg = kbase.getKnowledgePackage("some.other.pkg");
        assertNotNull(someOtherPkg);
        assertTrue(someOtherPkg.getRules().isEmpty());
        //yet.another.pkg has 1 rule
        KnowledgePackage yetAnotherPkg = kbase.getKnowledgePackage("yet.another.pkg");
        assertNotNull(yetAnotherPkg);
        assertEquals(1, yetAnotherPkg.getRules().size());
        assertEquals("rule4", yetAnotherPkg.getRules().iterator().next().getName());
       
       
        kagent.dispose();
    }
View Full Code Here

           kbuilder.add( ResourceFactory.newByteArrayResource( rule2.getBytes() ),
                         ResourceType.DRL );
           if ( kbuilder.hasErrors() ) {
               fail( kbuilder.getErrors().toString() );
           }
           KnowledgePackage pkg = (KnowledgePackage) kbuilder.getKnowledgePackages().iterator().next();
           writePackage( pkg,
                         fileManager.newFile( "pkg1.pkg" ) );

           String xml = "";
           xml += "<change-set xmlns='http://drools.org/drools-5.0/change-set'";
View Full Code Here

        kbuilder.add( ResourceFactory.newByteArrayResource( rule2.getBytes() ),
                      ResourceType.DRL );
        if ( kbuilder.hasErrors() ) {
            fail( kbuilder.getErrors().toString() );
        }
        KnowledgePackage pkg = (KnowledgePackage) kbuilder.getKnowledgePackages().iterator().next();
        writePackage( pkg,
                      fileManager.newFile( "pkg1.pkg" ) );

        String xml = "";
        xml += "<change-set xmlns='http://drools.org/drools-5.0/change-set'";
View Full Code Here

        kbuilder.add( ResourceFactory.newByteArrayResource( rule2.getBytes() ),
                      ResourceType.DRL );
        if ( kbuilder.hasErrors() ) {
            fail( kbuilder.getErrors().toString() );
        }
        KnowledgePackage pkg = (KnowledgePackage) kbuilder.getKnowledgePackages().iterator().next();
        writePackage( pkg,
                      fileManager.newFile( "pkg1.pkg" ) );

        String xml = "";
        xml += "<change-set xmlns='http://drools.org/drools-5.0/change-set'";
View Full Code Here

        ChangeSetImpl cs = new ChangeSetImpl();
            cs.setResourcesAdded( Arrays.<Resource>asList(bres) );
        kagent.applyChangeSet( cs );

        KnowledgePackage pack = kagent.getKnowledgeBase().getKnowledgePackage("org.test.myPack");
            assertNotNull(pack);
            assertEquals(1,pack.getRules().size());
        KnowledgePackage pack2 = kagent.getKnowledgeBase().getKnowledgePackage("org.anotherPack");
            assertNotNull(pack2);
            assertEquals(0,pack2.getRules().size());


        String drl2 = "package org.test.myPack;\n" +
                "function void foo() { \n" +
                "} \n" +
                "\n" +
                "\n" +
                "declare org.anotherPack.MyType2\n" +
                "    field : String\n" +
                "end\n" +
                "" +
                "rule \"rool\" \n" +
                "when\n" +
                "then\n" +
                "end\n";

        ByteArrayResource bres2 = (ByteArrayResource) ResourceFactory.newByteArrayResource( drl2.getBytes() );
            bres2.setResourceType(ResourceType.DRL);
            ChangeSetImpl cs2 = new ChangeSetImpl();
                    cs2.setResourcesAdded( Arrays.<Resource>asList(bres2) );
            kagent.applyChangeSet( cs2 );

        pack = kagent.getKnowledgeBase().getKnowledgePackage("org.test.myPack");
            assertNotNull(pack);
            assertEquals(2,pack.getRules().size());
        pack2 = kagent.getKnowledgeBase().getKnowledgePackage("org.anotherPack");
            assertNotNull(pack2);
            assertEquals(0,pack2.getRules().size());



        Collection<KnowledgeDefinition> def1 = ((KnowledgeAgentImpl) kagent).getRegisteredResources().get(bres);
            assertEquals(2,def1.size());
View Full Code Here

        ksession = getSerialisedStatefulKnowledgeSession( ksession,
                                                          true );       

        // check the packages are correctly populated
        assertEquals( 3, kbase.getKnowledgePackages().size() );
        KnowledgePackage test = null, test2 = null;
        // different JVMs return the package list in different order
        for( KnowledgePackage kpkg : kbase.getKnowledgePackages() ) {
            if( kpkg.getName().equals( "org.drools.test" )) {
                test = kpkg;
            } else if( kpkg.getName().equals( "org.drools.test2" )) {
                test2 = kpkg;
            }
        }
       
        assertNotNull( test );
        assertNotNull( test2 );
        assertEquals( "rule1",
                      test.getRules().iterator().next().getName() );
        assertEquals( "rule2",
                      test2.getRules().iterator().next().getName() );

        // now remove the first rule
        kbase.removeRule( test.getName(),
                          test.getRules().iterator().next().getName() );
        // different JVMs return the package list in different order
        for( KnowledgePackage kpkg : kbase.getKnowledgePackages() ) {
            if( kpkg.getName().equals( "org.drools.test" )) {
                test = kpkg;
            } else if( kpkg.getName().equals( "org.drools.test2" )) {
                test2 = kpkg;
            }
        }
        assertNotNull( test );
        assertNotNull( test2 );

        // Check the rule was correctly remove
        assertEquals( 0,
                      test.getRules().size() );
        assertEquals( 1,
                      test2.getRules().size() );
        assertEquals( "rule2",
                      test2.getRules().iterator().next().getName() );

        list = new ArrayList( ksession.getObjects( new ClassObjectFilter( Person.class ) ) );
        assertEquals( "removal of the rule should result in retraction of c3's logical assertion",
                      2,
                      list.size() );
        assertTrue( "c1's logical assertion should not be retracted",
                    list.contains( new Person( c1.getType() ) ) );
        assertTrue( "c2's logical assertion should  not be retracted",
                    list.contains( new Person( c2.getType() ) ) );
        assertFalse( "c3's logical assertion should be  retracted",
                     list.contains( new Person( c3.getType() ) ) );

        c2.setPrice( 3 );
        h = getFactHandle( h, ksession );
        ksession.update( h,
                         c2 );
        ksession = getSerialisedStatefulKnowledgeSession( ksession,
                                                          true );       
        list = new ArrayList( ksession.getObjects( new ClassObjectFilter( Person.class ) ) );
        assertEquals( "c2 now has a higher price, its logical assertion should  be cancelled",
                      1,
                      list.size() );
        assertFalse( "The logical assertion cor c2 should have been retracted",
                     list.contains( new Person( c2.getType() ) ) );
        assertTrue( "The logical assertion  for c1 should exist",
                    list.contains( new Person( c1.getType() ) ) );

        // different JVMs return the package list in different order
        for( KnowledgePackage kpkg : kbase.getKnowledgePackages() ) {
            if( kpkg.getName().equals( "org.drools.test" )) {
                test = kpkg;
            } else if( kpkg.getName().equals( "org.drools.test2" )) {
                test2 = kpkg;
            }
        }
        assertNotNull( test );
        assertNotNull( test2 );

        kbase.removeRule( test2.getName(),
                          test2.getRules().iterator().next().getName() );
        kbase = SerializationHelper.serializeObject( kbase );
       
        // different JVMs return the package list in different order
        for( KnowledgePackage kpkg : kbase.getKnowledgePackages() ) {
            if( kpkg.getName().equals( "org.drools.test" )) {
                test = kpkg;
            } else if( kpkg.getName().equals( "org.drools.test2" )) {
                test2 = kpkg;
            }
        }
        assertNotNull( test );
        assertNotNull( test2 );
       
        assertEquals( 0,
                      test.getRules().size() );
        assertEquals( 0,
                      test2.getRules().size() );
        list = new ArrayList( ksession.getObjects( new ClassObjectFilter( Person.class ) ) );
        assertEquals( 0,
                      list.size() );
View Full Code Here

TOP

Related Classes of org.drools.definition.KnowledgePackage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.