[JBoss JIRA] (DROOLS-4777) Extract Exec Model Lambda in separated classes
by Luca Molteni (Jira)
Luca Molteni created DROOLS-4777:
------------------------------------
Summary: Extract Exec Model Lambda in separated classes
Key: DROOLS-4777
URL: https://issues.jboss.org/browse/DROOLS-4777
Project: Drools
Issue Type: Feature Request
Components: executable model
Reporter: Luca Molteni
Assignee: Luca Molteni
Rule classes are needed at runtime and therefore shall be garbage collected, but as constraints and consequences are inside them they occupy memory.
By extracting the lambdas in classes we can GC them.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 8 months
[JBoss JIRA] (DROOLS-4776) Conditional Consequence after an accumulate with multiple patterns
by Luca Molteni (Jira)
[ https://issues.jboss.org/browse/DROOLS-4776?page=com.atlassian.jira.plugi... ]
Luca Molteni updated DROOLS-4776:
---------------------------------
Description:
It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
{code:java}
@Test
public void testIfAfterAccumulate() {
String str =
"import " + Result.class.getCanonicalName() + ";\n" +
"import " + Person.class.getCanonicalName() + ";\n" +
"rule R when\n" +
" $r : Result()\n" +
" accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
" $sum : sum($p.getAge()), \n" +
" $sum2 : sum(70) \n" +
" ) \n" +
" if ($sum2 > 70) do[greater]\n" +
" String()\n" +
"then\n" +
" $r.addValue(\"default\");\n" +
"then[greater]\n" +
" $r.addValue(\"greater\");\n" +
"end";
KieSession ksession = getKieSession( str );
Result result = new Result();
ksession.insert( result );
ksession.insert( new Person( "Mark", 37 ) );
ksession.insert( new Person( "Edson", 35 ) );
ksession.insert( new Person( "Mario", 40 ) );
ksession.fireAllRules();
List results = ( List )result.getValue();
assertEquals(1, results.size());
assertEquals("greater", results.get(0));
}
{code}
was:
It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
{code:java}
@Test
public void testIfAfterAccumulate() {
String str =
"import " + Result.class.getCanonicalName() + ";\n" +
"import " + Person.class.getCanonicalName() + ";\n" +
"rule R when\n" +
" $r : Result()\n" +
" accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
" $sum : sum($p.getAge()), \n" +
" $sum2 : sum(70) \n" +
" ) \n" +
" if ($sum2 > 70) do[greater]\n" +
" String()\n" +
"then\n" +
" $r.addValue(\"default\");\n" +
"then[greater]\n" +
" $r.addValue(\"greater\");\n" +
"end";
KieSession ksession = getKieSession( str );
Result result = new Result();
ksession.insert( result );
ksession.insert( new Person( "Mark", 37 ) );
ksession.insert( new Person( "Edson", 35 ) );
ksession.insert( new Person( "Mario", 40 ) );
ksession.fireAllRules();
{code}
List results = ( List )result.getValue();
assertEquals(1, results.size());
assertEquals("greater", results.get(0));
}}}
> Conditional Consequence after an accumulate with multiple patterns
> ------------------------------------------------------------------
>
> Key: DROOLS-4776
> URL: https://issues.jboss.org/browse/DROOLS-4776
> Project: Drools
> Issue Type: Bug
> Components: executable model
> Reporter: Luca Molteni
> Assignee: Mario Fusco
> Priority: Major
>
> It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
> {code:java}
> @Test
> public void testIfAfterAccumulate() {
> String str =
> "import " + Result.class.getCanonicalName() + ";\n" +
> "import " + Person.class.getCanonicalName() + ";\n" +
> "rule R when\n" +
> " $r : Result()\n" +
> " accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
> " $sum : sum($p.getAge()), \n" +
> " $sum2 : sum(70) \n" +
> " ) \n" +
> " if ($sum2 > 70) do[greater]\n" +
> " String()\n" +
> "then\n" +
> " $r.addValue(\"default\");\n" +
> "then[greater]\n" +
> " $r.addValue(\"greater\");\n" +
> "end";
> KieSession ksession = getKieSession( str );
> Result result = new Result();
> ksession.insert( result );
> ksession.insert( new Person( "Mark", 37 ) );
> ksession.insert( new Person( "Edson", 35 ) );
> ksession.insert( new Person( "Mario", 40 ) );
> ksession.fireAllRules();
> List results = ( List )result.getValue();
> assertEquals(1, results.size());
> assertEquals("greater", results.get(0));
> }
> {code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 8 months
[JBoss JIRA] (DROOLS-4776) Conditional Consequence after an accumulate with multiple patterns
by Luca Molteni (Jira)
[ https://issues.jboss.org/browse/DROOLS-4776?page=com.atlassian.jira.plugi... ]
Luca Molteni updated DROOLS-4776:
---------------------------------
Description:
It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
{code:java}
@Test
public void testIfAfterAccumulate() {
String str =
"import " + Result.class.getCanonicalName() + ";\n" +
"import " + Person.class.getCanonicalName() + ";\n" +
"rule R when\n" +
" $r : Result()\n" +
" accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
" $sum : sum($p.getAge()), \n" +
" $sum2 : sum(70) \n" +
" ) \n" +
" if ($sum2 > 70) do[greater]\n" +
" String()\n" +
"then\n" +
" $r.addValue(\"default\");\n" +
"then[greater]\n" +
" $r.addValue(\"greater\");\n" +
"end";
KieSession ksession = getKieSession( str );
Result result = new Result();
ksession.insert( result );
ksession.insert( new Person( "Mark", 37 ) );
ksession.insert( new Person( "Edson", 35 ) );
ksession.insert( new Person( "Mario", 40 ) );
ksession.fireAllRules();
{code}
List results = ( List )result.getValue();
assertEquals(1, results.size());
assertEquals("greater", results.get(0));
}}}
was:
It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
{code:java}
@Test
public void testIfAfterAccumulate() {
String str =
"import " + Result.class.getCanonicalName() + ";\n" +
"import " + Person.class.getCanonicalName() + ";\n" +
"rule R when\n" +
" $r : Result()\n" +
" accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
" $sum : sum($p.getAge()), \n" +
" $sum2 : sum(70) \n" +
" ) \n" +
" if ($sum2 > 70) do[greater]\n" +
" String()\n" +
"then\n" +
" $r.addValue(\"default\");\n" +
"then[greater]\n" +
" $r.addValue(\"greater\");\n" +
"end";
KieSession ksession = getKieSession( str );
Result result = new Result();
ksession.insert( result );
ksession.insert( new Person( "Mark", 37 ) );
ksession.insert( new Person( "Edson", 35 ) );
ksession.insert( new Person( "Mario", 40 ) );
ksession.fireAllRules();
List results = ( List )result.getValue();
assertEquals(1, results.size());
assertEquals("greater", results.get(0));
}}}
> Conditional Consequence after an accumulate with multiple patterns
> ------------------------------------------------------------------
>
> Key: DROOLS-4776
> URL: https://issues.jboss.org/browse/DROOLS-4776
> Project: Drools
> Issue Type: Bug
> Components: executable model
> Reporter: Luca Molteni
> Assignee: Mario Fusco
> Priority: Major
>
> It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
> {code:java}
> @Test
> public void testIfAfterAccumulate() {
> String str =
> "import " + Result.class.getCanonicalName() + ";\n" +
> "import " + Person.class.getCanonicalName() + ";\n" +
> "rule R when\n" +
> " $r : Result()\n" +
> " accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
> " $sum : sum($p.getAge()), \n" +
> " $sum2 : sum(70) \n" +
> " ) \n" +
> " if ($sum2 > 70) do[greater]\n" +
> " String()\n" +
> "then\n" +
> " $r.addValue(\"default\");\n" +
> "then[greater]\n" +
> " $r.addValue(\"greater\");\n" +
> "end";
> KieSession ksession = getKieSession( str );
> Result result = new Result();
> ksession.insert( result );
> ksession.insert( new Person( "Mark", 37 ) );
> ksession.insert( new Person( "Edson", 35 ) );
> ksession.insert( new Person( "Mario", 40 ) );
> ksession.fireAllRules();
> {code}
> List results = ( List )result.getValue();
> assertEquals(1, results.size());
> assertEquals("greater", results.get(0));
> }}}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 8 months
[JBoss JIRA] (DROOLS-4776) Conditional Consequence after an accumulate with multiple patterns
by Luca Molteni (Jira)
[ https://issues.jboss.org/browse/DROOLS-4776?page=com.atlassian.jira.plugi... ]
Luca Molteni updated DROOLS-4776:
---------------------------------
Description:
It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
{code:java}
@Test
public void testIfAfterAccumulate() {
String str =
"import " + Result.class.getCanonicalName() + ";\n" +
"import " + Person.class.getCanonicalName() + ";\n" +
"rule R when\n" +
" $r : Result()\n" +
" accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
" $sum : sum($p.getAge()), \n" +
" $sum2 : sum(70) \n" +
" ) \n" +
" if ($sum2 > 70) do[greater]\n" +
" String()\n" +
"then\n" +
" $r.addValue(\"default\");\n" +
"then[greater]\n" +
" $r.addValue(\"greater\");\n" +
"end";
KieSession ksession = getKieSession( str );
Result result = new Result();
ksession.insert( result );
ksession.insert( new Person( "Mark", 37 ) );
ksession.insert( new Person( "Edson", 35 ) );
ksession.insert( new Person( "Mario", 40 ) );
ksession.fireAllRules();
List results = ( List )result.getValue();
assertEquals(1, results.size());
assertEquals("greater", results.get(0));
}}}
was:
It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
{{ @Test
public void testIfAfterAccumulate() {
String str =
"import " + Result.class.getCanonicalName() + ";\n" +
"import " + Person.class.getCanonicalName() + ";\n" +
"rule R when\n" +
" $r : Result()\n" +
" accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
" $sum : sum($p.getAge()), \n" +
" $sum2 : sum(70) \n" +
" ) \n" +
" if ($sum2 > 70) do[greater]\n" +
" String()\n" +
"then\n" +
" $r.addValue(\"default\");\n" +
"then[greater]\n" +
" $r.addValue(\"greater\");\n" +
"end";
KieSession ksession = getKieSession( str );
Result result = new Result();
ksession.insert( result );
ksession.insert( new Person( "Mark", 37 ) );
ksession.insert( new Person( "Edson", 35 ) );
ksession.insert( new Person( "Mario", 40 ) );
ksession.fireAllRules();
List results = ( List )result.getValue();
assertEquals(1, results.size());
assertEquals("greater", results.get(0));
}}}
> Conditional Consequence after an accumulate with multiple patterns
> ------------------------------------------------------------------
>
> Key: DROOLS-4776
> URL: https://issues.jboss.org/browse/DROOLS-4776
> Project: Drools
> Issue Type: Bug
> Components: executable model
> Reporter: Luca Molteni
> Assignee: Mario Fusco
> Priority: Major
>
> It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
> {code:java}
> @Test
> public void testIfAfterAccumulate() {
> String str =
> "import " + Result.class.getCanonicalName() + ";\n" +
> "import " + Person.class.getCanonicalName() + ";\n" +
> "rule R when\n" +
> " $r : Result()\n" +
> " accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
> " $sum : sum($p.getAge()), \n" +
> " $sum2 : sum(70) \n" +
> " ) \n" +
> " if ($sum2 > 70) do[greater]\n" +
> " String()\n" +
> "then\n" +
> " $r.addValue(\"default\");\n" +
> "then[greater]\n" +
> " $r.addValue(\"greater\");\n" +
> "end";
> KieSession ksession = getKieSession( str );
> Result result = new Result();
> ksession.insert( result );
> ksession.insert( new Person( "Mark", 37 ) );
> ksession.insert( new Person( "Edson", 35 ) );
> ksession.insert( new Person( "Mario", 40 ) );
> ksession.fireAllRules();
> List results = ( List )result.getValue();
> assertEquals(1, results.size());
> assertEquals("greater", results.get(0));
> }}}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 8 months
[JBoss JIRA] (DROOLS-4776) Conditional Consequence after an accumulate with multiple patterns
by Luca Molteni (Jira)
Luca Molteni created DROOLS-4776:
------------------------------------
Summary: Conditional Consequence after an accumulate with multiple patterns
Key: DROOLS-4776
URL: https://issues.jboss.org/browse/DROOLS-4776
Project: Drools
Issue Type: Bug
Components: executable model
Reporter: Luca Molteni
Assignee: Mario Fusco
It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
@Test
public void testIfAfterAccumulate() {
String str =
"import " + Result.class.getCanonicalName() + ";\n" +
"import " + Person.class.getCanonicalName() + ";\n" +
"rule R when\n" +
" $r : Result()\n" +
" accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
" $sum : sum($p.getAge()), \n" +
" $sum2 : sum(70) \n" +
" ) \n" +
" if ($sum2 > 70) do[greater]\n" +
" String()\n" +
"then\n" +
" $r.addValue(\"default\");\n" +
"then[greater]\n" +
" $r.addValue(\"greater\");\n" +
"end";
KieSession ksession = getKieSession( str );
Result result = new Result();
ksession.insert( result );
ksession.insert( new Person( "Mark", 37 ) );
ksession.insert( new Person( "Edson", 35 ) );
ksession.insert( new Person( "Mario", 40 ) );
ksession.fireAllRules();
List results = ( List )result.getValue();
assertEquals(1, results.size());
assertEquals("greater", results.get(0));
}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 8 months
[JBoss JIRA] (DROOLS-4776) Conditional Consequence after an accumulate with multiple patterns
by Luca Molteni (Jira)
[ https://issues.jboss.org/browse/DROOLS-4776?page=com.atlassian.jira.plugi... ]
Luca Molteni updated DROOLS-4776:
---------------------------------
Description:
It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
{{ @Test
public void testIfAfterAccumulate() {
String str =
"import " + Result.class.getCanonicalName() + ";\n" +
"import " + Person.class.getCanonicalName() + ";\n" +
"rule R when\n" +
" $r : Result()\n" +
" accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
" $sum : sum($p.getAge()), \n" +
" $sum2 : sum(70) \n" +
" ) \n" +
" if ($sum2 > 70) do[greater]\n" +
" String()\n" +
"then\n" +
" $r.addValue(\"default\");\n" +
"then[greater]\n" +
" $r.addValue(\"greater\");\n" +
"end";
KieSession ksession = getKieSession( str );
Result result = new Result();
ksession.insert( result );
ksession.insert( new Person( "Mark", 37 ) );
ksession.insert( new Person( "Edson", 35 ) );
ksession.insert( new Person( "Mario", 40 ) );
ksession.fireAllRules();
List results = ( List )result.getValue();
assertEquals(1, results.size());
assertEquals("greater", results.get(0));
}}}
was:
It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
@Test
public void testIfAfterAccumulate() {
String str =
"import " + Result.class.getCanonicalName() + ";\n" +
"import " + Person.class.getCanonicalName() + ";\n" +
"rule R when\n" +
" $r : Result()\n" +
" accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
" $sum : sum($p.getAge()), \n" +
" $sum2 : sum(70) \n" +
" ) \n" +
" if ($sum2 > 70) do[greater]\n" +
" String()\n" +
"then\n" +
" $r.addValue(\"default\");\n" +
"then[greater]\n" +
" $r.addValue(\"greater\");\n" +
"end";
KieSession ksession = getKieSession( str );
Result result = new Result();
ksession.insert( result );
ksession.insert( new Person( "Mark", 37 ) );
ksession.insert( new Person( "Edson", 35 ) );
ksession.insert( new Person( "Mario", 40 ) );
ksession.fireAllRules();
List results = ( List )result.getValue();
assertEquals(1, results.size());
assertEquals("greater", results.get(0));
}
> Conditional Consequence after an accumulate with multiple patterns
> ------------------------------------------------------------------
>
> Key: DROOLS-4776
> URL: https://issues.jboss.org/browse/DROOLS-4776
> Project: Drools
> Issue Type: Bug
> Components: executable model
> Reporter: Luca Molteni
> Assignee: Mario Fusco
> Priority: Major
>
> It's similar to https://issues.jboss.org/browse/DROOLS-4684 but using multiple patterns in the accumulate
> {{ @Test
> public void testIfAfterAccumulate() {
> String str =
> "import " + Result.class.getCanonicalName() + ";\n" +
> "import " + Person.class.getCanonicalName() + ";\n" +
> "rule R when\n" +
> " $r : Result()\n" +
> " accumulate ( $p: Person ( getName().startsWith(\"M\")); \n" +
> " $sum : sum($p.getAge()), \n" +
> " $sum2 : sum(70) \n" +
> " ) \n" +
> " if ($sum2 > 70) do[greater]\n" +
> " String()\n" +
> "then\n" +
> " $r.addValue(\"default\");\n" +
> "then[greater]\n" +
> " $r.addValue(\"greater\");\n" +
> "end";
> KieSession ksession = getKieSession( str );
> Result result = new Result();
> ksession.insert( result );
> ksession.insert( new Person( "Mark", 37 ) );
> ksession.insert( new Person( "Edson", 35 ) );
> ksession.insert( new Person( "Mario", 40 ) );
> ksession.fireAllRules();
> List results = ( List )result.getValue();
> assertEquals(1, results.size());
> assertEquals("greater", results.get(0));
> }}}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 8 months