remove Kafka

This commit is contained in:
nheron 2023-04-12 09:20:09 +02:00
commit e460b26abb
15 changed files with 543 additions and 582 deletions

View file

@ -65,11 +65,7 @@
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>${kafka.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
@ -94,6 +90,20 @@
<artifactId>drools-framework-kie-wb-rest-pojo</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<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>org.drools</groupId>
<artifactId>drools-workbench-models-guided-template</artifactId>

View file

@ -2,18 +2,7 @@ package org.chtijbug.drools.console;
import com.vaadin.flow.spring.SpringServlet;
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.StringDeserializer;
import org.apache.kafka.common.serialization.StringSerializer;
import org.chtijbug.drools.KieContainerResponse;
import org.chtijbug.drools.ReverseProxyUpdate;
import org.chtijbug.drools.common.KafkaTopicConstants;
import org.apache.activemq.ActiveMQXAConnectionFactory;
import org.chtijbug.drools.console.middle.DababaseContentUpdate;
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
import org.chtijbug.drools.console.service.util.ApplicationContextProvider;
@ -35,12 +24,9 @@ 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.kafka.annotation.EnableKafka;
import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;
import org.springframework.kafka.core.*;
import org.springframework.kafka.support.serializer.JsonDeserializer;
import org.springframework.kafka.support.serializer.JsonSerializer;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.util.unit.DataSize;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@ -51,48 +37,25 @@ import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import javax.servlet.MultipartConfigElement;
import java.util.HashMap;
import java.util.Map;
@Configuration
@SpringBootApplication
@EnableJpaRepositories("org.chtijbug.drools.proxy.persistence.repository")
@EnableKafka
@PropertySource("classpath:application.properties")
@EnableSwagger2
@EnableScheduling
@EnableTransactionManagement
public class DroolsSpringBootConsoleApplication extends SpringBootServletInitializer {
@Value("${kie-wb.baseurl}")
private String kiewbUrl;
@Value(value = "${kafka.bootstrapAddress}")
private String bootstrapAddress;
@Value("${almady.jms.url}")
private String jmsUrl;
private JmsTemplate jmsTemplate;
private ActiveMQXAConnectionFactory connectionFactory;
@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;
@Autowired
private DababaseContentUpdate dababaseContentUpdate;
@ -148,75 +111,6 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
}
@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.REVERSE_PROXY, 1, (short) 1);
}
@Bean
public ProducerFactory<String, ReverseProxyUpdate> 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);
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);
}
return new DefaultKafkaProducerFactory<>(configProps);
}
@Bean
public KafkaTemplate<String, ReverseProxyUpdate> kafkaTemplate() {
return new KafkaTemplate<>(producerFactory());
}
public ConsumerFactory<String, KieContainerResponse> greetingConsumerFactory() {
Map<String, Object> props = new HashMap<>();
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
props.put(ConsumerConfig.GROUP_ID_CONFIG,"Console");
return new DefaultKafkaConsumerFactory<>(props, new StringDeserializer(), new JsonDeserializer<>(KieContainerResponse.class));
}
@Bean
public ConcurrentKafkaListenerContainerFactory<String, KieContainerResponse>
ruleKafkaListenerKieContainerUpdateFactory() {
ConcurrentKafkaListenerContainerFactory<String, KieContainerResponse> factory =
new ConcurrentKafkaListenerContainerFactory<>();
factory.setConsumerFactory(greetingConsumerFactory());
return factory;
}
@Bean
public ServletRegistrationBean<SpringServlet> springServlet(ApplicationContext context) {
@ -228,6 +122,15 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
SpringApplication.run(DroolsSpringBootConsoleApplication.class, args);
}
@Bean(name = "jmsTemplate")
JmsTemplate createJmsTemplate() {
connectionFactory = new ActiveMQXAConnectionFactory(jmsUrl);
connectionFactory.setTrustAllPackages(true);
connectionFactory.setAlwaysSyncSend(true);
connectionFactory.setProducerWindowSize(1024000);
jmsTemplate = new JmsTemplate(connectionFactory);
return jmsTemplate;
}
@EventListener(ApplicationReadyEvent.class)
public void initPlatform(){

View file

@ -8,6 +8,7 @@ import org.chtijbug.drools.console.service.model.UserConnected;
import org.chtijbug.drools.console.service.model.kie.JobStatus;
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
import org.chtijbug.drools.console.service.util.AppContext;
import org.chtijbug.drools.jms.ReverseProxyMessageCreator;
import org.chtijbug.drools.proxy.persistence.json.KieProject;
import org.chtijbug.drools.proxy.persistence.model.*;
import org.chtijbug.drools.proxy.persistence.repository.*;
@ -16,7 +17,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.DependsOn;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Service;
import java.util.*;
@ -63,7 +64,7 @@ public class ProjectPersistService {
private KieWorkbenchRepository workbenchRepository;
@Autowired
private KafkaTemplate<String, ReverseProxyUpdate> kafkaTemplateProxyUpdate;
private JmsTemplate jmsTemplate;
@Autowired
private UserGroupsRepository userGroupsRepository;
@ -238,7 +239,8 @@ public class ProjectPersistService {
reverseProxyUpdate.getServerNames().add(hostName);
}
projectRepository.save(projectPersist);
kafkaTemplateProxyUpdate.send(KafkaTopicConstants.REVERSE_PROXY, reverseProxyUpdate);
jmsTemplate.send(KafkaTopicConstants.REVERSE_PROXY, new ReverseProxyMessageCreator(reverseProxyUpdate));
return true;
}

View file

@ -10,10 +10,14 @@ adminConsole.tmpdir=/tmp
org.kie.server.controller=${PYMMA_KIE_CONTROLLER:http://localhost:18080/kie-wb/rest}
org.kie.server.location=${PYMMA_KIE_LOCATION:http://localhost:8200/api/server}
org.kie.server.id=${PYMMA_KIE_SERVER_ID:pymmaConsole2}
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}
spring.servlet.multipart.enabled=false
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}