[jboss-jira] [JBoss JIRA] (DROOLS-86) DSL string is having semi-colon added to //

Richard Ambridge (JIRA) jira-events at lists.jboss.org
Thu Mar 21 12:03:42 EDT 2013


     [ https://issues.jboss.org/browse/DROOLS-86?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Richard Ambridge updated DROOLS-86:
-----------------------------------

    Steps to Reproduce: 
{noformat}
package droolssemicolon;

import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;

/**
 *
 * @author rambridg
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Main m = new Main();
        m.work();
    }

    public void work() {

        String str = "";
        str += "package droolssemicolon \n";
        str += "rule rule1 \n";
        str += "    dialect \"mvel\" \n";
        str += "when \n";
        str += "    Have a item \n";
        str += "then \n";
        str += "    setout 123 \n";
        str += "end \n";

        String dsl = "[when]Have a item=i : String()\n"
                + "[then]setout {val}=String me=\"http://onefineday.{val}\";System.out.println(me)\n ";

        KnowledgeBase mykbase = KnowledgeBaseFactory.newKnowledgeBase();
        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
        kbuilder.add(ResourceFactory.newByteArrayResource(dsl.getBytes()), ResourceType.DSL);
        kbuilder.add(ResourceFactory.newByteArrayResource(str.getBytes()), ResourceType.DSLR);

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

        mykbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
        StatefulKnowledgeSession ksession = mykbase.newStatefulKnowledgeSession();

        String i="test";
        ksession.insert(i);

        ksession.fireAllRules();
    }
}
{noformat}

  was:
{noformat}
package droolssemicolon;

import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;

/**
 *
 * @author rambridg
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Main m = new Main();
        m.work();
    }

    public void work() {

        String str = "";
        str += "package droolssemicolon \n";
        str += "rule rule1 \n";
        str += "    dialect \"mvel\" \n";
        str += "when \n";
        str += "    Have a item \n";
        str += "then \n";
        str += "    setout 123 \n";
        str += "end \n";

        String dsl = "[when]Have a item=i : String()\n"
                + "[then]setout {val}=String me=\"http://onefineday.{val}\";System.out.println(me)\n ";

        KnowledgeBase mykbase = KnowledgeBaseFactory.newKnowledgeBase();
        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
        kbuilder.add(ResourceFactory.newByteArrayResource(dsl.getBytes()), ResourceType.DSL);
        kbuilder.add(ResourceFactory.newByteArrayResource(str.getBytes()), ResourceType.DSLR);

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

        mykbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
        StatefulKnowledgeSession ksession = mykbase.newStatefulKnowledgeSession();

        String i="test";
        ksession.insert(i);

        ksession.fireAllRules();
    }
}


    
> DSL string is having semi-colon added to //
> -------------------------------------------
>
>                 Key: DROOLS-86
>                 URL: https://issues.jboss.org/browse/DROOLS-86
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 5.5
>         Environment: linux
>            Reporter: Richard Ambridge
>            Assignee: Mark Proctor
>              Labels: dsl
>
> If the DSL has a statement like:
> "[then]setout {val}=String me=\"http://onefineday.{val}\";System.out.println(me)\n ";
> and a rule has:   setout 123
> the result is  http:;//onefineday.123 
> notice the http:;   <- semi colon added by drools

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list