Advertisement
Guest User

Untitled

a guest
Dec 5th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. package com.sample;
  2.  
  3.  
  4. import java.io.FileInputStream;
  5.  
  6. import org.kie.api.KieBase;
  7. import org.kie.api.KieBaseConfiguration;
  8. import org.kie.api.KieServices;
  9. import org.kie.api.builder.KieBuilder;
  10. import org.kie.api.builder.KieFileSystem;
  11. import org.kie.api.builder.Message;
  12. import org.kie.api.builder.Results;
  13. import org.kie.api.cdi.KSession;
  14. import org.kie.api.runtime.KieContainer;
  15. import org.kie.api.runtime.KieSession;
  16. import org.kie.api.runtime.KieSessionConfiguration;
  17. import org.kie.api.runtime.conf.TimedRuleExectionOption;
  18. public class RuleTest {
  19.  
  20. public static void main(String[] args) {
  21. try {
  22. // load up the knowledge base
  23. KieServices kieServices = KieServices.Factory.get();
  24. KieFileSystem kfs = kieServices.newKieFileSystem();
  25.  
  26. // for each DRL file, referenced by a plain old path name:
  27. FileInputStream fis = new FileInputStream( "src/main/resources/rules/ImageRule.drl" );
  28. kfs.write( "src/main/resources/simple.drl",
  29. kieServices.getResources().newInputStreamResource( fis ) );
  30. KieBuilder kieBuilder = kieServices.newKieBuilder( kfs ).buildAll();
  31. Results results = kieBuilder.getResults();
  32. if( results.hasMessages( Message.Level.ERROR ) ){
  33. System.out.println( results.getMessages() );
  34. throw new IllegalStateException( "### errors ###" );
  35. }
  36.  
  37. KieContainer kieContainer =
  38. kieServices.newKieContainer( kieServices.getRepository().getDefaultReleaseId() );
  39.  
  40. KieBaseConfiguration kieBaseConf=kieServices.newKieBaseConfiguration();
  41. kieBaseConf.setOption(org.kie.api.conf.EqualityBehaviorOption.EQUALITY);
  42. KieSessionConfiguration ksconf = KieServices.Factory.get().newKieSessionConfiguration();
  43. ksconf.setOption( TimedRuleExectionOption.YES );
  44. KieBase kb = kieContainer.newKieBase(kieBaseConf);
  45. KieSession kieSession = kb.newKieSession(ksconf, null);
  46.  
  47.  
  48. /*Imagen i1 = new Imagen("Succionamela",2,3,5);
  49. kieSession.insert(i1);
  50. kieSession.fireAllRules();
  51.  
  52. Imagen i2 = new Imagen("Termina la primea y empieza la segunda",2,3,10);
  53. kieSession.insert(i2);
  54. kieSession.fireAllRules();*/
  55.  
  56. Imagen[] arrIma = new Imagen[3];
  57. arrIma[0] = new Imagen("Diego",2,3,5);
  58. arrIma[1] = new Imagen("Me la quiere",2,3,10);
  59. arrIma[2] = new Imagen("Mamar!!!",2,3,15);
  60.  
  61. for(int i = 0; i < arrIma.length; i++){
  62. kieSession.insert(arrIma[i]);
  63. kieSession.fireAllRules();
  64.  
  65.  
  66. }
  67.  
  68.  
  69. System.out.println("----------------");
  70.  
  71.  
  72. /* Imagen [] imagenes = new Imagen[3];
  73. imagenes[0] = i1;
  74. imagenes[1] = i1;
  75. imagenes[2] = i1;
  76.  
  77. for (int i = 0; i < args.length; i++) {
  78. new java.util.Timer().schedule(
  79. new java.util.TimerTask() {
  80. @Override
  81. public void run() {
  82. kieSession.insert(imagenes[i]);
  83. kieSession.fireAllRules();
  84.  
  85. }
  86. },
  87. imagenes[i].getDuracion()*1000
  88. );
  89.  
  90. }*/
  91. } catch (Throwable t) {
  92. t.printStackTrace();
  93. }
  94.  
  95. }
  96.  
  97. }
  98.  
  99.  
  100. ------------------------------------------------------------------------------------------------------Drools
  101.  
  102. //created on: 3/12/2016
  103. package com.sample
  104.  
  105. import com.sample.Imagen
  106. import java.util.*
  107.  
  108.  
  109.  
  110. rule "cargar imagen"
  111. timer(expr: $d "0s")
  112. when
  113.  
  114. $p : Imagen (activOInactivo == 1, $d: total)
  115.  
  116.  
  117. // this after[0s,10s]
  118.  
  119. then
  120. $p.setActivOInactivo(0);
  121. update($p);
  122. System.out.println( $p.getNombreArchivo()+$p.getActivOInactivo());
  123.  
  124.  
  125. end
  126.  
  127. /*
  128. rule "Terminar image"
  129.  
  130.  
  131.  
  132. when
  133.  
  134. $p : Imagen (activOInactivo == 0, $d: delay)
  135.  
  136.  
  137. // this after[0s,10s]
  138.  
  139. then
  140. //$p.setActivOInactivo(0);
  141. System.out.println( "Termina imagen");
  142. end
  143. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement