[jsr294-modularity-eg] Runtime model
Glyn Normington
glyn_normington at uk.ibm.com
Fri Jun 29 07:37:46 EDT 2007
Bryan Atsatt <bryan.atsatt at oracle.com> wrote on 28/06/2007 11:28:30 PM:
>
>
> Glyn Normington wrote:
> >
> > *Andreas Sterbenz <Andreas.Sterbenz at sun.com>* wrote on 14/06/2007
> > 06:35:48 PM:
> >
> > > Glyn Normington wrote:
> > > >
> > > > Further to my comments below, I'd like us to explore why loading
a
> > > > legacy class into a superpackage would be deemed to be changing,
> > rather
> > > > than compatibly extending, its semantics?
> > >
> > > Sure. I think we should start by examining the use cases. Some of
the
> > > questions in my mind are:
> > >
> > > When is it is necessary to dynamically draft legacy classes into
the
> > > superpackage?
> >
> > To allow applications to support multiple versions of Java and exploit
> > superpackages on Java 7. We should remember that at least in the first
> > few years of Java 7, the world will be mainly at Java 5 or 6 and
> > application writers won't want to restrict their market to a fraction
of
> > the total.
> >
> > If we don't support this use case, then the only applications that
will
> > exploit superpackages are those which are being written from scratch
or
> > rewritten specifically for Java 7. This will be a small minority of
> > applications until the world is mainly at Java 7 in, perhaps, a decade
> > or so.
> >
> > >
> > > Why are approaches that expose classes that are a member of a
> > superpackage
> > > and legacy classes as one "component" (module, bundle, etc.) not
> > > sufficient? They can coexist just fine.
> >
> > Agreed, but this would delay the uptake of superpackages.
> >
> > >
> > > Another approach is static class file rewriting. When is that not
> > sufficient?
> >
> > Whether this use case is supported by re-defining the semantics of
> > existing compiled code or automatically re-writing the classes is a
> > detail we can work out if we agree we should support the use case. I
> > agree class rewriting is probably sufficient, but I'm not sure the
> > significant extra complexity is necessary.
>
>
> If by "static" here you mean at development time, then yes, this may be
> a reasonable solution: create a tool to take legacy classes and inject a
> superpackage name. This implies upgrading the class file version,
> doesn't it? If so, that may be more complex. Obviously it is easy to add
> an appropriate .spkg file to a jar or a module.
>
> The use case I have in mind is the module developer who must bundle
> "legacy" binaries, but would like to limit external access to those
> classes. Since the module system relies on superpackages to impose
> access control, it will be impossible to support any export policy other
> than "all" without a mechanism to bind legacy classes into a
superpackage.
>
> While I think development time class rewriting is likely a decent
> solution, it would be unreasonably complex/expensive if deferred to
> runtime. Does anyone have a use case for binding legacy classes to a
> superpackage at runtime?
Yes - the one above! ;^) If we only support the development time class
rewriting solution, then in that scenario, I suspect an application
developer would probably choose not to bother with superpackages rather
than have to build, ship, and maintain a separate version of the
application specifically for Java 7 and beyond.
I'd estimate this would defer the widespread adoption of superpackages by
7-10 years. (This may seem pessimistic, but I think the majority of
application developers are only just becoming comfortable hard pre-req'ing
Java 5 and the generics JSR was at roughly the stage JSR 294 is at now
about 7 years ago. Plus I'd expect the rate of migration to new releases
to slow down rather than speed up in the future.)
Glyn
>
> // Bryan
>
> >
> > Glyn
> >
> > >
> > > Andreas.
> > >
> > > _______________________________________________
> > > jsr294-modularity-eg mailing list
> > > jsr294-modularity-eg at cs.oswego.edu
> > > http://cs.oswego.edu/mailman/listinfo/jsr294-modularity-eg
> >
> >
> >
> >
------------------------------------------------------------------------
> >
> > /
> > /
> >
> > /Unless stated otherwise above:
> > IBM United Kingdom Limited - Registered in England and Wales with
number
> > 741598.
> > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU/
> >
> >
> >
> >
> >
> >
> >
> >
------------------------------------------------------------------------
> >
> > _______________________________________________
> > jsr294-modularity-eg mailing list
> > jsr294-modularity-eg at cs.oswego.edu
> > http://cs.oswego.edu/mailman/listinfo/jsr294-modularity-eg
> _______________________________________________
> jsr294-modularity-eg mailing list
> jsr294-modularity-eg at cs.oswego.edu
> http://cs.oswego.edu/mailman/listinfo/jsr294-modularity-eg
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
-------------- next part --------------
An HTML attachment was scrubbed...
URL: /pipermail/attachments/20070629/5d46c8e7/attachment.html
More information about the jsr294-modularity-eg
mailing list