- Updated to Spring Framework 6.0.0-M3
- Updated to Jetty 11
- Updated to Hibernate 6.0
- Updated to Thymeleaf 3.1.0-M3
- Updated compiler settings to Java 17
The site is now running with a Java module-path rather than a class-path, with no additional "--add-opens" clauses required under Java 18.
This took far longer than expected (four years), and still required bleeding-edge versions of several dependencies to work. I even needed to patch around a bug in Thymeleaf that only occurs when running on the module path.
A couple of lessons learned from this:
- Migrating to newer Java releases is getting easier all the time.
- Migrating to modules is harder, as libraries are often not tested with the module path.
- The module system really needs a wildcard package export syntax. I import a lot of resources (web content) and having to explicitly open every sub-package is a huge pain.
- Updated to Spring Framework 5
- Updated to Hibernate 5.3
- Updated to Jetty 9.4.11
- Updated to Thymeleaf 3.0
- Updated compiler settings to Java 10
This release is all about updating to Java 10. I've been putting this off due to the large amount of changes required (mostly Java 9+).
I'm still using classpath mode (including "--add-opens java.base/java.lang=ALL-UNNAMED --illegal-access=warn" since Spring still uses cglib) -- I suspect converting to modules is going to be a lengthy process due to the number of third-party dependencies which haven't been updated with module info.
This also paves the way for future Java 11 support (since we're now two months away and counting). Hopefully since Java 11 will be an LTS release we'll see a larger push to support the Java module system within the community.
HTTP/2 support is now live!
- Updated to Spring Framework 4
- Updated to Hibernate 5
- Updated to Jetty 9.3.5
- Converted from JSP to Thymeleaf
- Updated compiler settings to Java 8
Most of these changes should be invisible to casual users. The biggest changes were made to allow the use of HTTP/2 on this site (once I switch to using HAProxy 1.6 instead of Apache as a reverse proxy).
I am currently converting a few other sites which are also hosted here to supporting HTTP/2. Once that is completed, I will be able to run the entire infrastructure over secure HTTP/2. In addition, I am testing out Docker based deployments of all the site components. More details to come.
- New feature: Gravatar avatar images on comments and article postings
- Started adding ajax calls for admin tasks -- finished comment approval / disapproval / deletion
- New Feature: Allow articles to be closed for commenting.
This should hopefully reduce the amount of time I spend cleaning up after spammers. I have started with closing comments for anything older than 30 days. This should at least let me concentrate on page 1 and not have to go back to older stuff.
- Completed migration to Spring MVC 3.2
- Converted data access to Spring Data JPA
- Updated to new randomcoder-taglibs version (supports Spring Pageable implementation)
- Built against Java 7
- Convert unit tests to JUnit 4
- Expand unit test coverage
- Update source to take advantage of Java 7 features
- Refactor data access methods and entities to minimize N+1 selects
- Finally converted security from the truly ancient ACEGI to Spring Security 3.1. The configuration is much simpler now.
- Began migration to Spring MVC 3.2; roughly one third of the controllers are complete.
- Updated to Hibernate 4.2. This is a temporary stop on the way to using JPA and Spring Data.
- Removed the old Hibernate OpenSessionInView pattern. Unfortunately this required wrapping almost all data calls with Hibernate.initialize() due to lazy collections. Another TODO...