Collections 3.x Plans:

It has been suggested that Collections is becoming too large for a single jar. Current trunk 'mvn package' gives me a jar of around 500K. Is this "too big" for a Commons library? Does anyone have experience with Java ME? Would , which is perhaps a little weighty for a runtime dependency, assuming we consider environments in which memory is at a premium, e.g. Jave ME, a priority. Does anyone have an opinion on whether this is an acceptable size for a Commons jar in a non-memory-constrained environment? On whether Commons libraries are necessary in

At [http://commons.markmail.org/message/cbpcpcqfoiwv2qz5?q=] Stephen suggested he'd like a discussion of whether Collections could be packaged in multiple jars so that consumers might have the option of restricting the number of classes they need to have available at runtime. It would be nice to resolve the issue in the 3.x development line, pushing any adjustments to the generics-enabled version that is now under development as well. Current trunk 'mvn package' gives me a jar of around 500K. Is this "too big" for a Commons library? Does anyone have experience with Java ME? Would small [collections-xxx] jars benefit that space? Is there any other application/environment "demographic" that would obviously benefit from small jars? Bundled desktop applications?

If indeed we determine we should subset Collections, does anyone have experience with a workable strategy? At [http://ant-contrib.sourceforge.net/tasks/tasks/verifydesign.html] is the documentation for an Ant task that would allow us to make assertions about inter-package dependencies, and could be invokable from Ant, M1, and M2, if I'm not mistaken. Is there an easier way?

An obvious strategy for subsetting would be to create collections-[bag|bidimap|buffer|collection?|comparator|functor|iterator|list|map(+keyvalue)|set]. Is this too many? One obvious problem is that oac.collections contains interfaces on which the subpackages depend, but also contains *Utils classes which depend upon the implementations in the subpackages. How to resolve this?

  • No labels