Java EE tendrá un framework MVC: JSR 371
A principios de este año Oracle realizó una encuesta cuyo objetivo era pedir realimentación a la comunidad sobre lo que debería ser la especificación de Java EE 8, un movimiento similar a lo que ya hizo para Java EE 7. Una de las cosas que pidió la comunidad es que Java EE pasase a tener soporte para un framework tipo Modelo-Vista-Controlador:
Pues bien, parece que Oracle ha escuchado a la comunidad y ha creado el JSR 371 "Model-View-Controller (MVC 1.0) Specification". Esta especificación, que apenas acaba de arrancar, tardará un par de años en completarse y no es seguro que forme parte de Java EE 8, si bien en algún momento se incorporará a Java EE. Ahora mismo la fecha prevista de finalización es el tercer trimestre de 2016. El objetivo final de esta especificación es es definir un framework MVC completamente independiente de JSF que sea un estándar dentro de la plataforma Java. Esta podría ser la apariencia que tenga el código de un controlador de este framework:
@Path("/") @Singleton @Template @Produces("text/html;qs=5") @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class Bookstore { private final Map, items = new TreeMap(); private String name; public Bookstore() { setName("Czech Bookstore"); getItems().put("1", new Book("Svejk", "Jaroslav Hasek")); getItems().put("2", new Book("Krakatit", "Karel Capek")); getItems().put("3", new CD("Ma Vlast 1", "Bedrich Smetana", new Track[]{ new Track("Vysehrad",180), new Track("Vltava",172), new Track("Sarka",32)})); } @Path("items/{itemid}/") public Item getItem(@PathParam("itemid") String itemid) { Item i = getItems().get(itemid); if (i == null) { throw new NotFoundException(Response .status(Response.Status.NOT_FOUND) .entity("Item, " + itemid + ", is not found") .build()); } return i; } @GET @Produces({MediaType.APPLICATION_XML, MediaType.TEXT_XML, MediaType.APPLICATION_JSON}) public Bookstore getXml() { return this; } public long getSystemTime() { return System.currentTimeMillis(); } public Map, getItems() { return items; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
¿Qué os parece la idea de tener un framework MVC dentro de Java EE? ¿Creéis que será problemático tener dos framework web estándar (JSF y este nuevo)?
Reader Comments (5)
Visto que quizás se prefiera Spring MVC a JSF , han decidido que JSF no va por buen camino y mejor crear un clon de Spring MVC.
Y son muy buenas noticias pq habrá mas competencia y todos saldremos ganando.
Creo que deberian de imitar frameworks como PlayFramework o similares, simplificar las cosas y dejar de usar tanto boiler plate code. Por ejemplo en vez de:
throw new NotFoundException(Response
.status(Response.Status.NOT_FOUND)
.entity("Item, " + itemid + ", is not found")
.build());
hacer algo como
return badRequest("error message");
Saludos.
Está muy bien, siempre es bienvenido una spec para normalizar un poco lo que ya está... ¿pero no es algo bastante tarde?
JSF debería declararse deprecado. Lo mismo JavaFX, al cual directamente lo mataría, solamente Oracle está interesado en ello y sigue gastando más y más recursos en algo que nadie pide. Swing... otra tecnología para marcar deprecada.
Debería reenfocarse EE a un perfil web ultraliviando, sin reinventar la rueda, integrándose de lleno con JavaScript y HTML5, manteniendo las mejores specs útiles de hoy día como JAX-RS, y abrazar "fuertemente" la integración con frameworks JS actuales (léase: AngularJS y cía).
Ocultar la mayor parte de las tecnología web (html+css+js) en componentes pesados del lado del servidor, nunca fue buena idea. La intención de generar un mercado de componentes se entiende, pero capas y capas de abstracción nunca termina bien, y cuando el resultado es una aplicación costosa de escalar horizontalmente, y agregando complejidad en algo que debería ser tan simple, hay que repensar las cosas. No hay que menospreciar a los desarrolladores: html5/css3/js no es difícil. En lugar de luchar con la web, deberían abrazarla en serio de una vez.
De todas formas, los desarrolladores lo haremos igual, lo estamos haciendo ya hace rato, quitando capas de grasa de EE, dejando solo las partes buenas. Pero es una pena, que haya que reinventar la rueda, sería más eficiente si el JCP ofreciera rápidamente una solución estándar de acorde a los tiempos.
La web cambió. Los clientes ya no son solo PCs. Hay una miríada de dispositivos de todo tipo y capacidades allá afuera. Deberían abrazar urgente al HTML5/JS/CSS3, y aceptar como parte de la familia a Android, en lugar de seguir insistiendo con la locura de JavaME, JavaFX, JSF... ya los 90s quedaron muy atrás...
Hay una cosita allá afuera llamada NodeJS... no parece que en Oracle se han enterado. Ya les pasó lo mismo con NoSQL. Si siguen en la suya sin mirar a los lados, negando la realidad, se pueden encontrar un día en una posición incómoda.
yo creí que era el único con aversión a los componentes pesados del lado del servidor
ya es momento de superarlo
Tercer trimestre del 2016? pues en realidad es que sera usado y recomendado en el tercer trimetreste del 2017...