We have to write an administration panel for many customers. But we want to have just one administration panel, and use it in various projects.
This admin panel will have basic components such as access control logic, maker-checker system in changes, user logging and etc.
It will also have reporting for the customer, logs of transaction of the customer (which can vary according to the industry such as mobile banking, banking, ticket sales). These components may have to be modified according to the business.
So we are thinking about the architecture here, Is it OK to use jars of every basic components, and bring them together on a glue application? Or should we build each component as WARs and make interfaces between them?
If there are any more ideas, it will be appreciated.
2
It sounds like you’re looking for a plugin architecture here. a JSR-330 Dependency injection approach (e.g. That Maven and Hudson use) might be a good way forward here. Actually since you’re talking web app, you’ll want to look at the Java EE CDI std.
I don’t see a need to have them as separate WAR files communicating over RESTFul or SOAP based services, it should be a small enough app that one WAR makes sense.