[jboss-jira] [JBoss JIRA] (DROOLS-1402) Incremental Compilation class update fails MVELAnalysis
Matteo Mortari (JIRA)
issues at jboss.org
Wed Jan 11 07:50:01 EST 2017
[ https://issues.jboss.org/browse/DROOLS-1402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matteo Mortari updated DROOLS-1402:
-----------------------------------
Forum Reference: https://groups.google.com/d/msg/drools-usage/GA5lT6UT-Dk/EysaPccVEgAJ
> Incremental Compilation class update fails MVELAnalysis
> -------------------------------------------------------
>
> Key: DROOLS-1402
> URL: https://issues.jboss.org/browse/DROOLS-1402
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.0.0.Beta5
> Reporter: Matteo Mortari
> Assignee: Mario Fusco
>
> Error:
> {code:java}
> Unable to Analyse Expression lastName == null:
> [Error: unable to resolve method using strict-mode: org.test.MyBean.lastName()]
> [Near : {... lastName == null ....}]
> ^ : [Rule name='Row 1 HelloRules']
> {code}
> Reproducer:
> {code:java}
> @Test
> public void testMTatteo() {
> String JAVA1 = "package org.test;" +
> " public class MyBean {\n" +
> " private String firstName;\n" +
> " public MyBean() { /* empty constructor */ }\n" +
> " public MyBean(String firstName) { this.firstName = firstName; }\n" +
> " public String getFirstName() { return firstName; }\n" +
> " public void setFirstName(String firstName) { this.firstName = firstName; }\n" +
> " }";
>
> String DRL1 = "package org.test;\n" +
> "\n" +
> "//from row number: 1\n" +
> "rule \"Row 1 HelloRules\"\n" +
> " dialect \"mvel\"\n" +
> " when\n" +
> " helloProfile : MyBean( firstName == null )\n" +
> " then\n" +
> " System.out.println(helloProfile);" +
> "end";
>
> String INIT_DRL = "package org.test; rule RINIT when eval(true) then insert(new MyBean()); end";
>
> String JAVA2 = "package org.test;" +
> " public class MyBean {\n" +
> " private String firstName;\n" +
> " private String lastName;\n" +
> " public MyBean() { /* empty constructor */ }\n" +
> " public MyBean(String firstName) { this.firstName = firstName; }\n" +
> " public MyBean(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; }\n" +
> " public String getFirstName() { return firstName; }\n" +
> " public void setFirstName(String firstName) { this.firstName = firstName; }\n" +
> " public String getLastName() { return lastName; }\n" +
> " public void setLastName(String lastName) { this.lastName = lastName; }\n" +
> " }";
>
> String DRL2 = "package org.test;\n" +
> "\n" +
> "//from row number: 1\n" +
> "rule \"Row 1 HelloRules\"\n" +
> " dialect \"mvel\"\n" +
> " when\n" +
> " helloProfile : MyBean( firstName == null , lastName == null )\n" +
> " then\n" +
> " System.out.println(helloProfile);" +
> "end";
>
> KieServices ks = KieServices.Factory.get();
>
> KieFileSystem kfs = ks.newKieFileSystem();
> ReleaseId id = ks.newReleaseId( "org.test", "myTest", "1.0.0" );
> KieBuilder kieBuilder = ks.newKieBuilder( kfs );
> kfs.generateAndWritePomXML( id );
> kfs.write("src/main/java/org/test/MyBean.java",
> ks.getResources().newReaderResource(new StringReader(JAVA1)));
> kfs.write( ks.getResources()
> .newReaderResource( new StringReader( DRL1 ) )
> .setResourceType( ResourceType.DRL )
> .setSourcePath( "rules.drl" ) );
>
> kfs.write( ks.getResources()
> .newReaderResource( new StringReader( INIT_DRL ) )
> .setResourceType( ResourceType.DRL )
> .setSourcePath( "INIT_DRL.drl" ) );
> kieBuilder.buildAll();
> KieContainer kc = ks.newKieContainer( id );
> KieSession ksession = kc.newKieSession();
>
> int fired = ksession.fireAllRules();
>
>
> ReleaseId id2 = ks.newReleaseId( "org.test", "myTest", "2.0.0" );
> KieFileSystem kfs2 = ks.newKieFileSystem();
> KieBuilder kieBuilder2 = ks.newKieBuilder( kfs2 );
> kfs2.generateAndWritePomXML( id2 );
> kfs2.write("src/main/java/org/test/MyBean.java",
> ks.getResources().newReaderResource(new StringReader(JAVA2)));
> kfs2.write( ks.getResources()
> .newReaderResource( new StringReader( DRL2 ) )
> .setResourceType( ResourceType.DRL )
> .setSourcePath( "rules.drl" ) );
>
> kfs2.write( ks.getResources()
> .newReaderResource( new StringReader( INIT_DRL ) )
> .setResourceType( ResourceType.DRL )
> .setSourcePath( "INIT_DRL.drl" ) );
> kieBuilder2.buildAll();
>
>
>
>
> kc.updateToVersion(id2);
>
>
> ksession.fireAllRules();
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
More information about the jboss-jira
mailing list