Hi all,
I figured out how to get it working. This might be interesting to some of
the forum visitors, so I will post the brief solution here.
1. Write your Drools application in java "as usual" (see documentation :-)
2. Export your java code as a runnable jar-file.
3. Using ikvmc from IKVM/bin, convert the .jar to a .dll and (very
important) ignore all warnings!
4. Reference this
dll in your .net code.
5. Make sure System.dll and IKVM.OpenJDK.Core.dll are referenced as well
6. In your .net code, add a section to reference your drools libraries:
System.Environment.SetEnvironmentVariable("CLASSPATH",
".;C:/Users/Frank/Documents/Drools
runtime/drools-api.jar;C:/Users/Frank/Documents/Drools
runtime/drools-core.jar;C:/Users/Frank/Documents/Drools
runtime/drools-compiler.jar");
7. Call the (java-)class and invoke the method
which calls upon the ruleset
to be executed
This way, it should work.
Any remarks to this brief overview are welcome, of course :-)
Regards,
Frank
FrankVhh wrote:
Hi all,
Thanks again for your replies.
I converted drools-compiler.jar to drools-compiler.dll and imported this
into .NET. Problem might be that this compiles with an incredibly long
list of warnings. This might explain the malfunctioning.
There are 2 main questions that I am posing at this point.
1) Is it necessary to convert those jars into dll or is it also possible
to add the jar-files to some kind of path. (I will try to ask this to a
IKVM community)
2) If converting is necessary: Suppose I can remove all warnings by
referencing other jar files during dll-conversion. Will this be enough to
get to rule execution? Because drools-compiler is not the only file that
converts with warnings.
Thanks & regards,
Frank
salaboy wrote:
>
> Are you including drools-compiler as a dependency?
> Greetings!
>
> - CTO @
http://www.plugtree.com
> - MyJourney @
http://salaboy.wordpress.com
> - Co-Founder @
http://www.jbug.com.ar
> - Mauricio "Salaboy" Salatino -
>
> On 02/02/2011, at 05:40, FrankVhh <frank.vanhoenshoven(a)agserv.eu> wrote:
>
>>
>> Hi all,
>>
>> Thanks for your inputs. As you suggested, this week I tried to use IKVM
>> to
>> make Drools and .NET work together.
>>
>> Converting the Java implementation of drools to dll, importing dll into
>> .NET
>> and calling the java functions isn't that hard, once you are a little
>> bit
>> familiar with ikvm. No syntax errors in Visual Studio when I do this.
>>
>> However, there seems to be going something wrong on execution. It
>> appears to
>> me that the execution environment does not recognize the
>> "drools-language".
>>
>> The execution crashes on the first call of Drools code
>> (knowledgebuilderfactory.new KnowledgeBuilder()) with the errors:
>> - IllegalArgumentException : Unable to instantiate service for Class
>> 'org.drools.builder.KnowledgeBuilderFactoryService"
>> - ClassNotFoundException:
>> org.drools.builder.impl.KnowledgeBuilderFactoryServiceImpl
>>
>> This means there are some dependancies missing, right? But should I be
>> looking to add some jars to the IKVM-JVM? Or is this definitely a
>> problem of
>> wrong jar to dll conversion?
>>
>> Corneil, could you tell me whether you ran into dependancy problems as
>> well?
>>
>> fyi I also tried to import the drools library as dll into .NET and then
>> rewrite the entire wrapping code in .NET. This didn't return any syntax
>> errors either, but got stuck in execution as well. (With same errors).
>>
>> Regards,
>> Frank
>>
>>
>> Corneil du Plessis wrote:
>>>
>>> We have successfully used IKVM to create a dlls for our Drools
>>> application.
>>>
>>> The performance was a bit slower on
IKVM/.Net as in Sun Java 5.
>>> We dynamically load a large number of rules and found the largest
>>> impact
>>> is to the 'load time'
>>>
>>> The performance impact was not such that it would make a network call
>>> viable; especially with 1000s of clients.
>>>
>>> Apart from the performance impact the behaviour is exactly the same.
>>>
>>> On 25/01/2011 17:04, FrankVhh wrote:
>>>> Hi all,
>>>>
>>>> Suppose that you have a rule engine that needs to be embedded on the
>>>> machine
>>>> and that there is no way to call the rules as a service from a
>>>> centralized
>>>> server, what approach would one have to choose to make Drools and .NET
>>>> work?
>>>>
>>>> The rulke engine will have to be cached to improve performance, so
>>>> that
>>>> part, until there is an up-to-date version of
Drools.NET, has to be in
>>>> Java
>>>> anyway. Then you expose your JAVA code as a (local) service and let
>>>> .NET
>>>> call it? Or am I seeing things wrong here?
>>>>
>>>> I must stipulate that I am not an expert in .NET at all, and I know
>>>> only
>>>> barely enough Java to get Drools working :-).
>>>>
>>>> Thanks for your help.
>>>>
>>>> Kind regards,
>>>> Frank
>>>>
>>>>
>>>> salaboy wrote:
>>>>> Yes, and if you want to use the rule engine from .NET you can use
the
>>>>> Drools
>>>>> Server that expose the Drools Runtime in REST and SOAP interfaces :)
>>>>> Greetings.
>>>>>
>>>>> 2011/1/19 Michael Anstis<michael.anstis(a)gmail.com>
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I believe the .NET implementation of Drools is somewhat out
dated.
>>>>>>
>>>>>> However Drools ticks all your other requirements.
>>>>>>
>>>>>> With kind regards,
>>>>>>
>>>>>> Mike
>>>>>>
>>>>>> 2011/1/19 Gorantla, Bhaskar (GE
Capital)<bhaskar.gorantla(a)ge.com>
>>>>>>
>>>>>>> We are looking for a rules engine that has the following
>>>>>>> characteristics.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 1. Supports both Java and .net
>>>>>>>
>>>>>>> 2. Provides a business user friendly UI for
creating/editing
>>>>>>> rules
>>>>>>>
>>>>>>> 3. Supports versioning
>>>>>>>
>>>>>>> 4. The rues in the rules repository are accessible to
both
>>>>>>> Java
>>>>>>> and
>>>>>>> .net applications – Nice to have
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Do you know whether Drools supports all the above?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> rules-users mailing list
>>>>>>> rules-users(a)lists.jboss.org
>>>>>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> rules-users mailing list
>>>>>> rules-users(a)lists.jboss.org
>>>>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> - CTO @
http://www.plugtree.com
>>>>> - MyJourney @
http://salaboy.wordpress.com
>>>>> - Co-Founder @
http://www.jbug.com.ar
>>>>>
>>>>> - Salatino "Salaboy" Mauricio -
>>>>>
>>>>> _______________________________________________
>>>>> rules-users mailing list
>>>>> rules-users(a)lists.jboss.org
>>>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>>>
>>>>>
>>>
>>> --
>>>
>>> Corneil du Plessis - Software Architect
>>>
>>> TSC Technologies (Pty) Ltd
>>> (o) +27 11 431 1666
>>> (f) +27 86 674 2962
>>> (c) +27 82 530 9259
>>> Email: corneil(a)tsctech.com <mailto:corneil@tsctech.com>
>>>
www.tsctech.com <
http://www.tsctech.com>
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>>
>>
>> --
>> View this message in context:
>>
http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Java-and-Net-t...
>> Sent from the Drools - User mailing list archive at
Nabble.com.
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>