Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.sample;
- import java.io.FileInputStream;
- import org.kie.api.KieBase;
- import org.kie.api.KieBaseConfiguration;
- import org.kie.api.KieServices;
- import org.kie.api.builder.KieBuilder;
- import org.kie.api.builder.KieFileSystem;
- import org.kie.api.builder.Message;
- import org.kie.api.builder.Results;
- import org.kie.api.cdi.KSession;
- import org.kie.api.runtime.KieContainer;
- import org.kie.api.runtime.KieSession;
- import org.kie.api.runtime.KieSessionConfiguration;
- import org.kie.api.runtime.conf.TimedRuleExectionOption;
- public class RuleTest {
- public static void main(String[] args) {
- try {
- // load up the knowledge base
- KieServices kieServices = KieServices.Factory.get();
- KieFileSystem kfs = kieServices.newKieFileSystem();
- // for each DRL file, referenced by a plain old path name:
- FileInputStream fis = new FileInputStream( "src/main/resources/rules/ImageRule.drl" );
- kfs.write( "src/main/resources/simple.drl",
- kieServices.getResources().newInputStreamResource( fis ) );
- KieBuilder kieBuilder = kieServices.newKieBuilder( kfs ).buildAll();
- Results results = kieBuilder.getResults();
- if( results.hasMessages( Message.Level.ERROR ) ){
- System.out.println( results.getMessages() );
- throw new IllegalStateException( "### errors ###" );
- }
- KieContainer kieContainer =
- kieServices.newKieContainer( kieServices.getRepository().getDefaultReleaseId() );
- KieBaseConfiguration kieBaseConf=kieServices.newKieBaseConfiguration();
- kieBaseConf.setOption(org.kie.api.conf.EqualityBehaviorOption.EQUALITY);
- KieSessionConfiguration ksconf = KieServices.Factory.get().newKieSessionConfiguration();
- ksconf.setOption( TimedRuleExectionOption.YES );
- KieBase kb = kieContainer.newKieBase(kieBaseConf);
- KieSession kieSession = kb.newKieSession(ksconf, null);
- /*Imagen i1 = new Imagen("Succionamela",2,3,5);
- kieSession.insert(i1);
- kieSession.fireAllRules();
- Imagen i2 = new Imagen("Termina la primea y empieza la segunda",2,3,10);
- kieSession.insert(i2);
- kieSession.fireAllRules();*/
- Imagen[] arrIma = new Imagen[3];
- arrIma[0] = new Imagen("Diego",2,3,5);
- arrIma[1] = new Imagen("Me la quiere",2,3,10);
- arrIma[2] = new Imagen("Mamar!!!",2,3,15);
- for(int i = 0; i < arrIma.length; i++){
- kieSession.insert(arrIma[i]);
- kieSession.fireAllRules();
- }
- System.out.println("----------------");
- /* Imagen [] imagenes = new Imagen[3];
- imagenes[0] = i1;
- imagenes[1] = i1;
- imagenes[2] = i1;
- for (int i = 0; i < args.length; i++) {
- new java.util.Timer().schedule(
- new java.util.TimerTask() {
- @Override
- public void run() {
- kieSession.insert(imagenes[i]);
- kieSession.fireAllRules();
- }
- },
- imagenes[i].getDuracion()*1000
- );
- }*/
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
- }
- ------------------------------------------------------------------------------------------------------Drools
- //created on: 3/12/2016
- package com.sample
- import com.sample.Imagen
- import java.util.*
- rule "cargar imagen"
- timer(expr: $d "0s")
- when
- $p : Imagen (activOInactivo == 1, $d: total)
- // this after[0s,10s]
- then
- $p.setActivOInactivo(0);
- update($p);
- System.out.println( $p.getNombreArchivo()+$p.getActivOInactivo());
- end
- /*
- rule "Terminar image"
- when
- $p : Imagen (activOInactivo == 0, $d: delay)
- // this after[0s,10s]
- then
- //$p.setActivOInactivo(0);
- System.out.println( "Termina imagen");
- end
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement