Tags:
API
codeBeamer Developer's GuideThis manual is intended for developers and describes concepts that you need to understand in order to use codeBeamer Web APIs to extend it using its various extension points. The Apache Tomcat®
The tomcat server configuration, e.g.
are defined in /tomcat/conf/server.xml in the codeBeamer installation directory.
The request routing and filter configuration for the codeBeamer (cb) Web Application
The context
The standard application context for codeBeamer is defined via applicationContext.xml in /tomcat/webapps/cb/WEB-INF/lib/cb.jar.
Customer specific application context enhancements can be defined via my-applicationContext.xml in /tomcat/webapps/cb/WEB-INF/classes. To add custom beans, e.g.
Depending on the type of bean, you may also have to deploy additional resources, e.g.
In order for custom beans (e.g.
Standard codeBeamer Bean typesControllersControllers are the HTTP
package com.intland.codebeamer.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseStatus; import com.intland.codebeamer.controller.ControllerUtils; import com.intland.codebeamer.controller.support.ResponseView; import com.intland.codebeamer.controller.support.RequestView; import com.intland.codebeamer.manager.TrackerManager; import com.intland.codebeamer.persistence.dto.TrackerDto; import com.intland.codebeamer.persistence.dto.UserDto; @Controller("trackerController") public class TrackerController { @Autowired private TrackerManager trackerManager; @RequestMapping(value = "/tracker", method = RequestMethod.POST) @ResponseStatus(HttpStatus.CREATED) @ResponseView public TrackerDto createTracker(HttpServletRequest request, @RequestView("TrackerDetails") TrackerDto tracker) throws AccessRightsException, ChangeVetoedException, IllegalArgumentException, ArtifactNameConflictException { UserDto user = ControllerUtils.getCurrentUser(request); trackerManager.create(user, tracker, request); return tracker; } @RequestMapping(value = "/tracker/{trackerId}", method = RequestMethod.GET) @ResponseView("TrackerDetails") public TrackerDto getTracker(HttpServletRequest request, @PathVariable("trackerId") Integer trackerId) { UserDto user = ControllerUtils.getCurrentUser(request); TrackerDto tracker = trackerManager.findById(user, trackerId); if (tracker == null) { throw new ResourceNotFoundException("/tracker/" + trackerId); } return tracker; } @RequestMapping(value = "/proj/tracker/workflowGraph.spr", method = RequestMethod.GET) public String displayTransitionsGraph(HttpServletRequest request, @RequestParam("tracker_id") Integer trackerId, Model model) throws AccessRightsException, PluginException { UserDto user = ControllerUtils.getCurrentUser(request); ... model.addAttribute("graphHtmlMarkup", result); return "/bugs/tracker/workflowGraph.jsp"; } } The first two methods are EntityControllersAn EntityControllers is a special type of controller, that is responsible for a specific type of codeBeamer entity, e.g
Typically an EntityController will convert the information from the received request into internal Data Transfer Objects (DTO) and then pass them on to the responsible EntityManager (see below).
E.g. the TrackerController shown partially above is the controller for Tracker entities, that are represented within codeBeamer as TrackerDto objects.
Data (Model) to be returned will be converted into an appropriate View, e.g.
EntityManagersAn 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.
The EntityManager is also responsible for applying proper entity access control and informing any
EntityDAOAn 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. ComponentsWe have learned about some special types of components already above:
There are a lot more:
Custom ComponentsSome of the default codeBeamer controllers and managers allow to add custom add-ons/plug-ins to extend their basic functionality:
|
Fast Links
![]() codebeamer Overview codebeamer Knowledge Base Services by Intland Software |
This website stores cookies on your computer. These cookies are used to improve your browsing experience, constantly optimize the functionality and content of our website, and help us understand your interests and provide more personalized services to you, both on this website and through other media. With your permission, we and our partners may use precise geolocation data and identification through device scanning. You may click accept to consent to our and our partners’ processing as described above. Please be aware that some processing of your personal data may not require your consent, but you have a right to object to such processing. By using our website, you acknowledge this notice of our cookie practices. By accepting and continuing to browse this site, you agree to this use. Your preferences will apply to this website only.
Note that user-behavior analytics are being captured on this server to improve the Codebeamer user experience.