work in progress

This commit is contained in:
Nicolas Héron 2023-12-25 00:38:07 +01:00
commit c1808d7e9b
41 changed files with 349 additions and 393 deletions

View file

@ -4,8 +4,11 @@
name: Maven Package
on:
release:
types: [created]
push:
branches:
- master
pull_request:
types: [opened, synchronize, reopened]
jobs:
build:
@ -21,6 +24,17 @@ jobs:
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
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
run: mvn -B package --file pom.xml

View file

@ -145,6 +145,12 @@
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.vaadin.olli</groupId>

View file

@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.event.ApplicationReadyEvent;
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.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.event.EventListener;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@ -38,13 +41,15 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
import javax.servlet.MultipartConfigElement;
@Configuration
//@Configuration
@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")
@EnableSwagger2
@EnableScheduling
@EnableTransactionManagement
@EnableJms
public class DroolsSpringBootConsoleApplication extends SpringBootServletInitializer {
@ -57,8 +62,8 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
private ActiveMQXAConnectionFactory connectionFactory;
@Autowired
private DababaseContentUpdate dababaseContentUpdate;
//@Autowired
//private DababaseContentUpdate dababaseContentUpdate;
@Autowired
private KieBusinessCentralConnector kieBusinessCentralConnector;
@Autowired
@ -83,7 +88,6 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
}
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
@ -132,58 +136,7 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
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
public Docket api() {

View file

@ -14,6 +14,8 @@ import org.drools.workbench.models.guided.template.backend.RuleTemplateModelXMLP
import org.drools.workbench.models.guided.template.shared.TemplateModel;
import org.springframework.beans.factory.annotation.Autowired;
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.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");
}
**/
}
}

View file

@ -15,7 +15,9 @@ import org.chtijbug.guvnor.server.jaxrs.model.WorkspaceAuthData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.annotation.DependsOn;
import org.springframework.context.event.EventListener;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;

View file

@ -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.id=${PYMMA_KIE_SERVER_ID:pymmaConsole2}
almady.jms.url=tcp://localhost:1617
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.jpa.properties.hibernate.dialect= org.chtijbug.drools.proxy.persistence.dialect.JSONBPostgreSQLDialect
spring.datasource.username=${PYMMA_DATABASE_USER:kiedev}
spring.datasource.password=${PYMMA_DATABASE_PASSWORD:kiedev}
spring.jpa.hibernate.ddl-auto=update
spring.servlet.multipart.enabled=false
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.tomcat.max-http-post-size=100000000
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

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -38,6 +38,11 @@
<artifactId>joda-time</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb.api.version}</version>
</dependency>
</dependencies>
</project>

View file

@ -1,11 +1,12 @@
package org.chtijbug.drools;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* Created by nheron on 07/07/2016.
*/
public class ChtijbugObjectRequest {
public class ChtijbugObjectRequest implements Serializable {
private String transactionID;

View file

@ -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;
}
}

View file

@ -19,7 +19,6 @@ public class ReverseProxyMessageCreator implements MessageCreator {
@Override
public Message createMessage(Session session) throws JMSException {
ObjectMessage objectMessage = session.createObjectMessage();
objectMessage.setObject(reverseProxyUpdate);
return objectMessage;
}

View file

@ -40,18 +40,6 @@
<artifactId>activemq-broker</artifactId>
<version>${activemq.version}</version>
</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>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>

View file

@ -16,34 +16,30 @@
*/
package org.chtijbug.drools.indexer;
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.apache.activemq.ActiveMQXAConnectionFactory;;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
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.kafka.annotation.EnableKafka;
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;
import org.springframework.transaction.annotation.EnableTransactionManagement;
// CHECKSTYLE:OFF
@SpringBootApplication
@Configuration
@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 final static String LOGING_TOPIC ="logging";
@ -52,6 +48,18 @@ public class DroolsBusinessIndexerServer {
private JmsTemplate jmsTemplate;
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")
JmsTemplate createJmsTemplate() {
connectionFactory = new ActiveMQXAConnectionFactory(jmsUrl);
@ -65,7 +73,6 @@ public class DroolsBusinessIndexerServer {
* Main method to start the application.
*/
public static void main(String[] args) {
System.setProperty(ConsumerConfig.FETCH_MAX_BYTES_CONFIG, "41943040");
SpringApplication.run(DroolsBusinessIndexerServer.class, args);
}

View file

@ -13,7 +13,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Service;
import java.util.*;
@ -30,7 +29,7 @@ public class StoreLoggingService {
private BusinessTransactionActionRepository actionRepository;
@JmsListener(destination = KafkaTopicConstants.LOGING_TOPIC)
@JmsListener(destination = KafkaTopicConstants.LOGING_TOPIC,containerFactory = "jmsListenerContainerFactory")
public void store(ChtijbugObjectRequest result) {
if (result != null) {

View file

@ -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.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
spring.datasource.url=${PYMMA_DATABASE_URL:jdbc:postgresql://localhost:12432/kiedev}
spring.datasource.username=${PYMMA_DATABASE_USER: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:}

View file

@ -115,12 +115,21 @@
<artifactId>camel-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>${kafka.version}</version>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
</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 -->
<dependency>
<groupId>com.pymmasoftware.jbpm</groupId>

View file

@ -16,164 +16,52 @@
*/
package org.chtijbug.drools.proxy;
import com.fasterxml.jackson.databind.ObjectMapper;
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.apache.activemq.ActiveMQXAConnectionFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.kafka.annotation.EnableKafka;
import org.springframework.kafka.core.DefaultKafkaProducerFactory;
import org.springframework.kafka.core.KafkaAdmin;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.core.ProducerFactory;
import org.springframework.kafka.support.serializer.JsonSerializer;
import org.springframework.context.annotation.PropertySource;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
// CHECKSTYLE:OFF
@SpringBootApplication
@Configuration
@EnableKafka
@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 {
@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);
}
@Bean
public ProducerFactory<String, ChtijbugObjectRequest> producerFactory() {
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);
}
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);
}
@Value("${almady.jms.url}")
private String jmsUrl;
private JmsTemplate jmsTemplate;
private ActiveMQXAConnectionFactory connectionFactory;
@Bean
public KafkaTemplate<String, ChtijbugObjectRequest> kafkaTemplate() {
return new KafkaTemplate<>(producerFactory());
@Bean(name = "jmsTemplate")
JmsTemplate createJmsTemplate() {
connectionFactory = new ActiveMQXAConnectionFactory(jmsUrl);
connectionFactory.setTrustAllPackages(true);
connectionFactory.setAlwaysSyncSend(true);
connectionFactory.setProducerWindowSize(1024000);
jmsTemplate = new JmsTemplate(connectionFactory);
return jmsTemplate;
}
/**
@ -190,7 +78,7 @@ public class DroolsBusinessProxyServer {
e.printStackTrace();
}
}
System.setProperty(ConsumerConfig.FETCH_MAX_BYTES_CONFIG, "41943040");
SpringApplication.run(DroolsBusinessProxyServer.class, args);
}

View file

@ -17,7 +17,6 @@ package org.chtijbug.drools.proxy.service;
import org.apache.camel.CamelContext;
import org.apache.camel.Route;
import org.apache.kafka.clients.admin.NewTopic;
import org.chtijbug.drools.proxy.PlatfomKieServerStateRepository;
import org.chtijbug.drools.proxy.camel.DroolsRouter;
import org.chtijbug.drools.proxy.persistence.model.ContainerPojoPersist;
@ -94,9 +93,7 @@ public class KieServiceCommon {
@Qualifier("deployFinish")
@Autowired
NewTopic responseTopic;
public KieServiceCommon() {
//Needed

View file

@ -2,12 +2,14 @@ package org.chtijbug.drools.proxy.service;
import org.chtijbug.drools.ChtijbugObjectRequest;
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.KieServerLoggingDefinition;
import org.kie.server.services.api.KieContainerInstance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Service;
import javax.inject.Inject;
@ -21,7 +23,7 @@ public class RuleService {
private KieServiceCommon kieServiceCommon;
@Inject
private KafkaTemplate<String, ChtijbugObjectRequest> kafkaTemplateLogging;
private JmsTemplate jmsTemplate;
public RuleService() {
logger.info("Rule Service created");
@ -58,8 +60,8 @@ public class RuleService {
}
chtijbugObjectRequest.setTransactionEndTimeStamp(LocalDateTime.now());
try {
kafkaTemplateLogging.send(KafkaTopicConstants.LOGING_TOPIC,chtijbugObjectRequest);
}catch (Exception e){
jmsTemplate.send(KafkaTopicConstants.LOGING_TOPIC, new ChtijbugObjectRequestMessageCreator(chtijbugObjectRequest));
}catch (Exception e){
logger.error(" kafkaTemplateLogging.send",e);
}finally {
return chtijbutObjectResponse.getObjectRequest();

View file

@ -19,18 +19,13 @@ server.port=8090
camel.springboot.name=MyCamel
# to reconfigure the camel servlet context-path mapping to use /api/* instead of /camel/*
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/
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:}

View file

@ -35,17 +35,9 @@
<version>${spring.boot.version}</version>
</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>
<groupId>com.fasterxml.jackson.datatype</groupId>
@ -55,7 +47,6 @@
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql.version}</version>
</dependency>
<dependency>
<groupId>com.pymmasoftware.jbpm</groupId>

View file

@ -16,11 +16,12 @@ package org.chtijbug.drools.proxy.persistence.dialect;
import org.chtijbug.drools.proxy.persistence.types.JSONBUserType;
import org.hibernate.dialect.PostgreSQL10Dialect;
import org.hibernate.dialect.PostgreSQL9Dialect;
import java.sql.Types;
public class JSONBPostgreSQLDialect extends PostgreSQL9Dialect {
public class JSONBPostgreSQLDialect extends PostgreSQL10Dialect {
public JSONBPostgreSQLDialect() {
super();

View file

@ -20,7 +20,6 @@ import javax.persistence.*;
@TypeDef(name = "RuleExecution", typeClass = JSONBUserType.class, parameters = {
@org.hibernate.annotations.Parameter(name = JSONBUserType.CLASS, value = "org.chtijbug.drools.logging.RuleExecution")})
})
public class BusinessTransactionAction {
@javax.persistence.Id
@GeneratedValue

View file

@ -17,7 +17,7 @@ public class Customer {
private String name;
@ManyToMany
@ManyToOne
private KieWorkbench kieWorkbench;
public Long getUniqueId() {

View file

@ -2,16 +2,24 @@ package org.chtijbug.drools.proxy.persistence.model;
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 java.util.ArrayList;
import java.util.List;
@Entity
@Table(uniqueConstraints ={
@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 {
@javax.persistence.Id
@ -19,13 +27,13 @@ public class GuidedRulesTemplateData {
private Long uniqueId;
@ManyToMany
@ManyToOne
GuidedRulesTemplateDefinition guidedRulesTemplateDefinition;
private String lineID;
@ElementCollection
private List<VariableData> rows = new ArrayList<>();
@Type(type = "variableDefinitions")
private VariableDataList dataRows = new VariableDataList();
public Long getUniqueId() {
return uniqueId;
@ -51,11 +59,19 @@ public class GuidedRulesTemplateData {
this.lineID = lineID;
}
public VariableDataList getDataRows() {
return dataRows;
}
public void setDataRows(VariableDataList dataRows) {
this.dataRows = dataRows;
}
public List<VariableData> getRows() {
return rows;
return dataRows.getRows();
}
public void setRows(List<VariableData> rows) {
this.rows = rows;
this.dataRows.setRows( rows);
}
}

View file

@ -2,6 +2,11 @@ package org.chtijbug.drools.proxy.persistence.model;
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.*;
@ -12,6 +17,10 @@ import java.util.List;
@Table(uniqueConstraints ={
@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 {
@javax.persistence.Id
@ -21,11 +30,11 @@ public class GuidedRulesTemplateDefinition {
private String templateName;
@ManyToMany
@ManyToOne
private UserGroups projectGroup;
@ElementCollection
private List<VariableDefinition> variables = new ArrayList<>();
@Type(type = "variables")
private VariableDefinitionList variableDefinitions = new VariableDefinitionList();
public Long getUniqueId() {
return uniqueId;
@ -53,11 +62,19 @@ public class GuidedRulesTemplateDefinition {
this.projectGroup = projectGroup;
}
public VariableDefinitionList getVariableDefinitions() {
return variableDefinitions;
}
public void setVariableDefinitions(VariableDefinitionList variableDefinitions) {
this.variableDefinitions = variableDefinitions;
}
public List<VariableDefinition> getVariables() {
return variables;
return variableDefinitions.getVariables();
}
public void setVariables(List<VariableDefinition> variables) {
this.variables = variables;
this.variableDefinitions.setVariables(variables);
}
}

View file

@ -29,7 +29,7 @@ public class ProjectPersist implements Serializable {
private String deploymentName;
private String uuid;
@ManyToMany
@ManyToOne
private KieWorkbench kieWorkbench;
@ -48,11 +48,11 @@ public class ProjectPersist implements Serializable {
private String containerID;
private String branch;
@ElementCollection
private List<String> serverNames = new ArrayList<>();
private String status;
@ElementCollection
private List<String> classNameList;
private boolean disableRuleLogging;

View file

@ -38,7 +38,7 @@ public class User {
@OneToMany
private List<UserGroups> userGroups = new ArrayList<>();
@ManyToMany
@ManyToOne
private Customer customer;
public Long getUniqueId() {

View file

@ -22,13 +22,13 @@ public class UserGroups {
private String projectName;
@ManyToMany
@ManyToOne
private KieWorkbench kieWorkbench;
@ManyToMany
@ManyToOne
private ProjectPersist projectPersist;
@ManyToMany
@ManyToOne
private UserGroups workspaceUserGroup;
public UserGroups() {

View file

@ -1,9 +1,5 @@
package org.chtijbug.drools.proxy.persistence.model;
import org.chtijbug.drools.proxy.persistence.types.JSONBUserType;
import org.hibernate.annotations.TypeDef;
import javax.persistence.*;
import java.util.Objects;

View file

@ -9,7 +9,7 @@ import java.util.List;
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);

View file

@ -8,5 +8,5 @@ import org.springframework.stereotype.Repository;
public interface CustomerRepository extends JpaRepository<Customer, String> {
Customer findByName(String name);
Customer findByID(String ID);
Customer findByUniqueId(String ID);
}

View file

@ -8,5 +8,5 @@ import org.springframework.stereotype.Repository;
public interface KieWorkbenchRepository extends JpaRepository<KieWorkbench, Long> {
KieWorkbench findByName(String name);
KieWorkbench findByID(String ID);
KieWorkbench findByUniqueId(String ID);
}

View file

@ -10,7 +10,7 @@ import org.springframework.stereotype.Repository;
public interface UserGroupsRepository extends JpaRepository<UserGroups, Long> {
UserGroups findByName(String login);
UserGroups findByID(String login);
UserGroups findByUniqueId(String login);
UserGroups findUserGroupsByProjectPersist(ProjectPersist projectPersist);
UserGroups findBySpaceName(String spaceName);

View file

@ -8,5 +8,5 @@ import org.springframework.stereotype.Repository;
public interface UserRolesRepository extends JpaRepository<UserRoles, Long> {
UserRoles findByName(String login);
UserRoles findByID(String login);
UserRoles findByUniqueId(String login);
}

View file

@ -18,9 +18,18 @@
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>${kafka.version}</version>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
</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>
<groupId>com.github.mkopylec</groupId>
@ -82,6 +91,10 @@
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
</dependency>
</dependencies>
<!-- Spring-Boot and Camel BOM -->

View file

@ -1,77 +1,33 @@
package org.chtijbug.drools.reverseproxy;
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.apache.activemq.ActiveMQXAConnectionFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
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;
import org.springframework.jms.core.JmsTemplate;
import org.apache.activemq.ActiveMQXAConnectionFactory;
@SpringBootApplication
@EnableJpaRepositories(basePackages = "org.chtijbug.drools.proxy.persistence.repository")
public class DroolsBusinessReverseProxyServer {
@Value(value = "${kafka.bootstrapAddress}")
private String bootstrapAddress;
@Value("${pymma.kafka.activateSsl:false}")
private boolean activateSsl;
@Value("${pymma.kafka.sslTruststoreLocation:}")
private String sslTruststoreLocation;
@Value("${almady.jms.url}")
private String jmsUrl;
private JmsTemplate jmsTemplate;
@Value("${pymma.kafka.sslTruststorePassword:}")
private String sslTruststorePassword;
private ActiveMQXAConnectionFactory connectionFactory;
@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;
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;
@Bean(name = "jmsTemplate")
JmsTemplate createJmsTemplate() {
connectionFactory = new ActiveMQXAConnectionFactory(jmsUrl);
connectionFactory.setTrustAllPackages(true);
connectionFactory.setAlwaysSyncSend(true);
connectionFactory.setProducerWindowSize(1024000);
jmsTemplate = new JmsTemplate(connectionFactory);
return jmsTemplate;
}
public static void main(String[] args) {

View file

@ -11,7 +11,7 @@ import org.chtijbug.drools.reverseproxy.mappings.CustomMappingsProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 javax.annotation.PostConstruct;
@ -43,9 +43,8 @@ public class UpdateService {
}
@KafkaListener(
topics = KafkaTopicConstants.REVERSE_PROXY,
containerFactory = "mappingKafkaListenerContainerFactory")
@JmsListener(
destination = KafkaTopicConstants.REVERSE_PROXY)
public void store(ReverseProxyUpdate update) {
boolean found = false;
MappingProperties mappingProperties = null;

View file

@ -1,15 +1,13 @@
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
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

View file

@ -18,13 +18,13 @@
<properties>
<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>
<npm.version>6.11.3</npm.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>
<!--registry.host>registry.hub.docker.com/pymmasoftware</registry.host-->
<registry.host>192.168.1.122:18083</registry.host>