The @ResponseView annotation will make sure, that the return value and any throw exceptions will be transformed into a proper JSON response.
The @RequestView annotation can be used, to transform the JSON request body into an internal codeBeamer entity.
Use @RequestBody get the raw JSON content.
An EntityManager is a special type of component, that is responsible for the lifecyle (create, update, delete) and retrieving of codeBeamer entities of a specific type, e.g.
UserManager is responsible for Users, User Groups and User Licenses,
ProjectManager is responsible for Projects, Project Roles and Project Members,
TrackerManager for Trackers and their configuration (Permissions, Fields, Workflow, ...)
The EntityManager is also responsible for applying proper entity access control and informing any ''Entity''Listeners about lifecyle events on their managed entity.
An EntityDAO is a special type of component, that is responsible for the persistence (create, update, delete) and retrieving of codeBeamer entities of a specific type in the database.
Data Access Objects use MyBatis to map Data Transfer Objects to Database objects (tables, rows, views, columns) and vice versa, and to create, update, delete and retrieve data in the database via JDBC.
The EntityDAO is also responsible for maintaining the application level EntityCache, which is an EHCache of the most recently used entities of that type.
Each EHCache and also the EHCacheManager is itself a component.
We have learned about some special types of components already above:
There are a lot more:
Some of the default codeBeamer controllers and managers allow to add custom add-ons/plug-ins to extend their basic functionality: