Package org.drools.repository

Examples of org.drools.repository.RulesRepository


     * This time, we mix up stuff a bit
     */
    @Test
    public void testRuleAndDSLAndFunction() throws Exception {
        ServiceImplementation serviceImplementation = getServiceImplementation();
        RulesRepository repo = serviceImplementation.getRulesRepository();

        //first, setup the package correctly:
        PackageItem pkg = repo.createPackage("testRuleAndDSLAndFunction",
                "");
        AssetItem model = pkg.addAsset("model",
                "qed");
        model.updateFormat(AssetFormats.MODEL);
        model.updateBinaryContentAttachment(this.getClass().getResourceAsStream("/billasurf.jar"));
        model.checkin("");
        DroolsHeader.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer",
                pkg);
        repo.save();

        AssetItem func = pkg.addAsset("func",
                "");
        func.updateFormat(AssetFormats.FUNCTION);
        func.updateContent("function void foo() { System.out.println(42); }");
        func.checkin("");

        AssetItem dsl = pkg.addAsset("myDSL",
                "");
        dsl.updateFormat(AssetFormats.DSL);
        dsl.updateContent("[then]call a func=foo();");
        dsl.checkin("");

        AssetItem dsl2 = pkg.addAsset("myDSL2",
                "");
        dsl2.updateFormat(AssetFormats.DSL);
        dsl2.updateContent("[when]There is a board=Board()");
        dsl2.checkin("");

        AssetItem rule = pkg.addAsset("myRule",
                "");
        rule.updateFormat(AssetFormats.DSL_TEMPLATE_RULE);
        rule.updateContent("when \n There is a board \n then \n call a func");
        rule.checkin("");

        AssetItem rule2 = pkg.addAsset("myRule2",
                "");
        rule2.updateFormat(AssetFormats.DSL_TEMPLATE_RULE);
        rule2.updateContent("package testRuleAndDSLAndFunction \n rule 'myRule2222' \n when \n There is a board \n then \n call a func \nend");
        rule2.checkin("");

        AssetItem rule3 = pkg.addAsset("myRule3",
                "");
        rule3.updateFormat(AssetFormats.DRL);
        rule3.updateContent("package testRuleAndDSLAndFunction\n rule 'rule3' \n when \n Board() \n then \n System.err.println(42); end");
        rule3.checkin("");

        repo.save();

        PackageAssembler asm = new PackageAssembler(pkg);
        asm.compile();
        assertFalse(asm.hasErrors());
       
View Full Code Here


    @Test
    public void testErrors() throws Exception {

        ServiceImplementation impl = getServiceImplementation();
        RulesRepository repo = impl.getRulesRepository();

        PackageItem item = repo.createPackage( "testErrorsInPackage",
                                               "to test error handling" );

        BRMSSuggestionCompletionLoader loader = new BRMSSuggestionCompletionLoader();

        assertNotNull( loader.getSuggestionEngine( item ) );
View Full Code Here


    @Test
    public void testSkipDisabledPackageStuff() throws Exception {
        ServiceImplementation serviceImplementation = getServiceImplementation();
        RulesRepository repo = serviceImplementation.getRulesRepository();

        //first, setup the package correctly:
        PackageItem pkg = repo.createPackage("testSkipDisabledPackageStuff",
                "");
        repo.save();

        AssetItem assertRule1 = pkg.addAsset("model1",
                "");
        assertRule1.updateFormat(AssetFormats.DRL_MODEL);
        assertRule1.updateContent("garbage");
View Full Code Here

     * This shows we need to load up the model without anything attached yet.
     */
    public void testModelWithNoAttachment() throws Exception {

        ServiceImplementation impl = getServiceImplementation();
        RulesRepository repo = impl.getRulesRepository();

        PackageItem item = repo.createPackage( "testmodelWithNoAttachment",
                                               "to test model loading" );

        item.addAsset( "testModel",
                       "",
                       null,
                       AssetFormats.MODEL );
        repo.save();

        BRMSSuggestionCompletionLoader loader = new BRMSSuggestionCompletionLoader();

        assertNotNull( loader.getSuggestionEngine( item ) );
        assertFalse( loader.hasErrors() );
View Full Code Here


    @Test
    public void testXLSDecisionTable() throws Exception {
        ServiceImplementation serviceImplementation = getServiceImplementation();
        RulesRepository repo = serviceImplementation.getRulesRepository();

        //first, setup the package correctly:
        PackageItem pkg = repo.createPackage("testXLSDecisionTable",
                "");

        DroolsHeader.updateDroolsHeader("import org.acme.insurance.Policy\n import org.acme.insurance.Driver",
                pkg);
        repo.save();

        InputStream xls = this.getClass().getResourceAsStream("/SampleDecisionTable.xls");
        assertNotNull(xls);

        AssetItem asset = pkg.addAsset("MyDT",
View Full Code Here

    }

    @Test
    public void testBRXMLWithDSLMixedIn() throws Exception {
        ServiceImplementation serviceImplementation = getServiceImplementation();
        RulesRepository repo = serviceImplementation.getRulesRepository();

        //create our package
        PackageItem pkg = repo.createPackage("testBRLWithDSLMixedIn",
                "");
        DroolsHeader.updateDroolsHeader("import org.drools.Person",
                pkg);
        AssetItem rule1 = pkg.addAsset("rule2",
                "");
        rule1.updateFormat(AssetFormats.BUSINESS_RULE);

        AssetItem dsl = pkg.addAsset("MyDSL",
                "");
        dsl.updateFormat(AssetFormats.DSL);
        dsl.updateContent("[when]This is a sentence=Person()\n[then]say {hello}=System.err.println({hello});");
        dsl.checkin("");

        RuleModel model = new RuleModel();
        model.name = "rule2";
        FactPattern pattern = new FactPattern("Person");
        pattern.setBoundName("p");
        ActionSetField action = new ActionSetField("p");
        ActionFieldValue value = new ActionFieldValue("age",
                "42",
                SuggestionCompletionEngine.TYPE_NUMERIC);
        action.addFieldValue(value);

        model.addLhsItem(pattern);
        model.addRhsItem(action);

        DSLSentence dslCondition = new DSLSentence();
        dslCondition.setDefinition( "This is a sentence" );

        model.addLhsItem(dslCondition);

        DSLSentence dslAction = new DSLSentence();
        dslAction.setDefinition( "say {42}" );

        model.addRhsItem(dslAction);

        rule1.updateContent(BRXMLPersistence.getInstance().marshal(model));
        rule1.checkin("");
        repo.save();

        //now add a rule with no DSL
        model = new RuleModel();
        model.name = "ruleNODSL";
        pattern = new FactPattern("Person");
        pattern.setBoundName("p");
        action = new ActionSetField("p");
        value = new ActionFieldValue("age",
                "42",
                SuggestionCompletionEngine.TYPE_NUMERIC);
        action.addFieldValue(value);

        model.addLhsItem(pattern);
        model.addRhsItem(action);

        AssetItem ruleNODSL = pkg.addAsset("ruleNoDSL",
                "");
        ruleNODSL.updateFormat(AssetFormats.BUSINESS_RULE);

        ruleNODSL.updateContent(BRXMLPersistence.getInstance().marshal(model));
        ruleNODSL.checkin("");

        pkg = repo.loadPackage("testBRLWithDSLMixedIn");
        PackageAssembler asm = new PackageAssembler(pkg);
        asm.compile();
        assertFalse(asm.hasErrors());
       
        Package[] binPkgs = asm.getBinaryPackage();
View Full Code Here

    }

    @Test
    public void testCustomSelector() throws Exception {
        ServiceImplementation serviceImplementation = getServiceImplementation();
        RulesRepository repo = serviceImplementation.getRulesRepository();

        //create our package
        PackageItem pkg = repo.createPackage("testCustomSelector",
                "");
        DroolsHeader.updateDroolsHeader("import org.drools.Person",
                pkg);
        AssetItem rule1 = pkg.addAsset("rule1",
                "");
View Full Code Here

    }
   
    @Test
    public void testBuiltInSelector() throws Exception {
        ServiceImplementation serviceImplementation = getServiceImplementation();
        RulesRepository repo = serviceImplementation.getRulesRepository();

        CategoryItem rootCat = repo.loadCategory( "/" );
        CategoryItem testBuiltInSelectorCategory1 = rootCat.addCategory( "testBuiltInSelectorCategory1",
                         "yeah" );
        testBuiltInSelectorCategory1.addCategory( "testBuiltInSelectorCategory1Child",
        "yeah" );       
        CategoryItem testBuiltInSelectorCategory2 = rootCat.addCategory( "testBuiltInSelectorCategory2",
        "yeah" );
        testBuiltInSelectorCategory2.addCategory( "testBuiltInSelectorCategory2Child",
        "yeah" );    
       
        //create our package
        PackageItem pkg = repo.createPackage("testBuiltInSelector",
                "");
        DroolsHeader.updateDroolsHeader("import org.drools.Person",
                pkg);
        AssetItem rule1 = pkg.addAsset("rule1",
                "");
View Full Code Here

                if ( row.id.equals( as.getUUID() ) ) found = true;
            }
            assertFalse( found );

            //Now, another user comes along, makes a change...
            RulesRepository repo2 = new RulesRepository( TestEnvironmentSessionHelper.getSessionFor( "thirdpartyuser" ) );
            AssetItem as2 = repo2.loadDefaultPackage().loadAsset( "testLoadInbox" );
            as2.updateContent( "hey" );
            as2.checkin( "here we go again !" );

            Thread.sleep( 200 );

            //now check that it is in the first users inbox
            TableDataRow rowMatch = null;
            res = impl.loadInbox( ExplorerNodeConfig.INCOMING_ID );
            for ( TableDataRow row : res.data ) {
                if ( row.id.equals( as.getUUID() ) ) {
                    rowMatch = row;
                    break;
                }
            }
            assertNotNull( rowMatch );
            assertEquals( as.getName(),
                          rowMatch.values[0] );
            assertEquals( "thirdpartyuser",
                          rowMatch.values[2] ); //should be "from" that user name...

            //shouldn't be in thirdpartyusers inbox
            UserInbox ib = new UserInbox( repo2 );
            ib.loadIncoming();
            assertEquals( 0,
                          ib.loadIncoming().size() );
            assertEquals( 1,
                          ib.loadRecentEdited().size() );

            //ok lets create another user...
            RulesRepository repo3 = new RulesRepository( TestEnvironmentSessionHelper.getSessionFor( "fourthuser" ) );
            AssetItem as3 = repo3.loadDefaultPackage().loadAsset( "testLoadInbox" );
            as3.updateContent( "hey22" );
            as3.checkin( "here we go again 22!" );

            Thread.sleep( 250 );
View Full Code Here

    @Test
    public void testDeleteUnversionedRule() throws Exception {

        ServiceImplementation impl = getServiceImplementation();
        RulesRepository repo = impl.getRulesRepository();

        repo.loadDefaultPackage();
        repo.createPackage( "anotherPackage",
                            "woot" );

        CategoryItem cat = impl.getRulesRepository().loadCategory( "/" );
        cat.addCategory( "testDeleteUnversioned",
                         "yeah" );

        String uuid = impl.createNewRule( "test Delete Unversioned",
                                          "a description",
                                          "testDeleteUnversioned",
                                          "anotherPackage",
                                          "txt" );
        assertNotNull( uuid );
        assertFalse( "".equals( uuid ) );

        AssetItem localItem = impl.getRulesRepository().loadAssetByUUID( uuid );

        // String drl = "package org.drools.repository\n\ndialect 'mvel'\n\n" +
        // "rule Rule1 \n when \n AssetItem(description != null) \n then \n
        // System.out.println(\"yeah\");\nend";
        // RuleBase rb = RuleBaseLoader.getInstance().loadFromReader(new
        // StringReader(drl));
        // rb.newStatelessSession().execute(localItem);

        assertEquals( "test Delete Unversioned",
                      localItem.getName() );

        localItem.remove();
        repo.save();

        try {
            localItem = impl.getRulesRepository().loadAssetByUUID( uuid );
            fail();
        } catch ( Exception e ) {
View Full Code Here

TOP

Related Classes of org.drools.repository.RulesRepository

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.