This thread has developed in multiple directions, but if I could
sum things up from my POV:
- We need to define "some" profiles for certification and
portability purposes.
- A vendor may claim compliance to one or more profiles
- Specs should have stand alone TCKs so they can be tested
separately and profiles could have additional tests that test
profiles as collections of APIs (platform tests).
- Profiles don't necessarily have to inherit from each other,
but they could.
- Within a profile a vendor may package a newer version of a
prescribed spec, if it's compatible.
- Within a profile a vendor may provide additional APIs.
- Within a profile a vendor may let the user add additional
APIs.
- A vendor should have the freedom to offer the user the option
of reducing/optimizing the runtime that implements a particular
profile (which may be also enhanced by the vendor or the user
with additional APIs), for example, by removing API
implementations not in use by a particular app, or creating a
runtime specific for a particular app and link externally to the
deployment or bundle everything together in a fat jar, or
perform any packaging optimization that can improve consumption
in a containerized/cloud environment (e.g. bundle the app, the
runtime and a customized version of the jvm to form an
executable).
- A vendor could offer the user the ability to create their own
custom profiles by starting from scratch, in which case the
resulting configuration is not considered "certified".
Obviously the idea is that profiles provide to the users
different minimum baselines they can enhance and use to build
their apps in a portable fashion, while giving enough space to
Jakarta EE implementors to compete and innovate on features and
performance/deployment optimizations.
As to what the exact profiles should be, if we believe that
backwards compatibility is important, we should provide the
existing
- Java EE Full profile, (Jakarta EE Full Legacy?)
- Java EE Web profile, (Jakarta EE Web, still relevant)
Then for new apps we should be probably looking at new/modern:
- Jakarta EE All, with non needed legacy APIs removed and new
ones (possibly) added
- Jakarta EE Micro, geared towards microservices
- Jakarta EE Minimal, whatever we consider minimal
Again, profiles could inherit from each other, but I don't see
that as a requirement, while the proposed names are just
indicative.
Cheers
/Dimitris
Engineering Director
Red Hat JBoss EAP/WildFly
On 05/05/2018 08:04, reza_rahman wrote:
That approach too is very impressive,
and I think it could work even for a server model (vs fat jar
model).
Sent via the
Samsung Galaxy S7, an AT&T 4G LTE smartphone
-------- Original message --------
Date: 5/5/18 10:53 AM (GMT-05:00)
Subject: Re: [jakarta.ee-community] A Composable Platform
Over Profiles
This pruning is what WildFly Swarm does.
It detects what you are using (or you can specify it your
self) and then an executable jar is created with just that (+
required dependencies)
_______________________________________________
jakarta.ee-community mailing list
jakarta.ee-community@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jakarta.ee-community