Skip to content

Commit

Permalink
change configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
rbmonster committed Apr 19, 2021
1 parent be6c9a5 commit d286add
Show file tree
Hide file tree
Showing 7 changed files with 140 additions and 1 deletion.
20 changes: 20 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,17 @@
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-bom</artifactId>
<type>pom</type>
<version>7.46.0.Final</version>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
Expand Down Expand Up @@ -202,6 +213,15 @@
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>


Expand Down
File renamed without changes.
100 changes: 100 additions & 0 deletions src/main/java/com/other/ruleengine/HelloWorld.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
package com.other.ruleengine;

import org.kie.api.KieServices;
import org.kie.api.event.rule.DebugAgendaEventListener;
import org.kie.api.event.rule.DebugRuleRuntimeEventListener;
import org.kie.api.logger.KieRuntimeLogger;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;

import java.util.ArrayList;
import java.util.List;

public class HelloWorld {

public static final void main(final String[] args) {
// From the kie services, a container is created from the classpath
KieServices ks = KieServices.get();

KieContainer kc = ks.getKieClasspathContainer();

execute( ks, kc );
}

public static void execute( KieServices ks, KieContainer kc ) {
// From the container, a session is created based on
// its definition and configuration in the META-INF/kmodule.xml file
KieSession ksession = kc.newKieSession("HelloWorldKS");

// Once the session is created, the application can interact with it
// In this case it is setting a global as defined in the
// org/drools/examples/helloworld/HelloWorld.drl file
ksession.setGlobal( "list", new ArrayList<Object>() );

// The application can also setup listeners
ksession.addEventListener( new DebugAgendaEventListener() );
ksession.addEventListener( new DebugRuleRuntimeEventListener() );

// Set up a file based audit logger
KieRuntimeLogger logger = ks.getLoggers().newFileLogger( ksession, "./helloworld" );

// To set up a ThreadedFileLogger, so that the audit view reflects events whilst debugging,
// uncomment the next line
// KieRuntimeLogger logger = ks.getLoggers().newThreadedFileLogger( ksession, "./helloworld", 1000 );

// The application can insert facts into the session
final Message message = new Message();
message.setMessage( "Hello World" );
message.setStatus( Message.HELLO );
ksession.insert( message );

// and fire the rules
ksession.fireAllRules();

// Close logger
logger.close();

// and then dispose the session
ksession.dispose();
}

public static class Message {
public static final int HELLO = 0;
public static final int GOODBYE = 1;

private String message;

private int status;

public Message() {

}

public String getMessage() {
return this.message;
}

public void setMessage(final String message) {
this.message = message;
}

public int getStatus() {
return this.status;
}

public void setStatus(final int status) {
this.status = status;
}

public static Message doSomething(Message message) {
return message;
}

public boolean isSomething(String msg,
List<Object> list) {
list.add( this );
return this.message.equals( msg );
}
}

}
7 changes: 7 additions & 0 deletions src/main/resources/META-INF/kmodule.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://www.drools.org/xsd/kmodule">
<kbase name="rules">
<ksession name="HelloWorldKS"/>
</kbase>

</kmodule>
2 changes: 1 addition & 1 deletion src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ spring:
minIdle: 1
initialSize: 1
poolPreparedStatements: true
url: jdbc:mysql://121.5.73.118:3306/tms?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true
url: jdbc:mysql://58.87.106.44:3306/tms?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true
type: com.alibaba.druid.pool.DruidDataSource
validationQuery: select 1
maxOpenPreparedStatements: 300
Expand Down
12 changes: 12 additions & 0 deletions src/main/resources/drools/HelloWorld.drl
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import com.other.ruleengine.HelloWorld

dialect "mvel"

rule "Hello World"
when
m : Message( status == Message.HELLO, message : message )
then
System.out.println( message );
modify ( m ) { message = "Goodbye cruel world",
status = Message.GOODBYE };
end

0 comments on commit d286add

Please sign in to comment.