harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Ellison <t.p.elli...@gmail.com>
Subject Re: [general] Reduced footprint class library
Date Thu, 18 Sep 2008 15:31:52 GMT
Chris Gray wrote:
> On Thursday 18 September 2008 15:10, Tim Ellison wrote:
>> In another thread [1], Chris wrote:
>>> Should we start a separate thread with a more obvious title?
>> Done, tweak the subject as you see fit.
> Ta.
>>> [...]
>>> In fact JavaME CDC/FP doesn't include java.nio, [...]
>> True, as you are adhering to the ME specs.  But if you are prepared to
>> branch out and define an alternative reduced footprint library profile
>> you might also choose to include NIO functionality, and 1.5 syntax
>> support, etc.
>> You may have some insights based on the "Mika class libraries with
>> packages taken from Harmony" use cases you have already seen.
> Java.nio is something of an Awful Example in this context, because it contains 
> such disparate elements. One application might really need the charset stuff 
> but have no use whatever for the java.net-revisited parts, another might be 
> i/o intensive and need direct buffering and select()-style functionality 
> above all. IOW the granularity of the footprint reduction process will 
> probably not map neatly onto package boundaries.

Right.  In fact, as you know Harmony has NIO (for IO channels) and
NIO_CHAR (for character converters).  We went through an exercise way
back to split the monolith into different functional areas, and defined
the metadata to describe the inter-dependencies.  While we try to
minimize the coupling some of it is forced upon us by the SE APIs.

> In actual use cases the most popular single import seems to be java.beans 
> (which does actually correspond to a Sun-defined profile, namely CDC/PP). The 
> biggest import was in order to run Ant on the target for purposes of 
> auto-deployment - not a route I would recommend, but that was the customer's 
> choice.

A good example.  Harmony's BEANS module depends upon AWT through a
spurious public interface parameter (and the fact that BEANS carries
around the persistence delegates).  For people that don't want AWT and
SWING in their runtime they need to break the SE API in Beans.

In general you can't mix and match, but have to surgically carve through
the class libraries.

> See also my response to Alex Blewitt regarding char converters and locales.



>> [1] http://markmail.org/message/x3ydeos244pqpcws
> Regrads,
> Chris

View raw message