javaee / javaee-spec

Java EE Platform Specification
https://javaee.github.io/javaee-spec
Other
389 stars 69 forks source link

@Startup in all components #47

Open glassfishrobot opened 9 years ago

glassfishrobot commented 9 years ago

@Startup is currently allowed only on EJB and should be allowed on any Java EE component.

glassfishrobot commented 9 years ago

Reported by arungupta

glassfishrobot commented 9 years ago

arungupta said: Some discussion at: https://java.net/projects/javaee-spec/lists/users/archive/2015-06/message/5

Some more at: https://twitter.com/arungupta/status/611493850092322816

glassfishrobot commented 9 years ago

rdebusscher said: CDI and JSF have there own way of startup

CDI -> @Observes @Initialized(ApplicationScoped.class) JSF ->

be.rubus.squad.startup.JsfStartup javax.faces.event.PostConstructApplicationEvent

see also http://javaeesquad.blogspot.be/2015/03/getting-notified-when-java-ee.html

Uniformization of this is indeed a good thing and JAX-RS is missing on the above list.

glassfishrobot commented 9 years ago

reza_rahman said: Needless to say I agree with this and indeed the issue I had created some time ago has a relatively high amount of votes by EJB spec standards: https://java.net/jira/browse/EJB_SPEC-19.

glassfishrobot commented 9 years ago

arjan_t said: In OmniFaces we have implemented something like this, which may be useful for inspiration. See http://showcase.omnifaces.org/cdi/Eager

See also: http://omnifaces.org/docs/javadoc/2.1/org/omnifaces/cdi/Startup.html

glassfishrobot commented 9 years ago

agoncal said: tt>@Startup</tt should be the way (even for servlets that use load-on-startup). So I'm totally aligned with https://java.net/jira/browse/EJB_SPEC-19.

glassfishrobot commented 9 years ago

rmannibucau said: https://rmannibucau.wordpress.com/2015/03/10/cdi-and-startup/ shows that CDI has it.

Note that instead of duplicating existing API using CDI as real backbone for all spec would solve it (ie allowing servlet and web components to be cdi beans and not just injected)

glassfishrobot commented 9 years ago

arjan_t said:

Note that instead of duplicating existing API using CDI as real backbone for all spec would solve it

+1

ie allowing servlet and web components to be cdi beans and not just injected

Funny that you mention this, since for OmniFaces we were prototyping exactly this

A CDI bean that acts, more or less, exactly as a Servlet. It's a little bit a continuation of our @Eager/@Startup bean above. In broad lines, an extension collects those beans, then a special Servlet delegates to them. For the user, the new "CDI Servlet" IS the Servlet and except for the stack trace doesn't get to see the "real" Servlet.

Several specs are already rebasing on CDI, but it's going slowly and sometimes even taking a step back (see what happened with SERVLET_SPEC-116)

glassfishrobot commented 7 years ago

This issue was imported from java.net JIRA JAVAEE_SPEC-47