Github user ptgoetz commented on a diff in the pull request:

    https://github.com/apache/incubator-metron/pull/2#discussion_r47845155
  
    --- Diff: 
opensoc-streaming/OpenSOC-Alerts/src/main/java/com/opensoc/alerts/adapters/AllAlertAdapter.java
 ---
    @@ -23,64 +21,96 @@
     import org.apache.hadoop.hbase.client.Scan;
     import org.apache.hadoop.hbase.util.Bytes;
     import org.json.simple.JSONObject;
    -import org.slf4j.Logger;
    -import org.slf4j.LoggerFactory;
    -
    +import org.apache.log4j.Logger;
     import com.google.common.cache.Cache;
     import com.google.common.cache.CacheBuilder;
     import com.opensoc.alerts.interfaces.AlertsAdapter;
     
    +@SuppressWarnings("serial")
     public class AllAlertAdapter implements AlertsAdapter, Serializable {
     
    +   HTableInterface blacklist_table;
        HTableInterface whitelist_table;
        InetAddressValidator ipvalidator = new InetAddressValidator();
        String _whitelist_table_name;
    -   // String _blacklist_table_name;
    +   String _blacklist_table_name;
        String _quorum;
        String _port;
        String _topologyname;
        Configuration conf = null;
     
    -   protected  Cache<String, String> cache;
    -
    -   Map<String, String> id_list = new HashMap<String, String>();
    +   Cache<String, String> cache;
    +   String _topology_name;
     
        Set<String> loaded_whitelist = new HashSet<String>();
        Set<String> loaded_blacklist = new HashSet<String>();
     
    -   String _topology_name;
    -
    -   protected static final Logger LOG = LoggerFactory
    +   protected static final Logger LOG = Logger
                        .getLogger(AllAlertAdapter.class);
     
    -   public AllAlertAdapter(String whitelist_table_name,
    -                   String blacklist_table_name, String quorum, String port,
    -                   int _MAX_TIME_RETAIN, int _MAX_CACHE_SIZE) {
    -
    -           _whitelist_table_name = whitelist_table_name;
    -
    -           _quorum = quorum;
    -           _port = port;
    -
    -           cache = CacheBuilder.newBuilder().maximumSize(_MAX_CACHE_SIZE)
    -                           .expireAfterWrite(_MAX_TIME_RETAIN, 
TimeUnit.MINUTES).build();
    +   public AllAlertAdapter(Map<String, String> config) {
    +           try {
    +                   if(!config.containsKey("whitelist_table_name"))
    +                           throw new Exception("Whitelist table name is 
missing");
    +                           
    +                   _whitelist_table_name = 
config.get("whitelist_table_name");
    +                   
    +                   if(!config.containsKey("blacklist_table_name"))
    +                           throw new Exception("Blacklist table name is 
missing");
    +                   
    +                   _blacklist_table_name = 
config.get("blacklist_table_name");
    +                   
    +                   if(!config.containsKey("quorum"))
    +                           throw new Exception("Quorum name is missing");
    +                   
    +                   _quorum = config.get("quorum");
    +                   
    +                   if(!config.containsKey("port"))
    +                           throw new Exception("port name is missing");
    +                   
    +                   _port = config.get("port");
     
    +                   if(!config.containsKey("_MAX_CACHE_SIZE_OBJECTS_NUM"))
    +                           throw new 
Exception("_MAX_CACHE_SIZE_OBJECTS_NUM name is missing");
    +                   
    +                   int _MAX_CACHE_SIZE_OBJECTS_NUM = 
Integer.parseInt(config
    +                                   .get("_MAX_CACHE_SIZE_OBJECTS_NUM"));
    +                   
    +                   if(!config.containsKey("_MAX_TIME_RETAIN_MINUTES"))
    +                           throw new Exception("_MAX_TIME_RETAIN_MINUTES 
name is missing");
    +                   
    +                   int _MAX_TIME_RETAIN_MINUTES = Integer.parseInt(config
    +                                   .get("_MAX_TIME_RETAIN_MINUTES"));
     
    +                   cache = 
CacheBuilder.newBuilder().maximumSize(_MAX_CACHE_SIZE_OBJECTS_NUM)
    +                                   
.expireAfterWrite(_MAX_TIME_RETAIN_MINUTES, TimeUnit.MINUTES)
    +                                   .build();
    +           } catch (Exception e) {
    +                   System.out.println("Could not initialize Alerts 
Adapter");
    +                   e.printStackTrace();
    +                   System.exit(0);
    --- End diff --
    
    An alternative approach that the idiomatic storm way of doing things, is to 
throw a RuntimeException, which will cause (currently) the worker JVM to exit.
    
    This could be important in the future as storm will likely switch to a 
model where uncaught  the RuntimeExceptions only cause the specific task to be 
restarted, not the entire worker JVM.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to