Refactoring drools console + add rest pojo model as it was in version 5 with Guvnor
This commit is contained in:
parent
c434544431
commit
68d39cf456
19 changed files with 627 additions and 451 deletions
|
|
@ -0,0 +1,5 @@
|
|||
package org.chtijbug.drools.console;
|
||||
|
||||
public interface AddLog {
|
||||
public void addRow(String textToAdd);
|
||||
}
|
||||
|
|
@ -1,234 +0,0 @@
|
|||
package org.chtijbug.drools.console;
|
||||
|
||||
import com.vaadin.annotations.PreserveOnRefresh;
|
||||
import com.vaadin.annotations.Push;
|
||||
import com.vaadin.annotations.Theme;
|
||||
import com.vaadin.data.Container;
|
||||
import com.vaadin.data.Item;
|
||||
import com.vaadin.data.Property;
|
||||
import com.vaadin.data.util.BeanItemContainer;
|
||||
import com.vaadin.data.util.IndexedContainer;
|
||||
import com.vaadin.server.VaadinRequest;
|
||||
import com.vaadin.shared.ui.MultiSelectMode;
|
||||
import com.vaadin.spring.annotation.SpringUI;
|
||||
import com.vaadin.ui.*;
|
||||
import com.vaadin.ui.themes.Runo;
|
||||
import org.chtijbug.drools.console.service.JenkinsService;
|
||||
import org.chtijbug.drools.console.service.KieRepositoryService;
|
||||
import org.chtijbug.drools.console.service.KieServerRepositoryService;
|
||||
import org.chtijbug.drools.console.service.model.DisplayData;
|
||||
import org.chtijbug.drools.console.service.model.kie.*;
|
||||
import org.chtijbug.drools.console.service.util.AppContext;
|
||||
import org.guvnor.rest.client.ProjectResponse;
|
||||
import org.guvnor.rest.client.PublicURI;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Push
|
||||
@Theme("runo")
|
||||
@SpringUI
|
||||
@PreserveOnRefresh
|
||||
@SuppressWarnings("serial")
|
||||
public class DroolsAdminConsole extends UI {
|
||||
|
||||
final private Button buttonDeployProject = new Button("Deploy project");
|
||||
final private List<DisplayData> currentSelected = new ArrayList<>();
|
||||
final private Table table = new Table();
|
||||
// @Autowired
|
||||
// private GitLabRepositoryService gitLabRepositoryService;
|
||||
|
||||
// @Autowired
|
||||
// private GitRepositoryService gitRepositoryService;
|
||||
@Autowired
|
||||
private KieRepositoryService kieRepositoryService;
|
||||
@Autowired
|
||||
private KieServerRepositoryService kieServerRepositoryService;
|
||||
@Autowired
|
||||
private JenkinsService jenkinsService;
|
||||
private TextField userNameTextField;
|
||||
private PasswordField userpasswdTextField;
|
||||
private Table gitReposTable;
|
||||
private BeanItemContainer<DisplayData> gitReposListContainer;
|
||||
|
||||
public DroolsAdminConsole() {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init(VaadinRequest request) {
|
||||
final VerticalLayout layout = new VerticalLayout();
|
||||
KieConfigurationData configKie = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||
// GitLabConfigurationData configGitLab = AppContext.getApplicationContext().getBean(GitLabConfigurationData.class);
|
||||
// JenkinsConfigurationData jenkinsConfigurationData = AppContext.getApplicationContext().getBean(JenkinsConfigurationData.class);
|
||||
|
||||
// gitLabRepositoryService = AppContext.getApplicationContext().getBean(GitLabRepositoryService.class);
|
||||
|
||||
//jenkinsService = AppContext.getApplicationContext().getBean(JenkinsService.class);
|
||||
|
||||
layout.setMargin(true);
|
||||
setContent(layout);
|
||||
TextField urlTextField = new TextField("Kie-Wb url");
|
||||
urlTextField.setValue(configKie.getKiewbUrl());
|
||||
urlTextField.setMaxLength(200);
|
||||
layout.addComponent(urlTextField);
|
||||
HorizontalLayout userHorizontal = new HorizontalLayout();
|
||||
layout.addComponent(userHorizontal);
|
||||
userNameTextField = new TextField("User name");
|
||||
userNameTextField.setValue(configKie.getUserName());
|
||||
userHorizontal.addComponent(userNameTextField);
|
||||
userpasswdTextField = new PasswordField("Password");
|
||||
userpasswdTextField.setValue(configKie.getPassword());
|
||||
userHorizontal.addComponent(userpasswdTextField);
|
||||
Button button = new Button("Repositories");
|
||||
button.addStyleName(Runo.BUTTON_SMALL);
|
||||
gitReposListContainer = new BeanItemContainer<>(DisplayData.class);
|
||||
|
||||
gitReposTable = new Table("List of repository/project", gitReposListContainer);
|
||||
gitReposTable.setSelectable(true);
|
||||
gitReposTable.setMultiSelectMode(MultiSelectMode.SIMPLE);
|
||||
//gitReposTable.
|
||||
button.addClickListener((Button.ClickListener) event -> {
|
||||
this.refreshList();
|
||||
});
|
||||
layout.addComponent(button);
|
||||
layout.addComponent(gitReposTable);
|
||||
layout.addComponent(buttonDeployProject);
|
||||
buttonDeployProject.addStyleName(Runo.BUTTON_SMALL);
|
||||
|
||||
|
||||
table.setCaption("Logging");
|
||||
table.setSizeFull();
|
||||
table.setPageLength(0);
|
||||
table.setSelectable(false);
|
||||
table.setColumnCollapsingAllowed(false);
|
||||
table.setColumnReorderingAllowed(false);
|
||||
table.setImmediate(true);
|
||||
table.setNullSelectionAllowed(false);
|
||||
table.setColumnHeaderMode(Table.ColumnHeaderMode.ID);
|
||||
Container container = new IndexedContainer();
|
||||
container.addContainerProperty("Message", String.class, "none");
|
||||
table.setContainerDataSource(container);
|
||||
layout.addComponent(table);
|
||||
|
||||
|
||||
gitReposTable.addValueChangeListener(new Property.ValueChangeListener() {
|
||||
public void valueChange(Property.ValueChangeEvent event) {
|
||||
currentSelected.clear();
|
||||
if (gitReposTable.getValue() != null) {
|
||||
currentSelected.add((DisplayData) gitReposTable.getValue());
|
||||
buttonDeployProject.setEnabled(true);
|
||||
} else {
|
||||
buttonDeployProject.setEnabled(false);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
buttonDeployProject.addClickListener((Button.ClickListener) event -> {
|
||||
if (currentSelected.size() == 1) {
|
||||
table.removeAllItems();
|
||||
DisplayData displayData = currentSelected.get(0);
|
||||
KieConfigurationData config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||
kieRepositoryService = AppContext.getApplicationContext().getBean(KieRepositoryService.class);
|
||||
|
||||
|
||||
JobStatus result = kieRepositoryService.buildProject(config.getKiewbUrl(), userNameTextField.getValue(),
|
||||
userpasswdTextField.getValue(), displayData.getSpaceName(), displayData.getProjectArtifactID(), "compile", this);
|
||||
kieRepositoryService.waitForJobToBeEnded(config.getKiewbUrl(), userNameTextField.getValue(),
|
||||
userpasswdTextField.getValue(), result.getJobId(), this);
|
||||
|
||||
result = kieRepositoryService.buildProject(config.getKiewbUrl(), userNameTextField.getValue(),
|
||||
userpasswdTextField.getValue(), displayData.getSpaceName(), displayData.getProjectArtifactID(), "install", this);
|
||||
|
||||
kieRepositoryService.waitForJobToBeEnded(config.getKiewbUrl(), userNameTextField.getValue(),
|
||||
userpasswdTextField.getValue(), result.getJobId(), this);
|
||||
if (displayData.getContainerId() != null && displayData.getContainerId().length() > 0) {
|
||||
KieServerJobStatus jobresult = kieServerRepositoryService.stopContainer(config.getKieserverUrl(), config.getKieserverUserName(), config.getKieserverPassword(), displayData.getContainerId(), this);
|
||||
if (jobresult != null
|
||||
&& "SUCCESS".equals(jobresult.getType())) {
|
||||
}
|
||||
|
||||
}
|
||||
KieContainerRequest newContainer = new KieContainerRequest();
|
||||
newContainer.setContainerId(displayData.getContainerId());
|
||||
newContainer.setReleaseId(new ReleaseDefinition());
|
||||
newContainer.getReleaseId().setArtifactId(displayData.getProjectArtifactID());
|
||||
newContainer.getReleaseId().setGroupId(displayData.getProjectGroupID());
|
||||
newContainer.getReleaseId().setVersion(displayData.getProjectVersion());
|
||||
KieContainerInfo toto = kieServerRepositoryService.createContainer(config.getKieserverUrl(), config.getKieserverUserName(), config.getKieserverPassword(), displayData.getProjectArtifactID(), newContainer, this);
|
||||
System.out.println("coucou");
|
||||
this.refreshList();
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
buttonDeployProject.setEnabled(false);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void addRow(String textToAdd) {
|
||||
int nbRows = table.getContainerDataSource().getItemIds().size() + 1;
|
||||
Item item = table.getContainerDataSource().addItem(nbRows);
|
||||
if (item != null) {
|
||||
Property<String> nameProperty =
|
||||
item.getItemProperty("Message");
|
||||
|
||||
nameProperty.setValue(textToAdd);
|
||||
table.setContainerDataSource(table.getContainerDataSource());
|
||||
} else {
|
||||
System.out.println("null");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void refreshList() {
|
||||
gitReposListContainer.removeAllItems();
|
||||
KieConfigurationData config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||
kieRepositoryService = AppContext.getApplicationContext().getBean(KieRepositoryService.class);
|
||||
List<KieContainerInfo> listcontainers = kieServerRepositoryService.getContainerList(config.getKieserverUrl(), config.getKieserverUserName(), config.getKieserverPassword());
|
||||
|
||||
|
||||
List<ProjectResponse> listSpacesuberfire = kieRepositoryService.getListSpaces2(config.getKiewbUrl(), userNameTextField.getValue(),
|
||||
userpasswdTextField.getValue());
|
||||
|
||||
// List<Space> listSpaces = kieRepositoryService.getListSpaces(config.getKiewbUrl(), userNameTextField.getValue(),
|
||||
// userpasswdTextField.getValue());
|
||||
|
||||
|
||||
for (ProjectResponse projectResponse : listSpacesuberfire) {
|
||||
DisplayData displayData = new DisplayData();
|
||||
displayData.setSpaceName(projectResponse.getSpaceName());
|
||||
displayData.setProjectArtifactID(projectResponse.getName());
|
||||
displayData.setProjectGroupID(projectResponse.getGroupId());
|
||||
displayData.setProjectVersion(projectResponse.getVersion());
|
||||
displayData.setProjectDescription(projectResponse.getDescription());
|
||||
for (PublicURI uri : projectResponse.getPublicURIs()) {
|
||||
if (uri.getProtocol().equals("git")) {
|
||||
displayData.setProjectGitAddress(uri.getUri());
|
||||
} else {
|
||||
displayData.setProjectSSHAdress(uri.getUri());
|
||||
}
|
||||
}
|
||||
for (KieContainerInfo kie : listcontainers) {
|
||||
if (kie.getGroupId() != null
|
||||
&& kie.getGroupId().equals(displayData.getProjectGroupID())
|
||||
&& kie.getArtifactId().equals(displayData.getProjectArtifactID())
|
||||
&& kie.getVersion().equals(displayData.getProjectVersion())) {
|
||||
displayData.setKieServerArtifactId(kie.getArtifactId());
|
||||
displayData.setKieServerGroupId(kie.getGroupId());
|
||||
displayData.setKieServerVersion(kie.getVersion());
|
||||
displayData.setContainerId(kie.getContainerId());
|
||||
}
|
||||
}
|
||||
gitReposListContainer.addBean(displayData);
|
||||
|
||||
}
|
||||
|
||||
System.out.println("coucou");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
package org.chtijbug.drools.console;
|
||||
|
||||
import com.vaadin.annotations.PreserveOnRefresh;
|
||||
import com.vaadin.annotations.Push;
|
||||
import com.vaadin.annotations.Theme;
|
||||
import com.vaadin.event.FieldEvents;
|
||||
import com.vaadin.server.VaadinRequest;
|
||||
import com.vaadin.spring.annotation.SpringUI;
|
||||
import com.vaadin.ui.*;
|
||||
import org.chtijbug.drools.console.service.JenkinsService;
|
||||
import org.chtijbug.drools.console.service.KieRepositoryService;
|
||||
import org.chtijbug.drools.console.service.KieServerRepositoryService;
|
||||
import org.chtijbug.drools.console.service.model.UserConnected;
|
||||
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
||||
import org.chtijbug.drools.console.service.util.AppContext;
|
||||
import org.chtijbug.drools.console.view.DeploymentView;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@Push
|
||||
@Theme("runo")
|
||||
@SpringUI
|
||||
@PreserveOnRefresh
|
||||
@SuppressWarnings("serial")
|
||||
public class DroolsAdminConsoleMainView extends UI {
|
||||
|
||||
|
||||
// @Autowired
|
||||
// private GitLabRepositoryService gitLabRepositoryService;
|
||||
|
||||
final UserConnected userConnected = new UserConnected();
|
||||
// @Autowired
|
||||
// private GitRepositoryService gitRepositoryService;
|
||||
@Autowired
|
||||
private KieRepositoryService kieRepositoryService;
|
||||
@Autowired
|
||||
private KieServerRepositoryService kieServerRepositoryService;
|
||||
@Autowired
|
||||
private JenkinsService jenkinsService;
|
||||
private TextField userNameTextField;
|
||||
private PasswordField userpasswdTextField;
|
||||
|
||||
public DroolsAdminConsoleMainView() {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init(VaadinRequest request) {
|
||||
final VerticalLayout layout = new VerticalLayout();
|
||||
KieConfigurationData configKie = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||
// GitLabConfigurationData configGitLab = AppContext.getApplicationContext().getBean(GitLabConfigurationData.class);
|
||||
// JenkinsConfigurationData jenkinsConfigurationData = AppContext.getApplicationContext().getBean(JenkinsConfigurationData.class);
|
||||
|
||||
// gitLabRepositoryService = AppContext.getApplicationContext().getBean(GitLabRepositoryService.class);
|
||||
|
||||
//jenkinsService = AppContext.getApplicationContext().getBean(JenkinsService.class);
|
||||
|
||||
layout.setMargin(true);
|
||||
setContent(layout);
|
||||
HorizontalLayout userHorizontal = new HorizontalLayout();
|
||||
TextField urlTextField = new TextField("Kie-Wb url");
|
||||
urlTextField.setValue(configKie.getKiewbUrl());
|
||||
urlTextField.setMaxLength(200);
|
||||
userHorizontal.addComponent(urlTextField);
|
||||
layout.addComponent(userHorizontal);
|
||||
userNameTextField = new TextField("User name");
|
||||
userNameTextField.setValue(configKie.getUserName());
|
||||
userConnected.setUserName(configKie.getUserName());
|
||||
userNameTextField.addTextChangeListener(new FieldEvents.TextChangeListener() {
|
||||
@Override
|
||||
public void textChange(FieldEvents.TextChangeEvent textChangeEvent) {
|
||||
userConnected.setUserName(textChangeEvent.getText());
|
||||
}
|
||||
});
|
||||
|
||||
userHorizontal.addComponent(userNameTextField);
|
||||
userpasswdTextField = new PasswordField("Password");
|
||||
userpasswdTextField.setValue(configKie.getPassword());
|
||||
userConnected.setUserPassword(configKie.getPassword());
|
||||
userpasswdTextField.addTextChangeListener(new FieldEvents.TextChangeListener() {
|
||||
@Override
|
||||
public void textChange(FieldEvents.TextChangeEvent textChangeEvent) {
|
||||
userConnected.setUserPassword(textChangeEvent.getText());
|
||||
}
|
||||
});
|
||||
userHorizontal.addComponent(userpasswdTextField);
|
||||
TabSheet tabsheetRepo = new TabSheet();
|
||||
layout.addComponent(tabsheetRepo);
|
||||
|
||||
DeploymentView deploymentView = new DeploymentView(userConnected);
|
||||
tabsheetRepo.addTab(deploymentView, "Deploy");
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
package org.chtijbug.drools.console;
|
||||
|
||||
import com.vaadin.ui.PopupView;
|
||||
import com.vaadin.ui.Table;
|
||||
import com.vaadin.ui.VerticalLayout;
|
||||
|
||||
public class WorkOnGoingView extends PopupView {
|
||||
|
||||
private Table table;
|
||||
|
||||
|
||||
public WorkOnGoingView() {
|
||||
super("Logging", new VerticalLayout());
|
||||
|
||||
|
||||
//this.
|
||||
|
||||
VerticalLayout verticalLayout = (VerticalLayout) this.getContent().getPopupComponent();
|
||||
this.table = new Table("Logging");
|
||||
table = new Table();
|
||||
table.setSizeFull();
|
||||
table.setPageLength(0);
|
||||
table.setSelectable(false);
|
||||
table.setColumnCollapsingAllowed(false);
|
||||
table.setColumnReorderingAllowed(false);
|
||||
table.setImmediate(true);
|
||||
table.setNullSelectionAllowed(false);
|
||||
table.setColumnHeaderMode(Table.ColumnHeaderMode.HIDDEN);
|
||||
table.addContainerProperty("Message", String.class, null);
|
||||
verticalLayout.addComponent(table);
|
||||
}
|
||||
|
||||
public void addRow(String textToAdd) {
|
||||
String[] cells = new String[1];
|
||||
cells[0] = textToAdd;
|
||||
table.addItem(cells, "Message");
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@ package org.chtijbug.drools.console.service;
|
|||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.chtijbug.drools.console.DroolsAdminConsole;
|
||||
import org.chtijbug.drools.console.AddLog;
|
||||
import org.chtijbug.drools.console.service.model.kie.JobStatus;
|
||||
import org.chtijbug.drools.console.service.model.kie.Space;
|
||||
import org.guvnor.rest.client.ProjectResponse;
|
||||
|
|
@ -75,7 +75,7 @@ public class KieRepositoryService {
|
|||
return reponseMoteur;
|
||||
}
|
||||
|
||||
public JobStatus buildProject(String url, String username, String password, String space, String project, String command, DroolsAdminConsole workOnGoingView) {
|
||||
public JobStatus buildProject(String url, String username, String password, String space, String project, String command, AddLog workOnGoingView) {
|
||||
String completeurl = url + "/spaces/" + space + "/projects/" + project + "/maven/" + command;
|
||||
logger.info("url Maven install : " + completeurl);
|
||||
ResponseEntity<JobStatus> response = restTemplateKiewb
|
||||
|
|
@ -138,7 +138,7 @@ public class KieRepositoryService {
|
|||
};
|
||||
}
|
||||
|
||||
public String waitForJobToBeEnded(String url, String username, String password, String jobID, DroolsAdminConsole workOnGoingView) {
|
||||
public String waitForJobToBeEnded(String url, String username, String password, String jobID, AddLog workOnGoingView) {
|
||||
String isJobDone = "NO";
|
||||
while ("NO".equals(isJobDone)) {
|
||||
JobStatus jobStatus = this.getStatusJobID(url,
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package org.chtijbug.drools.console.service;
|
|||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.chtijbug.drools.console.DroolsAdminConsole;
|
||||
import org.chtijbug.drools.console.AddLog;
|
||||
import org.chtijbug.drools.console.service.model.kie.KieContainerInfo;
|
||||
import org.chtijbug.drools.console.service.model.kie.KieContainerRequest;
|
||||
import org.chtijbug.drools.console.service.model.kie.KieServerJobStatus;
|
||||
|
|
@ -103,7 +103,7 @@ public class KieServerRepositoryService {
|
|||
return results;
|
||||
}
|
||||
|
||||
public KieServerJobStatus stopContainer(String url, String username, String password, String containerId, DroolsAdminConsole workOnGoingView) {
|
||||
public KieServerJobStatus stopContainer(String url, String username, String password, String containerId, AddLog workOnGoingView) {
|
||||
KieServerJobStatus results = null;
|
||||
String completeurl = url + "/containers/" + containerId;
|
||||
logger.info("url kie server container : " + completeurl);
|
||||
|
|
@ -125,7 +125,7 @@ public class KieServerRepositoryService {
|
|||
return reponseMoteur;
|
||||
}
|
||||
|
||||
public KieContainerInfo createContainer(String url, String username, String password, String containerId, KieContainerRequest request, DroolsAdminConsole workOnGoingView) {
|
||||
public KieContainerInfo createContainer(String url, String username, String password, String containerId, KieContainerRequest request, AddLog workOnGoingView) {
|
||||
String completeurl = url + "/containers/" + containerId;
|
||||
logger.info("url kie server container : " + completeurl);
|
||||
ResponseEntity<Map<String, Object>> response = restTemplateKiewb
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
package org.chtijbug.drools.console.service.model;
|
||||
|
||||
public class UserConnected {
|
||||
private String userName;
|
||||
|
||||
private String userPassword;
|
||||
|
||||
public UserConnected() {
|
||||
}
|
||||
|
||||
public UserConnected(String userName, String userPassword) {
|
||||
this.userName = userName;
|
||||
this.userPassword = userPassword;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public String getUserPassword() {
|
||||
return userPassword;
|
||||
}
|
||||
|
||||
public void setUserPassword(String userPassword) {
|
||||
this.userPassword = userPassword;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,188 @@
|
|||
package org.chtijbug.drools.console.view;
|
||||
|
||||
import com.vaadin.data.Container;
|
||||
import com.vaadin.data.Item;
|
||||
import com.vaadin.data.Property;
|
||||
import com.vaadin.data.util.BeanItemContainer;
|
||||
import com.vaadin.data.util.IndexedContainer;
|
||||
import com.vaadin.navigator.View;
|
||||
import com.vaadin.navigator.ViewChangeListener;
|
||||
import com.vaadin.ui.*;
|
||||
import com.vaadin.ui.themes.Runo;
|
||||
import org.chtijbug.drools.console.AddLog;
|
||||
import org.chtijbug.drools.console.service.KieRepositoryService;
|
||||
import org.chtijbug.drools.console.service.KieServerRepositoryService;
|
||||
import org.chtijbug.drools.console.service.model.DisplayData;
|
||||
import org.chtijbug.drools.console.service.model.UserConnected;
|
||||
import org.chtijbug.drools.console.service.model.kie.*;
|
||||
import org.chtijbug.drools.console.service.util.AppContext;
|
||||
import org.guvnor.rest.client.ProjectResponse;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class DeploymentView extends VerticalLayout implements AddLog, View {
|
||||
|
||||
|
||||
final private List<DisplayData> currentSelected = new ArrayList<>();
|
||||
final private Table table = new Table();
|
||||
final private Button buttonDeployProject = new Button("Deploy project");
|
||||
final private KieConfigurationData config;
|
||||
final private BeanItemContainer<ProjectResponse> spaceContainer;
|
||||
|
||||
final private TextField projectArtifactIDTextField = new TextField("Project Artifact ID");
|
||||
final private TextField projectGroupIDTextField = new TextField("Project Group ID");
|
||||
final private TextField projectVersionTextField = new TextField("Project Version");
|
||||
final private TextField containerIdTextField = new TextField("Container ID");
|
||||
|
||||
final private KieRepositoryService kieRepositoryService;
|
||||
|
||||
final private KieServerRepositoryService kieServerRepositoryService;
|
||||
|
||||
final private UserConnected userConnected;
|
||||
|
||||
public DeploymentView(UserConnected userConnected) {
|
||||
|
||||
this.kieRepositoryService = AppContext.getApplicationContext().getBean(KieRepositoryService.class);
|
||||
;
|
||||
this.kieServerRepositoryService = AppContext.getApplicationContext().getBean(KieServerRepositoryService.class);
|
||||
;
|
||||
this.userConnected = userConnected;
|
||||
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||
Button button = new Button("Refresh");
|
||||
button.addStyleName(Runo.BUTTON_SMALL);
|
||||
|
||||
button.addClickListener((Button.ClickListener) event -> {
|
||||
this.refreshList();
|
||||
});
|
||||
|
||||
this.addComponent(button);
|
||||
|
||||
List<ProjectResponse> projectResponses = kieRepositoryService.getListSpaces2(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword());
|
||||
|
||||
spaceContainer =
|
||||
new BeanItemContainer<ProjectResponse>(ProjectResponse.class);
|
||||
spaceContainer.addAll(projectResponses);
|
||||
ComboBox spaceSelection = new ComboBox("Project", spaceContainer);
|
||||
|
||||
spaceSelection.setNullSelectionAllowed(false);
|
||||
|
||||
spaceSelection.setItemCaptionPropertyId("name");
|
||||
|
||||
spaceSelection.setNewItemsAllowed(false);
|
||||
spaceSelection.setImmediate(true);
|
||||
spaceSelection.addListener(new Property.ValueChangeListener() {
|
||||
@Override
|
||||
public void valueChange(Property.ValueChangeEvent valueChangeEvent) {
|
||||
ProjectResponse response = (ProjectResponse) spaceSelection.getValue();
|
||||
projectArtifactIDTextField.setValue(response.getName());
|
||||
projectGroupIDTextField.setValue(response.getGroupId());
|
||||
projectVersionTextField.setValue(response.getVersion());
|
||||
refreshList();
|
||||
}
|
||||
});
|
||||
this.addComponent(spaceSelection);
|
||||
|
||||
projectArtifactIDTextField.setEnabled(false);
|
||||
projectGroupIDTextField.setEnabled(false);
|
||||
projectVersionTextField.setEnabled(false);
|
||||
containerIdTextField.setEnabled(false);
|
||||
this.addComponent(projectArtifactIDTextField);
|
||||
this.addComponent(projectGroupIDTextField);
|
||||
this.addComponent(projectVersionTextField);
|
||||
this.addComponent(containerIdTextField);
|
||||
|
||||
this.buttonDeployProject.setEnabled(false);
|
||||
this.addComponent(buttonDeployProject);
|
||||
buttonDeployProject.addStyleName(Runo.BUTTON_SMALL);
|
||||
|
||||
|
||||
buttonDeployProject.addClickListener((Button.ClickListener) event -> {
|
||||
if (containerIdTextField.getValue() != null
|
||||
&& containerIdTextField.getValue().length() > 0) {
|
||||
table.removeAllItems();
|
||||
|
||||
ProjectResponse response = (ProjectResponse) spaceSelection.getValue();
|
||||
|
||||
JobStatus result = kieRepositoryService.buildProject(config.getKiewbUrl(), userConnected.getUserName(),
|
||||
userConnected.getUserPassword(), response.getSpaceName(), response.getName(), "compile", this);
|
||||
kieRepositoryService.waitForJobToBeEnded(config.getKiewbUrl(), userConnected.getUserName(),
|
||||
userConnected.getUserPassword(), result.getJobId(), this);
|
||||
|
||||
result = kieRepositoryService.buildProject(config.getKiewbUrl(), userConnected.getUserName(),
|
||||
userConnected.getUserPassword(), response.getSpaceName(), response.getName(), "install", this);
|
||||
|
||||
kieRepositoryService.waitForJobToBeEnded(config.getKiewbUrl(), userConnected.getUserName(),
|
||||
userConnected.getUserPassword(), result.getJobId(), this);
|
||||
if (containerIdTextField.getValue() != null && containerIdTextField.getValue().length() > 0) {
|
||||
KieServerJobStatus jobresult = kieServerRepositoryService.stopContainer(config.getKieserverUrl(), config.getKieserverUserName(), config.getKieserverPassword(), containerIdTextField.getValue(), this);
|
||||
if (jobresult != null
|
||||
&& "SUCCESS".equals(jobresult.getType())) {
|
||||
}
|
||||
|
||||
}
|
||||
KieContainerRequest newContainer = new KieContainerRequest();
|
||||
newContainer.setContainerId(containerIdTextField.getValue());
|
||||
newContainer.setReleaseId(new ReleaseDefinition());
|
||||
newContainer.getReleaseId().setArtifactId(projectArtifactIDTextField.getValue());
|
||||
newContainer.getReleaseId().setGroupId(projectGroupIDTextField.getValue());
|
||||
newContainer.getReleaseId().setVersion(projectVersionTextField.getValue());
|
||||
KieContainerInfo createdContainer = kieServerRepositoryService.createContainer(config.getKieserverUrl(), config.getKieserverUserName(), config.getKieserverPassword(), projectArtifactIDTextField.getValue(), newContainer, this);
|
||||
containerIdTextField.setValue(createdContainer.getContainerId());
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
buttonDeployProject.setEnabled(false);
|
||||
table.setCaption("Logging");
|
||||
table.setSizeFull();
|
||||
table.setPageLength(0);
|
||||
table.setSelectable(false);
|
||||
table.setColumnCollapsingAllowed(false);
|
||||
table.setColumnReorderingAllowed(false);
|
||||
table.setImmediate(true);
|
||||
table.setNullSelectionAllowed(false);
|
||||
table.setColumnHeaderMode(Table.ColumnHeaderMode.ID);
|
||||
Container container = new IndexedContainer();
|
||||
container.addContainerProperty("Message", String.class, "none");
|
||||
table.setContainerDataSource(container);
|
||||
this.addComponent(table);
|
||||
|
||||
}
|
||||
|
||||
private void refreshList() {
|
||||
buttonDeployProject.setEnabled(true);
|
||||
KieConfigurationData config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||
List<KieContainerInfo> listcontainers = kieServerRepositoryService.getContainerList(config.getKieserverUrl(), config.getKieserverUserName(), config.getKieserverPassword());
|
||||
containerIdTextField.setValue("");
|
||||
for (KieContainerInfo kieContainerInfo : listcontainers) {
|
||||
if (kieContainerInfo.getArtifactId().equals(projectArtifactIDTextField.getValue())
|
||||
&& kieContainerInfo.getArtifactId().equals(projectArtifactIDTextField.getValue())
|
||||
&& kieContainerInfo.getArtifactId().equals(projectArtifactIDTextField.getValue())) {
|
||||
containerIdTextField.setValue(kieContainerInfo.getContainerId());
|
||||
}
|
||||
|
||||
}
|
||||
System.out.println("coucou");
|
||||
}
|
||||
|
||||
public void addRow(String textToAdd) {
|
||||
int nbRows = table.getContainerDataSource().getItemIds().size() + 1;
|
||||
Item item = table.getContainerDataSource().addItem(nbRows);
|
||||
if (item != null) {
|
||||
Property<String> nameProperty =
|
||||
item.getItemProperty("Message");
|
||||
|
||||
nameProperty.setValue(textToAdd);
|
||||
table.setContainerDataSource(table.getContainerDataSource());
|
||||
} else {
|
||||
System.out.println("null");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) {
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Add table
editor.link_modal.header
Reference in a new issue