[jsr342-experts] Re: Minimal profile ?

From: David Blevins <david.blevins_at_gmail.com>
Date: Mon, 2 Jul 2012 12:27:43 -0700

On Jul 2, 2012, at 9:44 AM, Antonio Goncalves wrote:

> My fear is that we will still see "Tomcat-like" applications and "EE-like" application running on different app server vendors. But well, we have done that for many years now, a few extra won't hurt

I really really hope TomEE can address that. I don't mean that as a plug for TomEE but as a very direct "I hear you and agree on the severity of the problem". Not just agree but to the point where even though I work on Geronimo and already had "a server to sell" it was clear until Tomcat was certified we'd be stuck in this pattern. I hope TomEE can help close the gap between Tomcat and JavaEE. It'll take time though.

On the profile subject, there are a lot of things Tomcat has chosen not to support:

 - @DataSourceDefinition
 - @Resource(lookup="..")
 - <env-entry> of type Class or Enum;
 - Global JNDI
 - nearly all built-in java:comp/foo objects
 - TransactionManager or UserTransaction
 - JPA (@PersistenceContext or @PersistenceUnit or JTA-managed EntityManagers)

Not a complete list, but gives an idea of the gaps.

I suspect even if we created a Minimal Profile with Tomcat in mind and it included any of the above, Tomcat would not support it.


> On Mon, Jul 2, 2012 at 5:41 PM, Jason T. Greene <jason.greene_at_redhat.com> wrote:
> I know what you are getting it, but I still want to stress that Modularity != Plugability, although it is a helpful tool in achieving it.
> The problem is that to integrate JSF fully and correctly in compliance with the EE spec you have to use non-standard integration hooks. Even with the RI (mojarra) those impl specific hooks have changed in a non-compatible way between minor versions. So for a container provider to support even multiple versions of one implementation, you have to implement integration code for each one.
> JPA did a good start with having an SPI (although it could be better, let the container do the bytecode analysis vs the provider). I am all for adding plugability SPIs, but the minimal profile is a no-go for me. Really all a minmal profile is, is just the serlet spec, and vendors can still release standalone servlet containers if they want. Calling the servlet spec a "Java EE Profile" wouldn't really change anything, other than maybe confuse people.
> On 6/29/12 4:46 PM, Werner Keil wrote:
> Antonio,
> Interesting idea. How big is the difference between what you propose and
> the Web Profile, e.g. the TomEE server meets?
> EE 7 could offer a limited set of Modularity, but when the decision was
> made to drop Modularity from the Java 7 Platform due to the
> complications and challenges, the OpenJDK team is facing up until this
> day, I was among the first to point out the negative impact this would
> have on EE to then Spec Lead Roberto, and others, particularly EC
> Members present.
> Further Modularity or additional profiles may only work if the
> foundation really became modular. We hope and trust that's going to be
> EE8 or any EE that can use Java (8) Modularity.
> Werner
> Am 29.06.2012 23:35 schrieb "Antonio Goncalves"
> <antonio.goncalves_at_gmail.com <mailto:antonio.goncalves_at_gmail.com>>:
> Hi all,
> Four years ago, when we were building Java EE 6, we had this idea of
> a minimal profile that Roberto blogged about
> (http://weblogs.java.net/blog/robc/archive/2008/02/profiles_in_the.html).
> The idea was to standardise "Tomcat-like" application servers with a
> minimal profile containing Servlets and JSPs. So we would have had
> this "minimal" profile, the web profile and the full one. We mostly
> voted no on this minimal profile, and I was one of them.
> I've spent the week migrating a JSF 1.2 application running on
> Tomcat to JBoss 6 EAP (which comes with JSF 2.0). Now I'm trying to
> run an application with JAX-RS 2.0 running on GlassFish 3.x (which
> comes with JAX-RS 1.1). On both cases, it's hell. This would be
> easier if I could have used a JBoss 6 EAP Minimal Profile (or a
> GlassFish 3.x Minimal Profile) and bundle my own external jars like
> I do with Tomcat. If we want applications to migrate to Java EE
> application servers, one ease of use would be to have just a servlet
> container. And it will give a nice migration plan to application :
> e.g. "migrate from Tomcat to JBoss Minimal profile, and then when
> you are used to your new application server, move to a Web Profile
> and start adding other Java EE modules".
> I think having a new "Minimal Profile" (a better name would be a
> "Servlet Profile" with just Servlets, EL and JSP) would increase
> modularity in application servers and help applications to migrate
> to Java EE.
> What would you think of introducing a new profile in Java EE 7 ?
> Antonio
> --
> Jason T. Greene
> JBoss AS Lead / EAP Platform Architect
> JBoss, a division of Red Hat
> --
> Antonio Goncalves
> Software architect and Java Champion
> Web site | Twitter | LinkedIn | Paris JUG | Devoxx France