Status |
Proposal under development |
Target Release |
4.0 |
Original Authors |
Dave Johnson |
Abstract
Major release to modernize infrastructure with Java 5, JPA and Struts 2. Also includes new theme management and easy-install features.
Requirements
Upgrade dependencies, switch to new back-end, improve blog customization and introduce other new features.
- Introduce new ASF-license-compatible persistence framework. Replace our existing Hibernate based Roller back-end with one based on Apache OpenJPA. Drop Hibernate from the Roller distribution (but keep it in SVN until everybody has transitioned away from it).
- Upgrade to Struts 2. The Roller UI needs significant improvement and modernization and by upgrading to Struts 2 if will be easier for us to meet the higher standards that are expected of "Web 2.0" web applications.
- Introduce requirement for Java SE 5. We've been stuck on Java 1.4.2 for a long time now, there are significant improvements in Java SE 5 and the libraries that we depend on are starting to take advantage of those improvements (i.e. Struts annotations and ROME)
Issues
Issues to be considered
- Which JPA implementation should we ship with Roller 4.0? We looked at Toplink Essentials and Apache OpenJPA. Apache OpenJPA looks best and it currently the default in the Roller trunk.
Design
- New JPA based backend follows same design as old Hibernate backend
- New Struts 2 UI architecture is summarize in Allen's Struts2 Migration guide
- See individual proposals for design information.
Proposals implementsed
- Proposal_ThemeEncapsulation - Better encapsulation and modularization for themes.
- Proposal Individual Templates By Action Support a way to define individual or separate template files for various weblog page actions
- Proposal_TemplateEditorEnhancements - Improvements to usability and functionality of Preferences->Templates pages
- Proposal Stylesheet Overrides for Weblogs - a way to allow weblogs to do stylesheet customizations without having to customize their theme and hack the templates
- Proposal_FeedHistory - Add Atom-friendly feed-history (paging) support to our feeds.
- Proposal_SearchFeeds - Add support to generate feeds from search results.
- Proposal Account Activation via Email - Add support for registration via email (patch from Sedat Çiftçi)
- Proposal Easy Install - Making it really easy to install Roller, targets 4.0
- Proposal Introduce DI with Guice - Use Guice to implement Dependency Injection (DI) in Roller to make the back-end more modular, flexible and testable.
Comments
Please comment on the Roller-dev mailing list.