One step back - two steps forward?
If you are watching the Oregami project you may have noticed that it got rather silent during the last months. What could be the reasoning for that? Real life! ;-) But exactly due to RL we create everything in the open: data model, ideas, source code. Nothing gets lost, everybody can jump on the Oregami bandwagon at any time to support the first real open game database! The cause for this blog post is my attention towards the project Spring Boot. Spring Boot was designed "to simplify the bootstrapping and development of a new Spring application. The framework takes an opinionated approach to configuration, freeing developers from the need to define boilerplate configuration" (source). When I switched to Dropwizard with the Oregami server application two years ago, there was no other Java framework with these capabilities: making web development easier with an embedded server. It was exactly what I was looking for, no more "deploying" or "publishing" fat server applications. In the mean time Spring Boot entered the stage. In April 2014 version 1.0 was released, today the latest release is version 1.3. What if I would try to move the current development state of the Oregami web application to Spring Boot? Before I answer that let me first give you an overview of what we have running so far:
- REST-Application with domain objects like "Game", "PublicationFranchise", "GamingEnvironment" and more
- HTTP-Calls for GET (read), POST (create) and PUT (update) of these objects
- creation and editing of domain objects in the web browser
- Cross-Origin Resource Sharing
- "Session-per-HTTP-request": one database transaction per HTTP-Request
- HSQLDB for development, MySQL for the deployed application
- JPA entities with UUIDs as Primary Key
- Liquibase for easy database schema updates
- Auditing of saved objects with Hibernate Envers
- integration tests with rest-assured
- Are Single Page Apps bad?
- Reimagining Single-Page Applications With Progressive Enhancement
- Why I hate your Single Page App