SUPPORT-9115: Fix
This commit is contained in:
parent
a05422dc94
commit
fe1b79202c
3 changed files with 61 additions and 78 deletions
|
|
@ -1,48 +0,0 @@
|
||||||
package ru.micord.ervu.account_applications.kafka;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.kafka.annotation.KafkaListener;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import ru.micord.ervu.account_applications.service.ErvuDirectoriesService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Eduard Tihomirov
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class ErvuDirectoriesListener {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ErvuDirectoriesService ervuDirectoriesService;
|
|
||||||
|
|
||||||
@KafkaListener(id = "${kafka.domain.group.id}", topics = "${kafka.domain.reconciliation}",
|
|
||||||
autoStartup = "false")
|
|
||||||
public void listenKafkaDomain(String kafkaMessage) {
|
|
||||||
ervuDirectoriesService.upsertKafkaDomainMessage(kafkaMessage);
|
|
||||||
}
|
|
||||||
|
|
||||||
@KafkaListener(id = "${kafka.role.group.id}", topics = "${kafka.role.reconciliation}",
|
|
||||||
autoStartup = "false")
|
|
||||||
public void listenKafkaRole(String kafkaMessage) {
|
|
||||||
ervuDirectoriesService.upsertKafkaRoleMessage(kafkaMessage);
|
|
||||||
}
|
|
||||||
// Пока не заведены, обещают в будущих апдейтах создать
|
|
||||||
// @KafkaListener(id = "${kafka.role.updated.group.id}", topics = "${kafka.role.updated}")
|
|
||||||
// public void listenKafkaRoleUpdated(String kafkaMessage) {
|
|
||||||
// ervuDirectoriesService.upsertKafkaRoleMessage(kafkaMessage);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @KafkaListener(id = "${kafka.role.created.group.id}", topics = "${kafka.role.created}")
|
|
||||||
// public void listenKafkaRoleUpdated(String kafkaMessage) {
|
|
||||||
// ervuDirectoriesService.upsertKafkaRoleMessage(kafkaMessage);
|
|
||||||
// }
|
|
||||||
|
|
||||||
@KafkaListener(id = "${kafka.domain.updated.group.id}", topics = "${kafka.domain.updated}")
|
|
||||||
public void listenKafkaDomainUpdated(String kafkaMessage) {
|
|
||||||
ervuDirectoriesService.upsertKafkaDomainMessage(kafkaMessage);
|
|
||||||
}
|
|
||||||
|
|
||||||
@KafkaListener(id = "${kafka.domain.created.group.id}", topics = "${kafka.domain.created}")
|
|
||||||
public void listenKafkaDomainCreated(String kafkaMessage) {
|
|
||||||
ervuDirectoriesService.upsertKafkaDomainMessage(kafkaMessage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
package ru.micord.ervu.account_applications.kafka;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.context.annotation.DependsOn;
|
|
||||||
import org.springframework.kafka.config.KafkaListenerEndpointRegistry;
|
|
||||||
import org.springframework.kafka.listener.MessageListenerContainer;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Eduard Tihomirov
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
@DependsOn("ervuDirectoriesListener")
|
|
||||||
public class KafkaConsumerInitializer {
|
|
||||||
@Value("${kafka.domain.group.id}")
|
|
||||||
private String domainGroupId;
|
|
||||||
|
|
||||||
@Value("${kafka.role.group.id}")
|
|
||||||
private String roleGroupId;
|
|
||||||
|
|
||||||
public KafkaConsumerInitializer(KafkaListenerEndpointRegistry kafkaListenerEndpointRegistry) {
|
|
||||||
MessageListenerContainer listenerContainerDomain = kafkaListenerEndpointRegistry.getListenerContainer(domainGroupId);
|
|
||||||
MessageListenerContainer listenerContainerRole = kafkaListenerEndpointRegistry.getListenerContainer(roleGroupId);
|
|
||||||
listenerContainerDomain.start();
|
|
||||||
listenerContainerRole.start();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -9,6 +9,8 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
@ -22,6 +24,9 @@ import org.springframework.http.HttpEntity;
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.kafka.annotation.KafkaListener;
|
||||||
|
import org.springframework.kafka.config.KafkaListenerEndpointRegistry;
|
||||||
|
import org.springframework.kafka.listener.MessageListenerContainer;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
@ -34,7 +39,7 @@ import ru.micord.ervu.account_applications.model.RoleResponse;
|
||||||
* @author Eduard Tihomirov
|
* @author Eduard Tihomirov
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@DependsOn({"liquibase", "ervuDirectoriesListener"})
|
@DependsOn("liquibase")
|
||||||
public class ErvuDirectoriesService {
|
public class ErvuDirectoriesService {
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(
|
private static final Logger LOGGER = LoggerFactory.getLogger(
|
||||||
MethodHandles.lookup().lookupClass());
|
MethodHandles.lookup().lookupClass());
|
||||||
|
|
@ -44,12 +49,67 @@ public class ErvuDirectoriesService {
|
||||||
private String ervuDirectories;
|
private String ervuDirectories;
|
||||||
@Value("${ervu.admin.role:gomu_supervisor, system_administrator, security_administrator}")
|
@Value("${ervu.admin.role:gomu_supervisor, system_administrator, security_administrator}")
|
||||||
private String ervuAdminRole;
|
private String ervuAdminRole;
|
||||||
|
@Value("${load.directories:true}")
|
||||||
|
private Boolean loadDirectories;
|
||||||
|
@Value("${kafka.domain.group.id}")
|
||||||
|
private String domainGroupId;
|
||||||
|
@Value("${kafka.role.group.id}")
|
||||||
|
private String roleGroupId;
|
||||||
@Autowired
|
@Autowired
|
||||||
private RestTemplate restTemplate;
|
private RestTemplate restTemplate;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ErvuDirectoriesDaoService ervuDirectoriesDaoService;
|
private ErvuDirectoriesDaoService ervuDirectoriesDaoService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ObjectMapper objectMapper;
|
private ObjectMapper objectMapper;
|
||||||
|
@Autowired
|
||||||
|
private KafkaListenerEndpointRegistry kafkaListenerEndpointRegistry;
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void init() {
|
||||||
|
MessageListenerContainer listenerContainerDomain = kafkaListenerEndpointRegistry.getListenerContainer(domainGroupId);
|
||||||
|
MessageListenerContainer listenerContainerRole = kafkaListenerEndpointRegistry.getListenerContainer(roleGroupId);
|
||||||
|
listenerContainerDomain.start();
|
||||||
|
listenerContainerRole.start();
|
||||||
|
if (loadDirectories) {
|
||||||
|
new Thread(this::updateDirectories).start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@KafkaListener(id = "${kafka.domain.group.id}", topics = "${kafka.domain.reconciliation}",
|
||||||
|
autoStartup = "false")
|
||||||
|
@Transactional
|
||||||
|
public void listenKafkaDomain(String kafkaMessage) {
|
||||||
|
upsertKafkaDomainMessage(kafkaMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@KafkaListener(id = "${kafka.role.group.id}", topics = "${kafka.role.reconciliation}",
|
||||||
|
autoStartup = "false")
|
||||||
|
@Transactional
|
||||||
|
public void listenKafkaRole(String kafkaMessage) {
|
||||||
|
upsertKafkaRoleMessage(kafkaMessage);
|
||||||
|
}
|
||||||
|
// Пока не заведены, обещают в будущих апдейтах создать
|
||||||
|
// @KafkaListener(id = "${kafka.role.updated.group.id}", topics = "${kafka.role.updated}")
|
||||||
|
// public void listenKafkaRoleUpdated(String kafkaMessage) {
|
||||||
|
// ervuDirectoriesService.upsertKafkaRoleMessage(kafkaMessage);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// @KafkaListener(id = "${kafka.role.created.group.id}", topics = "${kafka.role.created}")
|
||||||
|
// public void listenKafkaRoleUpdated(String kafkaMessage) {
|
||||||
|
// ervuDirectoriesService.upsertKafkaRoleMessage(kafkaMessage);
|
||||||
|
// }
|
||||||
|
|
||||||
|
@KafkaListener(id = "${kafka.domain.updated.group.id}", topics = "${kafka.domain.updated}")
|
||||||
|
@Transactional
|
||||||
|
public void listenKafkaDomainUpdated(String kafkaMessage) {
|
||||||
|
upsertKafkaDomainMessage(kafkaMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@KafkaListener(id = "${kafka.domain.created.group.id}", topics = "${kafka.domain.created}")
|
||||||
|
@Transactional
|
||||||
|
public void listenKafkaDomainCreated(String kafkaMessage) {
|
||||||
|
upsertKafkaDomainMessage(kafkaMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Caching(evict = {
|
@Caching(evict = {
|
||||||
|
|
@ -81,7 +141,6 @@ public class ErvuDirectoriesService {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
|
||||||
public void upsertKafkaDomainMessage(String kafkaMessage) {
|
public void upsertKafkaDomainMessage(String kafkaMessage) {
|
||||||
RecruitmentResponse[] recruitmentResponses;
|
RecruitmentResponse[] recruitmentResponses;
|
||||||
try {
|
try {
|
||||||
|
|
@ -95,7 +154,6 @@ public class ErvuDirectoriesService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
|
||||||
public void upsertKafkaRoleMessage(String kafkaMessage) {
|
public void upsertKafkaRoleMessage(String kafkaMessage) {
|
||||||
RoleResponse[] roleResponses;
|
RoleResponse[] roleResponses;
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue