editing rule template work

This commit is contained in:
Nicolas Héron 2018-12-13 16:41:47 +01:00
commit e19bb642ca
52 changed files with 406 additions and 212 deletions

View file

@ -121,6 +121,16 @@
<artifactId>jackson-annotations</artifactId>
<version>2.9.4</version>
</dependency>
<dependency>
<groupId>org.vaadin.addons</groupId>
<artifactId>exporter</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.vaadin.addons</groupId>
<artifactId>excelimporttable</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
@ -169,5 +179,10 @@
</dependency>
</dependencies>
<repositories>
<repository>
<id>vaadin-addons</id>
<url>http://maven.vaadin.com/vaadin-addons</url>
</repository>
</repositories>
</project>

View file

@ -4,6 +4,7 @@ import com.vaadin.event.FieldEvents;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener;
import com.vaadin.ui.*;
import org.chtijbug.drools.console.service.KieRepositoryService;
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;
@ -13,12 +14,18 @@ public class WelcomeView extends VerticalLayout implements View {
private UserConnected userConnected;
private TextField userNameTextField;
private PasswordField userpasswdTextField;
private Button loginButton;
private Button logoutButton;
private KieRepositoryService kieRepositoryService;
private KieConfigurationData configKie;
public WelcomeView(UserConnected userConnected, MenuBar menuBar) {
this.kieRepositoryService = AppContext.getApplicationContext().getBean(KieRepositoryService.class);
this.userConnected = userConnected;
final VerticalLayout layout = new VerticalLayout();
layout.addComponent(menuBar);
KieConfigurationData configKie = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
this.configKie = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
// GitLabConfigurationData configGitLab = AppContext.getApplicationContext().getBean(GitLabConfigurationData.class);
// JenkinsConfigurationData jenkinsConfigurationData = AppContext.getApplicationContext().getBean(JenkinsConfigurationData.class);
@ -45,6 +52,31 @@ public class WelcomeView extends VerticalLayout implements View {
userConnected.setUserPassword(configKie.getPassword());
userpasswdTextField.addTextChangeListener((FieldEvents.TextChangeListener) textChangeEvent -> userConnected.setUserPassword(textChangeEvent.getText()));
userHorizontal.addComponent(userpasswdTextField);
loginButton = new Button("login");
userHorizontal.addComponent(loginButton);
logoutButton = new Button("logout");
logoutButton.setEnabled(false);
userHorizontal.addComponent(logoutButton);
loginButton.addClickListener((Button.ClickListener) event -> {
UserConnected connected = kieRepositoryService.login(this.configKie.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword());
userConnected.getProjectResponses().clear();
userConnected.getProjectResponses().addAll(connected.getProjectResponses());
userConnected.getRoles().clear();
userConnected.getRoles().addAll(connected.getRoles());
loginButton.setEnabled(false);
logoutButton.setEnabled(true);
userConnected.setConnected(true);
});
logoutButton.addClickListener((Button.ClickListener) event -> {
userConnected.getRoles().clear();
userConnected.getProjectResponses().clear();
userConnected.setConnected(false);
loginButton.setEnabled(true);
logoutButton.setEnabled(false);
});
}
@Override

View file

@ -3,8 +3,10 @@ package org.chtijbug.drools.console.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.codec.binary.Base64;
import org.chtijbug.drools.console.AddLog;
import org.chtijbug.drools.console.service.model.UserConnected;
import org.chtijbug.drools.console.service.model.kie.JobStatus;
import org.drools.guvnor.server.jaxrs.jaxb.Asset;
import org.chtijbug.guvnor.server.jaxrs.api.UserLoginInformation;
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
import org.guvnor.rest.client.ProjectResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -74,6 +76,33 @@ public class KieRepositoryService {
return reponseMoteur;
}
public UserConnected login(String url, String username, String password) {
String completeurl = url + "/chtijbug/login";
logger.info("url moteur reco : " + completeurl);
ResponseEntity<UserLoginInformation> response = restTemplateKiewb
.execute(completeurl, HttpMethod.GET, requestCallback(null, username, password), clientHttpResponse -> {
UserLoginInformation extractedResponse = null;
if (clientHttpResponse.getBody() != null) {
Scanner s = new Scanner(clientHttpResponse.getBody()).useDelimiter("\\A");
String result = s.hasNext() ? s.next() : "";
extractedResponse = mapper.readValue(result, UserLoginInformation.class);
}
ResponseEntity<UserLoginInformation> extractedValue = new ResponseEntity<>(extractedResponse, clientHttpResponse.getHeaders(), clientHttpResponse.getStatusCode());
return extractedValue;
});
UserConnected userConnected = new UserConnected();
UserLoginInformation responseBody = response.getBody();
userConnected.setUserName(username);
userConnected.setUserPassword(password);
userConnected.setUserPassword(password);
userConnected.getProjectResponses().addAll(responseBody.getProjects());
userConnected.setUserName(username);
return userConnected;
}
public List<Asset> getListAssets(String url, String username, String password, String spaceName, String projectName) {
String completeurl = url + "/chtijbug/" + spaceName + "/" + projectName + "/assets";
logger.info("url moteur reco : " + completeurl);

View file

@ -1,10 +1,21 @@
package org.chtijbug.drools.console.service.model;
import org.guvnor.rest.client.ProjectResponse;
import java.util.ArrayList;
import java.util.List;
public class UserConnected {
private String userName;
private String userPassword;
private List<ProjectResponse> projectResponses = new ArrayList<>();
private List<String> roles = new ArrayList<>();
private boolean connected;
public UserConnected() {
}
@ -28,4 +39,30 @@ public class UserConnected {
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public List<ProjectResponse> getProjectResponses() {
return projectResponses;
}
public void setProjectResponses(List<ProjectResponse> projectResponses) {
this.projectResponses = projectResponses;
}
public List<String> getRoles() {
return roles;
}
public void setRoles(List<String> roles) {
this.roles = roles;
}
public boolean getConnected() {
return connected;
}
public void setConnected(boolean connected) {
this.connected = connected;
}
}

View file

@ -1,17 +1,31 @@
package org.chtijbug.drools.console.view;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.vaadin.data.Container;
import com.vaadin.data.Item;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener;
import com.vaadin.ui.Button;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Table;
import com.vaadin.ui.VerticalLayout;
import org.chtijbug.drools.console.AddLog;
import org.chtijbug.drools.console.service.KieRepositoryService;
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.drools.guvnor.server.jaxrs.jaxb.Asset;
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
import org.drools.workbench.models.datamodel.rule.InterpolationVariable;
import org.drools.workbench.models.guided.template.backend.RuleTemplateModelXMLPersistenceImpl;
import org.drools.workbench.models.guided.template.shared.TemplateModel;
import org.vaadin.haijian.ExcelExporter;
import org.vaadin.winnid.excelimporttable.ExcelImportTable;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class AssetEditView extends VerticalLayout implements AddLog, View {
@ -22,6 +36,12 @@ public class AssetEditView extends VerticalLayout implements AddLog, View {
private XmlMapper mapper = new XmlMapper();
private String spaceName;
private String projectName;
private Table assetTable;
private Button startUpdate;
private Button commitUpdate;
private Button undoUpdate;
private ExcelExporter excelExporter;
private ExcelImportTable excelImportTable;
public AssetEditView(UserConnected userConnected, String spaceName, String projectName, Asset assetToUpdate) {
this.userConnected = userConnected;
@ -32,7 +52,105 @@ public class AssetEditView extends VerticalLayout implements AddLog, View {
this.config = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
String assetContent = kieRepositoryService.getAssetSource(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword(), spaceName, projectName, assetToUpdate.getTitle());
TemplateModel model = RuleTemplateModelXMLPersistenceImpl.getInstance().unmarshal(assetContent);
System.out.println("coucou");
HorizontalLayout actionButtons = new HorizontalLayout();
this.addComponent(actionButtons);
startUpdate = new Button("Update");
actionButtons.addComponent(startUpdate);
startUpdate.addClickListener((Button.ClickListener) event -> {
startUpdate.setEnabled(false);
commitUpdate.setEnabled(true);
undoUpdate.setEnabled(true);
assetTable.setEditable(true);
excelExporter.setEnabled(false);
excelImportTable.setEnabled(false);
});
commitUpdate = new Button("Commit");
commitUpdate.setEnabled(false);
commitUpdate.addClickListener((Button.ClickListener) event -> {
startUpdate.setEnabled(true);
commitUpdate.setEnabled(false);
undoUpdate.setEnabled(false);
assetTable.setEditable(false);
excelExporter.setEnabled(true);
excelImportTable.setEnabled(false);
});
actionButtons.addComponent(commitUpdate);
undoUpdate = new Button("undo");
undoUpdate.setEnabled(false);
undoUpdate.addClickListener((Button.ClickListener) event -> {
startUpdate.setEnabled(true);
commitUpdate.setEnabled(false);
undoUpdate.setEnabled(false);
assetTable.setEditable(false);
fillTable(model);
excelExporter.setEnabled(true);
excelImportTable.setEnabled(false);
});
actionButtons.addComponent(undoUpdate);
InterpolationVariable[] variablesList = model.getInterpolationVariablesList();
assetTable = new Table("Data");
this.addComponent(assetTable);
assetTable.setSelectable(true);
assetTable.setMultiSelect(false);
for (InterpolationVariable i : variablesList) {
if (i.getDataType().equals("String")) {
assetTable.addContainerProperty(i.getVarName(), String.class, null);
} else if (i.getDataType().equals("Date")) {
assetTable.addContainerProperty(i.getVarName(), Date.class, null);
} else {
assetTable.addContainerProperty(i.getVarName(), String.class, null);
}
}
fillTable(model);
assetTable.setSizeFull();
excelExporter = new ExcelExporter();
excelExporter.setDateFormat("dd-MM-yyyy");
excelExporter.setLocale(Locale.FRANCE);
excelExporter.setTableToBeExported(assetTable);
excelExporter.setCaption("Export to Excel");
actionButtons.addComponent(excelExporter);
excelExporter.setEnabled(true);
excelImportTable = new ExcelImportTable(assetTable);
excelImportTable.setLocale(Locale.FRANCE);
actionButtons.addComponent(excelImportTable);
}
private void fillTable(TemplateModel model) {
InterpolationVariable[] variablesList = model.getInterpolationVariablesList();
DateFormat format = new SimpleDateFormat("dd-MMM-yyyy", Locale.FRANCE);
String[][] contenuTable = model.getTableAsArray();
Container dataSource = assetTable.getContainerDataSource();
dataSource.removeAllItems();
for (int i = 0; i < model.getRowsCount(); i++) {
String[] ligne = contenuTable[i];
Object newItemId = assetTable.addItem();
Item row1 = assetTable.getItem(newItemId);
int k = 0;
for (InterpolationVariable j : variablesList) {
if (j.getDataType().equals("String")) {
row1.getItemProperty(j.getVarName()).setValue(ligne[k]);
} else if (j.getDataType().equals("Date")) {
try {
row1.getItemProperty(j.getVarName()).setValue(format.parse(ligne[k]));
} catch (ParseException e) {
row1.getItemProperty(j.getVarName()).setValue(new Date());
}
} else {
row1.getItemProperty(j.getVarName()).setValue(ligne[k]);
}
k++;
}
}
}
@Override

View file

@ -59,6 +59,7 @@ public class DeploymentView extends VerticalLayout implements AddLog, View {
spaceContainer =
new BeanItemContainer<ProjectResponse>(ProjectResponse.class);
ComboBox spaceSelection = new ComboBox("Project", spaceContainer);
spaceSelection.setNullSelectionAllowed(false);
@ -147,10 +148,8 @@ public class DeploymentView extends VerticalLayout implements AddLog, View {
}
public void refreshCombo() {
List<ProjectResponse> projectResponses = kieRepositoryService.getListSpaces2(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword());
spaceContainer.removeAllItems();
spaceContainer.addAll(projectResponses);
spaceContainer.addAll(userConnected.getProjectResponses());
}
@ -188,6 +187,7 @@ public class DeploymentView extends VerticalLayout implements AddLog, View {
@Override
public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) {
spaceContainer.removeAllItems();
spaceContainer.addAll(userConnected.getProjectResponses());
}
}

View file

@ -15,7 +15,7 @@ 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.drools.guvnor.server.jaxrs.jaxb.Asset;
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
import org.guvnor.rest.client.ProjectResponse;
import java.util.List;
@ -140,15 +140,15 @@ public class TableLikeArtefactView extends VerticalLayout implements AddLog, Vie
public void refreshList() {
List<ProjectResponse> projectResponses = kieRepositoryService.getListSpaces2(config.getKiewbUrl(), userConnected.getUserName(), userConnected.getUserPassword());
spaceContainer.removeAllItems();
spaceContainer.addAll(projectResponses);
spaceContainer.addAll(userConnected.getProjectResponses());
}
@Override
public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) {
spaceContainer.removeAllItems();
spaceContainer.addAll(userConnected.getProjectResponses());
}
@Override

View file

@ -11,17 +11,18 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: org.jboss.errai:errai-common:4.3.3.Final" level="project" />
<orderEntry type="library" name="Maven: com.google.jsinterop:jsinterop-annotations:1.0.1" level="project" />
<orderEntry type="library" name="Maven: org.jboss.errai.reflections:reflections:4.3.3.Final" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.2" level="project" />
<orderEntry type="library" name="Maven: de.benediktmeurer.gwt-slf4j:gwt-slf4j:0.0.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
<orderEntry type="library" name="Maven: com.google.elemental2:elemental2-dom:1.0.0-beta-1" level="project" />
<orderEntry type="library" name="Maven: com.google.jsinterop:base:1.0.0-beta-1" level="project" />
<orderEntry type="library" name="Maven: com.google.elemental2:elemental2-core:1.0.0-beta-1" level="project" />
<orderEntry type="library" name="Maven: com.google.elemental2:elemental2-promise:1.0.0-beta-1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.uberfire:uberfire-rest-client:2.9.0.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.jboss.errai:errai-common:4.3.3.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.jsinterop:jsinterop-annotations:1.0.1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.jboss.errai.reflections:reflections:4.3.3.Final" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.slf4j:slf4j-api:1.7.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: de.benediktmeurer.gwt-slf4j:gwt-slf4j:0.0.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.elemental2:elemental2-dom:1.0.0-beta-1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.jsinterop:base:1.0.0-beta-1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.elemental2:elemental2-core:1.0.0-beta-1" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.elemental2:elemental2-promise:1.0.0-beta-1" level="project" />
<orderEntry type="library" name="Maven: org.jboss.resteasy:resteasy-jaxb-provider:3.6.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:1.0.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.1" level="project" />

View file

@ -19,10 +19,15 @@
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-rest-client</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.errai</groupId>
<artifactId>errai-common</artifactId>
<scope>provided</scope>
<exclusions>
<exclusion>
<artifactId>guava</artifactId>

View file

@ -0,0 +1,62 @@
/*
* Copyright 2012 JBoss Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.chtijbug.guvnor.server.jaxrs.api;
import org.guvnor.rest.client.ProjectResponse;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.List;
@XmlRootElement(name = "user")
@XmlAccessorType(XmlAccessType.FIELD)
public class UserLoginInformation {
private List<ProjectResponse> projects = new ArrayList<>();
private String username;
private List<String> roles = new ArrayList<>();
public List<ProjectResponse> getProjects() {
return projects;
}
public void setProjects(List<ProjectResponse> projects) {
this.projects = projects;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public List<String> getRoles() {
return roles;
}
public void setRoles(List<String> roles) {
this.roles = roles;
}
}

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlAccessType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

View file

@ -15,7 +15,7 @@
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import org.jboss.resteasy.annotations.providers.multipart.PartType;

View file

@ -15,7 +15,7 @@
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlAccessType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlAccessType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

View file

@ -1,6 +1,6 @@
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import org.drools.guvnor.server.jaxrs.providers.atom.Entry;
import org.chtijbug.guvnor.server.jaxrs.providers.atom.Entry;
import org.jboss.resteasy.spi.interception.DecoratorProcessor;
import javax.ws.rs.core.MediaType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

View file

@ -15,7 +15,7 @@
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

View file

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.*;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.jaxb;
package org.chtijbug.guvnor.server.jaxrs.jaxb;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import org.jboss.resteasy.plugins.providers.jaxb.JAXBContextFinder;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import org.jboss.resteasy.plugins.providers.jaxb.JAXBContextFinder;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import org.jboss.resteasy.spi.ResteasyProviderFactory;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import org.jboss.resteasy.plugins.providers.jaxb.JAXBContextFinder;
import org.jboss.resteasy.plugins.providers.jaxb.JAXBXmlTypeProvider;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import org.jboss.resteasy.plugins.providers.jaxb.JAXBContextFinder;
import org.jboss.resteasy.plugins.providers.jaxb.JAXBXmlTypeProvider;

View file

@ -14,9 +14,9 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import org.drools.guvnor.server.jaxrs.jaxb.AtomAssetMetadata;
import org.chtijbug.guvnor.server.jaxrs.jaxb.AtomAssetMetadata;
import javax.xml.bind.annotation.*;
import java.util.ArrayList;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import javax.xml.bind.annotation.*;
import java.net.URI;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import javax.ws.rs.core.MediaType;
import javax.xml.bind.annotation.XmlAccessType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import javax.ws.rs.core.MediaType;
import javax.xml.bind.annotation.adapters.XmlAdapter;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import org.jboss.resteasy.spi.ResteasyProviderFactory;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import javax.xml.bind.annotation.*;
import java.net.URI;

View file

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import java.net.URI;

View file

@ -24,7 +24,7 @@
@XmlJavaTypeAdapter(type = URI.class, value = UriAdapter.class),
@XmlJavaTypeAdapter(type = MediaType.class, value = MediaTypeAdapter.class)
})
package org.drools.guvnor.server.jaxrs.providers.atom;
package org.chtijbug.guvnor.server.jaxrs.providers.atom;
import javax.ws.rs.core.MediaType;
import javax.xml.bind.annotation.XmlNsForm;

View file

@ -100,136 +100,7 @@
<scope>provided</scope>
</dependency>
<!--dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-rest-client</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.spec.javax.ejb</groupId>
<artifactId>jboss-ejb-api_3.2_spec</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-nio2-model</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-nio2-api</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-io</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-project-api</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-api</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-commons</artifactId>
</dependency>
<dependency>
<groupId>org.kie.soup</groupId>
<artifactId>kie-soup-commons</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.errai</groupId>
<artifactId>errai-bus</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.errai</groupId>
<artifactId>errai-security-server</artifactId>
</dependency>
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt</artifactId>
</dependency>
<dependency>
<groupId>org.ocpsoft.prettytime</groupId>
<artifactId>prettytime</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-social-activities-api</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-social-activities-backend</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-structure-api</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-security-api</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-backend-server</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-commons-editor-api</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-commons-editor-backend</artifactId>
</dependency>
<dependency>
<groupId>org.uberfire</groupId>
<artifactId>uberfire-services-api</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
</dependency>
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>org.jboss.spec.javax.ejb</groupId>
<artifactId>jboss-ejb-api_3.2_spec</artifactId>
<version>1.0.0.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.ocpsoft.prettytime</groupId>
<artifactId>prettytime</artifactId>
<version>3.0.2.Final</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency-->
</dependencies>

View file

@ -1,7 +1,9 @@
package org.chtijbug.kie.rest.backend;
import org.drools.guvnor.server.jaxrs.jaxb.Asset;
import org.chtijbug.guvnor.server.jaxrs.api.UserLoginInformation;
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
import org.chtijbug.guvnor.server.jaxrs.jaxb.Package;
import org.guvnor.common.services.project.model.WorkspaceProject;
import org.guvnor.common.services.project.service.WorkspaceProjectService;
import org.guvnor.rest.client.ProjectResponse;
@ -16,7 +18,6 @@ import org.uberfire.io.IOService;
import org.uberfire.java.nio.base.options.CommentedOption;
import org.uberfire.java.nio.file.DirectoryStream;
import org.uberfire.java.nio.file.Paths;
import org.uberfire.spaces.Space;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
@ -24,6 +25,7 @@ import javax.inject.Named;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.SecurityContext;
import javax.ws.rs.core.UriInfo;
import java.io.File;
import java.io.FileNotFoundException;
@ -43,6 +45,9 @@ public class PackageResource {
@Context
protected UriInfo uriInfo;
@Context
protected SecurityContext sc;
@Inject
@Named("ioStrategy")
private IOService ioService;
@ -64,6 +69,26 @@ public class PackageResource {
System.out.println("coucou");
}
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/login")
public UserLoginInformation login() {
UserLoginInformation userLoginInformation = new UserLoginInformation();
userLoginInformation.setUsername(sc.getUserPrincipal().getName());
for (String role : PermissionConstants.tableauChaine) {
if (sc.isUserInRole(role) == true) {
userLoginInformation.getRoles().add(role);
}
}
userLoginInformation.setProjects(getAllProjects());
return userLoginInformation;
}
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/detailedSpaces")
@ -71,6 +96,11 @@ public class PackageResource {
public Collection<ProjectResponse> getProjects() {
logger.debug("-----getSpaces--- ");
return getAllProjects();
}
private List<ProjectResponse> getAllProjects() {
final List<ProjectResponse> spaces = new ArrayList<>();
for (OrganizationalUnit ou : organizationalUnitService.getOrganizationalUnits()) {
spaces.addAll(getSpace(ou));
@ -80,7 +110,6 @@ public class PackageResource {
}
private List<ProjectResponse> getSpace(OrganizationalUnit ou) {
final Space space = new Space(ou.getName());
final List<ProjectResponse> repoNames = new ArrayList<>();
for (WorkspaceProject workspaceProject : workspaceProjectService.getAllWorkspaceProjects(ou)) {
@ -117,7 +146,7 @@ public class PackageResource {
@GET
@Path("{organizationalUnitName}/{repositoryName}")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Collection<org.drools.guvnor.server.jaxrs.jaxb.Package> getPackagesAsJAXB(@PathParam("organizationalUnitName") String organizationalUnitName, @PathParam("repositoryName") String repositoryName) {
public Collection<Package> getPackagesAsJAXB(@PathParam("organizationalUnitName") String organizationalUnitName, @PathParam("repositoryName") String repositoryName) {
OrganizationalUnit organizationalUnit = organizationalUnitService.getOrganizationalUnit(organizationalUnitName);
Collection<Repository> repositories = organizationalUnit.getRepositories();
for (Repository repository : repositories) {
@ -125,9 +154,9 @@ public class PackageResource {
Optional<Branch> branch = repository.getDefaultBranch();
Collection<WorkspaceProject> projects = projectService.getAllWorkspaceProjects(organizationalUnit);
Collection<org.drools.guvnor.server.jaxrs.jaxb.Package> packages = new ArrayList<>();
Collection<Package> packages = new ArrayList<>();
for (WorkspaceProject project : projects) {
org.drools.guvnor.server.jaxrs.jaxb.Package aPackage = new org.drools.guvnor.server.jaxrs.jaxb.Package();
Package aPackage = new Package();
aPackage.setTitle(project.getName());
aPackage.setGroupID(project.getMainModule().getPom().getGav().getGroupId());
aPackage.setArtifactID(project.getMainModule().getPom().getGav().getArtifactId());

View file

@ -11,5 +11,12 @@ public interface PermissionConstants {
public static final String REST_TASK_RO_ROLE = "rest-task-read-only";
public static final String REST_QUERY_ROLE = "rest-query";
public static final String REST_CLIENT_ROLE = "rest-client";
public static final String ADMIN_ROLE = "admin";
public static final String ANALYST_ROLE = "analyst";
public static final String KIEMGMT_ROLE = "kiemgmt";
public static final String ADMIN_GROUP_ROLE = "admingroup";
public static String tableauChaine[] = {ADMIN_GROUP_ROLE, KIEMGMT_ROLE, ANALYST_ROLE, ADMIN_ROLE, REST_CLIENT_ROLE, REST_QUERY_ROLE, REST_TASK_RO_ROLE, REST_TASK_ROLE, REST_PROCESS_RO_ROLE, REST_ROLE, REST_PROJECT_ROLE, REST_DEPLOYMENT_ROLE, REST_PROCESS_ROLE};
}

View file

@ -24,18 +24,6 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="kie-drools-framework-rest-backend" />
<orderEntry type="module" module-name="drools-framework-kie-wb-rest-pojo" />
<orderEntry type="library" name="Maven: org.jboss.errai:errai-common:4.3.3.Final" level="project" />
<orderEntry type="library" name="Maven: com.google.jsinterop:jsinterop-annotations:1.0.1" level="project" />
<orderEntry type="library" name="Maven: org.jboss.errai.reflections:reflections:4.3.3.Final" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
<orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: de.benediktmeurer.gwt-slf4j:gwt-slf4j:0.0.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.4" level="project" />
<orderEntry type="library" name="Maven: com.google.elemental2:elemental2-dom:1.0.0-beta-1" level="project" />
<orderEntry type="library" name="Maven: com.google.jsinterop:base:1.0.0-beta-1" level="project" />
<orderEntry type="library" name="Maven: com.google.elemental2:elemental2-core:1.0.0-beta-1" level="project" />
<orderEntry type="library" name="Maven: com.google.elemental2:elemental2-promise:1.0.0-beta-1" level="project" />
<orderEntry type="library" name="Maven: org.jboss.resteasy:resteasy-jaxb-provider:3.6.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:1.0.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.1" level="project" />