Why doesn't jarjar strip out unused static methods? I believe 
Proguard does.

Gili

Stuart McCulloch wrote:
> Hi,
>
> I think I've tracked down why jarjar isn't shrinking the collections 
> library by much,
> it's related to the static methods that simplify the creation of 
> generic collections.
>
> For example, from the injector implementation:
>
>   multimap = Multimaps.newArrayListMultimap();
>
> Unfortunately, Multimaps (and similar classes like Maps, Sets, etc.) 
> have a lot
> of static methods that touch classes throughout the collection - so 
> once you've
> pulled in Multimaps you end up pulling in almost the complete library.
>
> In fact, even a simple class like:
>
>   public class main {
>     com.google.common.collect.Multimaps m;
>   }
>
> will end up as a 431k jarfile when jarjar'd with Google Collections!
>
> Not sure how this could be resolved - technically you do need these 
> classes as
> they're referenced from the same classfile (although not all the 
> static methods
> will be called).
>
> The only solution would be to change back to creating generic 
> collections using
> "new XYZ<...>" instead of the static approach "Foo.newXYZ()" as then 
> jarjar can
> safely remove the unused classes, but this would affect readability...
>
> Any thoughts?
>
> -- 
> Cheers, Stuart
>
> >

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to