Terminada integracion logo segun estilos uvigo
Arreglado fallo css
Añadido pie de página estilo uvigo y css
Acabado DAO y REST búsqueda sin categoría
Quitado método no usado de GenericDAO
Implementada parte servidor búsqueda sin categoría

Se ha reestructurado el sistema de paquetes para tener todo más ordenado, ahora
todo lo relativo a artículos estará en subpaquetes "articles" dentro de cada
paquete previamente existente, así cuando existan más entidades, daos y
"vistas" REST, no estarán todas desperdigadas en un mismo paquete (eg: todos
los tipos de usuarios y todos los tipos de articulos dentro de "*.entities").
Del mismo modo, también han sido modificadas las rutas de la api REST para que
todos los recursos de tipo artículo cuelguen de "/articles", así, por ejemplo,
para realizar una búsqueda sin tipo será "/rest/articles?search=mibusqueda",
mientras que para realizar una busqueda de libros será
"/rest/articles/books?search=mibusqueda". Las rutas ya configuradas en Angular
(lógica de interfaz) han sido corregidas a tal efecto.

Se han refactorizado las entidades, DAOs y clases REST para permitir la
búsqueda general de todo tipo de artículos sin especificar una categoría. Tanto
ArticleDAO como ArticleResource han sido renombrados a GenericArticleDAO y
GenericArticleResource, y se han creado clases concretas ArticleDAO y
ArticleResource que extienden de éstas y bloquean la inserción de artículos,
dado que para ello deberían utilizarse los subtipos de Article y sus
respectivos DAOs y Resources.

Se ha mantenido Article como una clase abstracta, para evitar la creación de
objetos Article que no tienen sentido dentro de la lógica de la aplicación,
dado que todo artículo pertenece siempre a uno de sus subtipos. El problema que
presenta ésto es la respuesta de un listado de artículos, sin haber
especificado tipo concreto, por parte del servidor, debido a que Jackson no es
capaz de serializar a JSON una clase abstracta (y el tipo definido en
ArticleResource como parámetro para GenericArticleResource es Article, por lo
que debe devolver artículos de cualquier tipo!). La solución más sencilla
(aunque un poco fea[1]) para ésto es el uso de las anotaciones que Jackson
proporciona para estos casos: @JsonTypeInfo y @JsonSubTypes (ver en
"*.entities.articles.Article").

Éstas anotaciones, además, nos solucionan la parte de servidor de la historia
"Usuario Ver Categoría", de modo que añaden a la respuesta JSON el tipo de
artículo que recibe el cliente (Angular) en cada objeto, ejemplo de respuesta a
una búsqueda:

    [ { type: "book",  id: 1, name: "asd",    ... },
      { type: "movie", id: 2, name: "qwerty", ... },
      ... ]

Así, directamente se puede procesar el atributo "type" en la respuesta JSON
para determinar a qué tipo de artículo se refiere cada uno cuando no se conozca
previamente (eg: se ha buscado sin filtrar por categoría).

[1] La fealdad reside en la necesidad de declarar todos los subtipos de Article
en la anotación @JsonSubTypes. Existe otra solución consistente en programar un
mapeador propio y registrarlo en la configuración de Jackson, no la he
explorado mucho, porque parece añadir un nivel de complicación innecesario para
éste proyecto. De todos modos, seguramente existe la posibilidad de trasladar
dichas anotaciones feas a un fichero properties/XML y evitar tener que añadir
manualmente cada subtipo en Article.java cuando se creen más, no he
investigado, pero sería lo más limpio si así fuese.
Integrados cambios de Iago y míos en la rama development

Conflicts:
	src/main/java/es/uvigo/esei/daa/tarde/daos/BookDAO.java
	src/main/java/es/uvigo/esei/daa/tarde/daos/ComicDAO.java
	src/main/java/es/uvigo/esei/daa/tarde/daos/MovieDAO.java
	src/main/java/es/uvigo/esei/daa/tarde/daos/MusicStorageDAO.java
	src/main/java/es/uvigo/esei/daa/tarde/daos/articles/GenericArticleDAO.java
	src/main/java/es/uvigo/esei/daa/tarde/entities/articles/Article.java
	src/main/java/es/uvigo/esei/daa/tarde/rest/ArticleResource.java
	src/main/java/es/uvigo/esei/daa/tarde/rest/articles/BookResource.java
	src/main/java/es/uvigo/esei/daa/tarde/rest/articles/ComicResource.java
	src/main/java/es/uvigo/esei/daa/tarde/rest/articles/MovieResource.java
	src/main/java/es/uvigo/esei/daa/tarde/rest/articles/MusicStorageResource.java
	src/test/java/es/uvigo/esei/daa/tarde/rest/articles/ArticleBaseResourceTest.java
	src/test/java/es/uvigo/esei/daa/tarde/rest/articles/BookResourceTest.java
	src/test/java/es/uvigo/esei/daa/tarde/rest/articles/ComicResourceTest.java
	src/test/java/es/uvigo/esei/daa/tarde/rest/articles/MovieResourceTest.java
	src/test/java/es/uvigo/esei/daa/tarde/rest/articles/MusicStorageResourceTest.java
Realizadas las IU logica y de presentacion de usuario busqueda sin categoria,que al final se corresponden con las de la historia usuario busqueda enter
Mensaje de Aviso Alta Artículo
Añadido a GenericArticleDAO el ORDER BY para que muestre los articulos
por orden alfabético al buscar cualquier artículo.
Aparece un icono al lado de cada artículo indicando su categoría.
Añadido busqueda por categorias dandole al enter, funciona todo bien
PERO al principio en el desplegable de las categorias aparece un espacio
en blanco y no se por qué... una vez seleccionada alguna categoría dicho
espacio desaparece y queda perfecto. Mañana ya os lo comento en clase.
Seguire con ello, si lo arreglo ya hago otro commit.
Arreglado lo que comentabas del espacio que aparecía en el select.
Se puso valor por defecto Categoría para evitar tener que seleccionar la
Opción Todo para realizar la primera búsqueda pulsando enter. Ahora
aunque no selecciones Todo, la búsqueda se hará en todo y así se
mostrará Cambiando la palabra Categoría por Todo.

Se borró el código comentado y se añadió un evento ng-change para
sustituir el ng-click que teníamos para evitar que al hacer click en el
desplegable se haga una búsqueda cuando ponga cualquier cosa que no sea
Categoría.
Corregido error que cambiaba la categoría seleccionada a Todo siempre
que se hacía una búsqueda pulsando enter
Añadida búsqueda de los 10 últimos artículos en GenericArticleDAO.
Corregidos DAOTest título vacío, datos desordenados daban fallo.
Añadida clase para lectura de configuracion

Se ha añadido una clase con metodos estaticos para la lectura de un fichero de
configuracion, que estara presente en "resources/configuration.properties".
Refactorizada conexion a base de datos

PersistenceFactory ahora lee a que PersistenceUnit debe conectarse a través de
la clase Config, que la recupera desde el fichero configuration.properties.
Además, PersistenceFactory ahora no devuelve la factoría, sino que cuando se
solicita se crea, se cierra, o se crea un nuevo EntityManager para dicha
EntityManagerFactory.

Junto a ésto se ha creado una clase DatabaseSession, que implementa la interfaz
autocloseable y permite el uso de EnityManager y EntityTransaction de forma más
simple (ver tests y daos).
Añadido a GenericArticleDAO método findLatest(int)
Sustituído findTenLatest() con findLatest() en todas sus ocurrencias.
Implementado findLatest() en REST que (aún) no pasa test.