[jsr294-modularity-eg] Nested superpackages

Bryan Atsatt bryan.atsatt at oracle.com
Thu May 31 14:42:09 EDT 2007



Glyn Normington wrote:
> 
> *Andreas Sterbenz <Andreas.Sterbenz at sun.com>* wrote on 31/05/2007 00:57:57:
> 
>  > At JavaOne Glyn and I talked a bit about a few topics, including nested
>  > superpackages. I will try to summarize the conclusions. Glyn, please
>  > correct me if something does not match your recollection.
> 
> Thanks for accurately summarising our discussion for the list.
> 
>  >
>  > Summary: nested superpackages have value, but there is no agreement yet
>  > whether they have enough value to justify their inclusion. We need to
>  > better understand them (and explain them) before making a final decision
>  > about nested superpackages in JSR 294. One way to understand them better
>  > is to try them out in practice. As the extra complexity of implementing
>  > nested superpackages is low, the javac team has agreed to implement them
>  > as part of their JSR 294 work. The initial version of that 
> implementation
>  > is expected to be available sometime this summer.
>  >
>  > I suggest we go ahead with the plan of leaving them in for now and
>  > reexamining the solution in a few months. Please let me know if anyone
>  > disagrees.
> 
> I agree. Let's look to the broader community to provide feedback on 
> whether nested superpackages deliver sufficient value to warrant their 
> inclusion. I'd like to see one or more real life applications (rather 
> than JRE internals) that would benefit from nested superpackages and, 
> ideally, would be willing to do some prototyping and provide early 
> feedback.

+1

[snip]


The biggest issue I have with nested superpackages is the circular 
declarations. While I understand the point of this tight coupling, my 
"maintenance alert" flags are waving like mad.

If we could eliminate the circularity, the complexity factor would be 
greatly reduced, at least for me. Perhaps we could change the nested 
declaration from:

     superpackage example.bar.lib.net member example.bar.lib

to

     member superpackage example.bar.lib.net

or

     private superpackage example.bar.lib.net

Yes, this appears to open the possibility that an unexpected/undesired 
top-level superpackage could gain access. But we could simply disallow 
more than one consumer of member/private superpackages. It isn't 
perfect, but perhaps it is good enough?


The other issue is that it complicates 277, which requires additional 
metadata to piggyback on the .spkg file. If we allow more than one such 
file in a module, 277 must define precedence rules for the metadata 
consumption.

// Bryan


More information about the jsr294-modularity-eg mailing list