domingo, 20 de septiembre de 2009

Crear un proyecto Wicket

En el siguiente enlace tenemos una utilidad que nos genera el comando para crear un proyecto Wicket con Maven, sólo tendremos que indicar groupId y artifactId de un proyecto con Maven.

Crear un proyecto Tapestry 5 con Maven

1) Hay que ejecutar el siguiente comando:
mvn archetype:generate -DarchetypeCatalog=http://tapestry.formos.com/maven-repository

Al ejecutar este comando en consola, nos pedirá los siguientes parámetros:
  • groupId
  • artifactId
  • version
  • package
Al terminar de generar el proyecto nos creará una carpeta con el nombre indicado en artifactId.
Para preparar el proyecto para Eclipse nos introduciremos en la carpeta del proyecto y ejecutaremos el siguiente comando:

mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true

Ya sólo queda copiar la carpeta creada a nuestra carpeta de proyectos de Eclipse y crear un nuevo proyecto java en eclipse con el mismo nombre. Después de crearlo tendremos que habilitar Maven para el nuevo proyecto.

Para más información visitar el siguiente enlace.

martes, 5 de mayo de 2009

Modelo contextula de componentes en Seam

Jboss-Seam se apoya en este modelo para gestionar los componentes (clases) que forman parte de una aplicación seam. Dicho modelo se puede explicar de la siguiente manera:
  • Seam es una factoría que crea objetos (instancias) según la definición del componente (clase).
  • Después de la creación, cada objeto es almacenado en un contenedor bajo uno de los varios contextos existentes, con distintos tiempos de vida, creando el contexto (scope) de los objetos y capaz de mantener el estado de cada uno.
  • Seam promueve la interacción de estos objetos con estado a través de contextos, ensamblándolos (bijección de dependencias) acorde a los metadatos asociados a sus respectivas clases.
EXPLICACIÓN:

Seam actúa como un contenedor dividido en distintos compartimentos, en cada compartimento se almacenan una serie de componentes. Cada compartimento constituye lo que seam denomina contexto. Un contexto define qué componentes podemos encontrar en él y durante cuánto tiempo. Para ser más precisos, seam gestiona nombres de variables de contexto. Una variable de contexto no es más que una referencia a la instancia de un componente de seam.

¿QUÉ COMPONENTES GESTIONA SEAM Y QUÉ SON?

Jboss-Seam puede gestionar los siguientes componentes:

  • EJB Stateful Bession Beans
  • EJB Stateless Session Beans
  • EJB Message Driven Beans
  • JPA Entity Beans
  • POJO (Plain Old Java Object)
Como podemos ver, un componente en seam no es más que una clase java que se define mediante una programación declarativa (anotaciones, XML), en dicha declaración definimos la variable que accede a una instancia de una clase y su alcance (contexto).

CONTEXTOS EN SEAM

Los contextos están ordenados de menor a mayor duración:

STATELESS

En este contexto no se almacenan las variables. Los componentes en este contexto se instancian cada vez que se resuelve su nombre.

EVENT

Es análogo al scope request de un servlet. La variable existe desde el comienzo de la fase Restore View hasta el final de la fase Render Response del ciclo de vida de una petición en JSF o hasta que se produce una redirección.

PAGE

Comienza al pricipio de la fase Render Response y continua con cada postback JSF hasta que se produce una redirección o se navega a una página distinta.

Aclaración: postback es una acción en una página web en la que se envía una página entera y su contenido al servidor para su procesamiento y éste devulve la misma página (un formulario de logueo por ejemplo). No se debe confundir con actualizar la página.

CONVERSATION

La variable existe desde el final de la fase Restore View hasta el final de la fase Render Response, incluso se se produce una redirección. Si se convierte en una conversación larga (long-running conversation) abarca múltiples peticiones de un mismo usuario hasta que se termina. Las conversaciones se propagan mediante el uso de parámetros especiales de petición para peticiones que no sean postback y a través del árbol de componentes JSF en el caso de peticiones postback.

SESSION

Es análogo al scope session de los servlets. Los accesos a componentes en este contexto son serializados.

APPLICATION

Análogo al scope application de los servlets

BUSINESS PROCESS

Abarca multiples conversaciones de múltiples usuarios. Este contexto se controla de manera declarativa mediante estados de inicio y fin en el fichero de definición del proceso de negocio.

UNSPECIFIED

Es una directiva que indica que el contexto debería ser implícito. Depende de las circunstancias, se le dice a seam para cualquier uso del contexto del componente actual o para ejecutar una búsqueda a través de todos los contextos de manera jerárquica.

CONTEXTOS POR DEFECTO DE LOS COMPONENTES








COMPONENTECONTEXTO
EJB Stateful Session BeanConversation
EJB Stateless Session BeanStateless
EJB Message Driven BeanStateless
JPA Entity BeanConversation
POJOEvent

miércoles, 15 de abril de 2009

Anotaciones para validar Beans en Seam

@Length(min=, max=) Comprueba que la longitud de una cadena se encuentra dentro de un rango
@Max(value=) Comprueba que un valor es menor o igual al indicado
@Min(value=) Comprueba que un valor es mayor o igual al indicado
@NotNull Comprueba que el valor no es nulo
@Past Comprueba que un objeto Date es anterior a la fecha actual
@Future Comprueba que un objeto Date es posterior a la fecha actual
@Pattern(regex=”regexp”, flag=) Comprueba que una cadena cumple el patrón indicado
@Range(min=, max=) Comprueba que un valor está entre el máximo y el mínimo indicado
@Size(min=, max=) En las colecciones, comprueba que el tamaño de la colección se encuentra entre los valores indicados
@AssertFalse Asume que el método devuelve false
@AssertTrue Asume que el método devuelve true
@Valid En coleccuiones o mapas comprueba que todos sus valores son válidos
@Email Comprueba que una cadena cumple con el formato de un e-mail

martes, 14 de abril de 2009

Cambiar puertos en Jboss 5

Para cambiar los distintos puertos que usa jboss 5 por defecto accedemos al fichero:

/jboss-5.x../server/default/conf/bootstrap/bindings.xml


En dicho fichero se pueden cambiar los puertos.