Hi Simo and everyone else, I finally got around to updating the patch to contain comments explaining what the suppressed unchecked annotations are doing. The patch attached to CHAIN-61, now has thsse additions. Now, chain *should* compile without warnings.
Thanks and sorry about the wait, -Elijah On Thu, Oct 6, 2011 at 9:53 AM, Elijah Zupancic <eli...@zupancic.name>wrote: > I've created a new bug: https://issues.apache.org/jira/browse/CHAIN-61 for > dealing with compiler warnings. I want to have chain build cleanly before I > work on the Context signature. I have just attached a patch for the compiler > warnings. I have annotated with @SuppressWarnings and @Deprecated where > appropriate. > > Thanks, > -Elijah > > > On Tue, Sep 20, 2011 at 1:22 AM, Simone Tripodi > <simonetrip...@apache.org>wrote: > >> Hi Elijah, >> by default Maven doesn't show warnings, you have to modify the pom.xml >> in that way: >> >> {code} >> <plugin> >> <groupId>org.apache.maven.plugins</groupId> >> <artifactId>maven-compiler-plugin</artifactId> >> <version>2.1</version> >> <configuration> >> <source>${maven.compile.source}</source> >> <target>${maven.compile.target}</target> >> <compilerArgument>-Xlint:all</compilerArgument> >> <showWarnings>true</showWarnings> >> </configuration> >> </plugin> >> {code} >> >> If you try to run {{mvn clean compile}} to vanilla [chain] code, you >> can already notice some warnings: >> >> $ mvn --version >> Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100) >> Maven home: /Applications/apache-maven-3.0.3 >> Java version: 1.5.0_30, vendor: Apple Inc. >> Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home >> Default locale: en_US, platform encoding: MacRoman >> OS name: "mac os x", version: "10.7.1", arch: "i386", family: "unix" >> >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> >> $ mvn clean compile >> >> [INFO] Compiling 63 source files to >> /Users/simonetripodi/Documents/workspace/commons-chain/target/classes >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/impl/ContextBase.java:[633,46] >> [unchecked] unchecked conversion >> found : java.util.Map.Entry >> required: java.util.Map.Entry<java.lang.String,java.lang.Object> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/impl/ContextBase.java:[652,76] >> [unchecked] unchecked cast >> found : java.lang.Object >> required: java.util.Map.Entry<java.lang.String,java.lang.Object> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/impl/ContextBase.java:[779,48] >> [unchecked] unchecked conversion >> found : java.util.Map.Entry >> required: java.util.Map.Entry<java.lang.String,java.lang.Object> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[133,58] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.Object> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[133,11] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.Object> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[145,60] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.String> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[145,11] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.String> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[157,66] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.String[]> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[157,11] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.String[]> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[169,60] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.String> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[169,11] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.String> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[181,63] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.String> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[181,11] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.String> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[193,69] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.String[]> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[193,11] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.String[]> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[207,64] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.Object> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[220,24] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,javax.servlet.http.Cookie> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[219,70] >> [unchecked] unchecked method invocation: >> <K,V>checkedMap(java.util.Map<K,V>,java.lang.Class<K>,java.lang.Class<V>) >> in java.util.Collections is applied to >> >> (java.util.Map,java.lang.Class<java.lang.String>,java.lang.Class<javax.servlet.http.Cookie>) >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[219,70] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,javax.servlet.http.Cookie> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[229,30] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,javax.servlet.http.Cookie> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[241,54] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.Object> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[241,11] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.Object> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[253,54] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.Object> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/faces/FacesWebContext.java:[253,11] >> [unchecked] unchecked conversion >> found : java.util.Map >> required: java.util.Map<java.lang.String,java.lang.Object> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/servlet/RequestParameterMapper.java:[76,16] >> [dep-ann] deprecated name isnt annotated with @Deprecated >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/servlet/RequestParameterMapper.java:[92,18] >> [dep-ann] deprecated name isnt annotated with @Deprecated >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/ChainListener.java:[304,17] >> [dep-ann] deprecated name isnt annotated with @Deprecated >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/config/ConfigParser.java:[159,16] >> [dep-ann] deprecated name isnt annotated with @Deprecated >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/ChainResources.java:[105,16] >> [dep-ann] deprecated name isnt annotated with @Deprecated >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/ChainResources.java:[191,16] >> [dep-ann] deprecated name isnt annotated with @Deprecated >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/config/ConfigRegisterRule.java:[101,55] >> [unchecked] unchecked conversion >> found : org.apache.commons.chain.Command >> required: org.apache.commons.chain.Command<C> >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/config/ConfigRegisterRule.java:[101,43] >> [unchecked] unchecked method invocation: >> <C>addCommand(java.lang.String,org.apache.commons.chain.Command<C>) in >> org.apache.commons.chain.Catalog is applied to >> (java.lang.String,org.apache.commons.chain.Command) >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/config/ConfigRegisterRule.java:[104,37] >> [unchecked] unchecked call to >> addCommand(org.apache.commons.chain.Command<C>) as a member of the raw >> type org.apache.commons.chain.Chain >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/servlet/ServletPathMapper.java:[61,18] >> [dep-ann] deprecated name isnt annotated with @Deprecated >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/servlet/ServletPathMapper.java:[77,16] >> [dep-ann] deprecated name isnt annotated with @Deprecated >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/servlet/PathInfoMapper.java:[61,18] >> [dep-ann] deprecated name isnt annotated with @Deprecated >> >> [WARNING] >> /Users/simonetripodi/Documents/workspace/commons-chain/src/main/java/org/apache/commons/chain/web/servlet/PathInfoMapper.java:[77,16] >> [dep-ann] deprecated name isnt annotated with @Deprecated >> >> HTH, have a nice day!!! >> All the best, >> Simo >> >> http://people.apache.org/~simonetripodi/ >> http://www.99soft.org/ >> >> >> >> On Mon, Sep 19, 2011 at 11:56 PM, Elijah Zupancic <eli...@zupancic.name> >> wrote: >> > Hi Simo, >> > >> > Funny, I don't believe think that compiler complained at all. I will >> double >> > check soon and try some other compilers and let you know soon. >> > >> > Thanks, >> > -Elijah >> > >> > On Mon, Sep 19, 2011 at 8:12 AM, Simone Tripodi < >> simonetrip...@apache.org>wrote: >> > >> >> Hi Elijah, >> >> I had e deeper look at your patch and raw more carefully your message, >> >> I just have a BIG trouble: when changing the Context interface to >> >> >> >> public interface Context<K, V> extends Map<K, V> { >> >> >> >> } >> >> >> >> you can easily note that, in Command interface (just to mention one) >> >> compiler complains: >> >> >> >> "Context is a raw type. References to generic type Context<K, V> >> >> should be parametrized" >> >> >> >> and we can not just ignore it... that's why I thought that adopting >> >> the signature Command<K, V, C extends Context<K, V>> in the command >> >> interface is not nice but needed. >> >> More thoughts? >> >> Simo >> >> >> >> http://people.apache.org/~simonetripodi/ >> >> http://www.99soft.org/ >> >> >> >> >> >> >> >> On Mon, Sep 19, 2011 at 10:01 AM, Simone Tripodi >> >> <simonetrip...@apache.org> wrote: >> >> > Hi Elijah! >> >> > great report, thanks for your effort! :) >> >> > I'll have a look at your patch as soon as I get a spare time slot, >> >> > I'll let you know ASAP! >> >> > Have a nice day, all the best! >> >> > Simo >> >> > >> >> > http://people.apache.org/~simonetripodi/ >> >> > http://www.99soft.org/ >> >> > >> >> > >> >> > >> >> > On Mon, Sep 19, 2011 at 3:52 AM, Elijah Zupancic < >> eli...@zupancic.name> >> >> wrote: >> >> >> I just submitted a patch to jira as CHAIN-58. This changes Context >> to >> >> >> Context<K,V>. >> >> >> >> >> >> Thanks, >> >> >> -Elijah >> >> >> >> >> >> On Fri, Sep 16, 2011 at 2:16 PM, Simone Tripodi < >> >> simonetrip...@apache.org>wrote: >> >> >> >> >> >>> Hi Paul! >> >> >>> yes it can be done, of course :) I'm not convinced anyway by the >> heavy >> >> >>> notation that, modifying the Context, would impact the Command and >> >> >>> Filter classes. I think it is because just a matter of taste :P >> >> >>> Feedbacks/suggestions/patches are welcome, if you want to provide a >> >> >>> solution feel free to fill an issue and attach a patch!! >> >> >>> TIA, all the best! >> >> >>> Simo >> >> >>> >> >> >>> http://people.apache.org/~simonetripodi/ >> >> >>> http://www.99soft.org/ >> >> >>> >> >> >>> >> >> >>> >> >> >>> On Fri, Sep 16, 2011 at 11:05 PM, Paul Benedict < >> pbened...@apache.org> >> >> >>> wrote: >> >> >>> > The basic context should be Context<K, V> and then use interface >> >> >>> > composition to define other things like: >> >> >>> > >> >> >>> > public interface PropertyContext extends Context<String, Object>, >> >> >>> > Map<String, Object> >> >> >>> > >> >> >>> > It can be done... I think :-) >> >> >>> > >> >> >>> > Paul >> >> >>> > >> >> >>> > On Fri, Sep 16, 2011 at 3:40 PM, Simone Tripodi >> >> >>> > <simonetrip...@apache.org> wrote: >> >> >>> >> Hi Elijah, >> >> >>> >> I spent some spare time trying to figure out how to improve the >> >> >>> >> Context design, I didn't have a lot of success anyway :( >> >> >>> >> >> >> >>> >> * dropping the Map inheritance makes not easy maintaining the >> >> classes >> >> >>> >> in the 'generic' package; >> >> >>> >> * adding generics in the Context to specify K,V types, makes >> all >> >> the >> >> >>> >> rest of the notation not so nice (IMHO), take a look as a sample >> a >> >> >>> >> Command<K, V, C extends Context<K, V>> :? >> >> >>> >> >> >> >>> >> Do you have more ideas? >> >> >>> >> Many thanks in advance, all the best! >> >> >>> >> Simo >> >> >>> >> >> >> >>> >> http://people.apache.org/~simonetripodi/ >> >> >>> >> http://www.99soft.org/ >> >> >>> >> >> >> >>> >> >> >> >>> >> >> >> >>> >> On Wed, Sep 14, 2011 at 4:12 AM, Elijah Zupancic < >> >> eli...@zupancic.name> >> >> >>> wrote: >> >> >>> >>> Hi Everyone, >> >> >>> >>> >> >> >>> >>> I don't have any votes as I'm not a commiter, but I would still >> >> like to >> >> >>> add >> >> >>> >>> in my suggestion. >> >> >>> >>> >> >> >>> >>> After our previous exchange, I'm of the mind that we should use >> the >> >> >>> second >> >> >>> >>> option - that is be collection agnostic and work by >> composition. I >> >> may >> >> >>> be >> >> >>> >>> biased towards defined getters and setters, but I really like >> to be >> >> >>> able to >> >> >>> >>> use auto-complete, automatic code refactoring tools and static >> code >> >> >>> analysis >> >> >>> >>> tools. If we used only a Map, then the contract for a context >> >> becomes a >> >> >>> >>> black box of anything. I like the way it is now where you have >> to >> >> >>> implement >> >> >>> >>> a Map on your context or extend ContextBase. I may be biased >> out of >> >> >>> habit - >> >> >>> >>> if so, please convince me (by proxy everyone else). >> >> >>> >>> >> >> >>> >>> Thanks, >> >> >>> >>> -Elijah >> >> >>> >>> >> >> >>> >>> On Mon, Sep 12, 2011 at 12:04 AM, Simone Tripodi >> >> >>> >>> <simonetrip...@apache.org>wrote: >> >> >>> >>> >> >> >>> >>>> Hi all guys, >> >> >>> >>>> after mails and mails of discussions, I don't think there is a >> >> general >> >> >>> >>>> agreement on how Context API should look alike. >> >> >>> >>>> At the end of the discussions I figured out that, briefly >> >> resuming, we >> >> >>> >>>> have following proposals: >> >> >>> >>>> >> >> >>> >>>> * be replaced by Map; >> >> >>> >>>> * be Collection agnostic and work by composition. >> >> >>> >>>> >> >> >>> >>>> Please add what is missing and correct what is wrong; we need >> to >> >> find >> >> >>> >>>> a general agreement before to continue working toward the 2.0 >> >> release >> >> >>> >>>> :) >> >> >>> >>>> >> >> >>> >>>> TIA, all the best!!! >> >> >>> >>>> Simo >> >> >>> >>>> >> >> >>> >>>> http://people.apache.org/~simonetripodi/ >> >> >>> >>>> http://www.99soft.org/ >> >> >>> >>>> >> >> >>> >>>> >> >> --------------------------------------------------------------------- >> >> >>> >>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> >> >>> >>>> For additional commands, e-mail: dev-h...@commons.apache.org >> >> >>> >>>> >> >> >>> >>>> >> >> >>> >>> >> >> >>> >> >> >> >>> >> >> >> --------------------------------------------------------------------- >> >> >>> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> >> >>> >> For additional commands, e-mail: dev-h...@commons.apache.org >> >> >>> >> >> >> >>> >> >> >> >>> > >> >> >>> > >> --------------------------------------------------------------------- >> >> >>> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> >> >>> > For additional commands, e-mail: dev-h...@commons.apache.org >> >> >>> > >> >> >>> > >> >> >>> >> >> >>> >> --------------------------------------------------------------------- >> >> >>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> >> >>> For additional commands, e-mail: dev-h...@commons.apache.org >> >> >>> >> >> >>> >> >> >> >> >> > >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> >> For additional commands, e-mail: dev-h...@commons.apache.org >> >> >> >> >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> For additional commands, e-mail: dev-h...@commons.apache.org >> >> >