Examples of KnowledgeAgent


Examples of org.drools.agent.KnowledgeAgent

        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
        KnowledgeAgentConfiguration conf = KnowledgeAgentFactory.newKnowledgeAgentConfiguration();
        // needs to be newInstance=true, bugzilla 733008 works fine with newInstance=false
        conf.setProperty("drools.agent.newInstance", "true");
        KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent(
                "agent", kbase, conf);

        try {
            ResourceFactory.getResourceChangeNotifierService().start();
            ResourceFactory.getResourceChangeScannerService().start();

            ResourceChangeScannerConfiguration sconf = ResourceFactory
                    .getResourceChangeScannerService()
                    .newResourceChangeScannerConfiguration();
            sconf.setProperty("drools.resource.scanner.interval", "5");
            ResourceFactory.getResourceChangeScannerService().configure(sconf);

            kagent.applyChangeSet(res);
            kbase = kagent.getKnowledgeBase();
            Thread.sleep(1000);
            assertEquals(2, kbase.getKnowledgePackages().iterator().next().getRules().size());
            System.out.println("BUGZILLA 733008 total rules: " + kbase.getKnowledgePackages().iterator().next().getRules().size());
            for (Rule r : kbase.getKnowledgePackages().iterator().next().getRules()) {
                System.out.println(r.getName());
            }

            // Change Guvnor's repo with REST api by deleting asset rule2
            Abdera abdera = new Abdera();
            AbderaClient client = new AbderaClient(abdera);
            client.addCredentials(baseURL.toExternalForm(),
                    null,
                    null,
                    new org.apache.commons.httpclient.UsernamePasswordCredentials("admin",
                            "admin"));
            ClientResponse deleteResponse = client.delete(
                    new URL(baseURL, "rest/packages/scanForChangeInRepository/assets/ruleB2").toExternalForm());
            assertEquals(204, deleteResponse.getStatus());
            ClientResponse binaryResponse = client.get(
                    new URL(baseURL, "rest/packages/scanForChangeInRepository/binary").toExternalForm());
            assertEquals(200, binaryResponse.getStatus());


            // detect the change
            Thread.sleep(6000);
            kbase = kagent.getKnowledgeBase();
            assertEquals(1, kbase.getKnowledgePackages().iterator().next().getRules().size());

        } finally {
            kagent.dispose();
            ResourceFactory.getResourceChangeNotifierService().stop();
            ResourceFactory.getResourceChangeScannerService().stop();
        }
    }
View Full Code Here

Examples of org.drools.agent.KnowledgeAgent

        Resource res = new ClassPathResource("test-process.bpmn");
        ((InternalResource) res).setResourceType(ResourceType.BPMN2);
        //changeSet.setResourcesAdded(Arrays.asList(res));
        //@TODO: for some reason the Classpath resource when is sent to the grid node is loosing the
        // ResourceType, so I need to fix that.
        KnowledgeAgent kAgent = GridHelper.getInstance().getKnowledgeAgentRemoteClient( grid2, remoteN1.getId(), "ksession-rules" );
        kAgent.applyChangeSet(res);


        try {
            ksession.startProcess("Definition");
            System.out.println("Executed! :)");
View Full Code Here

Examples of org.drools.agent.KnowledgeAgent

        Resource changeSetRes = new ByteArrayResource( changeSetString.getBytes() );
        ( (InternalResource) changeSetRes ).setResourceType( ResourceType.CHANGE_SET );
       
       
       
        KnowledgeAgent kAgent = GridHelper.getInstance().getKnowledgeAgentRemoteClient( grid2, remoteN1.getId(), "ksession-rules" );
        kAgent.applyChangeSet( changeSetRes );

        Thread.sleep(5000);

        MyObject obj2 = new MyObject("obj2");
        ksession.insert(obj2);
View Full Code Here

Examples of org.drools.agent.KnowledgeAgent

    final ChangeSet changeSet = drah.getChangeSet();
    final KnowledgeBaseConfiguration kbaseConfig = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(properties, classLoader);
    final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(kbaseConfig);
    final KnowledgeAgentConfiguration kagentConfig = KnowledgeAgentFactory.newKnowledgeAgentConfiguration(properties);
    final KnowledgeBuilderConfiguration kbuilderConfig = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(properties, classLoader);
    final KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent(name, kbase, kagentConfig, kbuilderConfig);
    kagent.setSystemEventListener(new LogAgentEventListener(name));
    kagent.applyChangeSet(changeSet);
    return kagent;
  }
View Full Code Here

Examples of org.drools.agent.KnowledgeAgent

      Properties properties = new Properties();
      properties.setProperty(RuleAgent.URLS, clazz.getResource("/testrules.pkg").toString());
      os = new FileOutputStream(file);
      properties.store(os, clazz.getSimpleName());
      RuleInfo ruleInfo = new RuleInfoBuilder(file.getAbsolutePath()).build();
      KnowledgeAgent ka = helper.createRuleAgent(ruleInfo);
        kpkg = ka.getKnowledgeBase().getKnowledgePackage("org.jboss.internal.soa.esb.rules");

    }
    finally
    {
      try { if (os != null) os.close(); } catch (Throwable t) {}
View Full Code Here

Examples of org.drools.agent.KnowledgeAgent

    }
    catch (final LifecycleResourceException e)
    {
      throw new RuleServiceException("Caught a LifecycleResourceException :", e);
    }
    KnowledgeAgent ruleAgent = ruleAgents.get( ruleAgentProperties );
    if ( ruleAgent == null )
    {
      synchronized (ruleAgents)
      {
        ruleAgent = ruleAgents.get( ruleAgentProperties );
        if (ruleAgent == null)
        {
          ruleAgent = DroolsRuleBaseHelper.getInstance().createRuleAgent( ruleInfo );
          ruleAgents.put( ruleAgentProperties, ruleAgent );
        }
      }
    }

    KnowledgeBase currentRuleBase = ruleAgent.getKnowledgeBase();
    //  always update the cache as the rulebase might have been updated.
    final Map<String, DroolsRuleBaseState> ruleBaseStates;
    try
    {
      ruleBaseStates = getCachedRuleBaseStates() ;
    }
    catch (final LifecycleResourceException e)
    {
      throw new RuleServiceException("Caught a LifecycleResourceException :", e);
    }
    DroolsRuleBaseState ruleBaseState = ruleBaseStates.get(ruleAgentProperties) ;
    if ((ruleBaseState == null) || (ruleBaseState.getRuleBase() != currentRuleBase))
    {
      synchronized(ruleBaseStates)
      {
        ruleBaseState = ruleBaseStates.get(ruleAgentProperties) ;
        currentRuleBase = ruleAgent.getKnowledgeBase();
        if ((ruleBaseState == null) || (ruleBaseState.getRuleBase() != currentRuleBase))
        {
          if (ruleBaseState != null)
          {
            ruleBaseState.dispose() ;
View Full Code Here

Examples of org.drools.agent.KnowledgeAgent

        Writer output = new BufferedWriter( new FileWriter( fxml ) );
        output.write( xml );
        output.close();


        KnowledgeAgent ag = KnowledgeAgentFactory.newKnowledgeAgent("fii", KnowledgeAgentFactory.newKnowledgeAgentConfiguration());
        ag.applyChangeSet( ResourceFactory.newUrlResource( fxml.toURI().toURL() ) );

        KnowledgeBase kb = ag.getKnowledgeBase();
        assertEquals(1, kb.getKnowledgePackages().size());
        KnowledgePackage kp = kb.getKnowledgePackages().iterator().next();
        assertTrue(kb.getKnowledgePackages().size() > 0);
        assertEquals(1, kp.getRules().size());


        //check the HEAD method
        HttpClient client = new HttpClient();
        HeadMethod hm = new HeadMethod("http://localhost:9000/package/testPDSGetPackage/LATEST.drl");
        client.executeMethod(hm);
        Header lastMod = hm.getResponseHeader("lastModified");
        Thread.sleep(50);
        long now = System.currentTimeMillis();
        long before = Long.parseLong(lastMod.getValue());
        assertTrue(before < now);


        //now lets add a rule
        asset = pkg.addAsset("someRule2", "");
        asset.updateContent("when \n SampleFact() \n then \n System.err.println(43);");
        asset.updateFormat(AssetFormats.DRL);
        asset.checkin("");

        assertNull(impl.buildPackage(pkg.getUUID(), true));



        Thread.sleep(3000);


        kb = ag.getKnowledgeBase();
        assertEquals(1, kb.getKnowledgePackages().size());
        kp = kb.getKnowledgePackages().iterator().next();

        if (kp.getRules().size() != 2) {
            Thread.sleep(2000);
            kb = ag.getKnowledgeBase();
            assertEquals(1, kb.getKnowledgePackages().size());
            kp = kb.getKnowledgePackages().iterator().next();
        }

        if (kp.getRules().size() != 2) {
            Thread.sleep(2000);
            kb = ag.getKnowledgeBase();
            assertEquals(1, kb.getKnowledgePackages().size());
            kp = kb.getKnowledgePackages().iterator().next();
        }
       
        assertEquals(2, kp.getRules().size());
View Full Code Here

Examples of org.drools.agent.KnowledgeAgent

                        throw new IllegalStateException( "Expected kSession in node " + sName );
                    }
                }
                String kName = sName + "_kAgent";
                if ( localContext.containsKey( kName ) ) {
                    KnowledgeAgent kAgent = (KnowledgeAgent) localContext.get( kName );
                    kAgent.dispose();
                } else {
//                throw new IllegalStateException( "Expected kAgent in node " + kName );
                }
            }
            localContext.clear();
View Full Code Here

Examples of org.drools.agent.KnowledgeAgent

        ResourceChangeScannerConfiguration config = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
        config.setProperty("drools.resource.scanner.interval", "1");
        ResourceFactory.getResourceChangeScannerService().configure(config);
       
        // create knowledge agent
        KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent("xls agent");
        kagent.applyChangeSet(ResourceFactory.newFileResource(xlsChangeset));
        KnowledgeBase kbase = kagent.getKnowledgeBase();

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

        assertEquals(1, kbase.getKnowledgePackages().size());
    assertEquals(2, kbase.getKnowledgePackages().iterator().next()
        .getRules().size());

    // after some waiting we change number of rules in the file
    Rule hw = pkg.getRule( "Hello World" );
    pkg.removeRule( hw );
        byte[] blob2 = DroolsStreamUtils.streamOut( pkg );
   
    // scanner should notice the change
    Thread.sleep(1500);
        writeBinaryFile( file,
                         blob2 );
        Thread.sleep(1500);
    try {
      kbase = kagent.getKnowledgeBase();
      assertEquals(1, kbase.getKnowledgePackages().size());
      assertEquals(1, kbase.getKnowledgePackages().iterator().next()
          .getRules().size());
    } finally {
      ResourceFactory.getResourceChangeNotifierService().stop();
      ResourceFactory.getResourceChangeScannerService().stop();
      file.delete();
      kagent.dispose();
    }
  }
View Full Code Here

Examples of org.drools.agent.KnowledgeAgent

    // Defining incremental resources to kbase
    KnowledgeAgentConfiguration kaconf = KnowledgeAgentFactory.newKnowledgeAgentConfiguration();
    kaconf.setProperty("drools.agent.newInstance", "false");

    KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent("theAgent", kbase, kaconf);
    System.out.println(changeset.toURI().toURL());
    kagent.applyChangeSet(ResourceFactory.newUrlResource(changeset.toURI().toURL()));
    kagent.addEventListener( new KnowledgeAgentEventListener() {
            public void resourceCompilationFailed(ResourceCompilationFailedEvent event) {
                System.out.println(event);
            }
           
            public void knowledgeBaseUpdated(KnowledgeBaseUpdatedEvent event) {
                System.out.println(event);
            }
           
            public void beforeResourceProcessed(BeforeResourceProcessedEvent event) {
                System.out.println(event);
            }
           
            public void beforeChangeSetProcessed(BeforeChangeSetProcessedEvent event) {
                System.out.println(event);
            }
           
            public void beforeChangeSetApplied(BeforeChangeSetAppliedEvent event) {
                System.out.println(event);
            }
           
            public void afterResourceProcessed(AfterResourceProcessedEvent event) {
                System.out.println(event);
            }
           
            public void afterChangeSetProcessed(AfterChangeSetProcessedEvent event) {
                System.out.println(event);
            }
           
            public void afterChangeSetApplied(AfterChangeSetAppliedEvent event) {
                System.out.println(event);
            }
        } );
    kbase = kagent.getKnowledgeBase();
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.