Hi Jean-Philippe, To pickup new updates, then you should use KieScanner (part of kie-ci project) which allows you to do incremental build if a new kjar has been published/released. Here is an example : https://github.com/droolsjbpm/drools/blob/master/kie-ci/src/test/java/org/kie/scanner/KieScannerIncrementalCompilationTest.java
Regards, On Tue, May 27, 2014 at 7:38 PM, Steinmetz, Jean-Philippe < jpsteinm...@theworkshop.us.com> wrote: > Hi Charles, > > Thanks for your reference. I had tried using kie-spring but was unable to > use it as it currently does not support creating sessions from a release id > and container. I did this in order to be able to pick up on updates to the > kjar from maven while the application is running the same way it used to > work in Drools 5. Has anyone else with similar needs to mine gotten > persistence working? > > Jean-Philippe > > > On Thu, May 22, 2014 at 11:23 PM, Charles Moulliard <ch0...@gmail.com>wrote: > >> Hi Jean Philippe, >> >> I have recently created a project to persist bpmn process using Spring & >> JPA / Hibernate. This config is working using kie-spring >> >> >> https://github.com/cmoulliard/droolsjbpm-osgi-examples/blob/master/spring-jbpm-persistence/src/main/resources/META-INF/spring/context.xml >> >> Regards, >> >> Charles >> >> >> On Thu, May 22, 2014 at 8:00 PM, Steinmetz, Jean-Philippe < >> jpsteinm...@theworkshop.us.com> wrote: >> >>> Hello All, >>> >>> I am trying to set up persistence for a standalone Drools (6.0.1.Final) >>> application that uses JPA, Hibernate (4.3.5.Final) and Bitronix (2.1.4) via >>> Spring (4.0.3.RELEASE). >>> >>> On the persistence side everything appears to be set up correctly. For >>> my Drools session I use a KieContainer to create a new stateful session >>> using an environment set up with the EntityManagerFactory and >>> TransactionManager set. The problem that I am experiencing however is that >>> nothing is getting persisted to the database. I have poured over the docs >>> at least two dozen times and searched the net for anything related. >>> >>> Here is what my Spring context file looks like when creating the Drools >>> session... >>> >>> <bean id="kReleaseId" factory-bean="kieServices" >>> factory-method="newReleaseId"> >>> <constructor-arg index="0" value="groupId"/> >>> <constructor-arg index="1" value="artifactId"/> >>> <constructor-arg index="2" value="1.0-SNAPSHOT"/> >>> </bean> >>> <bean id="kContainer" factory-bean="kieServices" >>> factory-method="newKieContainer"> >>> <constructor-arg index="0" ref="kReleaseId"/> >>> </bean> >>> <bean id="kEnvironment" factory-bean="kieServices" >>> factory-method="newEnvironment"> >>> <constructor-arg index="0"> >>> <map> >>> <entry> >>> <key><util:constant >>> static-field="org.kie.api.runtime.EnvironmentName.ENTITY_MANAGER_FACTORY"/></key> >>> <ref bean="entityManagerFactory"/> >>> </entry> >>> <entry> >>> <key><util:constant >>> static-field="org.kie.api.runtime.EnvironmentName.TRANSACTION_MANAGER"/></key> >>> <ref bean="jtaTransactionManager"/> >>> </entry> >>> </map> >>> </constructor-arg> >>> </bean> >>> <bean id="kSession" factory-bean="kContainer" >>> factory-method="newKieSession"> >>> <constructor-arg index="0" ref="kEnvironment"/> >>> </bean> >>> >>> Since the application is standalone I execute fireAllRules on the >>> session at a regular interval (I use this instead of fireUntilHalt as it >>> dramatically reduces the CPU load on the machine). With each call I wrap it >>> in a transaction. Thus, the code looks as follows: >>> >>> while (!Thread.currentThread().isInterrupted()) { >>> // Start a new transaction >>> UserTransaction utx = utx = (UserTransaction)new >>> InitialContext().lookup("java:comp/UserTransaction"); >>> utx.begin(); >>> >>> // Tick the session >>> kSession.fireAllRules(); >>> >>> // Close the transaction >>> utx.commit(); >>> >>> // Sleep so that other applications can use the CPU >>> try { >>> Thread.sleep(1); >>> } catch (InterruptedException e) { >>> // When our sleep is interrupted it's because the >>> executor wants us to shut down. >>> Thread.currentThread().interrupt(); >>> } >>> } >>> >>> When I inspect kSession in the debugger I can see the environment is >>> properly set. I have tried digging down into the execute a bit but can't >>> find any point at which the TransactionManager or EntityManagerFactory are >>> used. As I said above I know Hibernate is set up correctly as well as >>> Bitronix. I can see them working just fine in the logs and they definitely >>> are hitting the database (and create tables for sessioninfo and >>> workingmemory as they should). I just get nothing actually in the database >>> stored, ever. >>> >>> Any help here is appreciated. It seems like it should work but it just >>> doesn't. >>> >>> Thanks in advance, >>> >>> Jean-Philippe Steinmetz >>> >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >> >> >> >> -- >> Charles Moulliard >> Apache Committer / Architect @RedHat >> Twitter : @cmoulliard | Blog : http://cmoulliard.github.io >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -- Charles Moulliard Apache Committer / Architect @RedHat Twitter : @cmoulliard | Blog : http://cmoulliard.github.io
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users