Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.sample;
- import com.sample.Tuplebean;
- import com.sample.DroolsBolt;
- dialect "mvel"
- rule "SafetyAlert-Critical"
- when
- t:Tuplebean(t.getSmoke() == true && t.getSmoke_density() == true && t.getTemperature() > 25.0)
- then
- DroolsBolt.insertToAlertLog("alert generated");
- end
- public void generateDrrols(String macAddress) throws SQLException, ClassNotFoundException, IOException{
- logger.error("++++Generate drools file started++++");
- Class.forName("org.postgresql.Driver");
- Connection conn = DriverManager.getConnection("jdbc:postgresql://10.0.0.5:5432/iotdb",
- "postgres", "track@123");
- //String sql="SELECT alert_playload FROM iot.alert_configuration WHERE drools_boolean=true and alert_configuration_id=94 && 95";
- String sql = ""
- + "select drools_condtion , iot.alert_configuration.alert_status , iot.alert_configuration.websocket_key , device_id , iot.alert_configuration.device_configuration_id , "
- + "email , iot.alert_configuration.mac_address , phone , sensor_id , iot.alert_configuration.sensor_configuration_id , alert_configuration_id , site_id , "
- + "startdatetime , enddatetime , exludedays , timetoexclude , log_update_time ,iot.sensor_configuration.sensor_name "
- + "from iot.alert_configuration "
- + "join iot.sensor_configuration on iot.sensor_configuration.sensor_configuration_id=iot.alert_configuration.sensor_configuration_id "
- + "where iot.alert_configuration.mac_address=? and soft_delete_flag=false";
- PreparedStatement prepareStatement = conn.prepareStatement(sql);
- prepareStatement.setString(1, macAddress);
- ResultSet rs = prepareStatement.executeQuery();
- //ResultSet rs = sta.executeQuery(sql);
- final ResultSetGenerator converter = new ResultSetGenerator();
- InputStream in = getClass().getResourceAsStream("/alert.drt");
- final String drl = converter.compile(rs, in);
- System.out.println(drl);
- rs.close();
- KnowledgeBuilder kbuilder =
- KnowledgeBuilderFactory.newKnowledgeBuilder();
- kbuilder.add(ResourceFactory.newByteArrayResource(drl.getBytes()),
- ResourceType.DRL);
- KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
- kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
- StatefulKnowledgeSession kSession =
- kbase.newStatefulKnowledgeSession();
- logger.error("++++Reading rule file ie., rule.drl started++++");
- logger.error("++++Making drool table status false++++");
- String sql2="update iot.drool_rules set drool_rules=? where mac_address=?";
- PreparedStatement prepareStatement2 = conn.prepareStatement(sql2);
- prepareStatement2.setString(1, drl.toString());
- prepareStatement2.setString(2, macAddress);
- boolean execute2 = prepareStatement2.execute();
- String sql1="update iot.alert_configuration set storm_drool_status=false where mac_address=?";
- //Statement createStatement = conn.createStatement();
- PreparedStatement prepareStatement3 = conn.prepareStatement(sql1);
- prepareStatement3.setString(1, macAddress);
- boolean execute = prepareStatement3.execute();
- }
- KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
- try{
- String sql="select drool_rules from iot.drool_rules where mac_address=?";
- PreparedStatement prepareStatement = connectPostgres.prepareStatement(hql);
- prepareStatement.setString(1, topicId);
- ResultSet executeQuery1 = prepareStatement.executeQuery();
- String rules=null;
- while(executeQuery1.next()){
- rules=executeQuery1.getString(1);
- }
- String i=null;
- String replace = rules.replace('"', '"');
- System.out.println(replace);
- Reader reader=(Reader)new StringReader(replace);
- Resource myResource = ResourceFactory.newReaderResource(reader);
- kbuilder.add(myResource, ResourceType.DRL);
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
- kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
- ksession = kbase.newStatefulKnowledgeSession();
Add Comment
Please, Sign In to add comment