トップ «前の日記(2005-10-05 [J]) 最新 次の日記(2005-10-07 [J])» 編集

niche diary

2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|04|11|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|
半期 四半期 全カテゴリ
Teeda OLUG Java-Kuche
[HOME] [AGILE] [OBJECT] [PROGRAMMING] [JAVA] [LINUX] [OKINAWA] [BBS] [DIARY]

2005-10-06 [J] [長年日記]

_hikiバージョンアップ

昨日に引き続き作業。

なんかapt-get installでサイズが違っていると怒られるので、apt-get intallに--with-fixほげほげを指定して無理矢理(?)インストール。

無事バージョンアップできました。

_ドメイン更新

そろそろ手続きしておかなくっちゃ。

_オープンソースカンファレンス 2005 Okinawa

http://www.ospn.jp/osc2005-okinawa/

が開催されるそうです。

DIコンテナ作者のひがやすをさんもお話されるそうです。早速参加申し込みしなくては。

_オープンソースカンファレンス 2005 Okinawa

事前登録ってXOOPSのユーザ登録=事前登録って事なのかなぁ?

_[Tech][java]drools

仕事もなく暇なので入門してみました。

1 Minute DRL Tutorialを見ながらこんなファイルを用意。

<?xml version="1.0"?>
<rule-set name="awamori rules"
	xmlns="http://drools.org/rules"
	xmlns:java="http://drools.org/semantics/java"
	xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
	xs:schemaLocation="http://drools.org/rules rules.xsd
		http://drools.org/semantics/java java.xsd">	
	<rule name="T-Doi Likes Awamori">
		<parameter identifier="t_doi">
			<class>study.T_Doi</class>
		</parameter>
		<java:condition>t_doi.isLike() == true</java:condition>
		<java:consequence>
			System.out.println("T-Doi likes Awamori.");
		</java:consequence>
	</rule>
</rule-set>

そしてこんなインターフェイスとクラスを用意。

package study;
public interface AwamoriLiker {
	public boolean isLike();
}
package study;
public class T_Doi implements AwamoriLiker {
	public boolean isLike() {
		return true;
	}
}

で実行用のMainクラスにて実行。

package study;

import java.io.InputStream;

import org.drools.RuleBase;
import org.drools.WorkingMemory;
import org.drools.io.RuleBaseLoader;

public class Main {

	public static void main(String[] args) throws Exception{
		Main main = new Main();
		main.run();
	}
	
	private void run() throws Exception {
		T_Doi t_doi = new T_Doi();
		
		InputStream is = this.getClass().getResourceAsStream("/rules/AwamoriRules.java.drl");
		
		RuleBase ruleBase = RuleBaseLoader.loadFromInputStream(is);
		
		WorkingMemory workingMemory = ruleBase.newWorkingMemory();
		
		workingMemory.assertObject(t_doi);
		
		workingMemory.fireAllRules();	
		
	}

}

んで実行。

T-Doi likes Awamori.

ふむ。そのままですなぁ。チュートリアル通りだから当たり前か。

これだけじゃちょっとつまんないので、インターフェイスだとどうなるか実験。

こんなルールを追加。

	<rule name="AwamoriLiker likes Awamori">
		<parameter identifier="liker">
			<class>study.AwamoriLiker</class>
		</parameter>
		<java:condition>liker.isLike() == true</java:condition>
		<java:consequence>
			System.out.println("liker likes Awamori.");
		</java:consequence>
	</rule>
	
	<rule name="AwamoriLiker hate Awamori">
		<parameter identifier="liker">
			<class>study.AwamoriLiker</class>
		</parameter>
		<java:condition>liker.isLike() == false</java:condition>
		<java:consequence>
			System.out.println("liker hate Awamori.");
		</java:consequence>
	</rule>

でこんなクラスを用意。

package study;

public class Other_Doi implements AwamoriLiker {
	public boolean isLike() {
		return false;
	}
}

メインクラスの処理にこんな処理を追加。

		Other_Doi other_doi = new Other_Doi();
		workingMemory.assertObject(other_doi);
		workingMemory.fireAllRules();

んで実行。

T-Doi likes Awamori.
liker likes Awamori.
liker hate Awamori.

これまた普通に実行完了。まぁルールの記述をインターフェイスにしただけだから当たり前か。

[]

[HOME] [AGILE] [OBJECT] [PROGRAMMING] [JAVA] [LINUX] [OKINAWA] [BBS] [DIARY]