martes, 5 de mayo de 2009

Último Día, 60: Evaluación

Para poner condiciones usando las el conjunto #{} para mostrar valores en las vistas (JSF).
Un ejemplo sería el siguiente, que dependiendo si se está logueado o no aparecerá rojo o verde:
style:"color:#{(identity.loggedIn)?'rojo':'verde'}"


Despedida
Hoy ya es el último día en todos este tiempo en el que he estado en la "verdadera" programación en java y más dificil. Podría decirse que ya tengo una cierta base y más con la ayuda de mi propio blog que usaré como apuntes, pero el auténtico reto es la realidad, en el mundo laboral con las prácticas en empresa y con suerte colocarme en ellas.
Espero tener suerte y también para mis compañeros de curso.
Y sobre el blog.. espero poder mejorar las entradas de aquí en adelante y terminar las incompletas.


Por último, como hemos completado un curso (en realidad sólo la teoría) en nuestro currículum podemos ampliar la información que hemos asimilado en estos meses y para ello tenemos lo siguiente:

Systemas operativos:Windows
Lenguajes de programación:Java J2EE
Bases de datos: MySQL. Utilizo habitualmente Hibernate para mapeo O-R.
Programación Web: CSS

IDE's: Eclipse. Plugins de eclipse: subclipse(subversion), testng, jboss, m2eclipse(maven)
Servidores Web: Tomcat y Jetty
Servidores de aplicaciones: JBoss
Frameworks de desarrollo web en java: Servlets, JSP, JSTL, Struts, SpringFramework, JBoss Seam, JSF, EJB

Frameworks de pruebas: TestNG, Mockito

Herramientas de automatización y estandarización en el desarrollo: Ant, Maven, Subversion, log4j, commons-logging


Contenido del master en java j2se y j2ee
Desarrollo de Componentes Web Con Tecnología Java (84 Horas)
  • Introducción al desarrollo de Aplicaciones Web con Java
  • introducción al Control de Versiones utilizando la herramienta Subversion
  • introducción a la POO (Programación Orientada a Objetos) a través del estudio del framework de colecciones de java y su comprobación a través de pruebas con testNG
  • introducción a las excepciones, su diseño y su gestión en un programa
  • introducción al seguimiento del programa por consola (logging) y configuración. Uso de la herramienta Log de la librería commons-logging y log4j de Apache
  • introducción a Apache ANT: herramienta de automatización de tareas en el desarrollo
  • introducción al api jdbc: Java Data Base Connectivity
  • profundización en el uso y creación de anotaciones
  • introducción a la herramienta MAVEN: herramienta de estandarización del desarrollo (automatización de tareas) en proyectos java, destacando la gestión de dependencias
  • servidores web
  • desarrollo de servlets modelo 1 :listeners, filters, servlets
  • introducción a JSP - Java Server Pages. Modelo 2 de desarrollo con Servlets
  • introducción a JSTL - Java Standar Tag Library
  • introducción al patrón de desarrollo Controlador Frontal
  • introducción al patrón de desarrollo MVC - Modelo Vista Controlador

Desarrollo de Aplicaciones J2EE (56,50 Horas)
  • Arquitectura J2EE.
  • servidores de aplicaciones
  • introducción a Struts 1
  • introducción a EL - Expression Language
  • introducción a la internacionalización de aplicaciones
  • introducción a SiteMesh - Patrón Filtro Decorador
  • introducción a Hibernate "con XML"
  • introducción a Spring
  • introducción a DI - Inyección de Dependencias
  • introducción a JSF Java Server Faces

Acceso a Base de Datos. Hibernate (42 Horas)
  • Persistencia de Objetos
  • Configuración de Hibernate
  • Introducción a un proyecto con Hibernate
  • API
  • Propiedades De Hibernate
  • HQL - Hibernate Query Language
  • Hibernate Criteria Query
  • Persistencia De Colecciones

Desarrollo Aplicaciones De Negocio Enterprise JavaBeans (73,50 Horas)
  • Análisis de los componentes EJB
    • Session Beans.
      • stateless
      • statefull
    • Entity Beans.
    • MDB.
  • ciclo de vida y contextos de EJB
  • Uso del lenguaje de consulta de EJB (EJB QL)
  • Implementación de transacciones
  • Manejo de excepciones
  • Implementación de la seguridad
  • introducción a JBoss Seam como herramienta de integración de JSF y EJB


lunes, 4 de mayo de 2009

Día 59: ANT y Ejemplos JBoss-seam

Instalar ejemplos del seam

Abrir el documento "seam_reference.pdf" para tenerlo de referencia.
Mirar el capítulo 1 para lanzar los ejemplos.
Crear un proyecto de la fuente del jboss seam "jboss-seam-2.1.1.GA" para tener todo el código fuente de los ejemplos a mano.

Ejemplo 1
Desplegar el ejemplo registration
Configuraremos las propiedades del ANT

Desplegamos la carpeta "examples" y dentro el "registration" para acceder al archivo "build.xml" (o control+mayuscula+r y buscamos build.xml), aunque en realidad lo mejor es abrir el plugin de ANT (window>show view>Ant) y arrastrar el archivo a él. Trabaja también con el build.xml principal contenido el build y también utiliza un archivo properties.
El archivo "default.build.properties" contenido en el "build". Modificamos la propiedad jboss.home y le indicamos donde tenemos nuestro servidor (en mi caso: C:\Documents and Settings\javaape\Escritorio\JAVA\servers\jboss-4.2.3.GA )
(Si quisieramos arrancar el método principal del ANT nos iriamos a la carpeta del build.xml por consola y escribir "ant deploy".)
Hacemos doble click en el método principal y debería funcionar todo.
Arrancamos el servidor jboss.
Accedemos a la página "http://localhost:8080/seam-registration/register.seam" y debería ir.

Los JSF tienen el faces-config.xml
Los JPA tienen el persistence.xml
Y Los The Seam component deployment descriptor el components.xml

Ejemplo 2
Ahora desplegaremos el blog, hacemos como antes:
"Tiramos" el build.xml a la vista del ANT y arrancamos el método deploy.
Y si tenemos el jboss ya arrancado directamente podemos acceder ya al ejemplo: "http://localhost:8080/seam-blog/"
Una vez accedido a la página vamos "bicheando" un poco sobre su funcionamiento mirando sus clases java y sus archivos de configuración.

Sobre el ANT
Si se desarrolla lo ideal es hacer un explode, para que los cambios se guarden, pero si queremos lanzarlo tenemos que deshacer el explode y hacer un deploy.

Ejemplo 3
Desplegamos el ejemplo "booking" y los mismos pasos que antes.
Para acceder a él: "http://localhost:8080/seam-booking/home.seam"
Aqui se pueden ver y retomar conversaciones, por ejemplo si se está mirando en una pestaña un hotel y en otra pestaña otro hotel y podemos elegir entre los dos.


El resto del tiempo de hoy lo dedicamos de forma libre: a continuar con el proyecto que teniamos entre manos antes de feria.. o investigar un poco estos ejemplos del jboss y tocarlos.

Consejo:Para los tipos de datos que estamos más acostumbrados, String, Objeto X, Objeto Y, usamos los métodos "getLoQueSea" o su "set" pero para los tipos primitivos de datos, por ejemplo un booleano, se debe de usar "isAlgo"