Merge pull request #17 from pymma/guillaume

log
This commit is contained in:
Hochart Guillaume 2019-01-31 16:54:36 +01:00 committed by GitHub
commit eda585762e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 795 additions and 114 deletions

View file

@ -19,74 +19,42 @@
<jbpm.version>7.15.0.Final</jbpm.version>
</properties>
<build>
<finalName>drools-framework-admin-console</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<packagingExcludes>
%regex[WEB-INF/lib/slf4j-simple.*.jar],
%regex[WEB-INF/lib/tomcat.*.jar]
</packagingExcludes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<repositories>
<repository>
<id>vaadin-addons</id>
<url>http://maven.vaadin.com/vaadin-addons</url>
</repository>
</repositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-bom</artifactId>
<version>${vaadin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<filesets>
<fileset>
<directory>${webapp.directory}/frontend-es5</directory>
</fileset>
<fileset>
<directory>${webapp.directory}/frontend-es6</directory>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>spring-boot</classifier>
<mainClass>
org.chtijbug.drools.console.DroolsSpringBootConsoleApplication
</mainClass>
</configuration>
</execution>
</executions>
<configuration>
<executable>true</executable>
</configuration>
<!--exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions-->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
@ -219,38 +187,84 @@
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.pymmasoftware.jbpm</groupId>
<artifactId>drools-framework-business-indexer-persistence</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-bom</artifactId>
<version>${vaadin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<build>
<finalName>drools-framework-admin-console</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<packagingExcludes>
%regex[WEB-INF/lib/slf4j-simple.*.jar],
%regex[WEB-INF/lib/tomcat.*.jar]
</packagingExcludes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<!--exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions-->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>vaadin-addons</id>
<url>http://maven.vaadin.com/vaadin-addons</url>
</repository>
</repositories>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<filesets>
<fileset>
<directory>${webapp.directory}/frontend-es5</directory>
</fileset>
<fileset>
<directory>${webapp.directory}/frontend-es6</directory>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>spring-boot</classifier>
<mainClass>
org.chtijbug.drools.console.DroolsSpringBootConsoleApplication
</mainClass>
</configuration>
</execution>
</executions>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>productionMode</id>

View file

@ -2,22 +2,36 @@ package org.chtijbug.drools.console;
import org.chtijbug.drools.console.service.util.ApplicationContextProvider;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.*;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
import org.springframework.stereotype.Repository;
@Configuration
@SpringBootApplication
@ComponentScan("org.chtijbug.drools.proxy.persistence")
@ComponentScan({"org.chtijbug.drools.proxy.persistence","org.chtijbug.drools.indexer"})
@EnableMongoRepositories("org.chtijbug.drools.proxy.persistence.repository")
@EnableElasticsearchRepositories(basePackages = "org.chtijbug.drools.indexer.persistence.repository")
@PropertySource("classpath:application.properties")
@ImportResource("classpath:applicationContext.xml")
public class DroolsSpringBootConsoleApplication extends SpringBootServletInitializer {
@Bean
public ApplicationContextProvider getAppplicationContext() {
ApplicationContextProvider applicationContextProvider = new ApplicationContextProvider();
return applicationContextProvider;
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DroolsSpringBootConsoleApplication.class);
@ -27,11 +41,6 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
SpringApplication.run(DroolsSpringBootConsoleApplication.class, args);
}
@Bean
public ApplicationContextProvider getAppplicationContext() {
ApplicationContextProvider applicationContextProvider = new ApplicationContextProvider();
return applicationContextProvider;
}
}

View file

@ -0,0 +1,33 @@
package org.chtijbug.drools.console.service;
import org.chtijbug.drools.indexer.persistence.repository.BusinessTransactionActionRepository;
import org.chtijbug.drools.indexer.persistence.repository.BusinessTransactionPersistenceRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class IndexerService {
@Autowired
private BusinessTransactionPersistenceRepository businessTransactionPersistenceRepository;
@Autowired
private BusinessTransactionActionRepository businessTransactionActionRepository;
public BusinessTransactionPersistenceRepository getBusinessTransactionPersistenceRepository() {
return businessTransactionPersistenceRepository;
}
public void setBusinessTransactionPersistenceRepository(BusinessTransactionPersistenceRepository businessTransactionPersistenceRepository) {
this.businessTransactionPersistenceRepository = businessTransactionPersistenceRepository;
}
public BusinessTransactionActionRepository getBusinessTransactionActionRepository() {
return businessTransactionActionRepository;
}
public void setBusinessTransactionActionRepository(BusinessTransactionActionRepository businessTransactionActionRepository) {
this.businessTransactionActionRepository = businessTransactionActionRepository;
}
}

View file

@ -42,8 +42,6 @@ public class ProjectPersistService {
private KieServerRepositoryService kieServerRepositoryService;
public ProjectPersistService(){
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);

View file

@ -0,0 +1,25 @@
package org.chtijbug.drools.console.vaadinComponent.ComponentPerso;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dependency.StyleSheet;
import com.vaadin.flow.component.dialog.Dialog;
import com.vaadin.flow.component.icon.VaadinIcon;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
@StyleSheet("css/composantperso/dialog.css")
public class DialogPerso extends Dialog {
public DialogPerso(){
HorizontalLayout bar = new HorizontalLayout();
Button close = new Button();
close.setIcon(VaadinIcon.CLOSE.create());
close.addClassName("DialogClose");
bar.addClassName("DialogBar");
bar.add(close);
add(bar);
setCloseOnEsc(false);
setCloseOnOutsideClick(false);
close.addClickListener(buttonClickEvent -> close());
}
}

View file

@ -27,6 +27,8 @@ public class SqueletteComposant extends VerticalLayout {
private MenuSecondaireRuntime menuSecondaireRuntime;
private MenuSecondaireLogging menuSecondaireLogging;
private VerticalLayout content;
private VerticalLayout infoPage;
@ -69,6 +71,9 @@ public class SqueletteComposant extends VerticalLayout {
menuSecondaireRuntime=new MenuSecondaireRuntime(this);
tmp.add(menuSecondaireRuntime);
menuSecondaireLogging=new MenuSecondaireLogging(this);
tmp.add(menuSecondaireLogging);
infoPage = new VerticalLayout();
infoPage.setClassName("squelette-component-infoPage");
content.add(infoPage);
@ -172,6 +177,14 @@ public class SqueletteComposant extends VerticalLayout {
this.userConnectedService = userConnectedService;
}
public MenuSecondaireLogging getMenuSecondaireLogging() {
return menuSecondaireLogging;
}
public void setMenuSecondaireLogging(MenuSecondaireLogging menuSecondaireLogging) {
this.menuSecondaireLogging = menuSecondaireLogging;
}
public ConsoleDeploy getConsoleDeploy() {
return consoleDeploy;
}

View file

@ -0,0 +1,151 @@
package org.chtijbug.drools.console.vaadinComponent.componentView;
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.html.Label;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.textfield.TextField;
import com.vaadin.flow.data.provider.ConfigurableFilterDataProvider;
import com.vaadin.flow.data.provider.ListDataProvider;
import com.vaadin.flow.data.renderer.ComponentRenderer;
import com.vaadin.flow.data.value.ValueChangeMode;
import com.vaadin.flow.function.SerializablePredicate;
import org.chtijbug.drools.console.service.IndexerService;
import org.chtijbug.drools.console.service.util.AppContext;
import org.chtijbug.drools.indexer.persistence.model.BusinessTransactionAction;
import org.chtijbug.drools.indexer.persistence.model.BusinessTransactionPersistence;
import java.util.ArrayList;
import java.util.List;
public class GridActionLogging extends Grid<BusinessTransactionAction> {
private TextField eventType;
private TextField positionExecution;
private TextField ruleName;
private TextField packageName;
private String strEventType ="EventType";
private String strPositionExecution ="Position";
private String strRuleName ="RuleName";
private String strPackageName ="Package";
private ListDataProvider<BusinessTransactionAction> dataProvider;
private ConfigurableFilterDataProvider<BusinessTransactionAction,Void,SerializablePredicate<BusinessTransactionAction>> filterDataProvider;
private IndexerService indexerService;
public GridActionLogging(String idRequest){
indexerService = AppContext.getApplicationContext().getBean(IndexerService.class);
setClassName("action-log-grid-perso");
setSelectionMode(Grid.SelectionMode.SINGLE);
addColumn(new ComponentRenderer<>(runtimePersist -> {
VerticalLayout verticalLayout=new VerticalLayout();
if(runtimePersist.getRuleExecution()!=null) {
Label label = new Label("Starting ->" + runtimePersist.getRuleExecution().getStartDate());
verticalLayout.add(label);
Label label2 = new Label("Ending ->" + runtimePersist.getRuleExecution().getEndDate());
verticalLayout.add(label2);
}
return verticalLayout;
})).setHeader("Date");
Grid.Column<BusinessTransactionAction> enventTypeC=addColumn(runtimePersist -> runtimePersist.getEventType());
this.eventType =new TextField(strEventType);
this.eventType.setValueChangeMode(ValueChangeMode.EAGER);
this.eventType.addValueChangeListener(e -> {
refreshtGrid(this.eventType.getValue(), strEventType);
});
enventTypeC.setHeader(this.eventType);
Grid.Column<BusinessTransactionAction> positionC=addColumn(runtimePersist -> runtimePersist.getEventNumber())
.setSortable(true);
positionExecution =new TextField(strPositionExecution);
positionExecution.setValueChangeMode(ValueChangeMode.EAGER);
positionExecution.addValueChangeListener(e -> {
refreshtGrid(positionExecution.getValue(), strPositionExecution);
});
positionC.setHeader(positionExecution);
Grid.Column<BusinessTransactionAction> ruleNameC=addColumn(runtimePersist -> runtimePersist.getRuleExecution()!=null?runtimePersist.getRuleExecution().getRuleName():"");
ruleName =new TextField(strRuleName);
ruleName.setValueChangeMode(ValueChangeMode.EAGER);
ruleName.addValueChangeListener(e -> {
refreshtGrid(ruleName.getValue(), strRuleName);
});
ruleNameC.setHeader(ruleName);
Grid.Column<BusinessTransactionAction> versionC=addColumn(runtimePersist -> runtimePersist.getRuleExecution()!=null?runtimePersist.getRuleExecution().getPackageName():"");
packageName =new TextField(strPackageName);
packageName.setValueChangeMode(ValueChangeMode.EAGER);
packageName.addValueChangeListener(e -> {
refreshtGrid(packageName.getValue(), strPackageName);
});
versionC.setHeader(packageName);
setDataProvider(idRequest);
}
private void refreshtGrid(String value,String type){
filterDataProvider.setFilter(filterGrid(value.toUpperCase(),type));
getDataProvider().refreshAll();
}
private SerializablePredicate<BusinessTransactionAction> filterGrid(String value, String type){
SerializablePredicate<BusinessTransactionAction> columnPredicate = null;
if(value.equals(" ")||type.equals(" ")){
columnPredicate = runtimePersist -> (true);
}else {
if (type.equals(strPositionExecution)) {
columnPredicate = runtimePersist -> (String.valueOf(runtimePersist.getEventNumber()).equals(value));
} else if (type.equals(strEventType)) {
columnPredicate = runtimePersist -> (runtimePersist.getEventType()!=null&&runtimePersist.getEventType().toString().toUpperCase().contains(value));
} else if (type.equals(strRuleName)) {
columnPredicate = runtimePersist -> (runtimePersist.getRuleExecution()!=null&&runtimePersist.getRuleExecution().getRuleName()!=null&&runtimePersist.getRuleExecution().getRuleName().toUpperCase().contains(value));
}
else if (type.equals(strPackageName)) {
columnPredicate = runtimePersist -> (runtimePersist.getRuleExecution()!=null&&runtimePersist.getRuleExecution().getPackageName()!=null&&runtimePersist.getRuleExecution().getPackageName().toUpperCase().contains(value));
}
}
return columnPredicate;
}
public void setDataProvider(String id){
List<BusinessTransactionAction> businessTransactionPersistences = indexerService.getBusinessTransactionActionRepository().findByBusinessTransactionId(id);
if(businessTransactionPersistences!=null) {
dataProvider = new ListDataProvider<>(businessTransactionPersistences);
filterDataProvider = dataProvider.withConfigurableFilter();
setDataProvider(filterDataProvider);
reinitFilter();
}
}
public void reinitFilter(){
positionExecution.setValue("");
ruleName.setValue("");
eventType.setValue("");
packageName.setValue("");
}
}

View file

@ -0,0 +1,174 @@
package org.chtijbug.drools.console.vaadinComponent.componentView;
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.html.Label;
import com.vaadin.flow.component.textfield.TextField;
import com.vaadin.flow.data.provider.ConfigurableFilterDataProvider;
import com.vaadin.flow.data.provider.ListDataProvider;
import com.vaadin.flow.data.renderer.ComponentRenderer;
import com.vaadin.flow.data.value.ValueChangeMode;
import com.vaadin.flow.function.SerializablePredicate;
import org.chtijbug.drools.console.service.IndexerService;
import org.chtijbug.drools.console.service.ProjectPersistService;
import org.chtijbug.drools.console.service.RuntimeService;
import org.chtijbug.drools.console.service.util.AppContext;
import org.chtijbug.drools.indexer.persistence.model.BusinessTransactionPersistence;
import org.chtijbug.drools.proxy.persistence.model.ProjectPersist;
import org.chtijbug.drools.proxy.persistence.model.RuntimePersist;
import java.util.ArrayList;
import java.util.List;
public class GridLogging extends Grid<BusinessTransactionPersistence> {
private TextField transactionId;
private TextField groupeId;
private TextField artefactId;
private TextField version;
private TextField containerId;
private TextField serverName;
private String strTransactionId ="transactiondId";
private String strGroupeId ="groupeId";
private String strArtefactId ="artefactId";
private String strVersion ="version";
private String strContainerId ="containerId";
private String strServerName ="serverName";
private ListDataProvider<BusinessTransactionPersistence> dataProvider;
private ConfigurableFilterDataProvider<BusinessTransactionPersistence,Void,SerializablePredicate<BusinessTransactionPersistence>> filterDataProvider;
private IndexerService indexerService;
public GridLogging(){
indexerService = AppContext.getApplicationContext().getBean(IndexerService.class);
setClassName("deployment-grid-perso");
setSelectionMode(Grid.SelectionMode.SINGLE);
addColumn(new ComponentRenderer<>(runtimePersist -> {
Label label=new Label(runtimePersist.getHour()+":"+runtimePersist.getMinute()+":"+runtimePersist.getMillis()+" ->"+runtimePersist.getDay()+"/"+runtimePersist.getMonth()+"/"+runtimePersist.getYear());
return label;
})).setHeader("Date");
Grid.Column<BusinessTransactionPersistence> transactionIdC=addColumn(runtimePersist -> runtimePersist.getTransactionId());
this.transactionId =new TextField(strTransactionId);
this.transactionId.setValueChangeMode(ValueChangeMode.EAGER);
this.transactionId.addValueChangeListener(e -> {
refreshtGrid(this.transactionId.getValue(), strTransactionId);
});
transactionIdC.setHeader(this.transactionId);
Grid.Column<BusinessTransactionPersistence> groupIdC=addColumn(runtimePersist -> runtimePersist.getGroupID());
groupeId =new TextField(strGroupeId);
groupeId.setValueChangeMode(ValueChangeMode.EAGER);
groupeId.addValueChangeListener(e -> {
refreshtGrid(groupeId.getValue(), strGroupeId);
});
groupIdC.setHeader(groupeId);
Grid.Column<BusinessTransactionPersistence> artefactIdC=addColumn(runtimePersist -> runtimePersist.getArtefactID());
artefactId =new TextField(strArtefactId);
artefactId.setValueChangeMode(ValueChangeMode.EAGER);
artefactId.addValueChangeListener(e -> {
refreshtGrid(artefactId.getValue(), strArtefactId);
});
artefactIdC.setHeader(artefactId);
Grid.Column<BusinessTransactionPersistence> containerIdC=addColumn(runtimePersist -> runtimePersist.getContainerId());
containerId =new TextField(strContainerId);
containerId.setValueChangeMode(ValueChangeMode.EAGER);
containerId.addValueChangeListener(e -> {
refreshtGrid(containerId.getValue(), strContainerId);
});
containerIdC.setHeader(containerId);
Grid.Column<BusinessTransactionPersistence> versionC=addColumn(runtimePersist -> runtimePersist.getVersion());
version =new TextField(strVersion);
version.setValueChangeMode(ValueChangeMode.EAGER);
version.addValueChangeListener(e -> {
refreshtGrid(version.getValue(), strVersion);
});
versionC.setHeader(version);
Grid.Column<BusinessTransactionPersistence> serverNameC=addColumn(runtimePersist -> runtimePersist.getServerName());
serverName =new TextField(strServerName);
serverName.setValueChangeMode(ValueChangeMode.EAGER);
serverName.addValueChangeListener(e -> {
refreshtGrid(serverName.getValue(), strServerName);
});
serverNameC.setHeader(serverName);
setDataProvider();
}
private void refreshtGrid(String value,String type){
filterDataProvider.setFilter(filterGrid(value.toUpperCase(),type));
getDataProvider().refreshAll();
}
private SerializablePredicate<BusinessTransactionPersistence> filterGrid(String value, String type){
SerializablePredicate<BusinessTransactionPersistence> columnPredicate = null;
if(value.equals(" ")||type.equals(" ")){
columnPredicate = runtimePersist -> (true);
}else {
if (type.equals(strGroupeId)) {
columnPredicate = runtimePersist -> (runtimePersist.getGroupID()!=null&&runtimePersist.getGroupID().toUpperCase().contains(value));
} else if (type.equals(strTransactionId)) {
columnPredicate = runtimePersist -> (runtimePersist.getTransactionId()!=null&&runtimePersist.getTransactionId().toUpperCase().contains(value));
} else if (type.equals(strArtefactId)) {
columnPredicate = runtimePersist -> (runtimePersist.getArtefactID()!=null&&runtimePersist.getArtefactID().toUpperCase().contains(value));
}else if (type.equals(strServerName)) {
columnPredicate = runtimePersist -> (runtimePersist.getServerName()!=null&&runtimePersist.getServerName().toUpperCase().contains(value));
}else if (type.equals(strVersion)) {
columnPredicate = runtimePersist -> (runtimePersist.getVersion()!=null&&runtimePersist.getVersion().toUpperCase().contains(value));
}else if (type.equals(strContainerId)) {
columnPredicate = runtimePersist -> (runtimePersist.getContainerId()!=null&&runtimePersist.getContainerId().toUpperCase().contains(value));
}
}
return columnPredicate;
}
public void setDataProvider(){
List<BusinessTransactionPersistence> businessTransactionPersistences = new ArrayList<>();
indexerService.getBusinessTransactionPersistenceRepository().findAll().forEach(businessTransactionPersistences::add);
if(businessTransactionPersistences!=null) {
dataProvider = new ListDataProvider<>(businessTransactionPersistences);
filterDataProvider = dataProvider.withConfigurableFilter();
setDataProvider(filterDataProvider);
reinitFilter();
}
}
public void reinitFilter(){
groupeId.setValue("");
artefactId.setValue("");
transactionId.setValue("");
version.setValue("");
containerId.setValue("");
serverName.setValue("");
}
}

View file

@ -0,0 +1,68 @@
package org.chtijbug.drools.console.vaadinComponent.leftMenu.Action;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dialog.Dialog;
import com.vaadin.flow.component.html.Label;
import com.vaadin.flow.component.icon.VaadinIcon;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import org.chtijbug.drools.console.vaadinComponent.ComponentPerso.DialogPerso;
import org.chtijbug.drools.console.vaadinComponent.Squelette.SqueletteComposant;
import org.chtijbug.drools.console.vaadinComponent.componentView.AddRuntime;
import org.chtijbug.drools.console.vaadinComponent.componentView.DefineProject;
import org.chtijbug.drools.console.vaadinComponent.componentView.GridActionLogging;
import org.chtijbug.drools.console.vaadinComponent.componentView.GridLogging;
import org.chtijbug.drools.console.view.LoggingView;
import org.chtijbug.drools.indexer.persistence.model.BusinessTransactionPersistence;
public class ActionLogging extends VerticalLayout {
private Button viewAction;
public ActionLogging(LoggingView loggingView){
setClassName("leftMenu-global-action");
viewAction =new Button("View Details", VaadinIcon.INFO.create());
viewAction.setClassName("leftMenu-global-button");
viewAction.setEnabled(false);
add(viewAction);
viewAction.addClickListener(buttonClickEvent -> {
active(viewAction);
BusinessTransactionPersistence b=loggingView.getGridLogging().getSelectedItems().stream().findFirst().get();
if(b!=null) {
DialogPerso dialog = new DialogPerso();
dialog.add(new Label(b.getTransactionId()));
dialog.add(new GridActionLogging(b.getId()));
dialog.open();
}
});
}
private boolean isActive(Button button){
return button.getClassNames().contains("active");
}
private void removeActive(Button button) {
if(button.getClassNames().contains("active")){
button.getClassNames().remove("active");
}
}
private void active(Button button){
removeActive(viewAction);
button.getClassNames().add("active");
}
public Button getViewAction() {
return viewAction;
}
public void setViewAction(Button viewAction) {
this.viewAction = viewAction;
}
}

View file

@ -6,6 +6,7 @@ import com.vaadin.flow.component.icon.VaadinIcon;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import org.chtijbug.drools.console.service.ProjectPersistService;
import org.chtijbug.drools.console.service.util.AppContext;
import org.chtijbug.drools.console.vaadinComponent.ComponentPerso.DialogPerso;
import org.chtijbug.drools.console.vaadinComponent.Squelette.SqueletteComposant;
import org.chtijbug.drools.console.vaadinComponent.componentView.AssociateProjectKie;
import org.chtijbug.drools.console.vaadinComponent.componentView.DefineProject;
@ -39,7 +40,7 @@ public class DeploymentAction extends VerticalLayout {
ProjectPersist projectPersist=deploymentView.getProjectPersistGrid().getSelectedItems().stream().findFirst().get();
if(projectPersist!=null) {
Dialog dialog = new Dialog();
DialogPerso dialog = new DialogPerso();
dialog.add(new DefineProject(deploymentView,dialog,projectPersist));
dialog.open();
}
@ -55,7 +56,7 @@ public class DeploymentAction extends VerticalLayout {
ProjectPersist projectPersist=deploymentView.getProjectPersistGrid().getSelectedItems().stream().findFirst().get();
if(projectPersist!=null) {
Dialog dialog = new Dialog();
DialogPerso dialog = new DialogPerso();
dialog.add(new AssociateProjectKie(deploymentView,dialog,projectPersist));
dialog.open();
}

View file

@ -4,6 +4,7 @@ import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dialog.Dialog;
import com.vaadin.flow.component.icon.VaadinIcon;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import org.chtijbug.drools.console.vaadinComponent.ComponentPerso.DialogPerso;
import org.chtijbug.drools.console.vaadinComponent.Squelette.SqueletteComposant;
import org.chtijbug.drools.console.vaadinComponent.componentView.AddRuntime;
@ -21,7 +22,7 @@ public class RuntimesAction extends VerticalLayout {
addRuntime.setClassName("leftMenu-global-button");
add(addRuntime);
Dialog dialog=new Dialog();
DialogPerso dialog=new DialogPerso();
dialog.add(new AddRuntime(dialog,squeletteComposant));
addRuntime.addClickListener(buttonClickEvent -> {

View file

@ -32,6 +32,8 @@ public class MenuPrincipal extends HorizontalLayout {
private Button hamburger;
private Button logging;
//METIER
private UserConnectedService userConnectedService;
@ -83,11 +85,15 @@ public class MenuPrincipal extends HorizontalLayout {
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
squeletteComposant.getMenuSecondaireLogging().setVisible(false);
}else {
removeActive(deployement);
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireLogging().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
}
});
@ -102,12 +108,16 @@ public class MenuPrincipal extends HorizontalLayout {
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(true);
squeletteComposant.getMenuSecondaireLogging().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
}else {
removeActive(assets);
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireLogging().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
}
@ -123,6 +133,8 @@ public class MenuPrincipal extends HorizontalLayout {
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireLogging().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(true);
}else {
removeActive(runtimes);
@ -130,6 +142,32 @@ public class MenuPrincipal extends HorizontalLayout {
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
squeletteComposant.getMenuSecondaireLogging().setVisible(false);
}
});
logging=new Button("Logging");
logging.setClassName("menu-principal-button");
add(logging);
logging.addClickListener(buttonClickEvent -> {
if(!isActive(logging)) {
active(logging);
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
squeletteComposant.getMenuSecondaireLogging().setVisible(true);
}else {
removeActive(logging);
squeletteComposant.getMenuScondaireDeployement().setVisible(false);
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
squeletteComposant.getMenuSecondaireLogging().setVisible(false);
}
});
@ -144,7 +182,7 @@ public class MenuPrincipal extends HorizontalLayout {
squeletteComposant.getMenuSecondaireInfoUser().setVisible(true);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
squeletteComposant.getMenuSecondaireLogging().setVisible(false);
}else {
removeActive(infoUser);
@ -152,6 +190,7 @@ public class MenuPrincipal extends HorizontalLayout {
squeletteComposant.getMenuSecondaireInfoUser().setVisible(false);
squeletteComposant.getMenuSecondaireAssets().setVisible(false);
squeletteComposant.getMenuSecondaireRuntime().setVisible(false);
squeletteComposant.getMenuSecondaireLogging().setVisible(false);
}
@ -174,6 +213,7 @@ public class MenuPrincipal extends HorizontalLayout {
removeActive(deployement);
removeActive(assets);
removeActive(runtimes);
removeActive(logging);
button.getClassNames().add("active");
}

View file

@ -0,0 +1,63 @@
package org.chtijbug.drools.console.vaadinComponent.menu;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dependency.StyleSheet;
import com.vaadin.flow.component.icon.VaadinIcon;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import org.chtijbug.drools.console.vaadinComponent.Squelette.SqueletteComposant;
import org.chtijbug.drools.console.vaadinComponent.leftMenu.Action.ActionLogging;
import org.chtijbug.drools.console.vaadinComponent.leftMenu.Action.RuntimesAction;
import org.chtijbug.drools.console.view.DeploymentView;
import org.chtijbug.drools.console.view.LoggingView;
import org.chtijbug.drools.console.view.RuntimesView;
@StyleSheet("css/accueil.css")
public class MenuSecondaireLogging extends HorizontalLayout {
private Button logging;
public MenuSecondaireLogging(SqueletteComposant squeletteComposant){
setVisible(false);
setClassName("menu-secondaire-content");
logging =new Button("Gestion-logging", VaadinIcon.OFFICE.create());
logging.setClassName("menu-secondaire-button");
add(logging);
logging.addClickListener(buttonClickEvent -> {
if(!isActive(logging)) {
active(logging);
}
LoggingView loggingView=new LoggingView();
ActionLogging actionLogging=new ActionLogging(loggingView);
loggingView.setActionLogging(actionLogging);
squeletteComposant.navigate(loggingView,LoggingView.pageName,actionLogging);
});
}
private boolean isActive(Button button){
return button.getClassNames().contains("active");
}
private void removeActive(Button button) {
if(button.getClassNames().contains("active")){
button.getClassNames().remove("active");
}
}
private void active(Button button){
removeActive(logging);
button.getClassNames().add("active");
}
public Button getLogging() {
return logging;
}
public void setLogging(Button logging) {
this.logging = logging;
}
}

View file

@ -0,0 +1,57 @@
package org.chtijbug.drools.console.view;
import com.vaadin.flow.component.dependency.StyleSheet;
import com.vaadin.flow.component.html.Label;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import org.chtijbug.drools.console.vaadinComponent.componentView.GridLogging;
import org.chtijbug.drools.console.vaadinComponent.componentView.GridRuntime;
import org.chtijbug.drools.console.vaadinComponent.leftMenu.Action.ActionLogging;
@StyleSheet("css/accueil.css")
public class LoggingView extends VerticalLayout {
public static final String pageName="Logging";
private GridLogging gridLogging;
private ActionLogging actionLogging;
public LoggingView(){
add(new Label("Logging"));
gridLogging=new GridLogging();
add(gridLogging);
gridLogging.addSelectionListener(selectionEvent -> {
if(selectionEvent.getFirstSelectedItem()!=null&&selectionEvent.getFirstSelectedItem().isPresent()) {
actionLogging.getViewAction().setEnabled(true);
}else {
actionLogging.getViewAction().setEnabled(false);
}
});
}
public static String getPageName() {
return pageName;
}
public GridLogging getGridLogging() {
return gridLogging;
}
public void setGridLogging(GridLogging gridLogging) {
this.gridLogging = gridLogging;
}
public ActionLogging getActionLogging() {
return actionLogging;
}
public void setActionLogging(ActionLogging actionLogging) {
this.actionLogging = actionLogging;
}
}

View file

@ -0,0 +1,22 @@
.DialogClose {
position: relative;
left: calc(100% - 20px);
background-color: #ff402bc4;
height: 15px;
min-width: 15px !important;
width: 3px !important;
border-radius: 50%;
box-sizing: unset;
font-size: 9px;
padding: 0 !important;
color: black;
cursor: pointer;
}
.DialogBar {
width: calc(100% + 49px);
position: relative;
top: -25px;
right: 25px;
background-color: lightgrey;
}

View file

@ -2,3 +2,4 @@
@import "template.css";
@import "assedit.css";
@import "deployment.css";
@import "log.css";

View file

@ -0,0 +1,5 @@
.action-log-grid-perso{
position: relative;
width: 93vw!important;
height: 37vw
}

View file

@ -6,6 +6,7 @@ kie-wb.password=admin
#kie-wb.kieserverUrl=http://localhost:20080/services/rest/server
kie-wb.kieserverUrl=http://localhost:8090/api/server/containers
spring.data.elasticsearch.cluster-nodes=localhost:9300
kie-wb.kieserverUserName=kieserver
kie-wb.kieserverPassword=kieserver1!

View file

@ -7,10 +7,6 @@
<facet type="web" name="Web">
<configuration>
<webroots />
<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/java" />
<root url="file://$MODULE_DIR$/src/main/resources" />
</sourceRoots>
</configuration>
</facet>
</component>
@ -20,7 +16,6 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />

View file

@ -100,8 +100,10 @@ public class StoreLoggingService {
businessTransactionActionStart.setEventType(EventType.STARTPROCESS);
businessTransactionActionStart.setProcessID(processExecution.getProcessId());
businessTransactionActionStart.setBusinessTransactionId(item.getId());
businessTransactionActionStart.setEventNumber(ii++);
businessTransactionActionStart.setId(UUID.randomUUID().toString());
actions.put(businessTransactionActionStart.getEventNumber(),businessTransactionActionStart);
for (RuleflowGroup rfg : processExecution.getRuleflowGroups()){
BusinessTransactionAction businessTransactionActionStartRFG = new BusinessTransactionAction();
@ -110,6 +112,7 @@ public class StoreLoggingService {
businessTransactionActionStartRFG.setEventType(EventType.STARTRULEFLOWGROUP);
businessTransactionActionStartRFG.setRuleflowGroupName(rfg.getRuleflowGroup());
businessTransactionActionStartRFG.setEventNumber(ii++);
businessTransactionActionStartRFG.setId(UUID.randomUUID().toString());
actions.put(businessTransactionActionStartRFG.getEventNumber(),businessTransactionActionStartRFG);
for (RuleExecution ruleExecution : rfg.getRuleExecutionList()){
BusinessTransactionAction businessTransactionActionRule = new BusinessTransactionAction();
@ -120,6 +123,7 @@ public class StoreLoggingService {
businessTransactionActionRule.setBusinessTransactionId(item.getId());
businessTransactionActionRule.setProcessID(processExecution.getProcessId());
businessTransactionActionRule.setEventNumber(ii++);
businessTransactionActionRule.setId(UUID.randomUUID().toString());
actions.put(businessTransactionActionRule.getEventNumber(),businessTransactionActionRule);
}
BusinessTransactionAction businessTransactionActionSTOPRFG = new BusinessTransactionAction();
@ -128,6 +132,7 @@ public class StoreLoggingService {
businessTransactionActionSTOPRFG.setRuleflowGroupName(rfg.getRuleflowGroup());
businessTransactionActionSTOPRFG.setBusinessTransactionId(item.getId());
businessTransactionActionSTOPRFG.setEventNumber(ii++);
businessTransactionActionSTOPRFG.setId(UUID.randomUUID().toString());
actions.put(businessTransactionActionSTOPRFG.getEventNumber(),businessTransactionActionSTOPRFG);
}
BusinessTransactionAction businessTransactionActionEnd = new BusinessTransactionAction();
@ -135,6 +140,8 @@ public class StoreLoggingService {
businessTransactionActionEnd.setProcessID(processExecution.getProcessId());
businessTransactionActionEnd.setBusinessTransactionId(item.getId());
businessTransactionActionEnd.setEventNumber(ii++);
businessTransactionActionEnd.setId(UUID.randomUUID().toString());
actions.put(businessTransactionActionEnd.getEventNumber(),businessTransactionActionEnd);
}
if (businessTransactionoutput!= null) {
@ -148,7 +155,8 @@ public class StoreLoggingService {
sortedList.add(actions.get(i));
}
transactionRepository.save(item);
actionRepository.saveAll(sortedList);
Iterable<BusinessTransactionAction> toto = actionRepository.saveAll(sortedList);
System.out.println("");
} catch (IOException e) {
e.printStackTrace();
}

View file

@ -1,3 +1,5 @@
spring.data.elasticsearch.cluster-nodes=localhost:9300
kieserver.login=kieserver
kieserver.password=kieserver1
server.port=8070

View file

@ -10,9 +10,6 @@
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/../drools-framework-business-indexer-persistance/target" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />

View file

@ -3,7 +3,10 @@ package org.chtijbug.drools.indexer.persistence.repository;
import org.chtijbug.drools.indexer.persistence.model.BusinessTransactionAction;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import java.util.List;
public interface BusinessTransactionActionRepository extends ElasticsearchRepository<BusinessTransactionAction,String> {
public List<BusinessTransactionAction> findByBusinessTransactionId(String businessTransactionId);
}