Apache Isis™ is a framework to let you rapidly develop
domain-driven apps in Java. This app has been generated using Isis'
which configures Isis' most commonly used components as part of a straightforward
The app itself consists of a single domain class, ToDoItem, along with a number of supporting
services. You are free to strip it back and reuse for your own purposes.
Alternatively, if stripping back this app is too much work, you might want to start with the even simpler
simple archetype, and use this
app by way of reference.
The Isis components that are configured in this app are:
The default user/password is sven/pass (as configured in the
The key files in this "todo" app are:
- Domain classes (todo functionality) (in dom module)
- Fixture classes (in fixture module and webapp module)
- WEB-INF/web.xml (in 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 webapp module)
- isis.services - specifies the two domain services described above (ToDoItems 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 webapp module)
- configuration for JDO object store
- WEB-INF/persistor.properties (in webapp module)
- JDBC URL for JDO object store
- WEB-INF/shiro.ini (in webapp module)
- configuration for Shiro security
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.properties to specify the JDBC URL to the database you wish to work with; if necessary also update the pom.xml in the webapp module to add the JDBC driver to the classpath
- Fine-tune other RDBMS settings in persistor_datanucleus.properties
- 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