Intención: Mostrar en nuestro idioma lo descrito por Arun para ayudar a quienes inician con Java
Arun nos comenta en su blog que hay una nueva característica en JPA 2.1 denominada Generación de Esquema. Esto es, generación de los artefactos de base de datos como tablas, indicies, y constraints en un esquema de base de datos.
El post trata de explicar esta característica:
JPA 2.1 es implementado en EclipseLink y el status muestra que se ha hecho un progreso interesante. EclipseLink Milestone builds muestra las fechas cuando los milestones son liberados.Esto generalmente toma pocos dias para que luego sea integrado en GlassFish 4 despues de liberado.
¿Cómo sabes que versión de EclipseLink se ha integrado con GlassFish 4?
Usa el siguiente comando en el directorio glassfish/modules:
Como observamos la version es 2.5.0 y liberado el 20130110 segun el formato YYYYMMDD, que corresponde al 10 Enero 2013. Segun la información de milestone release dates, observamos que la versión milestone M6 ha sido integrado.
Arun en su blog ha probado con la versión latest nightly build (del 18 de Enero). Tal vez cuando leas este blog exista una nueva versión.
Ademas de los elementos comunes como <persistence-unit> y <jta-data-source>, se han introducido nuevas propiedades como -javax.persistence.schema-generation-action y javax.persistence.schema-generation-target que definen la acción y el destino de la generación del schema.
La action es para hacer un drop y create de tablas. El target define donde ejecutar la action en la base de datos. Estas propiedades controlan el comportamiento de la generación del esquema y su significado es definido en TOTD #187. Observa, la tercera propiedad es especifica de EclipseLink y nos dice que se debe cargar al inicio la Unidad de Persitencia. Esto ultimo asegura que el esquema es generado en el momento del deployment. Caso contrario, es generado cuando el PU es por primera vez accesado.
Esto deberia generar la tabla en la base de datos definido por el jdbc/sample JDBC resource. Este recurso es predefinido para JavaDB que viene con el GlassFish 4.
Despues de esto, tu puedes escribir un simple EJB como:
@Stateless
public class EmployeeBean {
@PersistenceContext
EntityManager em;
public void persist(Employee e) {
em.persist(e);
}
public List<Employee> get() {
return em.createNamedQuery("Employee.findAll", Employee.class).getResultList();
}
}
e invocar este desde un Servlet como:
for (int i=0; i<5; i++) {
bean.persist(new Employee("Name" + i));
}
for (Employee e : bean.get()) {
out.println(e.getName() + "<br>");
}
Un diferente conjunto de propiedades se puede especificar:
En este caso la action es “drop-and-create”, i.e. dropear y crear las tablas. El target especifica que la action sera ejecutada en un script. La propiedad *.script-target especifica el nombre de los archivos que seran creados para create y drop DDL. Los siguientes scripts son generados:
more /tmp/createfoo.sql
CREATE TABLE EMPLOYEE (ID INTEGER NOT NULL, NAME VARCHAR(40), PRIMARY KEY (ID))
CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT DECIMAL(15), PRIMARY KEY (SEQ_NAME))
INSERT INTO SEQUENCE(SEQ_NAME, SEQ_COUNT) values ('SEQ_GEN', 0)
CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT DECIMAL(15), PRIMARY KEY (SEQ_NAME))
INSERT INTO SEQUENCE(SEQ_NAME, SEQ_COUNT) values ('SEQ_GEN', 0)
more /tmp/dropfoo.sql
DROP TABLE EMPLOYEE
DELETE FROM SEQUENCE WHERE SEQ_NAME = 'SEQ_GEN'
Por defecto, los scripts son generados en el directorio glassfish/domains/domain1. En esta caso, una propiedad especifica de EclipseLink-specific nos dice la ubicación de los archivos generados.
JPA 2.1 Public Review specification esta disponible desde hace pocos dias. El Appendix A provee un historico de cambios para que te puedas centrar de repente en los ultimos cambios. Si eres miembro de un JUG, puedes considerar participar del programa adopting this JSR y provide feedback (dar feedback)!
Martijn raised some good points in his last post around security. We definitely need help getting the word out. I prepared some facts to keep everyone informed and assist us with communications.
Oracle Security Update CVE-2013-0422
An Oracle Security Alert was issued today. To learn more about the alert please refer to the following link.
“Oracle has released Security Alert CVE-2013-0422 to address the flaw in Java software integrated with web browsers. More information about this Security Alert is available on https://blogs.oracle.com/security This is a blog that discusses when the bug was reported and actions that Java users need to take to secure their systems.”
Esta semana se publico la lista de Java Champions 2012. Tendremos algún día alguien de Perú? Hay que trabajar mucho con la comunidad para ello.
La revista java magazine para nov/dec 2012 esta disponible en este link.
El programa adopta JSR sigue en curso y esta siendo muy auspiciado por Oracle. Animate a participar de un JSR, en tu comunidad estamos para apoyarte en ese sentido. Si te interesa escribeme a jamdiazdiaz@gmail.com e indicame de dicha lista cual JSR te interesa.
Porque deberíamos estar listos para BIG DATA ha sido publicado en diciembre 2012. Interesante articulo que puedes leer aqui.
Cuando sigan el blog de Arun encontraran estos TOTD (Tip Of The Day), incluso el comparte el código fuente.
Motivación
Ejecutar el ejemplo y facilitar a nuestra comunidad con una guía en español.
Requisitos
Bajense el glassfish 4 b68 o superior en este link.
Ejecución del Ejercicio
Descargamos el ejemplo. Luego descargamos todas las librerías con mvn package para ejecutar el WAR generado en el primer paso (no olvides ir al directorio donde esta el pom.xml y ejecutar dichos pasos). Esto lo hago también para que se descargue todas las librerías que se necesita antes de seguir con el ejemplo.
Para poder ejecutar el ejemplo no olvidar que se necesita Glassfish 4 beta 68 en adelante. A la fecha ya estaba disponible desde el 27 de Diciembre el beta 69.
Es un .zip , así que descomprimelo en tu carpeta de herramientas, como la tengo en mi pc:
Luego para ejecutarlo con tu Netbeans, lo asocias como un nuevo GlassFish 3 (ya que aun esta en beta el numero 4):
Primero abro el proyecto:
Luego configuro el glassfish 4:
Finalmente lo ejecuto:
Ahora si a revisar los comentarios de Arung Gupta. Espero les facilite la prueba.
Si bien al inicio pense que no habría muchos asistentes, a las 8pm teníamos el mínimo para cubrir los puntos de la agenda que se planteo.
A continuación listos los temas presentandos y algunos comentarios y/o elecciones que tomaron los asistentes.
Ultimo Video sobre Java
Si te interesa saber el contenido lo listo aquí:
SPOKEN:
In the cubicles representin’ for my JAVA homies…
In by nine, out when the deadlines are met, check it.
CHORUS:
We code hard in these cubicles
My style’s nerd-chic, I’m a programmin’ freak
We code hard in these cubicles
Only two hours to your deadline? Don’t sweat my technique.
Sippin’ morning coffee with that JAVA swirl.
Born to code; my first words were “Hello World”
Since 95, been JAVA codin’ stayin’ proud
Started on floppy disks, now we take it to the cloud.
On my desktop, JAVA’s what’s bobbin’ and weavin’
We got another winning app before I get to OddEven.
Blazin’ code like a forest fire, climbin’ a tree
Setting standards like I Triple E….
Boot it on up, I use the force like Luke,
Got so much love for my homeboy Duke.
GNU Public Licensed, it’s open source,
Stop by my desk when you need a crash course
Written once and my script runs anywhere,
Straight thuggin’, mean muggin’ in my Aeron chair.
All the best lines of code, you know I wrote ‘em
I’ll run you out of town on your dial-up modem.
CHORUS:
‘Cause…
We code hard in these cubicles
Me and my crew code hyphy hardcore
We code hard in these cubicles
It’s been more than 10 years since I’ve seen the 404.
Inheriting a project can make me go beeee-serk
Ain’t got four hours to transfer their Framework.
The cleaners killed the lights, Man, that ain’t nice,
Gonna knock this program out, just like Kimbo Slice
I program all night, just like a champ,
Look alive under this IKEA lamp.
I code HARDER in the midnight hour,
E7 on the vending machine fuels my power.
Ps3 to Smartphones, our code use never ends,
JAVA’s there when I beat you in “Words with Friends”.
My developing skills are so fresh please discuss,
You better step your game up on that C++.
We know better than to use Dot N-E-T,
Even Dan Brown can’t code as hard as me.
You know JAVA’s gettin’ bigger, that’s a promise not a threat,
Let me code it on your brain
WHISPERED:
so you’ll never forget.
CHORUS:
We code hard in these cubicles,
it’s the core component…of what we implement.
We code hard in these cubicles,
Straight to your JAVA Runtime Environment.
We code hard in these cubicles,
Keep the syntax light and the algorithm tight.
We code hard in these cubicles,
Gotta use JAVA if it’s gonna run right.
We code hard in these cubicles
JAVA keeps adapting, you know it’s built to last.
We code hard in these cubicles,
Robust and secure, so our swag’s on blast
CODE HARD
Estado del arte de Java
A continuación mostre una presentación no tan antigua (2011) de Arun Gupta sobre el estado de arte de Java.
Oracle si bien asume que su estrategia no es especificamente enfocada a open source, sabe que el apoyo de las comunidades es importante. Por eso da un giro tremendo permitiendo que las comunidades participen en la JCP adoptando un JSR (Java Specification Request). Cabe resaltar el desempeño que hasta ahora presentan las comunidades de London y Sao Paulo Brasil.
Brasil esta teniendo un rol protagónico, por eso no se extraña que sea una región importante para Oracle y sede de los JavaOne Latinoamerica. De la misma manera existen otras regiones como: India, China y Rusia (Lugares que espero conocer mas adelante).
EL JDK 7 esta siendo ahora muy promocionado por Oracle. En una presentación en el último javaone 2012 en Brasil se mostro que es 80% mucho mas rapido que el JDK 6. Precisamente en febrero del 2013 se acaban los parches al JDK 6.
ORACLE tambien viene promocionando el Adoptar el OpenJDK. El JDK Open source donde puedes colaborar y aprender el lenguaje y convertirte en un experto. Muchas comunidades del mundo estan participando y adoptando el Open JDK.
JAVA FX esta dando tambien un giro tremendo, ahora con el soporte a HTML5, CSS3 y veo mucha actividad en dispositivos embebidos como pueden apreciar en este link.
Algo que si es para meditar, es que venimos trabajando en muchos proyectos con Java EE 5 que es de hace muchos años y ya desde el 2009 ya tenemos Java EE 6 y ya estamos a puertas para el 2013 en Java EE 7. Que ha pasado? porque no estamos muy actualizados en ese tema o desarrollamos con estandares. Basicamente la respuesta de Oracle es que entramos en la burbuja denominada “La explosión de los frameworks” y nos hemos quedado ahí.
Finalmente en esta parte les mostre como quede sorprendido que GlassFish sea el servidor de aplicaciones de mayor venta y uso en Brasil y otras regiones. Es mas si quieres probar Java EE 7, Glassfish lo soportara antes que nadie.
Finalmente como se aprecia en la presentación la estrategia de Oracle es simplificar IT (combinación de software y hardware) con su estrategia en el CLOUD. Vean este video para que entiendan de lo que hablo.
Adopta un JSR
La ultima parte de la reunión fue para mostrarles que como comunidad podemos participar en este programa.
Es más ya lo estamos haciendo como pueden ver en esta pagina:
Este en realidad es el objetivo de la última reunión mensual.
Otros miembros adoptaron:
Java Message Service 2.0 (JSR 343) –> Cynthia , Raúl
Java API for JSON Processing 1.0 (JSR 353) –> Luis, Raquel, Gustavo
Java API for RESTful Web Services 2.0 (JSR 339) –> Beto Borda y Jose Diaz
En fin voy a realizar un documento mas elaborado para poder facilitar la adopción de un JSR.
¿Qué beneficios nos traera? pues que seremos expertos en el JSR que adoptemos, tendremos responsabilidad y participación en el futuro de java y nos dará una gran reputación alrededor de las comunidades Java del mundo.
Animense, no solo usaras Java como consumidor, sino que seras parte del desarrollo de la plataforma en el futuro y podras decir yo probe, propuse mejoras y realice cambios en el mismisimo codigo fuente.
¿Yo ya adopte un JSR, que debo hacer ahora?
Les copio el mail de Arun y veran el plan que el recomienda.
De la imagen se entiende:
-2 semanas para leer la especificación vigente (pdf)
-2 semanas para probar los ejemplos y test (recomiendo Glassfish)
-4 semanas para hacer una demo que incluya todas las necesidades de los miembros.
Espero publicar una guía mas detallada. Este post lo tenia pendiente. Espero tengamos una reunión mensual y haya interes por parte de todos. Si alguna Universidad, Grupo desea colaborar y participar yo encantado en poder hacerles llegar toda esta información y ser un facilitador para que pueda participar.
Concluyo que esto es importante para nuestro portafolio como desarrolladores, para hacer networking, para ser reconocidos a nivel mundial y para crecer como comunidad y profesionales.
Oracle nos ha recibido bien, ahora todo depende de quienes queremos realmente aprovechar este 2013.
Feliz Navidad y bendiciones para todos amigos de ITP_JAVA.
El 4, 5, 6 de Diciembre estuve representando a la comunidad ITP_JAVA en Sao Paulo Brasil.
Les comento que Brasil es accesible si lo planificas con tiempo. El pasaje puede costar de 400$ a 900$. Obviamente si lo compras muy tarde te costará carísimo.
El hostel Vila Madalena de Sao Paulo donde me hospede es muy bueno y puedes hacer la reservación en linea.
El transporte en taxi si es caro. Desde el aereopuerto al hostel o al centro de convenciones TransAmerica Expo Center donde fue el JavaOne 2012 te puede costar 100 a 150 reales.
Ojo que para Diciembre el real estaba igual que el nuevo sol (1 nuevo sol). Asi que haganse una idea.
Yo recomiendo tomar el bus que sale del aereopuerto (puerta 3) y te lleva al centro. Ya de ahi a Expocenter o al hostel te costara 20 Reales.
La comida es muy similar a Lima. Arroz, Frejoles, ensaladas, carnes. Hay muchas marcas de cervezas, jugos de fruta. No sufriras en comida, la sazón es pasable. Solo falto el aji amarillo buu.
Sobre el evento Oracle conocí por primera vez a los bravos de Oracle Mark Hurd (Presidente de Oracle), el CEO de Oracle Brasi, entre otros tremendos miembros de Oracle. Basicamente sus ponencias se centraron en este mensaje: “Simplificar IT” , para eso su estrategia de todo trabajarlo en el Cloud.
Oracle diseña hardware y software para trabajar conjuntamente en la nube y en su centro de datos.
Comparto con uds. unas fotos y nos vemos en la ultima reunión mensual del año para conversar sobre el evento y compartir con uds el material visto en dicho evento.