lunes, 20 de abril de 2009

Seam: CarritoCompra

package org.domain.seamcea2.session;

import javax.persistence.EntityManager;

import org.jboss.seam.Component;
import org.jboss.seam.annotations.intercept.AroundInvoke;
import org.jboss.seam.intercept.InvocationContext;
import org.jboss.seam.security.Identity;
import org.jboss.seam.security.NotLoggedInException;

public class Espia {

@AroundInvoke
public Object meDaIgual(InvocationContext llamadaMetodo)
throws Exception {





String nombreMetodoInvocado = llamadaMetodo.getMethod().getName();
Object[] parameters = llamadaMetodo.getParameters();
Object resultadoAccion = llamadaMetodo.proceed();
ListaDiscoBean listaDiscoBean =
(ListaDiscoBean) llamadaMetodo.getTarget();
Disco discoSelccionado=listaDiscoBean.discoSelccionado;


if(nombreMetodoInvocado.equals("incluye")){
EntityManager entityManager = (EntityManager) Component
.getInstance("entityManager");
Estadistica stadistica=new Estadistica();
stadistica.setDisco(discoSelccionado);
entityManager.persist(stadistica);

}
return resultadoAccion;
}

}




package org.domain.seamcea2.session;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.jboss.seam.annotations.intercept.Interceptors;

import sun.reflect.annotation.AnnotationType;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Interceptors(Espia.class)
public @interface EspiaAnotacion {

}



Aplicar la inyección de dependencias al carrito de la compra

Convertir un Entity en un Bean accesible por su nombre (desde la vista y desde otros beans) de la aplicación

(Pagina 152 tutorial de seam)Interceptar el carrito para implementar estadisticas y seguridad de forma transparente

Generar consultas JPQL para saber los detalles de las entidades relacionadas con disco y estadistica

viernes, 17 de abril de 2009

Request-JSF-Seam

Problematica de recuperar parametros

Solucion casi igual a Servlets
@RequestParameter(value="nombreParametro")
Long id;

Solucion orientada a objetos aprovechando JSF e inyeccion de dependencias
Binding de HtmlDataTable y aprovechar el metodo datatable.getRowData() para obtener el objeto de la fila actual...

Solucion Seam .... @DataModel @DataModelSelection

Carrito compra-> inyeccion

miércoles, 15 de abril de 2009

calendar/time pattern

info recogida de: http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html






















Letter
Date or Time Component
Presentation
Examples
G
Era designator
Text
AD
y
Year
Year
1996; 96
M
Month in year
Month
July; Jul; 07
w
Week in year
Number
27
W
Week in month
Number
2
D
Day in year
Number
189
d
Day in month
Number
10
F
Day of week in month
Number
2
E
Day in week
Text
Tuesday; Tue
a
Am/pm marker
Text
PM
H
Hour in day (0-23)
Number
0
k
Hour in day (1-24)
Number
24
K
Hour in am/pm (0-11)
Number
0
h
Hour in am/pm (1-12)
Number
12
m
Minute in hour
Number
30
s
Second in minute
Number
55
S
Millisecond
Number
978
z
Time zone
General time zone
Pacific Standard Time; PST; GMT-08:00
Z
Time zone
RFC 822 time zone
-0800

Seam: JSF+EJB

Practica de componentes JSF a través de edición de Disco. Comenzamos solo editando nombre para después utilizar
  • componente calendario para editar la fecha del Disco
  • componente selectOneMenu para editar el Cantante del Disco
  • componente validador para validar que la fecha del Disco siempre sea anterior al día actual
  • conversores
  • binding e inyección de ejbs dentro de bindings
  • listeners en JSF: ActionEvent y ValueChangeEvent
Componente CarritoCompra (Mantener en session información de usuario y detallarla)


gestión de Excepciones en Seam

i18n en Seam

Tests en Seam



Debugear una aplicación java

lunes, 13 de abril de 2009

SeamFramework=EJB3+JSF(Richfaces)

Richfaces es una implementacion de jsf

gettingstartedwithjbosstools

java.net.BindException: Address already in use: JVM_Bind.

  1. Localizar el proceso que ocupa el puerto con el comando: netstat -a -n -o
  2. finalizar el proceso desde el administrador de porcesos/tareas