Question

Je suis expérimenté avec OpenRules et Java et je voudrais stocker toutes mes règles dans une seule base de données. Si je comprends la de href="http://openrules.com/docs/man_repositoryDB.html" correctement, je dois avoir un « Main.xls » dans lequel stocker les paramètres d'environnement. Maintenant, la question suivante: est-il un moyen de contourner complètement celui fichier .xls physique? Le meilleur cas serait, si je pouvais simplement appeler quelque chose comme

defineOpenRulesDatabase();    
OpenRulesEngine engine = new OpenRulesEngine("db:myFile.xls");
engine.run();

lorsque la méthode defineOpenRulesDatabase () définit tous les paramètres qui sont définis dans le fichier db.properties mentionné dans la documentation.

Toute idée sur ce sujet?

Était-ce utile?

La solution

Oui. Selon documentation, vous pouvez transmettre une URL qui supporte Java (ie quoi que ce soit pour qui URL.openStream() retournera quelque chose d'utile).

Vous pouvez simplement intégrer le dans votre application Jetty serveur web , créez un servlet qui retourne le fichier, puis appelez OpenRulesEngine() avec l'URL du servlet.

Ou vous pouvez télécharger le fichier à partir du DB et utiliser File.createTempFile() pour créer un fichier temporaire pour mettre en place le moteur de règles.

Ou vous pouvez déposer un bug contre le projet et demander un autre constructeur qui vous permet de passer dans un InputStream.

[EDIT] Je suppose que vous avez déjà vu ce document qui explique comment mettre les règles dans une base de données. D'après ce que je vois, il est impossible de créer le moteur de règle sans un fichier existant Main.xls au moins dans votre classpath.

Mais ce fichier ne doit pas contenir beaucoup:

  

règles / main / Main.xls le fichier principal pour un moteur de règles pour commencer. Il ne contient que la table d'environnement

Vous pouvez simplement mettre un fichier statique dans le classpath et charger toutes les règles de la DB.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top