Motivation: All the servers I've developed have many of the same characteristics, though all differ in implementation.
The question is
How to engineer a full server stack in Java with the following requirements? And if it can be engineered, can it be generated?
Requirements:
- Data driven resource oriented CRUD - The data model could be a DB table/s, a class with hibernate annotation or some other industry standard. The stack should support CRUD operations.
- Industry standard end points - example: REST (Jersey 2).
- Pluggable - Enable adding additional business logic, from simply adding some info or disabling some of the CRUD operations - to cross cutting concerns, like audit, analytics, etc.
- Extensible and reusable - Enable adding new endpoints that can use generated code.
- Authorization/Authentication - Provide access control. Probably should not do full user management, but rather have some plug to connect to some auth vendor (oauth2?).
The requirements should be the basics. Anything I missed?