Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- spring jpa
- SVN
- java tip
- spring transaction
- MySQL
- CEP
- querydsl
- COC
- jquery serialize
- guvnor
- zabbix
- jquery
- gwt-ext
- GEventEvaluator
- @SqlResultSetMapping
- bootstrap jquery datepicker
- jenkins
- spring security
- maven
- drools
- gwt
- custom filter
- JBoss Seam
- ibatis
- Drools Fusion
- Spring
- rember me
- Hudson
- JPA
- jstl
Archives
- Today
- Total
봉 블로그
Drools 6.3 - (1) Eclipse 개발환경 구성하기 본문
우선 아래 이미지는 6.* 버전의 새로운 Drools project layout 이다. 눈에 띄는 특징은 src/main/resources/META-INF/kmodule.xml 파일을 통해 룰 파일들을 관리하고 각종 runtime properties 를 설정한다는것이다.
Install Eclipse Plugin (Drools and jBPM plugin)
아래 update site 를 이용해 을 설치한다. (Eclipse Kepler JEE SR2 기준)
update site : http://download.jboss.org/drools/release/6.3.0.Final/org.drools.updatesite/
Create Eclipse Project
플러그인에서 제공하는 Drools Project 를 생성해도 되지만, 아래와 같 dependencies로 Maven Project 를 생성해도 된다.
org.drools drools-compiler 6.3.0.Final org.jbpm jbpm-bpmn2 6.3.0.Final org.drools drools-decisiontables 6.3.0.Final
sample code 는 아래와 같다.
src/main/resources/META-INF/kmodule.xml
src/main/resources/rules/Sample.drl
package com.sample import com.bong.DroolsTest.Message; rule "Hello World" when m : Message( status == Message.HELLO, myMessage : message ) then System.out.println( myMessage ); m.setMessage( "Goodbye cruel world" ); m.setStatus( Message.GOODBYE ); update( m ); end rule "GoodBye" when Message( status == Message.GOODBYE, myMessage : message ) then System.out.println( myMessage ); endsrc/main/java/com/sample/DroolsTest.java
import org.kie.api.KieServices; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; /** * This is a sample class to launch a rule. */ public class DroolsTest { public static final void main(String[] args) { try { // load up the knowledge base KieServices ks = KieServices.Factory.get(); KieContainer kContainer = ks.getKieClasspathContainer(); KieSession kSession = kContainer.newKieSession("ksession-rules"); // go ! Message message = new Message(); message.setMessage("Hello World"); message.setStatus(Message.HELLO); kSession.insert(message); kSession.fireAllRules(); } catch (Throwable t) { t.printStackTrace(); } } public static class Message { public static final int HELLO = 0; public static final int GOODBYE = 1; private String message; private int status; public String getMessage() { return this.message; } public void setMessage(String message) { this.message = message; } public int getStatus() { return this.status; } public void setStatus(int status) { this.status = status; } } }
DroolsTest.java 를 실행하면 Drools engine 이 kmodule.xml 파일을 통해 Sample.drl 파일을 자동 컴파일하여 실행한다.