Use Kafka

This commit is contained in:
Nicolas Héron 2020-06-26 08:54:45 +02:00
commit 033628c336
14 changed files with 340 additions and 149 deletions

View file

@ -3,5 +3,6 @@ package org.chtijbug.drools.common;
public class KafkaTopicConstants {
public final static String LOGING_TOPIC ="logging";
public final static String RESPONSE_TOPIC ="Response";
public final static String RESPONSE_DEPLOY_TOPIC ="ResponseDeploy";
public final static String REVERSE_PROXY="proxy";
}

View file

@ -19,7 +19,6 @@ import org.chtijbug.drools.kieserver.extension.KieServerAddOnElement;
import org.chtijbug.drools.kieserver.extension.KieServerGlobalVariableDefinition;
import org.chtijbug.drools.kieserver.extension.KieServerListenerDefinition;
import org.chtijbug.drools.kieserver.extension.KieServerLoggingDefinition;
import org.chtijbug.kieserver.services.drools.sftp.SftpServerService;
import org.drools.compiler.kie.builder.impl.InternalKieModule;
import org.drools.compiler.kie.builder.impl.KieRepositoryImpl;
import org.kie.api.builder.KieRepository;
@ -34,7 +33,6 @@ import org.slf4j.LoggerFactory;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.util.*;
@ -54,7 +52,7 @@ public class DroolsChtijbugKieServerExtension implements KieServerExtension {
private boolean initialized = false;
private SftpServerService sftpServerService;
@Override
public boolean isInitialized() {
@ -73,12 +71,6 @@ public class DroolsChtijbugKieServerExtension implements KieServerExtension {
this.registry = registry;
services.add(rulesExecutionService);
initialized = true;
sftpServerService = new SftpServerService();
try {
sftpServerService.initServer();
} catch (IOException e) {
logger.error("Impossible to create sftp server", e);
}
}
private void initExtensionsList() {

View file

@ -1,83 +0,0 @@
package org.chtijbug.kieserver.services.drools.sftp;
import org.apache.sshd.common.NamedFactory;
import org.apache.sshd.common.PropertyResolverUtils;
import org.apache.sshd.common.file.virtualfs.VirtualFileSystemFactory;
import org.apache.sshd.server.Command;
import org.apache.sshd.server.ServerFactoryManager;
import org.apache.sshd.server.SshServer;
import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider;
import org.apache.sshd.server.scp.ScpCommandFactory;
import org.apache.sshd.server.subsystem.sftp.SftpSubsystemFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.PostConstruct;
import javax.inject.Singleton;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Arrays;
@Singleton
public class SftpServerService {
private final String BANNER =
"\n\nWelcome to Pymma Server kie server ssh Server!\n\n";
private Logger logger = LoggerFactory.getLogger(this.getClass());
private SshServer sshd;
private String server = "0.0.0.0";
private Integer port = -1;
private String login = "kieserver";
private String password = "kieserver1";
private String sftpDir = System.getProperty("org.chtijbug.server.tracedir");
public SftpServerService() {
}
@PostConstruct
public void initServer() throws IOException {
if (System.getProperty("org.chtijbug.server.sftpPort") != null) {
try {
port = Integer.valueOf(System.getProperty("org.chtijbug.server.sftpPort"));
} catch (NumberFormatException e) {
port = 9080;
}
}
if (System.getProperty("org.chtijbug.server.tracedir") != null) {
sftpDir = System.getProperty("org.chtijbug.server.tracedir");
}
sshd = SshServer.setUpDefaultServer();
PropertyResolverUtils.updateProperty(
sshd,
ServerFactoryManager.WELCOME_BANNER,
BANNER);
sshd.setHost(server);
sshd.setPort(port);
sshd.setPasswordAuthenticator(new MyPasswordAuthenticator(login, password));
sshd.setPublickeyAuthenticator(new MyPublickeyAuthenticator());
sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider());
final String filePath = sftpDir;
File f = new File(filePath);
if (f.exists() == false) {
f.mkdir();
}
sshd.setFileSystemFactory(new VirtualFileSystemFactory(Paths.get(filePath)));
SftpSubsystemFactory factory = new SftpSubsystemFactory.Builder().build();
sshd.setSubsystemFactories(Arrays.<NamedFactory<Command>>asList(factory));
//sshd.setShellFactory(new ProcessShellFactory(new String[] { "/bin/sh", "-i", "-l" }));
sshd.setCommandFactory(new ScpCommandFactory());
// sshd.setShellFactory( new SshSessionFactory() );
sshd.start();
logger.info("Serveur SSH demarre sur host " + this.server + " port " + this.port);
}
public void setServer(String server) {
}
}

View file

@ -0,0 +1,62 @@
package org.chtijbug.drools;
import java.util.ArrayList;
import java.util.List;
public class KieContainerResponse {
public enum STATUS {
ERROR,
SUCCESS
}
private KieContainerUpdate kieContainerUpdate;
private String messageError;
private STATUS status;
private List<String> errorMessages= new ArrayList<>();
public KieContainerUpdate getKieContainerUpdate() {
return kieContainerUpdate;
}
public void setKieContainerUpdate(KieContainerUpdate kieContainerUpdate) {
this.kieContainerUpdate = kieContainerUpdate;
}
public String getMessageError() {
return messageError;
}
public void setMessageError(String messageError) {
this.messageError = messageError;
}
public List<String> getErrorMessages() {
return errorMessages;
}
public void setErrorMessages(List<String> errorMessages) {
this.errorMessages = errorMessages;
}
public STATUS getStatus() {
return status;
}
public void setStatus(STATUS status) {
this.status = status;
}
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("KieContainerResponse{");
sb.append("kieContainerUpdate=").append(kieContainerUpdate);
sb.append(", messageError='").append(messageError).append('\'');
sb.append(", status=").append(status);
sb.append('}');
return sb.toString();
}
}

View file

@ -0,0 +1,94 @@
package org.chtijbug.drools;
public class KieContainerUpdate {
public enum STATUS {
TODEPLOY,
TODELETE
}
private String mainClass;
private String groupID;
private String artifactID;
private String processID;
private String projectVersion;
private String containerID;
private STATUS action;
public String getMainClass() {
return mainClass;
}
public void setMainClass(String mainClass) {
this.mainClass = mainClass;
}
public String getGroupID() {
return groupID;
}
public void setGroupID(String groupID) {
this.groupID = groupID;
}
public String getArtifactID() {
return artifactID;
}
public void setArtifactID(String artifactID) {
this.artifactID = artifactID;
}
public String getProcessID() {
return processID;
}
public void setProcessID(String processID) {
this.processID = processID;
}
public String getProjectVersion() {
return projectVersion;
}
public void setProjectVersion(String projectVersion) {
this.projectVersion = projectVersion;
}
public String getContainerID() {
return containerID;
}
public void setContainerID(String containerID) {
this.containerID = containerID;
}
public STATUS getAction() {
return action;
}
public void setAction(STATUS action) {
this.action = action;
}
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("KieContainerUpdate{");
sb.append("mainClass='").append(mainClass).append('\'');
sb.append(", groupID='").append(groupID).append('\'');
sb.append(", artifactID='").append(artifactID).append('\'');
sb.append(", processID='").append(processID).append('\'');
sb.append(", projectVersion='").append(projectVersion).append('\'');
sb.append(", containerID='").append(containerID).append('\'');
sb.append(", action=").append(action);
sb.append('}');
return sb.toString();
}
}