Hello all, I have put together an Abdera server sample application that serves movies, actors and roles (data taken from IMDB).
The com.lacapitale.iex package is the glue code (or framework) part. The com.lacapitale.imdb is the example application. It demonstrates the following: * Application layering * DAO * Services * Services APIs * REST * Domain objects * Domain objects used as DTOs * Clients of the service layer only access the domain objects thru interfaces that restricts access to certain fields, thus preventing business rules from being coded in the UI. * Spring integration: * Auto discovery of adapters. * Auto wiring of all dependencies. * An example (ServiceContextBean) of a request scoped bean that decouples the services layer from Abdera. * Jdbc templates. * MySQL DAOs to come later. DAO type selection would be done by a Spring auto discovery filter. * Abdera * Automatic construction of the entry.content element thru reflection of the domain objects' implemented interfaces. * Collection paging. * Unit testing * In memory HSQLDB. * Jetty container. * Base REST test class that starts HSQLDB, loads the test db scripts, starts Jetty/Spring/Abdera/IMDB. * Base adapter test class that provides around 15 generic feed tests. * Abstract DB unit test wrapper to load test data from sql scripts (MySQL support to come). * Unit tests for good application dependencies enforcement between the layers. * Misc * Java configuration instead of XML or properties. This is a work in progress. No Javadoc yet. Any comments are welcome. I don't suggest providing a Spring integration with Abdera, the way to do it depends to much on individual taste. However, this could become part of the Wiki. You can get the project here: http://arrova.ca/files/imdb.rar Remy The dependencies are not included. Spring 2.5.1 was used. Here's my dependencies folder content: abdera-i18n-0.4.0-incubating-SNAPSHOT.jar abdera.client.0.4.0-incubating-SNAPSHOT.jar abdera.core.0.4.0-incubating-SNAPSHOT.jar abdera.parser.0.4.0-incubating-SNAPSHOT.jar abdera.protocol.0.4.0-incubating-SNAPSHOT.jar abdera.security.0.4.0-incubating-SNAPSHOT.jar abdera.server.0.4.0-incubating-SNAPSHOT.jar abdera.spring.0.4.0-incubating-SNAPSHOT.jar axiom-api-1.2.5.jar axiom-impl-1.2.5.jar bcprov-jdk15-137.jar commons-codec-1.3.jar commons-el.jar commons-httpclient-3.1.jar commons-logging-1.0.4.jar geronimo-activation_1.0.2_spec-1.1.jar geronimo-servlet_2.4_spec-1.0.jar hsqldb.jar htmlparser-1.0.5.jar jaxen-1.1.1.jar jdepend-2.9.jar jetty-6.1.3.jar jetty-util-6.1.3.jar json-1.0.jar junit-4.4.jar log4j-1.2.14.jar myfaces-api.jar myfaces-impl.jar ojdbc14.jar serializer.jar spring-test.jar spring.jar stax-api-1.0.1.jar tomahawk.jar wstx-asl-3.2.1.jar xmlsec-1.4.1.jar xpp3_min-1.1.4c.jar xstream-1.3.jar No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.516 / Virus Database: 269.21.6/1315 - Release Date: 2008.03.06 09:07
