#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
This app has been generated by the quickstart (wicket/restful/jdo/shiro) archetype for
Apache Isis™, a framework to let you rapidly develop
domain-driven apps in Java.
The app consists of a bare minimum of classes, so that you can easily strip it back and
reuse for your own purposes. It is configured with:
App contents
The key files in the application are:
- Domain classes (todo functionality) (in dom module and objstore-jdo module)
- Fixture classes (in fixture module)
- WEB-INF/web.xml (in viewer-webapp module)
- AboutPageFilter - filter that redirects to this page
- ResourceCachingFilter and ResourceServlet - filter and servlet for serving up static resources.
- WicketFilter - filter for the wicket application, mapped to /wicket/*
- ResteasyBootstrap, IsisSessionFilterForRestfulObjects, RestfulObjectsRestEasyDispatcher - listeners, filters and servlets to bootstrap and map restful objects viewer to /restful/*.
- commented out IsisWebAppBootstrapper listener; this is NOT required unless wicket viewer config is removed
- WEB-INF/isis.properties (in viewer-webapp module)
- isis.services - specifies the two domain services described above (ToDoItemsJdo and ToDoItemsFixtureService), appearing on the menu bar in the Wicket viewer,
along with a number of hidden framework-provided domain services demonstrating Isis' support for publishing, auditing and customizable error handling
- isis.persistor - specifies to use the JDO object store
- isis.authentication and isis.authorization - security mechanism to use (bypass effectively disables)
- WEB-INF/persistor_datanucleus.properties (in viewer-webapp module)
- configuration for JDO object store
- WEB-INF/shiro.ini (in viewer-webapp module)
- configuration for Shiro security
Next steps
Use the following as a check-list for refactoring towards your own application:
- Experiment with users, roles and permissions (in shiro.ini)
- Refactor the ToDoItem, ToDoItems and ToDoItemsJdo towards your own application's functionality; obviously you are likely to introduce many more classes and services
- Reconfigure persistor_datanucleus.properties to specify the JDBC URL to the database you wish to work with; if necessary also update the pom.xml in the viewer-webapp module to add the JDBC driver to the classpath
- Assuming you are using a persistent data store, then remove the ToDoItemsFixtureService from the isis.properties file (isis.services key). Alternatively you could keep but refactor to provide a similar service for your own application's domain.
- Replace (or remove) the publishing and auditing service implementations.
- If you want the wicket viewer but NOT the restful objects viewer, then remove/comment out the ResteasyBootstrap, IsisSessionFilterForRestfulObjects, RestfulObjectsRestEasyDispatcher from web.xml
- If you want the restful objects viewer but NOT the wicket viewer, then remove/comment out the WicketFilter filter and uncomment the IsisWebAppBootstrapper listener in web.xml
- Update this page (about/index.html) as required for your application, and/or remove the welcome-file-list from web.xml