Github user krichter722 commented on the issue:

    https://github.com/apache/storm/pull/459
  
    > I checked a few of these, and it seems they have already been modified to 
avoid the compile errors.
    
    I seems like `IBolt.prepare`'s `topoConf` has been changed to `Map<String, 
Object>` everywhere which is a good idea (and a better idea than `<?,?>`). Now 
that the interface is improved in puncto type safety, the generic types should 
be used everywhere they're encountered/used anyway, but just not passed down or 
up the hierarchy. This applies to all topology configuration, metadata and 
authentication maps since they're using `<String, Object>` at some point in the 
hierarchy or in a relationship.
    
    I pushed those changes to the generics branch. Since this issue is about 
`IBolt` I can open a new PR, but it's very similar.
    
    I don't seem to be able to figure out the necessary type for 
`IScheduler.config` which is sometimes `Map<String, Object>` and `Map<String, 
Map<String, [Number or Double]>` which is possible in a non-type safe 
environment, but unnecessarily hard to understand. So, I let it untouched.
    
    There're a lot of usages of the idiom
    
        Map<String, Object> someMap;
        Map<String, Object> nestedMap = (Map<String, Object>) 
someMap.get("someLiteral");
    
    which should imo be encapsulated in a configuration class since the map 
should contain nothing more complex than wrappers, maybe a single valued 
collection (list or set), but a map in a map value might cause problems at some 
point (and probably only does not now because of the excellent test coverage). 
Also, `"someLiteral"` is the [magic-number 
anti-pattern](https://en.wikipedia.org/wiki/Magic_number_(programming)#Unnamed_numerical_constants).
    
    > Yes, I'll retracting my -1. Sorry for letting this one languish.
    
    No problem. I'm aware that some of the changes do not introduce improvement 
immediately because Storm serializes and deserializes a lot, but the changes 
allow to discover design flaws and to fail earlier in case of a type mismatch.


---

Reply via email to