work in progress
This commit is contained in:
parent
e460b26abb
commit
c1808d7e9b
41 changed files with 349 additions and 393 deletions
18
.github/workflows/main.yml
vendored
18
.github/workflows/main.yml
vendored
|
|
@ -4,8 +4,11 @@
|
||||||
name: Maven Package
|
name: Maven Package
|
||||||
|
|
||||||
on:
|
on:
|
||||||
release:
|
push:
|
||||||
types: [created]
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
types: [opened, synchronize, reopened]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
@ -21,6 +24,17 @@ jobs:
|
||||||
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||||
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
||||||
|
|
||||||
|
- name: Cache SonarCloud packages
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ~/.sonar/cache
|
||||||
|
key: ${{ runner.os }}-sonar
|
||||||
|
restore-keys: ${{ runner.os }}-sonar
|
||||||
|
- name: Build and analyze
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
|
||||||
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||||
|
run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=pymma_pymma-kie-platform
|
||||||
- name: Build with Maven
|
- name: Build with Maven
|
||||||
run: mvn -B package --file pom.xml
|
run: mvn -B package --file pom.xml
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -145,6 +145,12 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.vaadin</groupId>
|
<groupId>com.vaadin</groupId>
|
||||||
<artifactId>vaadin-spring-boot-starter</artifactId>
|
<artifactId>vaadin-spring-boot-starter</artifactId>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.vaadin.olli</groupId>
|
<groupId>org.vaadin.olli</groupId>
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.domain.EntityScan;
|
||||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||||
import org.springframework.boot.web.servlet.MultipartConfigFactory;
|
import org.springframework.boot.web.servlet.MultipartConfigFactory;
|
||||||
|
|
@ -20,10 +21,12 @@ import org.springframework.boot.web.servlet.ServletRegistrationBean;
|
||||||
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.PropertySource;
|
import org.springframework.context.annotation.PropertySource;
|
||||||
import org.springframework.context.event.EventListener;
|
import org.springframework.context.event.EventListener;
|
||||||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||||
|
import org.springframework.jms.annotation.EnableJms;
|
||||||
import org.springframework.jms.core.JmsTemplate;
|
import org.springframework.jms.core.JmsTemplate;
|
||||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
@ -38,13 +41,15 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
||||||
|
|
||||||
import javax.servlet.MultipartConfigElement;
|
import javax.servlet.MultipartConfigElement;
|
||||||
|
|
||||||
@Configuration
|
//@Configuration
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@EnableJpaRepositories("org.chtijbug.drools.proxy.persistence.repository")
|
@Configuration
|
||||||
|
@EnableJpaRepositories(basePackages = "org.chtijbug.drools.proxy.persistence.repository")
|
||||||
|
@ComponentScan({"org.chtijbug"})
|
||||||
|
@EntityScan("org.chtijbug.drools.proxy.persistence.model")
|
||||||
@PropertySource("classpath:application.properties")
|
@PropertySource("classpath:application.properties")
|
||||||
@EnableSwagger2
|
|
||||||
@EnableScheduling
|
|
||||||
@EnableTransactionManagement
|
@EnableTransactionManagement
|
||||||
|
@EnableJms
|
||||||
public class DroolsSpringBootConsoleApplication extends SpringBootServletInitializer {
|
public class DroolsSpringBootConsoleApplication extends SpringBootServletInitializer {
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -57,8 +62,8 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
|
||||||
private ActiveMQXAConnectionFactory connectionFactory;
|
private ActiveMQXAConnectionFactory connectionFactory;
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
//@Autowired
|
||||||
private DababaseContentUpdate dababaseContentUpdate;
|
//private DababaseContentUpdate dababaseContentUpdate;
|
||||||
@Autowired
|
@Autowired
|
||||||
private KieBusinessCentralConnector kieBusinessCentralConnector;
|
private KieBusinessCentralConnector kieBusinessCentralConnector;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
@ -83,7 +88,6 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|
||||||
public MultipartConfigElement multipartConfigElement() {
|
public MultipartConfigElement multipartConfigElement() {
|
||||||
|
|
||||||
MultipartConfigFactory factory = new MultipartConfigFactory();
|
MultipartConfigFactory factory = new MultipartConfigFactory();
|
||||||
|
|
@ -132,58 +136,7 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
|
||||||
return jmsTemplate;
|
return jmsTemplate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventListener(ApplicationReadyEvent.class)
|
|
||||||
public void initPlatform(){
|
|
||||||
dababaseContentUpdate.initDatabaseIfNecessary();
|
|
||||||
/**
|
|
||||||
for (KieWorkbench kieWorkbench: kieWorkbenchRepository.findAll()) {
|
|
||||||
Map<String, KieContainerResource> kies = new HashMap<>();
|
|
||||||
KieServerSetup kieServerSetup = kieBusinessCentralConnector.connectToBusinessCentral("nheron", "adminnheron00@", kieWorkbench.getName(),kieWorkbench.getExternalUrl());
|
|
||||||
if (kieServerSetup != null && kieServerSetup.getContainers() != null) {
|
|
||||||
for (KieContainerResource kieContainerResource : kieServerSetup.getContainers()) {
|
|
||||||
kies.put(kieContainerResource.getContainerId(), kieContainerResource);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
List<ProjectPersist> projectRepositories = projectRepository.findByKieWorkbench(kieWorkbench);
|
|
||||||
if (!projectRepositories.isEmpty()){
|
|
||||||
for (ProjectPersist projectPersist : projectRepository.findAll()) {
|
|
||||||
if (projectPersist.getServerNames().size() > 0) {
|
|
||||||
if (!kies.containsKey(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion())) {
|
|
||||||
kieBusinessCentralConnector.createContainer("nheron", "adminnheron00@", projectPersist,kieWorkbench.getExternalUrl());
|
|
||||||
} else {
|
|
||||||
kieBusinessCentralConnector.updateContainer("nheron", "adminnheron00@", projectPersist, kies.get(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion()),kieWorkbench.getExternalUrl());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
for (ProjectPersist projectPersist : projectRepository.findAll()) {
|
|
||||||
if (projectPersist.getServerNames().size() > 0) {
|
|
||||||
if (!kies.containsKey(projectPersist.getContainerID())) {
|
|
||||||
kieBusinessCentralConnector.createContainer("nheron", "adminnheron00@", projectPersist);
|
|
||||||
} else {
|
|
||||||
kieBusinessCentralConnector.updateContainer("nheron", "adminnheron00@", projectPersist, kies.get(projectPersist.getContainerID()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ServerInstanceKeyList serverInstanceKeyList = kieBusinessCentralConnector.getListInstances("nheron", "adminnheron00@");
|
|
||||||
if (serverInstanceKeyList != null) {
|
|
||||||
for (ServerInstanceKey serverInstanceKey : serverInstanceKeyList.getServerInstanceKeys()) {
|
|
||||||
String serverInstanceId = serverInstanceKey.getServerInstanceId();
|
|
||||||
ContainerList containerList = kieBusinessCentralConnector.getListContainers("nheron", "adminnheron00@", serverInstanceId);
|
|
||||||
System.out.println("coucou");
|
|
||||||
for (Container container : containerList.getContainers()) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
System.out.println("coucou");
|
|
||||||
}
|
|
||||||
System.out.println("coucou");
|
|
||||||
|
|
||||||
}
|
|
||||||
**/
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public Docket api() {
|
public Docket api() {
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@ import org.drools.workbench.models.guided.template.backend.RuleTemplateModelXMLP
|
||||||
import org.drools.workbench.models.guided.template.shared.TemplateModel;
|
import org.drools.workbench.models.guided.template.shared.TemplateModel;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||||
|
import org.springframework.context.event.EventListener;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
|
@ -248,5 +250,56 @@ public class DababaseContentUpdate {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@EventListener(ApplicationReadyEvent.class)
|
||||||
|
public void initPlatform(){
|
||||||
|
this.initDatabaseIfNecessary();
|
||||||
|
/**
|
||||||
|
for (KieWorkbench kieWorkbench: kieWorkbenchRepository.findAll()) {
|
||||||
|
Map<String, KieContainerResource> kies = new HashMap<>();
|
||||||
|
KieServerSetup kieServerSetup = kieBusinessCentralConnector.connectToBusinessCentral("nheron", "adminnheron00@", kieWorkbench.getName(),kieWorkbench.getExternalUrl());
|
||||||
|
if (kieServerSetup != null && kieServerSetup.getContainers() != null) {
|
||||||
|
for (KieContainerResource kieContainerResource : kieServerSetup.getContainers()) {
|
||||||
|
kies.put(kieContainerResource.getContainerId(), kieContainerResource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<ProjectPersist> projectRepositories = projectRepository.findByKieWorkbench(kieWorkbench);
|
||||||
|
if (!projectRepositories.isEmpty()){
|
||||||
|
for (ProjectPersist projectPersist : projectRepository.findAll()) {
|
||||||
|
if (projectPersist.getServerNames().size() > 0) {
|
||||||
|
if (!kies.containsKey(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion())) {
|
||||||
|
kieBusinessCentralConnector.createContainer("nheron", "adminnheron00@", projectPersist,kieWorkbench.getExternalUrl());
|
||||||
|
} else {
|
||||||
|
kieBusinessCentralConnector.updateContainer("nheron", "adminnheron00@", projectPersist, kies.get(projectPersist.getArtifactID()+"_"+projectPersist.getProjectVersion()),kieWorkbench.getExternalUrl());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
for (ProjectPersist projectPersist : projectRepository.findAll()) {
|
||||||
|
if (projectPersist.getServerNames().size() > 0) {
|
||||||
|
if (!kies.containsKey(projectPersist.getContainerID())) {
|
||||||
|
kieBusinessCentralConnector.createContainer("nheron", "adminnheron00@", projectPersist);
|
||||||
|
} else {
|
||||||
|
kieBusinessCentralConnector.updateContainer("nheron", "adminnheron00@", projectPersist, kies.get(projectPersist.getContainerID()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ServerInstanceKeyList serverInstanceKeyList = kieBusinessCentralConnector.getListInstances("nheron", "adminnheron00@");
|
||||||
|
if (serverInstanceKeyList != null) {
|
||||||
|
for (ServerInstanceKey serverInstanceKey : serverInstanceKeyList.getServerInstanceKeys()) {
|
||||||
|
String serverInstanceId = serverInstanceKey.getServerInstanceId();
|
||||||
|
ContainerList containerList = kieBusinessCentralConnector.getListContainers("nheron", "adminnheron00@", serverInstanceId);
|
||||||
|
System.out.println("coucou");
|
||||||
|
for (Container container : containerList.getContainers()) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
System.out.println("coucou");
|
||||||
|
}
|
||||||
|
System.out.println("coucou");
|
||||||
|
|
||||||
|
}
|
||||||
|
**/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,9 @@ import org.chtijbug.guvnor.server.jaxrs.model.WorkspaceAuthData;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||||
import org.springframework.context.annotation.DependsOn;
|
import org.springframework.context.annotation.DependsOn;
|
||||||
|
import org.springframework.context.event.EventListener;
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.HttpMethod;
|
import org.springframework.http.HttpMethod;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
|
|
|
||||||
|
|
@ -11,13 +11,13 @@ org.kie.server.controller=${PYMMA_KIE_CONTROLLER:http://localhost:18080/kie-wb/r
|
||||||
org.kie.server.location=${PYMMA_KIE_LOCATION:http://localhost:8200/api/server}
|
org.kie.server.location=${PYMMA_KIE_LOCATION:http://localhost:8200/api/server}
|
||||||
org.kie.server.id=${PYMMA_KIE_SERVER_ID:pymmaConsole2}
|
org.kie.server.id=${PYMMA_KIE_SERVER_ID:pymmaConsole2}
|
||||||
|
|
||||||
|
almady.jms.url=tcp://localhost:1617
|
||||||
spring.datasource.driver-class-name=org.postgresql.Driver
|
spring.datasource.driver-class-name=org.postgresql.Driver
|
||||||
spring.datasource.url=${PYMMA_DATABASE_URL:jdbc:postgresql://localhost:12432/kiedev}
|
spring.datasource.url=${PYMMA_DATABASE_URL:jdbc:postgresql://localhost:12432/kiedev}
|
||||||
almady.jms.url=tcp://localhost:1617
|
spring.jpa.properties.hibernate.dialect= org.chtijbug.drools.proxy.persistence.dialect.JSONBPostgreSQLDialect
|
||||||
spring.datasource.username=${PYMMA_DATABASE_USER:kiedev}
|
spring.datasource.username=${PYMMA_DATABASE_USER:kiedev}
|
||||||
spring.datasource.password=${PYMMA_DATABASE_PASSWORD:kiedev}
|
spring.datasource.password=${PYMMA_DATABASE_PASSWORD:kiedev}
|
||||||
|
spring.jpa.hibernate.ddl-auto=update
|
||||||
spring.servlet.multipart.enabled=false
|
spring.servlet.multipart.enabled=false
|
||||||
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}
|
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}
|
||||||
|
|
||||||
|
|
@ -36,6 +36,6 @@ spring.servlet.multipart.max-request-size=100MB
|
||||||
# Server properties
|
# Server properties
|
||||||
server.tomcat.max-http-post-size=100000000
|
server.tomcat.max-http-post-size=100000000
|
||||||
server.tomcat.max-swallow-size=100MB
|
server.tomcat.max-swallow-size=100MB
|
||||||
|
spring.mvc.pathmatch.matching-strategy = ANT_PATH_MATCHER
|
||||||
|
springfox.documentation.auto-startup= false
|
||||||
secretkey=eRaYY7Wo24sDqKSX3IM9ASGmdGPmkTd9jo1QTy4b7P9Ze5_9hKolVX8xNrQDcNRfVEdTZNOuOyqEGhXEbdJI-ZQ19k_o9MI0y3eZN2lp9jow55FfXMiINEdt1XR85VipRLSOkT6kSpzs2x-jbLDiz9iFVzkd81YKxMgPA7VfZeQUm4n-mOmnWMaVX30zGFU4L3oPBctYKkl4dYfqYWqRNfrgPJVi5DGFjywgxx0ASEiJHtV72paI3fDR2XwlSkyhhmY-ICjCRmsJN4fX1pdoL8a18-aQrvyu4j0Os6dVPYIoPvvY0SAZtWYKHfM15g7A3HD4cVREf9cUsprCRK93w
|
secretkey=eRaYY7Wo24sDqKSX3IM9ASGmdGPmkTd9jo1QTy4b7P9Ze5_9hKolVX8xNrQDcNRfVEdTZNOuOyqEGhXEbdJI-ZQ19k_o9MI0y3eZN2lp9jow55FfXMiINEdt1XR85VipRLSOkT6kSpzs2x-jbLDiz9iFVzkd81YKxMgPA7VfZeQUm4n-mOmnWMaVX30zGFU4L3oPBctYKkl4dYfqYWqRNfrgPJVi5DGFjywgxx0ASEiJHtV72paI3fDR2XwlSkyhhmY-ICjCRmsJN4fX1pdoL8a18-aQrvyu4j0Os6dVPYIoPvvY0SAZtWYKHfM15g7A3HD4cVREf9cUsprCRK93w
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
package org.chtijbug.drools.console.dto;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class VariableDataList {
|
||||||
|
private List<VariableData> rows = new ArrayList<>();
|
||||||
|
|
||||||
|
public List<VariableData> getRows() {
|
||||||
|
return rows;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRows(List<VariableData> rows) {
|
||||||
|
this.rows = rows;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package org.chtijbug.drools.console.dto;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class VariableDefinitionList {
|
||||||
|
private List<VariableDefinition> variables = new ArrayList<>();
|
||||||
|
|
||||||
|
public List<VariableDefinition> getVariables() {
|
||||||
|
return variables;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVariables(List<VariableDefinition> variables) {
|
||||||
|
this.variables = variables;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -38,6 +38,11 @@
|
||||||
<artifactId>joda-time</artifactId>
|
<artifactId>joda-time</artifactId>
|
||||||
<version>1.6.2</version>
|
<version>1.6.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.xml.bind</groupId>
|
||||||
|
<artifactId>jaxb-api</artifactId>
|
||||||
|
<version>${jaxb.api.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
package org.chtijbug.drools;
|
package org.chtijbug.drools;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by nheron on 07/07/2016.
|
* Created by nheron on 07/07/2016.
|
||||||
*/
|
*/
|
||||||
public class ChtijbugObjectRequest {
|
public class ChtijbugObjectRequest implements Serializable {
|
||||||
|
|
||||||
|
|
||||||
private String transactionID;
|
private String transactionID;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package org.chtijbug.drools.jms;
|
||||||
|
|
||||||
|
import org.chtijbug.drools.ChtijbugObjectRequest;
|
||||||
|
import org.springframework.jms.core.MessageCreator;
|
||||||
|
|
||||||
|
import javax.jms.JMSException;
|
||||||
|
import javax.jms.Message;
|
||||||
|
import javax.jms.ObjectMessage;
|
||||||
|
import javax.jms.Session;
|
||||||
|
|
||||||
|
public class ChtijbugObjectRequestMessageCreator implements MessageCreator {
|
||||||
|
|
||||||
|
private ChtijbugObjectRequest chtijbugObjectRequest;
|
||||||
|
|
||||||
|
public ChtijbugObjectRequestMessageCreator(ChtijbugObjectRequest chtijbugObjectRequest) {
|
||||||
|
this.chtijbugObjectRequest = chtijbugObjectRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Message createMessage(Session session) throws JMSException {
|
||||||
|
ObjectMessage objectMessage = session.createObjectMessage();
|
||||||
|
objectMessage.setObject(chtijbugObjectRequest);
|
||||||
|
return objectMessage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -19,7 +19,6 @@ public class ReverseProxyMessageCreator implements MessageCreator {
|
||||||
@Override
|
@Override
|
||||||
public Message createMessage(Session session) throws JMSException {
|
public Message createMessage(Session session) throws JMSException {
|
||||||
ObjectMessage objectMessage = session.createObjectMessage();
|
ObjectMessage objectMessage = session.createObjectMessage();
|
||||||
|
|
||||||
objectMessage.setObject(reverseProxyUpdate);
|
objectMessage.setObject(reverseProxyUpdate);
|
||||||
return objectMessage;
|
return objectMessage;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,18 +40,6 @@
|
||||||
<artifactId>activemq-broker</artifactId>
|
<artifactId>activemq-broker</artifactId>
|
||||||
<version>${activemq.version}</version>
|
<version>${activemq.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.kafka</groupId>
|
|
||||||
<artifactId>spring-kafka</artifactId>
|
|
||||||
<version>${kafka.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<!-- kie-server -->
|
|
||||||
<!--dependency>
|
|
||||||
<groupId>com.fasterxml.jackson.core</groupId>
|
|
||||||
<artifactId>jackson-databind</artifactId>
|
|
||||||
<version>2.9.7</version>
|
|
||||||
</dependency-->
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||||
|
|
|
||||||
|
|
@ -16,34 +16,30 @@
|
||||||
*/
|
*/
|
||||||
package org.chtijbug.drools.indexer;
|
package org.chtijbug.drools.indexer;
|
||||||
|
|
||||||
import org.apache.activemq.ActiveMQXAConnectionFactory;
|
import org.apache.activemq.ActiveMQXAConnectionFactory;;
|
||||||
import org.apache.kafka.clients.CommonClientConfigs;
|
|
||||||
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
|
||||||
import org.apache.kafka.common.config.SslConfigs;
|
|
||||||
import org.apache.kafka.common.security.auth.SecurityProtocol;
|
|
||||||
import org.apache.kafka.common.serialization.StringDeserializer;
|
|
||||||
import org.chtijbug.drools.ChtijbugObjectRequest;
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.domain.EntityScan;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.PropertySource;
|
||||||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||||
|
import org.springframework.jms.annotation.EnableJms;
|
||||||
|
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
|
||||||
import org.springframework.jms.core.JmsTemplate;
|
import org.springframework.jms.core.JmsTemplate;
|
||||||
import org.springframework.kafka.annotation.EnableKafka;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;
|
|
||||||
import org.springframework.kafka.core.ConsumerFactory;
|
|
||||||
import org.springframework.kafka.core.DefaultKafkaConsumerFactory;
|
|
||||||
import org.springframework.kafka.support.serializer.JsonDeserializer;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
// CHECKSTYLE:OFF
|
// CHECKSTYLE:OFF
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableJpaRepositories(basePackages = "org.chtijbug.drools.proxy.persistence.repository")
|
@EnableJpaRepositories(basePackages = "org.chtijbug.drools.proxy.persistence.repository")
|
||||||
|
@ComponentScan({"org.chtijbug"})
|
||||||
|
@EntityScan("org.chtijbug.drools.proxy.persistence.model")
|
||||||
|
@PropertySource("classpath:application.properties")
|
||||||
|
@EnableTransactionManagement
|
||||||
|
@EnableJms
|
||||||
public class DroolsBusinessIndexerServer {
|
public class DroolsBusinessIndexerServer {
|
||||||
public final static String LOGING_TOPIC ="logging";
|
public final static String LOGING_TOPIC ="logging";
|
||||||
|
|
||||||
|
|
@ -52,6 +48,18 @@ public class DroolsBusinessIndexerServer {
|
||||||
private JmsTemplate jmsTemplate;
|
private JmsTemplate jmsTemplate;
|
||||||
private ActiveMQXAConnectionFactory connectionFactory;
|
private ActiveMQXAConnectionFactory connectionFactory;
|
||||||
|
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
|
||||||
|
connectionFactory = new ActiveMQXAConnectionFactory(jmsUrl);
|
||||||
|
connectionFactory.setTrustAllPackages(true);
|
||||||
|
connectionFactory.setAlwaysSyncSend(true);
|
||||||
|
connectionFactory.setProducerWindowSize(1024000);
|
||||||
|
DefaultJmsListenerContainerFactory factory
|
||||||
|
= new DefaultJmsListenerContainerFactory();
|
||||||
|
factory.setConnectionFactory(connectionFactory);
|
||||||
|
return factory;
|
||||||
|
}
|
||||||
@Bean(name = "jmsTemplate")
|
@Bean(name = "jmsTemplate")
|
||||||
JmsTemplate createJmsTemplate() {
|
JmsTemplate createJmsTemplate() {
|
||||||
connectionFactory = new ActiveMQXAConnectionFactory(jmsUrl);
|
connectionFactory = new ActiveMQXAConnectionFactory(jmsUrl);
|
||||||
|
|
@ -65,7 +73,6 @@ public class DroolsBusinessIndexerServer {
|
||||||
* Main method to start the application.
|
* Main method to start the application.
|
||||||
*/
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
System.setProperty(ConsumerConfig.FETCH_MAX_BYTES_CONFIG, "41943040");
|
|
||||||
SpringApplication.run(DroolsBusinessIndexerServer.class, args);
|
SpringApplication.run(DroolsBusinessIndexerServer.class, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.jms.annotation.JmsListener;
|
import org.springframework.jms.annotation.JmsListener;
|
||||||
import org.springframework.kafka.annotation.KafkaListener;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -30,7 +29,7 @@ public class StoreLoggingService {
|
||||||
private BusinessTransactionActionRepository actionRepository;
|
private BusinessTransactionActionRepository actionRepository;
|
||||||
|
|
||||||
|
|
||||||
@JmsListener(destination = KafkaTopicConstants.LOGING_TOPIC)
|
@JmsListener(destination = KafkaTopicConstants.LOGING_TOPIC,containerFactory = "jmsListenerContainerFactory")
|
||||||
public void store(ChtijbugObjectRequest result) {
|
public void store(ChtijbugObjectRequest result) {
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,14 @@
|
||||||
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}
|
server.port=${port:5547}
|
||||||
|
|
||||||
kieserver.login=${PYMMA_KIE_SERVEUR_LOGIN:kieserver}
|
kieserver.login=${PYMMA_KIE_SERVEUR_LOGIN:kieserver}
|
||||||
kieserver.password=${PYMMA_KIE_SERVEUR_PASSWORD:kieserver1}
|
kieserver.password=${PYMMA_KIE_SERVEUR_PASSWORD:kieserver1}
|
||||||
|
|
||||||
spring.datasource.driver-class-name=org.postgresql.Driver
|
|
||||||
spring.datasource.url=${PYMMA_DATABASE_URL:jdbc:postgresql://localhost:12432/kiedev}
|
|
||||||
almady.jms.url=tcp://localhost:1617
|
almady.jms.url=tcp://localhost:1617
|
||||||
|
|
||||||
|
spring.datasource.url=${PYMMA_DATABASE_URL:jdbc:postgresql://localhost:12432/kiedev}
|
||||||
|
|
||||||
spring.datasource.username=${PYMMA_DATABASE_USER:kiedev}
|
spring.datasource.username=${PYMMA_DATABASE_USER:kiedev}
|
||||||
spring.datasource.password=${PYMMA_DATABASE_PASSWORD:kiedev}
|
spring.datasource.password=${PYMMA_DATABASE_PASSWORD:kiedev}
|
||||||
|
spring.jpa.properties.hibernate.dialect= org.chtijbug.drools.proxy.persistence.dialect.JSONBPostgreSQLDialect
|
||||||
|
spring.jpa.hibernate.ddl-auto=update
|
||||||
|
|
||||||
server.port=${port:5547}
|
|
||||||
|
|
||||||
pymma.kafka.activateSsl=${PYMMA_KAFKA_ACTIVATE_SSL:false}
|
|
||||||
pymma.kafka.sslTruststoreLocation=${PYMMA_KAFKA_SSL_TRUSTSTORE_LOCATION:}
|
|
||||||
pymma.kafka.sslTruststorePassword=${PYMMA_KAFKA_SSL_TRUSTSTORE_PASSWORD:}
|
|
||||||
pymma.kafka.sslKeyPassword=${PYMMA_KAFKA_KEY_PASSWORD:}
|
|
||||||
pymma.kafka.sslKeystorePassword=${PYMMA_KAFKA_SSL_KEYSTORE_PASSWORD:}
|
|
||||||
pymma.kafka.sslKeystoreLocation=${PYMMA_KAFKA_SSL_KEYSTORE_LOCATION:}
|
|
||||||
pymma.kafka.sslKeystoreType=${PYMMA_KAFKA_SSL_KEYSTORE_TYPE:}
|
|
||||||
|
|
@ -115,12 +115,21 @@
|
||||||
<artifactId>camel-test</artifactId>
|
<artifactId>camel-test</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.kafka</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
<artifactId>spring-kafka</artifactId>
|
<artifactId>spring-jms</artifactId>
|
||||||
<version>${kafka.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.activemq</groupId>
|
||||||
|
<artifactId>activemq-client</artifactId>
|
||||||
|
<version>${activemq.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.activemq</groupId>
|
||||||
|
<artifactId>activemq-broker</artifactId>
|
||||||
|
<version>${activemq.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- kie-server -->
|
<!-- kie-server -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.pymmasoftware.jbpm</groupId>
|
<groupId>com.pymmasoftware.jbpm</groupId>
|
||||||
|
|
|
||||||
|
|
@ -16,164 +16,52 @@
|
||||||
*/
|
*/
|
||||||
package org.chtijbug.drools.proxy;
|
package org.chtijbug.drools.proxy;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import org.apache.activemq.ActiveMQXAConnectionFactory;
|
||||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
|
||||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
|
||||||
import org.apache.kafka.clients.CommonClientConfigs;
|
|
||||||
import org.apache.kafka.clients.admin.AdminClientConfig;
|
|
||||||
import org.apache.kafka.clients.admin.NewTopic;
|
|
||||||
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
|
||||||
import org.apache.kafka.clients.producer.ProducerConfig;
|
|
||||||
import org.apache.kafka.common.config.SslConfigs;
|
|
||||||
import org.apache.kafka.common.security.auth.SecurityProtocol;
|
|
||||||
import org.apache.kafka.common.serialization.StringSerializer;
|
|
||||||
import org.chtijbug.drools.ChtijbugObjectRequest;
|
|
||||||
import org.chtijbug.drools.KieContainerResponse;
|
|
||||||
import org.chtijbug.drools.common.KafkaTopicConstants;
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.domain.EntityScan;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.kafka.annotation.EnableKafka;
|
import org.springframework.context.annotation.PropertySource;
|
||||||
import org.springframework.kafka.core.DefaultKafkaProducerFactory;
|
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||||
import org.springframework.kafka.core.KafkaAdmin;
|
import org.springframework.jms.annotation.EnableJms;
|
||||||
import org.springframework.kafka.core.KafkaTemplate;
|
import org.springframework.jms.core.JmsTemplate;
|
||||||
import org.springframework.kafka.core.ProducerFactory;
|
|
||||||
import org.springframework.kafka.support.serializer.JsonSerializer;
|
|
||||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
// CHECKSTYLE:OFF
|
// CHECKSTYLE:OFF
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableKafka
|
|
||||||
@EnableScheduling
|
@EnableScheduling
|
||||||
|
@EnableJpaRepositories(basePackages = "org.chtijbug.drools.proxy.persistence.repository")
|
||||||
|
@ComponentScan({"org.chtijbug"})
|
||||||
|
@EntityScan("org.chtijbug.drools.proxy.persistence.model")
|
||||||
|
@PropertySource("classpath:application.properties")
|
||||||
|
@EnableTransactionManagement
|
||||||
|
@EnableJms
|
||||||
public class DroolsBusinessProxyServer {
|
public class DroolsBusinessProxyServer {
|
||||||
|
|
||||||
@Value(value = "${org.kie.server.id}")
|
|
||||||
private String groupID;
|
|
||||||
|
|
||||||
@Value(value = "${kafka.bootstrapAddress}")
|
|
||||||
private String bootstrapAddress;
|
|
||||||
|
|
||||||
@Value("${pymma.kafka.activateSsl:false}")
|
|
||||||
private boolean activateSsl;
|
|
||||||
|
|
||||||
@Value("${pymma.kafka.sslTruststoreLocation:}")
|
|
||||||
private String sslTruststoreLocation;
|
|
||||||
|
|
||||||
@Value("${pymma.kafka.sslTruststorePassword:}")
|
|
||||||
private String sslTruststorePassword;
|
|
||||||
|
|
||||||
@Value("${pymma.kafka.sslKeyPassword:}")
|
|
||||||
private String sslKeyPassword;
|
|
||||||
|
|
||||||
@Value("${pymma.kafka.sslKeystorePassword:}")
|
|
||||||
private String sslKeystorePassword;
|
|
||||||
|
|
||||||
@Value("${pymma.kafka.sslKeystoreLocation:}")
|
|
||||||
private String sslKeystoreLocation;
|
|
||||||
|
|
||||||
@Value("${pymma.kafka.sslKeystoreType:}")
|
|
||||||
private String sslKeystoreType;
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public KafkaAdmin kafkaAdmin() {
|
|
||||||
Map<String, Object> configs = new HashMap<>();
|
|
||||||
configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
|
|
||||||
if (activateSsl) {
|
|
||||||
configs.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SSL.name);
|
|
||||||
configs.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.sslTruststoreLocation);
|
|
||||||
configs.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.sslTruststorePassword);
|
|
||||||
configs.put(SslConfigs.SSL_KEY_PASSWORD_CONFIG, this.sslKeyPassword);
|
|
||||||
configs.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.sslKeystorePassword);
|
|
||||||
configs.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.sslKeystoreLocation);
|
|
||||||
configs.put(SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, this.sslKeystoreType);
|
|
||||||
}
|
|
||||||
return new KafkaAdmin(configs);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public NewTopic loggingTopic() {
|
|
||||||
return new NewTopic(KafkaTopicConstants.LOGING_TOPIC, 1, (short) 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
@Value("${almady.jms.url}")
|
||||||
@Bean
|
private String jmsUrl;
|
||||||
public ProducerFactory<String, ChtijbugObjectRequest> producerFactory() {
|
private JmsTemplate jmsTemplate;
|
||||||
Map<String, Object> configProps = new HashMap<>();
|
private ActiveMQXAConnectionFactory connectionFactory;
|
||||||
configProps.put(
|
|
||||||
ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,
|
|
||||||
bootstrapAddress);
|
|
||||||
configProps.put(
|
|
||||||
ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,
|
|
||||||
StringSerializer.class);
|
|
||||||
configProps.put(
|
|
||||||
ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,
|
|
||||||
JsonSerializer.class);
|
|
||||||
configProps.put(
|
|
||||||
ProducerConfig.MAX_REQUEST_SIZE_CONFIG, 41943040);
|
|
||||||
|
|
||||||
if (activateSsl) {
|
|
||||||
configProps.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SSL.name);
|
|
||||||
configProps.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.sslTruststoreLocation);
|
|
||||||
configProps.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.sslTruststorePassword);
|
|
||||||
configProps.put(SslConfigs.SSL_KEY_PASSWORD_CONFIG, this.sslKeyPassword);
|
|
||||||
configProps.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.sslKeystorePassword);
|
|
||||||
configProps.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.sslKeystoreLocation);
|
|
||||||
configProps.put(SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, this.sslKeystoreType);
|
|
||||||
}
|
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
|
||||||
objectMapper.registerModule(new JavaTimeModule());
|
|
||||||
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
|
||||||
new DefaultKafkaProducerFactory<>(configProps, new StringSerializer(), new JsonSerializer<>(objectMapper));
|
|
||||||
return new DefaultKafkaProducerFactory<>(configProps);
|
|
||||||
}
|
|
||||||
@Bean
|
|
||||||
public ProducerFactory<String, KieContainerResponse> producerKieContainerResponseactory() {
|
|
||||||
Map<String, Object> configProps = new HashMap<>();
|
|
||||||
configProps.put(
|
|
||||||
ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,
|
|
||||||
bootstrapAddress);
|
|
||||||
configProps.put(
|
|
||||||
ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,
|
|
||||||
StringSerializer.class);
|
|
||||||
configProps.put(
|
|
||||||
ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,
|
|
||||||
JsonSerializer.class);
|
|
||||||
configProps.put(
|
|
||||||
ProducerConfig.MAX_REQUEST_SIZE_CONFIG,"41943040");
|
|
||||||
if (activateSsl) {
|
|
||||||
configProps.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SSL.name);
|
|
||||||
configProps.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.sslTruststoreLocation);
|
|
||||||
configProps.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.sslTruststorePassword);
|
|
||||||
configProps.put(SslConfigs.SSL_KEY_PASSWORD_CONFIG, this.sslKeyPassword);
|
|
||||||
configProps.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.sslKeystorePassword);
|
|
||||||
configProps.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.sslKeystoreLocation);
|
|
||||||
configProps.put(SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, this.sslKeystoreType);
|
|
||||||
}
|
|
||||||
DefaultKafkaProducerFactory<String, KieContainerResponse> producer = new DefaultKafkaProducerFactory<>(configProps);
|
|
||||||
producer.transactionCapable();
|
|
||||||
producer.setTransactionIdPrefix("trans");
|
|
||||||
return producer;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name="deployFinish")
|
|
||||||
public NewTopic actionDeployResponseTopic() {
|
|
||||||
return new NewTopic(KafkaTopicConstants.RESPONSE_DEPLOY_TOPIC, 1, (short) 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
@Bean(name = "jmsTemplate")
|
||||||
@Bean
|
JmsTemplate createJmsTemplate() {
|
||||||
public KafkaTemplate<String, ChtijbugObjectRequest> kafkaTemplate() {
|
connectionFactory = new ActiveMQXAConnectionFactory(jmsUrl);
|
||||||
return new KafkaTemplate<>(producerFactory());
|
connectionFactory.setTrustAllPackages(true);
|
||||||
|
connectionFactory.setAlwaysSyncSend(true);
|
||||||
|
connectionFactory.setProducerWindowSize(1024000);
|
||||||
|
jmsTemplate = new JmsTemplate(connectionFactory);
|
||||||
|
return jmsTemplate;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -190,7 +78,7 @@ public class DroolsBusinessProxyServer {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.setProperty(ConsumerConfig.FETCH_MAX_BYTES_CONFIG, "41943040");
|
|
||||||
SpringApplication.run(DroolsBusinessProxyServer.class, args);
|
SpringApplication.run(DroolsBusinessProxyServer.class, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@ package org.chtijbug.drools.proxy.service;
|
||||||
|
|
||||||
import org.apache.camel.CamelContext;
|
import org.apache.camel.CamelContext;
|
||||||
import org.apache.camel.Route;
|
import org.apache.camel.Route;
|
||||||
import org.apache.kafka.clients.admin.NewTopic;
|
|
||||||
import org.chtijbug.drools.proxy.PlatfomKieServerStateRepository;
|
import org.chtijbug.drools.proxy.PlatfomKieServerStateRepository;
|
||||||
import org.chtijbug.drools.proxy.camel.DroolsRouter;
|
import org.chtijbug.drools.proxy.camel.DroolsRouter;
|
||||||
import org.chtijbug.drools.proxy.persistence.model.ContainerPojoPersist;
|
import org.chtijbug.drools.proxy.persistence.model.ContainerPojoPersist;
|
||||||
|
|
@ -94,9 +93,7 @@ public class KieServiceCommon {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Qualifier("deployFinish")
|
|
||||||
@Autowired
|
|
||||||
NewTopic responseTopic;
|
|
||||||
|
|
||||||
public KieServiceCommon() {
|
public KieServiceCommon() {
|
||||||
//Needed
|
//Needed
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,14 @@ package org.chtijbug.drools.proxy.service;
|
||||||
|
|
||||||
import org.chtijbug.drools.ChtijbugObjectRequest;
|
import org.chtijbug.drools.ChtijbugObjectRequest;
|
||||||
import org.chtijbug.drools.common.KafkaTopicConstants;
|
import org.chtijbug.drools.common.KafkaTopicConstants;
|
||||||
|
import org.chtijbug.drools.jms.ChtijbugObjectRequestMessageCreator;
|
||||||
|
import org.chtijbug.drools.jms.ReverseProxyMessageCreator;
|
||||||
import org.chtijbug.drools.kieserver.extension.KieServerAddOnElement;
|
import org.chtijbug.drools.kieserver.extension.KieServerAddOnElement;
|
||||||
import org.chtijbug.drools.kieserver.extension.KieServerLoggingDefinition;
|
import org.chtijbug.drools.kieserver.extension.KieServerLoggingDefinition;
|
||||||
import org.kie.server.services.api.KieContainerInstance;
|
import org.kie.server.services.api.KieContainerInstance;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.kafka.core.KafkaTemplate;
|
import org.springframework.jms.core.JmsTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
@ -21,7 +23,7 @@ public class RuleService {
|
||||||
private KieServiceCommon kieServiceCommon;
|
private KieServiceCommon kieServiceCommon;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private KafkaTemplate<String, ChtijbugObjectRequest> kafkaTemplateLogging;
|
private JmsTemplate jmsTemplate;
|
||||||
|
|
||||||
public RuleService() {
|
public RuleService() {
|
||||||
logger.info("Rule Service created");
|
logger.info("Rule Service created");
|
||||||
|
|
@ -58,7 +60,7 @@ public class RuleService {
|
||||||
}
|
}
|
||||||
chtijbugObjectRequest.setTransactionEndTimeStamp(LocalDateTime.now());
|
chtijbugObjectRequest.setTransactionEndTimeStamp(LocalDateTime.now());
|
||||||
try {
|
try {
|
||||||
kafkaTemplateLogging.send(KafkaTopicConstants.LOGING_TOPIC,chtijbugObjectRequest);
|
jmsTemplate.send(KafkaTopicConstants.LOGING_TOPIC, new ChtijbugObjectRequestMessageCreator(chtijbugObjectRequest));
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
logger.error(" kafkaTemplateLogging.send",e);
|
logger.error(" kafkaTemplateLogging.send",e);
|
||||||
}finally {
|
}finally {
|
||||||
|
|
|
||||||
|
|
@ -19,18 +19,13 @@ server.port=8090
|
||||||
camel.springboot.name=MyCamel
|
camel.springboot.name=MyCamel
|
||||||
# to reconfigure the camel servlet context-path mapping to use /api/* instead of /camel/*
|
# to reconfigure the camel servlet context-path mapping to use /api/* instead of /camel/*
|
||||||
camel.component.servlet.mapping.context-path=/api/*
|
camel.component.servlet.mapping.context-path=/api/*
|
||||||
spring.data.mongodb.database=${PYMMA_MONGO_DATABASE:businessProxyDB}
|
|
||||||
spring.data.mongodb.host=${PYMMA_MONGO_HOST:localhost:28017}
|
spring.datasource.driver-class-name=org.postgresql.Driver
|
||||||
|
spring.datasource.url=${PYMMA_DATABASE_URL:jdbc:postgresql://localhost:12432/kiedev}
|
||||||
|
almady.jms.url=tcp://localhost:1617
|
||||||
|
spring.datasource.username=${PYMMA_DATABASE_USER:kiedev}
|
||||||
|
spring.datasource.password=${PYMMA_DATABASE_PASSWORD:kiedev}
|
||||||
|
|
||||||
|
|
||||||
eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
|
eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
|
||||||
spring.application.name=proxy-app-${org.kie.server.id}
|
spring.application.name=proxy-app-${org.kie.server.id}
|
||||||
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}
|
|
||||||
|
|
||||||
pymma.kafka.activateSsl=${PYMMA_KAFKA_ACTIVATE_SSL:false}
|
|
||||||
pymma.kafka.sslTruststoreLocation=${PYMMA_KAFKA_SSL_TRUSTSTORE_LOCATION:}
|
|
||||||
pymma.kafka.sslTruststorePassword=${PYMMA_KAFKA_SSL_TRUSTSTORE_PASSWORD:}
|
|
||||||
pymma.kafka.sslKeyPassword=${PYMMA_KAFKA_KEY_PASSWORD:}
|
|
||||||
pymma.kafka.sslKeystorePassword=${PYMMA_KAFKA_SSL_KEYSTORE_PASSWORD:}
|
|
||||||
pymma.kafka.sslKeystoreLocation=${PYMMA_KAFKA_SSL_KEYSTORE_LOCATION:}
|
|
||||||
pymma.kafka.sslKeystoreType=${PYMMA_KAFKA_SSL_KEYSTORE_TYPE:}
|
|
||||||
|
|
@ -35,17 +35,9 @@
|
||||||
<version>${spring.boot.version}</version>
|
<version>${spring.boot.version}</version>
|
||||||
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.hibernate</groupId>
|
|
||||||
<artifactId>hibernate-entitymanager</artifactId>
|
|
||||||
<scope>runtime</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.locationtech.jts</groupId>
|
|
||||||
<artifactId>jts-core</artifactId>
|
|
||||||
<version>1.17.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||||
|
|
@ -55,7 +47,6 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.postgresql</groupId>
|
<groupId>org.postgresql</groupId>
|
||||||
<artifactId>postgresql</artifactId>
|
<artifactId>postgresql</artifactId>
|
||||||
<version>${postgresql.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.pymmasoftware.jbpm</groupId>
|
<groupId>com.pymmasoftware.jbpm</groupId>
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,12 @@ package org.chtijbug.drools.proxy.persistence.dialect;
|
||||||
|
|
||||||
|
|
||||||
import org.chtijbug.drools.proxy.persistence.types.JSONBUserType;
|
import org.chtijbug.drools.proxy.persistence.types.JSONBUserType;
|
||||||
|
import org.hibernate.dialect.PostgreSQL10Dialect;
|
||||||
import org.hibernate.dialect.PostgreSQL9Dialect;
|
import org.hibernate.dialect.PostgreSQL9Dialect;
|
||||||
|
|
||||||
import java.sql.Types;
|
import java.sql.Types;
|
||||||
|
|
||||||
public class JSONBPostgreSQLDialect extends PostgreSQL9Dialect {
|
public class JSONBPostgreSQLDialect extends PostgreSQL10Dialect {
|
||||||
|
|
||||||
public JSONBPostgreSQLDialect() {
|
public JSONBPostgreSQLDialect() {
|
||||||
super();
|
super();
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ import javax.persistence.*;
|
||||||
@TypeDef(name = "RuleExecution", typeClass = JSONBUserType.class, parameters = {
|
@TypeDef(name = "RuleExecution", typeClass = JSONBUserType.class, parameters = {
|
||||||
@org.hibernate.annotations.Parameter(name = JSONBUserType.CLASS, value = "org.chtijbug.drools.logging.RuleExecution")})
|
@org.hibernate.annotations.Parameter(name = JSONBUserType.CLASS, value = "org.chtijbug.drools.logging.RuleExecution")})
|
||||||
})
|
})
|
||||||
|
|
||||||
public class BusinessTransactionAction {
|
public class BusinessTransactionAction {
|
||||||
@javax.persistence.Id
|
@javax.persistence.Id
|
||||||
@GeneratedValue
|
@GeneratedValue
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ public class Customer {
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
@ManyToMany
|
@ManyToOne
|
||||||
private KieWorkbench kieWorkbench;
|
private KieWorkbench kieWorkbench;
|
||||||
|
|
||||||
public Long getUniqueId() {
|
public Long getUniqueId() {
|
||||||
|
|
|
||||||
|
|
@ -2,16 +2,24 @@ package org.chtijbug.drools.proxy.persistence.model;
|
||||||
|
|
||||||
|
|
||||||
import org.chtijbug.drools.console.dto.VariableData;
|
import org.chtijbug.drools.console.dto.VariableData;
|
||||||
|
import org.chtijbug.drools.console.dto.VariableDataList;
|
||||||
|
import org.chtijbug.drools.proxy.persistence.types.JSONBUserType;
|
||||||
|
import org.hibernate.annotations.Type;
|
||||||
|
import org.hibernate.annotations.TypeDef;
|
||||||
|
import org.hibernate.annotations.TypeDefs;
|
||||||
|
|
||||||
|
|
||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(uniqueConstraints ={
|
@Table(uniqueConstraints ={
|
||||||
@UniqueConstraint(columnNames={"lineID"})
|
@UniqueConstraint(columnNames={"lineID"})
|
||||||
})
|
})
|
||||||
|
@TypeDefs({
|
||||||
|
@TypeDef(name = "variableDefinitions", typeClass = JSONBUserType.class, parameters = {
|
||||||
|
@org.hibernate.annotations.Parameter(name = JSONBUserType.CLASS, value = "org.chtijbug.drools.console.dto.VariableDataList")})
|
||||||
|
})
|
||||||
public class GuidedRulesTemplateData {
|
public class GuidedRulesTemplateData {
|
||||||
|
|
||||||
@javax.persistence.Id
|
@javax.persistence.Id
|
||||||
|
|
@ -19,13 +27,13 @@ public class GuidedRulesTemplateData {
|
||||||
private Long uniqueId;
|
private Long uniqueId;
|
||||||
|
|
||||||
|
|
||||||
@ManyToMany
|
@ManyToOne
|
||||||
GuidedRulesTemplateDefinition guidedRulesTemplateDefinition;
|
GuidedRulesTemplateDefinition guidedRulesTemplateDefinition;
|
||||||
|
|
||||||
|
|
||||||
private String lineID;
|
private String lineID;
|
||||||
@ElementCollection
|
@Type(type = "variableDefinitions")
|
||||||
private List<VariableData> rows = new ArrayList<>();
|
private VariableDataList dataRows = new VariableDataList();
|
||||||
|
|
||||||
public Long getUniqueId() {
|
public Long getUniqueId() {
|
||||||
return uniqueId;
|
return uniqueId;
|
||||||
|
|
@ -51,11 +59,19 @@ public class GuidedRulesTemplateData {
|
||||||
this.lineID = lineID;
|
this.lineID = lineID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public VariableDataList getDataRows() {
|
||||||
|
return dataRows;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataRows(VariableDataList dataRows) {
|
||||||
|
this.dataRows = dataRows;
|
||||||
|
}
|
||||||
|
|
||||||
public List<VariableData> getRows() {
|
public List<VariableData> getRows() {
|
||||||
return rows;
|
return dataRows.getRows();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRows(List<VariableData> rows) {
|
public void setRows(List<VariableData> rows) {
|
||||||
this.rows = rows;
|
this.dataRows.setRows( rows);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,11 @@ package org.chtijbug.drools.proxy.persistence.model;
|
||||||
|
|
||||||
|
|
||||||
import org.chtijbug.drools.console.dto.VariableDefinition;
|
import org.chtijbug.drools.console.dto.VariableDefinition;
|
||||||
|
import org.chtijbug.drools.console.dto.VariableDefinitionList;
|
||||||
|
import org.chtijbug.drools.proxy.persistence.types.JSONBUserType;
|
||||||
|
import org.hibernate.annotations.Type;
|
||||||
|
import org.hibernate.annotations.TypeDef;
|
||||||
|
import org.hibernate.annotations.TypeDefs;
|
||||||
|
|
||||||
|
|
||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
|
|
@ -12,6 +17,10 @@ import java.util.List;
|
||||||
@Table(uniqueConstraints ={
|
@Table(uniqueConstraints ={
|
||||||
@UniqueConstraint(columnNames={"templateName"})
|
@UniqueConstraint(columnNames={"templateName"})
|
||||||
})
|
})
|
||||||
|
@TypeDefs({
|
||||||
|
@TypeDef(name = "variables", typeClass = JSONBUserType.class, parameters = {
|
||||||
|
@org.hibernate.annotations.Parameter(name = JSONBUserType.CLASS, value = "org.chtijbug.drools.console.dto.VariableDefinitionList")})
|
||||||
|
})
|
||||||
public class GuidedRulesTemplateDefinition {
|
public class GuidedRulesTemplateDefinition {
|
||||||
|
|
||||||
@javax.persistence.Id
|
@javax.persistence.Id
|
||||||
|
|
@ -21,11 +30,11 @@ public class GuidedRulesTemplateDefinition {
|
||||||
|
|
||||||
private String templateName;
|
private String templateName;
|
||||||
|
|
||||||
@ManyToMany
|
@ManyToOne
|
||||||
private UserGroups projectGroup;
|
private UserGroups projectGroup;
|
||||||
|
|
||||||
@ElementCollection
|
@Type(type = "variables")
|
||||||
private List<VariableDefinition> variables = new ArrayList<>();
|
private VariableDefinitionList variableDefinitions = new VariableDefinitionList();
|
||||||
|
|
||||||
public Long getUniqueId() {
|
public Long getUniqueId() {
|
||||||
return uniqueId;
|
return uniqueId;
|
||||||
|
|
@ -53,11 +62,19 @@ public class GuidedRulesTemplateDefinition {
|
||||||
this.projectGroup = projectGroup;
|
this.projectGroup = projectGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public VariableDefinitionList getVariableDefinitions() {
|
||||||
|
return variableDefinitions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVariableDefinitions(VariableDefinitionList variableDefinitions) {
|
||||||
|
this.variableDefinitions = variableDefinitions;
|
||||||
|
}
|
||||||
|
|
||||||
public List<VariableDefinition> getVariables() {
|
public List<VariableDefinition> getVariables() {
|
||||||
return variables;
|
return variableDefinitions.getVariables();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVariables(List<VariableDefinition> variables) {
|
public void setVariables(List<VariableDefinition> variables) {
|
||||||
this.variables = variables;
|
this.variableDefinitions.setVariables(variables);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ public class ProjectPersist implements Serializable {
|
||||||
private String deploymentName;
|
private String deploymentName;
|
||||||
private String uuid;
|
private String uuid;
|
||||||
|
|
||||||
@ManyToMany
|
@ManyToOne
|
||||||
private KieWorkbench kieWorkbench;
|
private KieWorkbench kieWorkbench;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -48,11 +48,11 @@ public class ProjectPersist implements Serializable {
|
||||||
private String containerID;
|
private String containerID;
|
||||||
|
|
||||||
private String branch;
|
private String branch;
|
||||||
|
@ElementCollection
|
||||||
private List<String> serverNames = new ArrayList<>();
|
private List<String> serverNames = new ArrayList<>();
|
||||||
|
|
||||||
private String status;
|
private String status;
|
||||||
|
@ElementCollection
|
||||||
private List<String> classNameList;
|
private List<String> classNameList;
|
||||||
|
|
||||||
private boolean disableRuleLogging;
|
private boolean disableRuleLogging;
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ public class User {
|
||||||
@OneToMany
|
@OneToMany
|
||||||
private List<UserGroups> userGroups = new ArrayList<>();
|
private List<UserGroups> userGroups = new ArrayList<>();
|
||||||
|
|
||||||
@ManyToMany
|
@ManyToOne
|
||||||
private Customer customer;
|
private Customer customer;
|
||||||
|
|
||||||
public Long getUniqueId() {
|
public Long getUniqueId() {
|
||||||
|
|
|
||||||
|
|
@ -22,13 +22,13 @@ public class UserGroups {
|
||||||
|
|
||||||
private String projectName;
|
private String projectName;
|
||||||
|
|
||||||
@ManyToMany
|
@ManyToOne
|
||||||
private KieWorkbench kieWorkbench;
|
private KieWorkbench kieWorkbench;
|
||||||
|
|
||||||
@ManyToMany
|
@ManyToOne
|
||||||
private ProjectPersist projectPersist;
|
private ProjectPersist projectPersist;
|
||||||
|
|
||||||
@ManyToMany
|
@ManyToOne
|
||||||
private UserGroups workspaceUserGroup;
|
private UserGroups workspaceUserGroup;
|
||||||
|
|
||||||
public UserGroups() {
|
public UserGroups() {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
package org.chtijbug.drools.proxy.persistence.model;
|
package org.chtijbug.drools.proxy.persistence.model;
|
||||||
|
|
||||||
import org.chtijbug.drools.proxy.persistence.types.JSONBUserType;
|
|
||||||
import org.hibernate.annotations.TypeDef;
|
|
||||||
|
|
||||||
|
|
||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import java.util.List;
|
||||||
|
|
||||||
public interface BusinessTransactionPersistenceRepository extends JpaRepository<BusinessTransactionPersistence,Long> {
|
public interface BusinessTransactionPersistenceRepository extends JpaRepository<BusinessTransactionPersistence,Long> {
|
||||||
|
|
||||||
public BusinessTransactionPersistence findAllById(String id, PageRequest pageRequest);
|
public BusinessTransactionPersistence findAllByUniqueId(String id, PageRequest pageRequest);
|
||||||
|
|
||||||
public List<BusinessTransactionPersistence> findAllByTransactionId(String transactionId, PageRequest pageRequest);
|
public List<BusinessTransactionPersistence> findAllByTransactionId(String transactionId, PageRequest pageRequest);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,5 +8,5 @@ import org.springframework.stereotype.Repository;
|
||||||
public interface CustomerRepository extends JpaRepository<Customer, String> {
|
public interface CustomerRepository extends JpaRepository<Customer, String> {
|
||||||
|
|
||||||
Customer findByName(String name);
|
Customer findByName(String name);
|
||||||
Customer findByID(String ID);
|
Customer findByUniqueId(String ID);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,5 +8,5 @@ import org.springframework.stereotype.Repository;
|
||||||
public interface KieWorkbenchRepository extends JpaRepository<KieWorkbench, Long> {
|
public interface KieWorkbenchRepository extends JpaRepository<KieWorkbench, Long> {
|
||||||
|
|
||||||
KieWorkbench findByName(String name);
|
KieWorkbench findByName(String name);
|
||||||
KieWorkbench findByID(String ID);
|
KieWorkbench findByUniqueId(String ID);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import org.springframework.stereotype.Repository;
|
||||||
public interface UserGroupsRepository extends JpaRepository<UserGroups, Long> {
|
public interface UserGroupsRepository extends JpaRepository<UserGroups, Long> {
|
||||||
|
|
||||||
UserGroups findByName(String login);
|
UserGroups findByName(String login);
|
||||||
UserGroups findByID(String login);
|
UserGroups findByUniqueId(String login);
|
||||||
|
|
||||||
UserGroups findUserGroupsByProjectPersist(ProjectPersist projectPersist);
|
UserGroups findUserGroupsByProjectPersist(ProjectPersist projectPersist);
|
||||||
UserGroups findBySpaceName(String spaceName);
|
UserGroups findBySpaceName(String spaceName);
|
||||||
|
|
|
||||||
|
|
@ -8,5 +8,5 @@ import org.springframework.stereotype.Repository;
|
||||||
public interface UserRolesRepository extends JpaRepository<UserRoles, Long> {
|
public interface UserRolesRepository extends JpaRepository<UserRoles, Long> {
|
||||||
|
|
||||||
UserRoles findByName(String login);
|
UserRoles findByName(String login);
|
||||||
UserRoles findByID(String login);
|
UserRoles findByUniqueId(String login);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,18 @@
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.kafka</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
<artifactId>spring-kafka</artifactId>
|
<artifactId>spring-jms</artifactId>
|
||||||
<version>${kafka.version}</version>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.activemq</groupId>
|
||||||
|
<artifactId>activemq-client</artifactId>
|
||||||
|
<version>${activemq.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.activemq</groupId>
|
||||||
|
<artifactId>activemq-broker</artifactId>
|
||||||
|
<version>${activemq.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.mkopylec</groupId>
|
<groupId>com.github.mkopylec</groupId>
|
||||||
|
|
@ -82,6 +91,10 @@
|
||||||
<artifactId>jjwt</artifactId>
|
<artifactId>jjwt</artifactId>
|
||||||
<version>0.9.1</version>
|
<version>0.9.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.activemq</groupId>
|
||||||
|
<artifactId>activemq-client</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<!-- Spring-Boot and Camel BOM -->
|
<!-- Spring-Boot and Camel BOM -->
|
||||||
|
|
|
||||||
|
|
@ -1,77 +1,33 @@
|
||||||
package org.chtijbug.drools.reverseproxy;
|
package org.chtijbug.drools.reverseproxy;
|
||||||
|
|
||||||
|
import org.apache.activemq.ActiveMQXAConnectionFactory;
|
||||||
import org.apache.kafka.clients.CommonClientConfigs;
|
|
||||||
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
|
||||||
import org.apache.kafka.common.config.SslConfigs;
|
|
||||||
import org.apache.kafka.common.security.auth.SecurityProtocol;
|
|
||||||
import org.apache.kafka.common.serialization.StringDeserializer;
|
|
||||||
import org.chtijbug.drools.ReverseProxyUpdate;
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
|
||||||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||||
import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;
|
import org.springframework.jms.core.JmsTemplate;
|
||||||
import org.springframework.kafka.core.ConsumerFactory;
|
import org.apache.activemq.ActiveMQXAConnectionFactory;
|
||||||
import org.springframework.kafka.core.DefaultKafkaConsumerFactory;
|
|
||||||
import org.springframework.kafka.support.serializer.JsonDeserializer;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@EnableJpaRepositories(basePackages = "org.chtijbug.drools.proxy.persistence.repository")
|
@EnableJpaRepositories(basePackages = "org.chtijbug.drools.proxy.persistence.repository")
|
||||||
public class DroolsBusinessReverseProxyServer {
|
public class DroolsBusinessReverseProxyServer {
|
||||||
|
|
||||||
@Value(value = "${kafka.bootstrapAddress}")
|
|
||||||
private String bootstrapAddress;
|
|
||||||
|
|
||||||
@Value("${pymma.kafka.activateSsl:false}")
|
|
||||||
private boolean activateSsl;
|
|
||||||
|
|
||||||
@Value("${pymma.kafka.sslTruststoreLocation:}")
|
@Value("${almady.jms.url}")
|
||||||
private String sslTruststoreLocation;
|
private String jmsUrl;
|
||||||
|
private JmsTemplate jmsTemplate;
|
||||||
|
|
||||||
@Value("${pymma.kafka.sslTruststorePassword:}")
|
private ActiveMQXAConnectionFactory connectionFactory;
|
||||||
private String sslTruststorePassword;
|
|
||||||
|
|
||||||
@Value("${pymma.kafka.sslKeyPassword:}")
|
@Bean(name = "jmsTemplate")
|
||||||
private String sslKeyPassword;
|
JmsTemplate createJmsTemplate() {
|
||||||
|
connectionFactory = new ActiveMQXAConnectionFactory(jmsUrl);
|
||||||
@Value("${pymma.kafka.sslKeystorePassword:}")
|
connectionFactory.setTrustAllPackages(true);
|
||||||
private String sslKeystorePassword;
|
connectionFactory.setAlwaysSyncSend(true);
|
||||||
|
connectionFactory.setProducerWindowSize(1024000);
|
||||||
@Value("${pymma.kafka.sslKeystoreLocation:}")
|
jmsTemplate = new JmsTemplate(connectionFactory);
|
||||||
private String sslKeystoreLocation;
|
return jmsTemplate;
|
||||||
|
|
||||||
@Value("${pymma.kafka.sslKeystoreType:}")
|
|
||||||
private String sslKeystoreType;
|
|
||||||
|
|
||||||
public ConsumerFactory<String, ReverseProxyUpdate> mappingConsumerFactory() {
|
|
||||||
Map<String, Object> props = new HashMap<>();
|
|
||||||
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
|
|
||||||
props.put(ConsumerConfig.GROUP_ID_CONFIG, "greeting");
|
|
||||||
if (activateSsl) {
|
|
||||||
props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SSL.name);
|
|
||||||
props.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.sslTruststoreLocation);
|
|
||||||
props.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.sslTruststorePassword);
|
|
||||||
props.put(SslConfigs.SSL_KEY_PASSWORD_CONFIG, this.sslKeyPassword);
|
|
||||||
props.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.sslKeystorePassword);
|
|
||||||
props.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.sslKeystoreLocation);
|
|
||||||
props.put(SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, this.sslKeystoreType);
|
|
||||||
}
|
|
||||||
return new DefaultKafkaConsumerFactory<>(props, new StringDeserializer(), new JsonDeserializer<>(ReverseProxyUpdate.class));
|
|
||||||
}
|
|
||||||
@Bean
|
|
||||||
public ConcurrentKafkaListenerContainerFactory<String, ReverseProxyUpdate>
|
|
||||||
mappingKafkaListenerContainerFactory() {
|
|
||||||
|
|
||||||
ConcurrentKafkaListenerContainerFactory<String, ReverseProxyUpdate> factory =
|
|
||||||
new ConcurrentKafkaListenerContainerFactory<>();
|
|
||||||
factory.setConsumerFactory(mappingConsumerFactory());
|
|
||||||
return factory;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import org.chtijbug.drools.reverseproxy.mappings.CustomMappingsProvider;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.kafka.annotation.KafkaListener;
|
import org.springframework.jms.annotation.JmsListener;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
|
|
@ -43,9 +43,8 @@ public class UpdateService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@KafkaListener(
|
@JmsListener(
|
||||||
topics = KafkaTopicConstants.REVERSE_PROXY,
|
destination = KafkaTopicConstants.REVERSE_PROXY)
|
||||||
containerFactory = "mappingKafkaListenerContainerFactory")
|
|
||||||
public void store(ReverseProxyUpdate update) {
|
public void store(ReverseProxyUpdate update) {
|
||||||
boolean found = false;
|
boolean found = false;
|
||||||
MappingProperties mappingProperties = null;
|
MappingProperties mappingProperties = null;
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,13 @@
|
||||||
server.port=${port:9500}
|
server.port=${port:9500}
|
||||||
spring.data.mongodb.database=${PYMMA_MONGO_DATABASE:businessProxyDB}
|
|
||||||
spring.data.mongodb.host=${PYMMA_MONGO_HOST:localhost:28017}
|
spring.datasource.driver-class-name=org.postgresql.Driver
|
||||||
|
spring.datasource.url=${PYMMA_DATABASE_URL:jdbc:postgresql://localhost:12432/kiedev}
|
||||||
|
almady.jms.url=tcp://localhost:1617
|
||||||
|
spring.datasource.username=${PYMMA_DATABASE_USER:kiedev}
|
||||||
|
spring.datasource.password=${PYMMA_DATABASE_PASSWORD:kiedev}
|
||||||
|
|
||||||
charon.tracing.enabled=true
|
charon.tracing.enabled=true
|
||||||
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}
|
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}
|
||||||
|
|
||||||
pymma.kafka.activateSsl=${PYMMA_KAFKA_ACTIVATE_SSL:false}
|
|
||||||
pymma.kafka.sslTruststoreLocation=${PYMMA_KAFKA_SSL_TRUSTSTORE_LOCATION:}
|
|
||||||
pymma.kafka.sslTruststorePassword=${PYMMA_KAFKA_SSL_TRUSTSTORE_PASSWORD:}
|
|
||||||
pymma.kafka.sslKeyPassword=${PYMMA_KAFKA_KEY_PASSWORD:}
|
|
||||||
pymma.kafka.sslKeystorePassword=${PYMMA_KAFKA_SSL_KEYSTORE_PASSWORD:}
|
|
||||||
pymma.kafka.sslKeystoreLocation=${PYMMA_KAFKA_SSL_KEYSTORE_LOCATION:}
|
|
||||||
pymma.kafka.sslKeystoreType=${PYMMA_KAFKA_SSL_KEYSTORE_TYPE:}
|
|
||||||
secretkey=eRaYY7Wo24sDqKSX3IM9ASGmdGPmkTd9jo1QTy4b7P9Ze5_9hKolVX8xNrQDcNRfVEdTZNOuOyqEGhXEbdJI-ZQ19k_o9MI0y3eZN2lp9jow55FfXMiINEdt1XR85VipRLSOkT6kSpzs2x-jbLDiz9iFVzkd81YKxMgPA7VfZeQUm4n-mOmnWMaVX30zGFU4L3oPBctYKkl4dYfqYWqRNfrgPJVi5DGFjywgxx0ASEiJHtV72paI3fDR2XwlSkyhhmY-ICjCRmsJN4fX1pdoL8a18-aQrvyu4j0Os6dVPYIoPvvY0SAZtWYKHfM15g7A3HD4cVREf9cUsprCRK93w
|
secretkey=eRaYY7Wo24sDqKSX3IM9ASGmdGPmkTd9jo1QTy4b7P9Ze5_9hKolVX8xNrQDcNRfVEdTZNOuOyqEGhXEbdJI-ZQ19k_o9MI0y3eZN2lp9jow55FfXMiINEdt1XR85VipRLSOkT6kSpzs2x-jbLDiz9iFVzkd81YKxMgPA7VfZeQUm4n-mOmnWMaVX30zGFU4L3oPBctYKkl4dYfqYWqRNfrgPJVi5DGFjywgxx0ASEiJHtV72paI3fDR2XwlSkyhhmY-ICjCRmsJN4fX1pdoL8a18-aQrvyu4j0Os6dVPYIoPvvY0SAZtWYKHfM15g7A3HD4cVREf9cUsprCRK93w
|
||||||
|
|
|
||||||
6
pom.xml
6
pom.xml
|
|
@ -18,13 +18,13 @@
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<fabri8.plugin.version>0.34.1</fabri8.plugin.version>
|
<fabri8.plugin.version>0.34.1</fabri8.plugin.version>
|
||||||
<jbpm.version>7.73.0.Final</jbpm.version>
|
<jbpm.version>7.74.1.Final</jbpm.version>
|
||||||
<node.version>v10.16.3</node.version>
|
<node.version>v10.16.3</node.version>
|
||||||
<npm.version>6.11.3</npm.version>
|
<npm.version>6.11.3</npm.version>
|
||||||
<frontend-maven-plugin.version>1.11.3</frontend-maven-plugin.version>
|
<frontend-maven-plugin.version>1.11.3</frontend-maven-plugin.version>
|
||||||
<spring.boot.version>2.7.8</spring.boot.version>
|
<spring.boot.version>2.7.16</spring.boot.version>
|
||||||
|
|
||||||
<spring.version>5.3.23</spring.version>
|
<spring.version>5.3.30</spring.version>
|
||||||
<version.thorntail>2.2.1.Final</version.thorntail>
|
<version.thorntail>2.2.1.Final</version.thorntail>
|
||||||
<!--registry.host>registry.hub.docker.com/pymmasoftware</registry.host-->
|
<!--registry.host>registry.hub.docker.com/pymmasoftware</registry.host-->
|
||||||
<registry.host>192.168.1.122:18083</registry.host>
|
<registry.host>192.168.1.122:18083</registry.host>
|
||||||
|
|
|
||||||
Loading…
Add table
editor.link_modal.header
Reference in a new issue