#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)
- Domain classes (demo audit functionality) (in dom 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 three domain services (ToDoItemsJdo, AuditServiceDemo and ToDoItemsFixtureService)
- 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.
- Decide if you require the audit service. If you don't, then remove the AuditDemoService from the isis.properties file (isis.services key). If you do, then refactor the AuditServiceDemo according to your requirements (the only requirement is that it implements org.apache.isis.objectstore.jdo.applib.AuditService)
- 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