Yes, that's what I intended, modulo the open issue of whether this
new specification process can be used to create specifications that
are not included in Jakarta EE.
Richard Monson-Haefel wrote on 05/ 7/18
07:56 AM:
If I understand this correctly the breakdown
would be as follows:
- A Specification is a collection of packages
possibly arranged in modules. A specification must integrate
with the “Full” platform but can optionally be used
independent of Jakarta EE.
- The “Full” profile or platform includes all
the Jakarta EE specifications. It can be implemented and
certified by a vendor but its not required. A vendor can
choose to implement a standardized sub-set, called a Profile,
of the “Full” platform.
- A Profile is a subset of the “Full” platform
standardized in a profile specification. A Profile contains a
subset of the specifications included in the “Full” profile.
- Any deployment of the “Full” platform or a
Profile can be deployed by developers in Modules so that if a
developers wants to only deploy a portion of the “Full”
platform or Profile they can do so.
First, thanks to
David for trying to pull me into the discussion. Sadly,
it was too early in the morning for me to have the
lightning-fast reflexes needed to unmute and interrupt the
discussion before someone else jumped in. But that's ok
because many of you made the same points I would've made.
Next, it wasn't clear to me whether this was formally done
so I'd like to nominate Mike as the chairperson for this
group and the leader of these meetings. Eclipse needs to
own and manage the process we're defining so Mike seems
like the right person to lead this group.
I'm still trying to understand whether we're defining a
process to replace the JCP, or whether we're defining a
process that can and will only be used to define the
Jakarta EE platform. If the former, most of the
discussion about profiles belongs elsewhere. And we would
need to allow for the possibility that a new spec would be
defined but not included in the Jakarta EE
platform. Think of the Portlet and related specs in the
JCP; would we want to allow for another ecosystem of specs
perhaps related to but not part of Jakarta EE? Expanding
the platform to include every spec ever defined means the
platform will grow without bound, placing a significant
burden on vendors that ship full platform
implementations. Making every new thing optional means
they're not really part of the platform because
applications can't depend on them.
Diving into the profile issue a bit, let me provide some
background on the Web Profile and my opinion on what we
should do going forward...
The Web Profile was primarily a response to the complaints
we heard from developers that Java EE is too big and
heavyweight. (I've never fully understood why Java SE
isn't also too big and heavyweight given that it's much
larger than Java EE, but so be it.) The Web Profile
allowed Java EE to compete more directly with "roll your
own" solutions based on (e.g.) Tomcat.
Secondarily, the Web Profile allowed additional vendors to
enter the Java EE ecosystem by lowering the barriers to
entry. Given the consolidation we were seeing in the Java
EE vendor space it seemed important to enable new vendors
to enter this space, thus encouraging competition in this
space.
This all made sense in the Java EE 6 timeframe. Since
then, my thinking has evolved. With the introduction,
finally, of a module system in Java SE, it makes more
sense to me to address the complaints of Java EE / Jakarta
EE being "heavyweight" by dividing the platform into
modules and allowing users to choose the modules they need
for their application. A vendor would be required to
provide the complete set of modules defined by a platform,
but a user of the vendor's product would consider the
product more of a box of "Lego" bricks from which many
different runtimes could be assembled. Several others
said the same thing in the meeting and in the separate
jakarta.ee-community thread.
Profiles define what vendors must provide and thus what
things the brand can be associated with. If there's a
different profile for the different collection of things
each vendor wants to provide, then you've destroyed any
value in the platform. Three profiles is probably fine,
five profiles seems like an extreme upper limit. And I
don't think profiles need to be concentric circles. It
was clear in the discussion that there's no agreement on
what a "core" profile would be so I wouldn't even consider
that. Again, profiles are more for vendors than for
developers so we need to be clear what additional vendors
are being enabled by the definition of additional
profiles.
Profiles should be defined by a separate spec. Defining
them in the platform spec means you have to update the
platform spec to define a new profile. That results in
gratuitous updates to the platform (and corresponding RI
and TCK) or the inability to define a profile based on
existing component specs. And while it might not be a
requirement, it seems perfectly reasonable for there to be
a profile TCK that tests the interactions between specs.
Finally, I agree that the intent should be to define a
collection of specs that integrate to form a coherent
platform. Still, there's value in being able to use many
of the specs independently. There doesn't need to be a
name for each interesting collection of specs. If the
implementations of the specs all come from a single
vendor's Jakarta EE product, then you know that you're
still writing a Jakarta EE application even if you only
use a few of the specs. You can choose just the specs you
need, adding or subtracting based on your application
requirements. If the implementations of the specs come
from multiple vendors and you're assembling them yourself,
that's fine, but that's not Jakarta EE and there doesn't
have to be a name for the collection you assembled. And
it's up to you to make sure they work together.
Looking forward to a pointer to Mike's document so I can
provide more direct feedback on it...
_______________________________________________
jakarta.ee-spec.committee mailing list
jakarta.ee-spec.committee@xxxxxxxxxxx
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jakarta.ee-spec.committee
--
_______________________________________________
jakarta.ee-spec.committee mailing list
jakarta.ee-spec.committee@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jakarta.ee-spec.committee
|