TC ONG [https://community.jboss.org/people/devilkazuya99] created the discussion

"Working with KnowledgeAgent and ChangeSet.xml"

To view the discussion, visit: https://community.jboss.org/message/722692#722692

--------------------------------------------------------------
Seeking for help. 
I have a changeset.xml adding my JavaInteractiveFlow.rf.
I have id="interactiveJava" in JavaInteractiveFlow.rf.
But when I run the code below, it gives me 
     Unknown process ID: interactiveJava

Can anyone show me how to get this works?
Here is my code.


package com.geneoz.procedureengine;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


import org.apache.log4j.Logger;
import org.drools.KnowledgeBase;
import org.drools.agent.KnowledgeAgent;
import org.drools.agent.KnowledgeAgentConfiguration;
import org.drools.agent.KnowledgeAgentFactory;
import org.drools.event.knowledgeagent.AfterChangeSetAppliedEvent;
import org.drools.event.knowledgeagent.AfterChangeSetProcessedEvent;
import org.drools.event.knowledgeagent.AfterResourceProcessedEvent;
import org.drools.event.knowledgeagent.BeforeChangeSetAppliedEvent;
import org.drools.event.knowledgeagent.BeforeChangeSetProcessedEvent;
import org.drools.event.knowledgeagent.BeforeResourceProcessedEvent;
import org.drools.event.knowledgeagent.KnowledgeAgentEventListener;
import org.drools.event.knowledgeagent.KnowledgeBaseUpdatedEvent;
import org.drools.event.knowledgeagent.ResourceCompilationFailedEvent;
import org.drools.io.ResourceChangeScannerConfiguration;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;




public class KnowledgeAgentTest {

          static String CHANGE_SET_URL = " 
http://192.168.10.13/drools/changeset.xml 
http://192.168.10.13/drools/changeset.xml";;
          static String JAVA_INTERACTIVE_URL = " 
http://192.168.10.13/drools/JavaInteractiveFlow.rf 
http://192.168.10.13/drools/JavaInteractiveFlow.rf";;
          static Logger logger = Logger.getLogger(KnowledgeAgentTest.class);

          public static void main(String[] args) {
                    try {

                              KnowledgeAgentConfiguration agentConfig = 
KnowledgeAgentFactory.newKnowledgeAgentConfiguration(); 
                  agentConfig.setProperty("drools.agent.newInstance", "true");
                  agentConfig.setProperty("drools.agent.scanDirectories", 
"false");


                              KnowledgeAgent kagent = 
KnowledgeAgentFactory.newKnowledgeAgent( "MyKnowledgeAgent", agentConfig );

                              KnowledgeAgentEventListener kaListener = new 
KnowledgeAgentEventListener() {

                                        @Override
                                        public void 
resourceCompilationFailed(ResourceCompilationFailedEvent arg0) {
                                                  
logger.debug("resourceCompilationFailed");
                                        }

                                        @Override
                                        public void 
knowledgeBaseUpdated(KnowledgeBaseUpdatedEvent arg0) {
                                                  
logger.debug("knowledgeBaseUpdated");
                                        }

                                        @Override
                                        public void 
beforeResourceProcessed(BeforeResourceProcessedEvent arg0) {
                                                  
logger.debug("beforeResourceProcessed");
                                        }

                                        @Override
                                        public void 
beforeChangeSetProcessed(BeforeChangeSetProcessedEvent arg0) {
                                                  
logger.debug("beforeChangeSetProcessed");
                                        }

                                        @Override
                                        public void 
beforeChangeSetApplied(BeforeChangeSetAppliedEvent arg0) {
                                                  
logger.debug("beforeChangeSetApplied");
                                        }

                                        @Override
                                        public void 
afterResourceProcessed(AfterResourceProcessedEvent arg0) {
                                                  
logger.debug("afterResourceProcessed");
                                        }

                                        @Override
                                        public void 
afterChangeSetProcessed(AfterChangeSetProcessedEvent arg0) {
                                                  
logger.debug("afterChangeSetProcessed");
                                        }

                                        @Override
                                        public void 
afterChangeSetApplied(AfterChangeSetAppliedEvent arg0) {
                                                  
logger.debug("afterChangeSetApplied");
                                        }
                              };

                              kagent.addEventListener(kaListener);

                              kagent.applyChangeSet( 
ResourceFactory.newUrlResource(CHANGE_SET_URL) );

                              kagent.monitorResourceChangeEvents(true); 


                              ResourceChangeScannerConfiguration scannerConfig 
= ResourceFactory
                                                  
.getResourceChangeScannerService()
                                                  
.newResourceChangeScannerConfiguration();
                              
scannerConfig.setProperty("drools.resource.scanner.interval", "2");


                              
ResourceFactory.getResourceChangeScannerService().configure(scannerConfig);
                              
ResourceFactory.getResourceChangeNotifierService().start();
                              
ResourceFactory.getResourceChangeScannerService().start();


                              KnowledgeBase kbase = kagent.getKnowledgeBase();

                              System.out.println(kbase.getClass());
                              logger.debug("Creting new KnowledgeSession");
                              final StatefulKnowledgeSession ksession = 
kbase.newStatefulKnowledgeSession();
                              logger.debug("Executing session.");


                              String input = null;

                              while(!"yes".equals(input)) {
                                        
ksession.startProcess("interactiveJava");

                                        BufferedReader br = new 
BufferedReader(new InputStreamReader(System.in));
                                        try {
                                                  System.out.print("Exit?");
                                                  input = br.readLine();
                                        } catch (IOException e) {
                                                  System.out.println("Error!");
                                        }

                              }

                              logger.debug("Finish execution.");

                    } catch (Exception e) {
                              e.printStackTrace();
                    }
          }
}
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/722692#722692]

Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to