Drools-Guvnor mit MySQL-Backend


Quelle : http://drools.herod.net/

Nach ein paar munteren Stunden des Rum-, Aus- und Durch-Probierens hab ich nun mein Ergebnis ein wenig aufbereitet. Drools ist ein Business-Rules-Management-System und Guvnor ein von JBoss entwickeltes System, um die Drools-Regeln und sämtliches Know-How um die Regelwerke zu verwalten. Momentan ist der Milestone2 der 5.2.0er Version downloadbar, aber da hakt es noch ein bisschen und einen Milestone sollte man sowieso nicht produktiv einsetzen, deshalb hab ich mir von der Jboss-Website das 5.1.1er WAR gezogen und in einen frischen 6.0.32er Tomcat deployd. %TOMCAT_HOME%\bin\startup.bat startet dann auch den Catalina, das WAR wird entpackt und defaultmäßig kann man dann über http://localhost:8080/guvnor die Start-Seite von des JBRMS erreichen. Die 5.1.1er Version hat ein simples Login-Fenster, und zu Testzwecken kann man sowohl username, also auch password leer lassen und hat dann Zugriff auf das Portal. Ein Blick unter die Haube zeigt, dass das Guvnor-Portal, bestehend aus einer GWT-Anwendung, über das Jackrabbit-JCR (Java Content Repository) auf ein Datenbank-Backend zugreift. Out-of-the-Box ist das eine Derby-Datenbank, die unschönerweise direkt im bin-Verzeichnis des Tomcat erstellt wird. Zusätzlich wird noch eine repository.xml erstellt, die die Default-Konfiguration für die Derby enthält.
Zwei Sachen stören mich gewaltig daran: Zum einen Derby, was zu Testzwecken ok, aber unter Last nicht wirklich brauchbar ist. Hier wird MySQL den Platz des DBMS übernehmen. Die zweite Sache ist die Lage des Jave Content Repositories im Binary-Verzeichnis des Application-Servers. Das muss woanders hin 🙂
Also eines nach dem anderen: Die Lage des JCR zu ändern ist schnell über die %TOMCAT_HOME%\webapps\guvnor\WEB-INF\components.xml gemacht. Hier muss die „repositoryConfiguration“ angepasst werden:

    
		d:\GuvnorRepo
    

Achtung, beim 5.2er Release ändert sich hier der Property-Name. Zumindest verursachte das Stirnrunzeln beim M2.
Der nächste Schritt ist die Anbindung von MySQL. Hierfür wird die die vorhandene repository.xml mit der Derby-Konfiguration angepasst:



	


	
		
		
		
		
		
		
	

	
		
		
	

	

	    
		
			
			
			
			
			
			
		
		
			
			
			
			
			
			
		
		
			
			
			
			
		
	

	
		
			
			
			
			
			
			
		
		
			
			
			
			
			
			
			
		
	
	
	
		
		
		
		
	


Die neue an MySQL angepasste repository.xml muss jetzt in das angelegte Repo-Home kopiert werden. Die Derby-Leichen müssen restlos gelöscht werden und die Datenbank im DBMS muss auch noch mit dem entsprechenden User erstellt werden. Ein anschließender Neustart des Tomcat legt die Verzeichnisse „repository“ und „workspace“ im Repo-Home entstehen (beim Start mit der Derby gab es noch das Verzeichnis „version“, welches die dateisystem-basierte Derby-DB enthielt) und die MySQL-Datenbank füllt sich mit Leben…
… außerdem bietet es sich an, den mysql-jdbc-connector, den man von der MySQL-Seite beziehen kann, auch im WEB-INF von Guvnor abzulegen!

Next-Step: Oracle! Kann ja jetzt auch nicht soooo schwer sein 😀