Releases: nowucca/SimpleAffableBean
Fall 2018 Refresh: Better Builds, Tests and Schema
Updated Tomcat references
Updated Tomcat references for Summer 2018
REST service support
Added some example GET and PUT service operations, accessible at /service/application.wadl using Jackson and Jersey libraries.
Ensured that form validation lives in the CustomerService class.
Ensured that the global error handler handles service request errors differently and appropriately.
Administration Pages use View Models
This release marks inclusion of the administration pages using the view model pattern.
Other changes include:
- some ApplicationContext code is simpler with fewer dependencies
- some error messaging for admin pages was improved to recover gracefully
Building and Database sample data work
Changes
- Accidentally previously omitted gradle wrapper jar file. Included now.
- Fixed comment syntax in sampleData.sql so that command-line batch mode can be used to run the file.
Closing the Loop
This release contains fixes and cleanups that are the result of feedback.
It also includes meta-data caching for products and categories as a final new feature.
Change Summary
- Simplified gradle build, added license checking and formatting
- Added docs/ folder using "Feeling Responsive" Jekyll templates.
- Added skeletal content to docs/ and customized it for being "http://SimpleAffableBean.Info".
- Removed uses of ex.printStackTrace, replaced with log lines for debugging
- Use a CustomerForm object for placeOrder
- Ensure we preserve the licence for ScriptRunner - it has it's own licence already, we should not overwrite that.
- Added modelobject caching for Product and Category meta-data models.
- Changed source folder structure to better match gradle's expectations.
- Thanks to @tippyweb for fixes to the header, and the "Shop Again" button.
- Fixed Admin View Customer failing with JSP error
Fully Licensed and Gradled
This release has a gradle build and all license headers updated.
As such it is the first release candidate for wider use.
Notes:
- Added support for Gradle 3.5 builds and JUnit5 tests without disrupting the file layout
- Added java source files into the WAR files by default
- Adjust session timeout to 15 minutes by default
- Tidy code handling session form values on the checkout page
- Renamed the "setup" folder to the "db" folder
- Renamed WEB-INF/view to WEB-INF/jsp to be similar to WEB-INF/jspf
- Added slf4j facade logging to the service layer with slf4j-simple backing it (can easily use log4j2 or logback later)
- Fixed lingering CSS issue for category title box
- Use -Dtest.productivity=true as a JVM argument in your run configuration to stop filling in the form many times during testing
- Use proper centralized error handling through an Error Servlet, keeping the same error JSPs
- Added LICENSE.affablebean.txt to satisfy original licence requirements
- Added and applied BSD 3-clause license and grade license plugin to all files (excluding 3rd-party javascript libraries that are already licensed)
Immutable Models
Update models to remove set* methods and repaired code style.
Introducing MVVM presentation layer
All non-admin pages now use the Model-View-ViewModel (MVVM) pattern for the presentation layer.
Fixed a significant bug with connection objects leaking on placeOrder.
Properly remember form values and orderId on placeOrder errors and success.
The session is cleared when an order is placed but not invalidated.
Introducing services layer
Despite being a pass-through due to SimpleAffableBean's simple nature, this service layer provides a place for re-usable business logic to grow independently of database access. This separation will let us change databases for example in future more easily and keep business logic the same. See also: http://softwareengineering.stackexchange.com/questions/220909/service-layer-vs-dao-why-both