Grupo3_Iteracion4

Correcciones obligatorias:

- Jerarquía ObjectBuilder/TestObjectBuilder.

* No le veo mucho sentido a esta jerarquía, creo que hay un uso innecesario del patrón singleton. Hay una única clase que extiende ObjectBuilder.

* Eso sigue escondiendo el problema no usar @Autowire. Creo que esto ya lo correji facil 3 veces e incluso les dije como solucionarlo, búsquenlo en las correciones anteriores.

- Siguen teniendo el deploy-context.xml por un lado y el beans.xml por el otro es MUY DESPROLIJO.

* Correjir el uso de los xml de configuracion deploy-context.xml y beans.xml. Ambos deben ser cargados por el contexto en forma automática y NO a travez de ObjectBuilder.

* USEN AUTOWIRE!!!!!

- El patrón observer esta muy mal utilizado. Busquen ejemplos en la web. Esto esta mal diseñado (Pedido, IObserver,VentaObserver).

Correcciones opcionales:

- Vuelvo a marcar que no se respetan las convenciones de java. Los nombres de package van con minúscula.

- Esta clase no se utiliza VentaObserverMock. Cual es el objetivo de la misma?

- La ubicación del archivo Pedidos.log es incorrecta. Debería estar dentro de target/ para que se elimine al hacer el mvn clean.

- La api de los servicios JMS, SOAP e incluso los servicios que ustedes exponen es bastante confusa. Debería ser algo mas transparente para el usuario. En pocas palabras el usuario debería obtener una interfaz uniforme y que no necesariamente identifique con que implementación trabajamos. Esto les da la flexibilidad de por ej. mañana reemplazar la cola por un archivo plano que se transmite todas las noches sin tocar una línea de las clases que utilicen el servicio. Yo haria algo asi como:

ar.edu.utn.frba.tacs.

mercadowarnes.servicios.PedidoService // Interface.

ar.edu.utn.frba.tacs.mercadowarnes.servicios.PedidoServiceImpl // Implementación.

Con los métodos:

* notificarPedido(...)

* agregarProcesadorDePedidosEfectivizados(....) // este se encargaría de tomar pedidos efectivizados de la cola por ej. Ver corrección sobre patrón Observer.

- Si encuentran como usar @Autowire en los test mejoraría muchisimo todo. Pero acepto que en los test inyecten a mano.

- Esto es una apreciación personal mas que una corrección. Pero queda muy muy feo y poco claro el uso de la lógica de negocios desparramadas en los modelos, servicios y demas. No queda clara la arquitectura. No es uniforme a todo el proyecto.