Guest User

Untitled

a guest
Nov 2nd, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.28 KB | None | 0 0
  1. package com.sample;
  2.  
  3. import com.sample.Tuplebean;
  4. import com.sample.DroolsBolt;
  5.  
  6. dialect "mvel"
  7.  
  8. rule "SafetyAlert-Critical"
  9. when
  10. t:Tuplebean(t.getSmoke() == true && t.getSmoke_density() == true && t.getTemperature() > 25.0)
  11. then
  12. DroolsBolt.insertToAlertLog("alert generated");
  13. end
  14.  
  15. public void generateDrrols(String macAddress) throws SQLException, ClassNotFoundException, IOException{
  16. logger.error("++++Generate drools file started++++");
  17. Class.forName("org.postgresql.Driver");
  18. Connection conn = DriverManager.getConnection("jdbc:postgresql://10.0.0.5:5432/iotdb",
  19. "postgres", "track@123");
  20.  
  21. //String sql="SELECT alert_playload FROM iot.alert_configuration WHERE drools_boolean=true and alert_configuration_id=94 && 95";
  22. String sql = ""
  23. + "select drools_condtion , iot.alert_configuration.alert_status , iot.alert_configuration.websocket_key , device_id , iot.alert_configuration.device_configuration_id , "
  24. + "email , iot.alert_configuration.mac_address , phone , sensor_id , iot.alert_configuration.sensor_configuration_id , alert_configuration_id , site_id , "
  25. + "startdatetime , enddatetime , exludedays , timetoexclude , log_update_time ,iot.sensor_configuration.sensor_name "
  26. + "from iot.alert_configuration "
  27. + "join iot.sensor_configuration on iot.sensor_configuration.sensor_configuration_id=iot.alert_configuration.sensor_configuration_id "
  28. + "where iot.alert_configuration.mac_address=? and soft_delete_flag=false";
  29.  
  30. PreparedStatement prepareStatement = conn.prepareStatement(sql);
  31. prepareStatement.setString(1, macAddress);
  32. ResultSet rs = prepareStatement.executeQuery();
  33. //ResultSet rs = sta.executeQuery(sql);
  34.  
  35. final ResultSetGenerator converter = new ResultSetGenerator();
  36. InputStream in = getClass().getResourceAsStream("/alert.drt");
  37. final String drl = converter.compile(rs, in);
  38. System.out.println(drl);
  39. rs.close();
  40. KnowledgeBuilder kbuilder =
  41. KnowledgeBuilderFactory.newKnowledgeBuilder();
  42. kbuilder.add(ResourceFactory.newByteArrayResource(drl.getBytes()),
  43. ResourceType.DRL);
  44. KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
  45. kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
  46. StatefulKnowledgeSession kSession =
  47. kbase.newStatefulKnowledgeSession();
  48. logger.error("++++Reading rule file ie., rule.drl started++++");
  49.  
  50. logger.error("++++Making drool table status false++++");
  51. String sql2="update iot.drool_rules set drool_rules=? where mac_address=?";
  52. PreparedStatement prepareStatement2 = conn.prepareStatement(sql2);
  53. prepareStatement2.setString(1, drl.toString());
  54. prepareStatement2.setString(2, macAddress);
  55. boolean execute2 = prepareStatement2.execute();
  56. String sql1="update iot.alert_configuration set storm_drool_status=false where mac_address=?";
  57. //Statement createStatement = conn.createStatement();
  58. PreparedStatement prepareStatement3 = conn.prepareStatement(sql1);
  59. prepareStatement3.setString(1, macAddress);
  60. boolean execute = prepareStatement3.execute();
  61.  
  62. }
  63.  
  64. KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
  65. try{
  66. String sql="select drool_rules from iot.drool_rules where mac_address=?";
  67. PreparedStatement prepareStatement = connectPostgres.prepareStatement(hql);
  68. prepareStatement.setString(1, topicId);
  69. ResultSet executeQuery1 = prepareStatement.executeQuery();
  70. String rules=null;
  71. while(executeQuery1.next()){
  72. rules=executeQuery1.getString(1);
  73. }
  74. String i=null;
  75. String replace = rules.replace('"', '"');
  76. System.out.println(replace);
  77. Reader reader=(Reader)new StringReader(replace);
  78. Resource myResource = ResourceFactory.newReaderResource(reader);
  79. kbuilder.add(myResource, ResourceType.DRL);
  80. }
  81. catch(Exception e)
  82. {
  83. e.printStackTrace();
  84. }
  85. KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
  86. kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
  87. ksession = kbase.newStatefulKnowledgeSession();
Add Comment
Please, Sign In to add comment