Chapter 5. Red Hat Decision Manager Spring Boot configuration After you create your Spring Boot project, you can configure several components to customize your application. 5.1. Configuring REST endpoints for Spring Boot applications After you create your Spring Boot project, you can configure the host, port, and path for the REST endpoint for your Spring Boot application. Prerequisites You have a Spring Boot business application service file that you created using the Maven archetype command. For more information, see Section 3.1, "Creating a Spring Boot business application from Maven archetypes" . Procedure Navigate to the <BUSINESS-APPLICATION>/<BUSINESS-APPLICATION>-service/src/main/resources folder, where <BUSINESS-APPLICATION> is the name of your Spring Boot project. Open the application.properties file in a text editor. Configure the host, port, and path for the REST endpoints, where <ADDRESS> is the server address and <PORT> is the server port: server.address=<ADDRESS> server.port=<PORT> cxf.path=/rest The following example adds the REST endpoint to the address localhost on port 8090 . server.address=localhost server.port=8090 cxf.path=/rest 5.2. Configuring the KIE Server identity After you create your Spring Boot project, you can configure KIE Server so that it can be easily identified. Prerequisites You have a Spring Boot business application service file that you created using the Maven archetype command. For more information, see Section 3.1, "Creating a Spring Boot business application from Maven archetypes" . Procedure Navigate to the <BUSINESS-APPLICATION>/<BUSINESS-APPLICATION>-service/src/main/resources folder, where <BUSINESS-APPLICATION> is the name of your Spring Boot project. Open the application.properties file in a text editor. Configure the KIE Server parameters as shown in the following example: kieserver.serverId=<BUSINESS-APPLICATION>-service kieserver.serverName=<BUSINESS-APPLICATION>-service kieserver.location=http://localhost:8090/rest/server kieserver.controllers=http://localhost:8080/business-central/rest/controller The following table describes the KIE Server parameters that you can configure in your business project: Table 5.1. kieserver parameters Parameter Values Description kieserver.serverId string The ID used to identify the business application when connecting to the Process Automation Manager controller. kieserver.serverName string The name used to identify the business application when it connects to the Process Automation Manager controller. Can be the same string used for the kieserver.serverId parameter. kieserver.location URL Used by other components that use the REST API to identify the location of this server. Do not use the location as defined by server.address and server.port . kieserver.controllers URLs A comma-separated list of controller URLs. 5.3. Configuring KIE Server components to start at runtime If you selected Business Automation when you created your Spring Boot business application, you can specify which KIE Server components must start at runtime. Prerequisites You have a Spring Boot business application service file that you created using the Maven archetype command. For more information, see Section 3.1, "Creating a Spring Boot business application from Maven archetypes" . Procedure Navigate to the <BUSINESS-APPLICATION>/<BUSINESS-APPLICATION>-service/src/main/resources folder, where <BUSINESS-APPLICATION> is the name of your Spring Boot project. Open the application.properties file in a text editor. To set a component to start at runtime, set the value of the component to true. The following table lists the components that you can set to start at runtime: Table 5.2. kieserver capabilities parameters Parameter Values Description kieserver.drools.enabled true, false Enables or disables the Decision Manager component. kieserver.dmn.enabled true, false Enables or disables the Decision Model and Notation (DMN) component. 5.4. Configuring business application user group providers With Red Hat Decision Manager, you can manage human-centric activities. To provide integration with user and group repositories, you can use two KIE API entry points: UserGroupCallback : Responsible for verifying whether a user or group exists and for collecting groups for a specific user UserInfo : Responsible for collecting additional information about users and groups, for example email addresses and preferred language You can configure both of these components by providing alternative code, either code provided out of the box or custom developed code. For the UserGroupCallback component, retain the default implementation because it is based on the security context of the application. For this reason, it does not matter which backend store is used for authentication and authorisation (for example, RH-SSO). It will be automatically used as a source of information for collecting user and group information. The UserInfo component is a separate component because it collects more advanced information. Prerequisites You have a Spring Boot business application. Procedure To provide an alternative implementation of UserGroupCallback , add the following code to the Application class or a separate class annotated with @Configuration : @Bean(name = "userGroupCallback") public UserGroupCallback userGroupCallback(IdentityProvider identityProvider) throws IOException { return new MyCustomUserGroupCallback(identityProvider); } To provide an alternative implementation of UserInfo , add the following code to the Application class or a separate class annotated with @Configuration : @Bean(name = "userInfo") public UserInfo userInfo() throws IOException { return new MyCustomUserInfo(); } 5.5. Enabling Swagger documentation You can enable Swagger-based documentation for all endpoints available in the service project of your Red Hat Decision Manager business application. Prerequisites You have a Spring Boot business application. Procedure Navigate to the <BUSINESS-APPLICATION>/<BUSINESS-APPLICATION>-service folder, where <BUSINESS-APPLICATION> is the name of your Spring Boot project. Open the service project pom.xml file in a text editor. Add the following dependencies to the service project pom.xml file and save the file. <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-rs-service-description-swagger</artifactId> <version>3.2.6</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-jaxrs</artifactId> <version>1.5.15</version> <exclusions> <exclusion> <groupId>javax.ws.rs</groupId> <artifactId>jsr311-api</artifactId> </exclusion> </exclusions> </dependency> To enable the Swagger UI (optional), add the following dependency to the pom.xml file and save the file. <dependency> <groupId>org.webjars</groupId> <artifactId>swagger-ui</artifactId> <version>2.2.10</version> </dependency> Open the <BUSINESS-APPLICATION>/<BUSINESS-APPLICATION>-service/src/main/resources/application.properties file in a text editor. Add the following line to the application.properties file to enable Swagger support: kieserver.swagger.enabled=true After you start the business application, you can view the Swagger document at http://localhost:8090/rest/swagger.json . The complete set of endpoints is available at http://localhost:8090/rest/api-docs?url=http://localhost:8090/rest/swagger.json .

Commands:
server.address=<ADDRESS> server.port=<PORT> cxf.path=/rest
server.address=localhost server.port=8090 cxf.path=/rest
kieserver.serverId=<BUSINESS-APPLICATION>-service kieserver.serverName=<BUSINESS-APPLICATION>-service kieserver.location=http://localhost:8090/rest/server kieserver.controllers=http://localhost:8080/business-central/rest/controller
@Bean(name = "userGroupCallback") public UserGroupCallback userGroupCallback(IdentityProvider identityProvider) throws IOException { return new MyCustomUserGroupCallback(identityProvider); }
@Bean(name = "userInfo") public UserInfo userInfo() throws IOException { return new MyCustomUserInfo(); }
<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-rs-service-description-swagger</artifactId> <version>3.2.6</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-jaxrs</artifactId> <version>1.5.15</version> <exclusions> <exclusion> <groupId>javax.ws.rs</groupId> <artifactId>jsr311-api</artifactId> </exclusion> </exclusions> </dependency>
<dependency> <groupId>org.webjars</groupId> <artifactId>swagger-ui</artifactId> <version>2.2.10</version> </dependency>
kieserver.swagger.enabled=true