Search in sources :

Example 1 with IProjectService

use of org.cerberus.crud.service.IProjectService in project cerberus-source by cerberustesting.

the class NewRelease method processRequest.

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    String charset = request.getCharacterEncoding();
    ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
    /**
     * Adding Log entry.
     */
    ILogEventService logEventService = appContext.getBean(LogEventService.class);
    logEventService.createForPublicCalls("/NewRelease", "CALL", "NewRelease called : " + request.getRequestURL(), request);
    IApplicationService MyApplicationService = appContext.getBean(ApplicationService.class);
    IUserService MyUserService = appContext.getBean(UserService.class);
    IProjectService MyProjectService = appContext.getBean(ProjectService.class);
    IBuildRevisionParametersService buildRevisionParametersService = appContext.getBean(IBuildRevisionParametersService.class);
    IFactoryBuildRevisionParameters factoryBuildRevisionParameters = appContext.getBean(IFactoryBuildRevisionParameters.class);
    // Parsing all parameters.
    String application = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("application"), "", charset);
    String release = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("release"), "", charset);
    String project = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("project"), "", charset);
    String ticket = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("ticket"), "", charset);
    String bug = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("bug"), "", charset);
    String subject = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("subject"), "", charset);
    String owner = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("owner"), "", charset);
    String link = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("link"), "", charset);
    // Those Parameters could be used later when Cerberus send the deploy request to Jenkins.
    String jenkinsbuildid = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("jenkinsbuildid"), "", charset);
    String mavengroupid = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("mavengroupid"), "", charset);
    String mavenartifactid = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("mavenartifactid"), "", charset);
    String mavenversion = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("mavenversion"), "", charset);
    String repositoryurl = ParameterParserUtil.parseStringParamAndDecodeAndSanitize(request.getParameter("repositoryurl"), "", charset);
    String helpMessage = "\nThis servlet is used to create or update a release entry in a 'NONE' build and 'NONE' revision.\n\nParameter list :\n" + "- application [mandatory] : the application that produced the release. This parameter must match the application list in Cerberus. [" + application + "]\n" + "- release : release number or svn number. This should be unique at the application level. 2 calls on the same application and release will update the other parameters on the same entry. [" + release + "]\n" + "- project : Project reference. [" + project + "]\n" + "- ticket : Ticket Reference. [" + ticket + "]\n" + "- bug : Bug reference. [" + bug + "]\n" + "- subject : A short description of the change. [" + subject + "]\n" + "- owner : User name of the developper/ person who did the commit. [" + owner + "]\n" + "- link : URL Link on detail documentation on the release. [" + link + "]\n\n" + "The following optional parameters could be used later when Cerberus send the deploy request to Jenkins.\n" + "- jenkinsbuildid : Jenkins Build ID. [" + jenkinsbuildid + "]\n" + "- mavengroupid : Maven Group ID. [" + mavengroupid + "]\n" + "- mavenartifactid : Maven Artifact ID. [" + mavenartifactid + "]\n" + "- repositoryurl : Repository URL. [" + repositoryurl + "]\n" + "- mavenversion : Maven Version. [" + mavenversion + "]\n";
    DatabaseSpring database = appContext.getBean(DatabaseSpring.class);
    Connection connection = database.connect();
    try {
        boolean error = false;
        // Checking the parameter validity. If application has been entered, does it exist ?
        if (!application.equalsIgnoreCase("") && !MyApplicationService.exist(application)) {
            out.println("Error - Application does not exist  : " + application);
            error = true;
        }
        if (application.equalsIgnoreCase("")) {
            out.println("Error - Parameter application is mandatory.");
            error = true;
        }
        // Checking the parameter validity. If owner has been entered, does it exist ?
        if (!owner.equalsIgnoreCase("")) {
            if (MyUserService.isUserExist(owner)) {
                // We get the exact name from Cerberus.
                owner = MyUserService.findUserByKey(owner).getLogin();
            } else {
                out.println("Warning - User does not exist : " + owner);
            }
        }
        // Checking the parameter validity. If project has been entered, does it exist ?
        if (!project.equalsIgnoreCase("") && !MyProjectService.exist(project)) {
            out.println("Warning - Project does not exist : " + project);
        }
        // Starting the database update only when no blocking error has been detected.
        if (error == false) {
            // In case the bugID is not defined, we try to guess it from the subject. should be between # and a space or CR.
            if (StringUtil.isNullOrEmpty(bug)) {
                String[] columns = subject.split("#");
                if (columns.length >= 2) {
                    for (int i = 1; i < columns.length; i++) {
                        String[] columnsbis = columns[i].split(" ");
                        if (columnsbis.length >= 1) {
                            if (!columnsbis[0].contains(";")) {
                                // Bug number should not include ;
                                bug = columnsbis[0];
                            }
                        }
                    }
                }
            }
            // Transaction and database update.
            // Duplicate entry Verification. On the build/relivion not yet assigned (NONE/NONE),
            // we verify that the application + release has not been submitted yet.
            // if it exist, we update it in stead of inserting a new row.
            // That correspond in the cases where the Jenkins pipe is executed several times
            // on a single svn commit.
            /**
             * Verify if the entry already exists if already exists, update
             * it else create it
             */
            AnswerItem answer = buildRevisionParametersService.readByVarious2("NONE", "NONE", release, application);
            BuildRevisionParameters buildRevisionParameters = (BuildRevisionParameters) answer.getItem();
            if (answer.getResultMessage().getCode() == new MessageEvent(MessageEventEnum.DATA_OPERATION_OK).getCode() && buildRevisionParameters != null) {
                out.println("Warning - Release entry already exist. Updating the existing entry : " + buildRevisionParameters.getId());
                if (!project.isEmpty()) {
                    buildRevisionParameters.setProject(project);
                }
                if (!ticket.isEmpty()) {
                    buildRevisionParameters.setTicketIdFixed(ticket);
                }
                if (!bug.isEmpty()) {
                    buildRevisionParameters.setBugIdFixed(bug);
                }
                if (!subject.isEmpty()) {
                    buildRevisionParameters.setSubject(subject);
                }
                if (!owner.isEmpty()) {
                    buildRevisionParameters.setReleaseOwner(owner);
                }
                if (!link.isEmpty()) {
                    buildRevisionParameters.setLink(link);
                }
                if (!jenkinsbuildid.isEmpty()) {
                    buildRevisionParameters.setJenkinsBuildId(jenkinsbuildid);
                }
                if (!mavengroupid.isEmpty()) {
                    buildRevisionParameters.setMavenGroupId(mavengroupid);
                }
                if (!mavenartifactid.isEmpty()) {
                    buildRevisionParameters.setMavenArtifactId(mavenartifactid);
                }
                if (!mavenversion.isEmpty()) {
                    buildRevisionParameters.setMavenVersion(mavenversion);
                }
                if (!repositoryurl.isEmpty()) {
                    buildRevisionParameters.setRepositoryUrl(repositoryurl);
                }
                buildRevisionParametersService.update(buildRevisionParameters);
            } else if (answer.getResultMessage().getCode() == new MessageEvent(MessageEventEnum.DATA_OPERATION_NO_DATA_FOUND).getCode()) {
                buildRevisionParametersService.create(factoryBuildRevisionParameters.create(0, "NONE", "NONE", release, application, project, ticket, bug, link, owner, subject, null, jenkinsbuildid, mavengroupid, mavenartifactid, mavenversion, repositoryurl));
                out.println("Release Inserted : '" + release + "' on '" + application + "' for user '" + owner + "'");
            } else {
                out.println("A problem occured : '" + answer.getResultMessage().getDescription());
            }
        } else {
            // In case of errors, we display the help message.
            out.println(helpMessage);
        }
    } catch (Exception e) {
        LOG.warn(Infos.getInstance().getProjectNameAndVersion() + " - Exception catched.", e);
        out.print("Error while inserting the release : ");
        out.println(e.toString());
    } finally {
        out.close();
        try {
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            LOG.warn(e.toString());
        }
    }
}
Also used : IProjectService(org.cerberus.crud.service.IProjectService) IFactoryBuildRevisionParameters(org.cerberus.crud.factory.IFactoryBuildRevisionParameters) SQLException(java.sql.SQLException) MessageEvent(org.cerberus.engine.entity.MessageEvent) Connection(java.sql.Connection) IBuildRevisionParametersService(org.cerberus.crud.service.IBuildRevisionParametersService) AnswerItem(org.cerberus.util.answer.AnswerItem) ServletException(javax.servlet.ServletException) SQLException(java.sql.SQLException) IOException(java.io.IOException) ApplicationContext(org.springframework.context.ApplicationContext) BuildRevisionParameters(org.cerberus.crud.entity.BuildRevisionParameters) IFactoryBuildRevisionParameters(org.cerberus.crud.factory.IFactoryBuildRevisionParameters) IUserService(org.cerberus.crud.service.IUserService) DatabaseSpring(org.cerberus.database.DatabaseSpring) ILogEventService(org.cerberus.crud.service.ILogEventService) IApplicationService(org.cerberus.crud.service.IApplicationService) PrintWriter(java.io.PrintWriter)

Example 2 with IProjectService

use of org.cerberus.crud.service.IProjectService in project cerberus-source by cerberustesting.

the class DeleteProject method processRequest.

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, CerberusException, JSONException {
    JSONObject jsonResponse = new JSONObject();
    Answer ans = new Answer();
    MessageEvent msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_ERROR_UNEXPECTED);
    msg.setDescription(msg.getDescription().replace("%DESCRIPTION%", ""));
    ans.setResultMessage(msg);
    PolicyFactory policy = Sanitizers.FORMATTING.and(Sanitizers.LINKS);
    response.setContentType("application/json");
    // Calling Servlet Transversal Util.
    ServletUtil.servletStart(request);
    /**
     * Parsing and securing all required parameters.
     */
    String key = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("idproject"), "");
    /**
     * Checking all constrains before calling the services.
     */
    if (StringUtil.isNullOrEmpty(key)) {
        msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_ERROR_EXPECTED);
        msg.setDescription(msg.getDescription().replace("%ITEM%", "Project").replace("%OPERATION%", "Delete").replace("%REASON%", "Project ID (idproject) is missing."));
        ans.setResultMessage(msg);
    } else {
        /**
         * All data seems cleans so we can call the services.
         */
        ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
        IProjectService projectService = appContext.getBean(IProjectService.class);
        AnswerItem resp = projectService.readByKey(key);
        if (!(resp.isCodeEquals(MessageEventEnum.DATA_OPERATION_OK.getCode()) && resp.getItem() != null)) {
            /**
             * Object could not be found. We stop here and report the error.
             */
            msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_ERROR_EXPECTED);
            msg.setDescription(msg.getDescription().replace("%ITEM%", "Project").replace("%OPERATION%", "Delete").replace("%REASON%", "Project does not exist."));
            ans.setResultMessage(msg);
        } else {
            /**
             * The service was able to perform the query and confirm the
             * object exist, then we can delete it.
             */
            Project projectData = (Project) resp.getItem();
            ans = projectService.delete(projectData);
            if (ans.isCodeEquals(MessageEventEnum.DATA_OPERATION_OK.getCode())) {
                /**
                 * Delete was successful. Adding Log entry.
                 */
                ILogEventService logEventService = appContext.getBean(LogEventService.class);
                logEventService.createForPrivateCalls("/DeleteProject", "DELETE", "Delete Project : ['" + key + "']", request);
            }
        }
    }
    /**
     * Formating and returning the json result.
     */
    jsonResponse.put("messageType", ans.getResultMessage().getMessage().getCodeString());
    jsonResponse.put("message", ans.getResultMessage().getDescription());
    response.getWriter().print(jsonResponse.toString());
    response.getWriter().flush();
}
Also used : Answer(org.cerberus.util.answer.Answer) Project(org.cerberus.crud.entity.Project) ApplicationContext(org.springframework.context.ApplicationContext) IProjectService(org.cerberus.crud.service.IProjectService) JSONObject(org.json.JSONObject) PolicyFactory(org.owasp.html.PolicyFactory) MessageEvent(org.cerberus.engine.entity.MessageEvent) ILogEventService(org.cerberus.crud.service.ILogEventService) AnswerItem(org.cerberus.util.answer.AnswerItem)

Example 3 with IProjectService

use of org.cerberus.crud.service.IProjectService in project cerberus-source by cerberustesting.

the class CreateProject method processRequest.

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 * @throws org.cerberus.exception.CerberusException
 * @throws org.json.JSONException
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, CerberusException, JSONException {
    JSONObject jsonResponse = new JSONObject();
    Answer ans = new Answer();
    MessageEvent msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_ERROR_UNEXPECTED);
    msg.setDescription(msg.getDescription().replace("%DESCRIPTION%", ""));
    ans.setResultMessage(msg);
    PolicyFactory policy = Sanitizers.FORMATTING.and(Sanitizers.LINKS);
    response.setContentType("application/json");
    // Calling Servlet Transversal Util.
    ServletUtil.servletStart(request);
    /**
     * Parsing and securing all required parameters.
     */
    String idProject = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("idProject"), "");
    String code = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("VCCode"), "");
    String description = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("Description"), "");
    String active = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("Active"), "");
    /**
     * Checking all constrains before calling the services.
     */
    if (idProject.isEmpty() || code.isEmpty()) {
        msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_ERROR_EXPECTED);
        msg.setDescription(msg.getDescription().replace("%ITEM%", "Project").replace("%OPERATION%", "Create").replace("%REASON%", "Some mendatory fields are missing!"));
        ans.setResultMessage(msg);
    } else {
        /**
         * All data seems cleans so we can call the services.
         */
        ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
        IProjectService projectService = appContext.getBean(IProjectService.class);
        IFactoryProject factoryProject = appContext.getBean(IFactoryProject.class);
        Project projectData = factoryProject.create(idProject, code, description, active, "");
        ans = projectService.create(projectData);
        if (ans.isCodeEquals(MessageEventEnum.DATA_OPERATION_OK.getCode())) {
            /**
             * Object created. Adding Log entry.
             */
            ILogEventService logEventService = appContext.getBean(LogEventService.class);
            IFactoryLogEvent factoryLogEvent = appContext.getBean(FactoryLogEvent.class);
            logEventService.createForPrivateCalls("/CreateProject", "CREATE", "Create Project : ['" + idProject + "']", request);
        }
    }
    /**
     * Formating and returning the json result.
     */
    jsonResponse.put("messageType", ans.getResultMessage().getMessage().getCodeString());
    jsonResponse.put("message", ans.getResultMessage().getDescription());
    response.getWriter().print(jsonResponse);
    response.getWriter().flush();
}
Also used : IFactoryProject(org.cerberus.crud.factory.IFactoryProject) Answer(org.cerberus.util.answer.Answer) Project(org.cerberus.crud.entity.Project) IFactoryProject(org.cerberus.crud.factory.IFactoryProject) ApplicationContext(org.springframework.context.ApplicationContext) IProjectService(org.cerberus.crud.service.IProjectService) IFactoryLogEvent(org.cerberus.crud.factory.IFactoryLogEvent) JSONObject(org.json.JSONObject) PolicyFactory(org.owasp.html.PolicyFactory) MessageEvent(org.cerberus.engine.entity.MessageEvent) ILogEventService(org.cerberus.crud.service.ILogEventService)

Example 4 with IProjectService

use of org.cerberus.crud.service.IProjectService in project cerberus-source by cerberustesting.

the class UpdateProject method processRequest.

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 * @throws org.cerberus.exception.CerberusException
 * @throws org.json.JSONException
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, CerberusException, JSONException {
    JSONObject jsonResponse = new JSONObject();
    Answer ans = new Answer();
    MessageEvent msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_ERROR_UNEXPECTED);
    msg.setDescription(msg.getDescription().replace("%DESCRIPTION%", ""));
    ans.setResultMessage(msg);
    PolicyFactory policy = Sanitizers.FORMATTING.and(LINKS);
    response.setContentType("application/json");
    // Calling Servlet Transversal Util.
    ServletUtil.servletStart(request);
    /**
     * Parsing and securing all required parameters.
     */
    String idProject = ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("idProject"), "");
    /**
     * Checking all constrains before calling the services.
     */
    if (StringUtil.isNullOrEmpty(idProject)) {
        msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_ERROR_EXPECTED);
        msg.setDescription(msg.getDescription().replace("%ITEM%", "Project").replace("%OPERATION%", "Update").replace("%REASON%", "Project ID (id Project) is missing"));
        ans.setResultMessage(msg);
    } else {
        /**
         * All data seems cleans so we can call the services.
         */
        ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
        IProjectService projectService = appContext.getBean(IProjectService.class);
        AnswerItem resp = projectService.readByKey(idProject);
        if (!(resp.isCodeEquals(MessageEventEnum.DATA_OPERATION_OK.getCode()) && resp.getItem() != null)) {
            /**
             * Object could not be found. We stop here and report the error.
             */
            msg = new MessageEvent(MessageEventEnum.DATA_OPERATION_ERROR_EXPECTED);
            msg.setDescription(msg.getDescription().replace("%ITEM%", "Project").replace("%OPERATION%", "Update").replace("%REASON%", "Project does not exist."));
            ans.setResultMessage(msg);
        } else {
            /**
             * The service was able to perform the query and confirm the
             * object exist, then we can update it.
             */
            Project projectData = (Project) resp.getItem();
            projectData.setCode(ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("VCCode"), projectData.getCode()));
            projectData.setDescription(ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("Description"), projectData.getDescription()));
            projectData.setActive(ParameterParserUtil.parseStringParamAndSanitize(request.getParameter("Active"), projectData.getActive()));
            ans = projectService.update(projectData);
            if (ans.isCodeEquals(MessageEventEnum.DATA_OPERATION_OK.getCode())) {
                /**
                 * Update was successful. Adding Log entry.
                 */
                ILogEventService logEventService = appContext.getBean(LogEventService.class);
                logEventService.createForPrivateCalls("/UpdateProject", "UPDATE", "Updated Project : ['" + idProject + "']", request);
            }
        }
    }
    /**
     * Formating and returning the json result.
     */
    jsonResponse.put("messageType", ans.getResultMessage().getMessage().getCodeString());
    jsonResponse.put("message", ans.getResultMessage().getDescription());
    response.getWriter().print(jsonResponse);
    response.getWriter().flush();
}
Also used : Answer(org.cerberus.util.answer.Answer) Project(org.cerberus.crud.entity.Project) ApplicationContext(org.springframework.context.ApplicationContext) IProjectService(org.cerberus.crud.service.IProjectService) JSONObject(org.json.JSONObject) PolicyFactory(org.owasp.html.PolicyFactory) MessageEvent(org.cerberus.engine.entity.MessageEvent) ILogEventService(org.cerberus.crud.service.ILogEventService) AnswerItem(org.cerberus.util.answer.AnswerItem)

Example 5 with IProjectService

use of org.cerberus.crud.service.IProjectService in project cerberus-source by cerberustesting.

the class ReadProject method findProjectByID.

private AnswerItem findProjectByID(String id, ApplicationContext appContext, boolean userHasPermissions) throws JSONException, CerberusException {
    AnswerItem item = new AnswerItem();
    JSONObject object = new JSONObject();
    IProjectService libService = appContext.getBean(IProjectService.class);
    // finds the project
    AnswerItem answer = libService.readByKey(id);
    if (answer.isCodeEquals(MessageEventEnum.DATA_OPERATION_OK.getCode())) {
        // if the service returns an OK message then we can get the item and convert it to JSONformat
        Project lib = (Project) answer.getItem();
        JSONObject response = convertProjectToJSONObject(lib);
        object.put("contentTable", response);
    }
    object.put("hasPermissions", userHasPermissions);
    item.setItem(object);
    item.setResultMessage(answer.getResultMessage());
    return item;
}
Also used : Project(org.cerberus.crud.entity.Project) IProjectService(org.cerberus.crud.service.IProjectService) JSONObject(org.json.JSONObject) AnswerItem(org.cerberus.util.answer.AnswerItem)

Aggregations

IProjectService (org.cerberus.crud.service.IProjectService)5 Project (org.cerberus.crud.entity.Project)4 ILogEventService (org.cerberus.crud.service.ILogEventService)4 MessageEvent (org.cerberus.engine.entity.MessageEvent)4 AnswerItem (org.cerberus.util.answer.AnswerItem)4 JSONObject (org.json.JSONObject)4 ApplicationContext (org.springframework.context.ApplicationContext)4 Answer (org.cerberus.util.answer.Answer)3 PolicyFactory (org.owasp.html.PolicyFactory)3 IOException (java.io.IOException)1 PrintWriter (java.io.PrintWriter)1 Connection (java.sql.Connection)1 SQLException (java.sql.SQLException)1 ServletException (javax.servlet.ServletException)1 BuildRevisionParameters (org.cerberus.crud.entity.BuildRevisionParameters)1 IFactoryBuildRevisionParameters (org.cerberus.crud.factory.IFactoryBuildRevisionParameters)1 IFactoryLogEvent (org.cerberus.crud.factory.IFactoryLogEvent)1 IFactoryProject (org.cerberus.crud.factory.IFactoryProject)1 IApplicationService (org.cerberus.crud.service.IApplicationService)1 IBuildRevisionParametersService (org.cerberus.crud.service.IBuildRevisionParametersService)1