Compare commits

...

9 Commits

11 changed files with 68 additions and 76 deletions

View File

@@ -1313,7 +1313,7 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
public boolean addExtraProducts(String[] productsArray) {
if (productsArray != null && productsArray.length > 0) {
if (this.products == null && this.products.length == 0) {
if (this.products == null || this.products.length == 0) {
this.products = productsArray;
} else {
String[] tmp = new String[this.products.length + productsArray.length];

View File

@@ -121,7 +121,7 @@ public class RoutineLibraryMananger {
}
}
private boolean needDeploy(URL fileUrl) throws IOException, Exception {
public boolean needDeploy(URL fileUrl) throws IOException, Exception {
File file = new File(fileUrl.getFile());
ILibraryManagerService libManagerService = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(ILibraryManagerService.class)) {

View File

@@ -11,7 +11,7 @@
<packaging>pom</packaging>
<properties>
<tcomp.version>1.1.14</tcomp.version>
<tcomp.version>1.1.15</tcomp.version>
<slf4j.version>1.7.25</slf4j.version>
</properties>

View File

@@ -22,4 +22,15 @@
<dependencies>
<!-- codes' dependencies -->
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>

View File

@@ -871,29 +871,32 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
IMaven maven = MavenPlugin.getMaven();
ArtifactRepository repository = maven.getLocalRepository();
Node filesNode = document.getElementsByTagName("files").item(0);
for (Entry<String, Set<Dependency>> entry : duplicateDependencies.entrySet()) {
Set<Dependency> dependencies = entry.getValue();
for (Dependency dependency : dependencies) {
String sourceLocation = maven
.getArtifactPath(repository, dependency.getGroupId(), dependency.getArtifactId(),
dependency.getVersion(), dependency.getType(), dependency.getClassifier());
Path path = new File(repository.getBasedir()).toPath().resolve(sourceLocation);
sourceLocation = path.toString();
String destName = path.getFileName().toString();
Node fileNode = document.createElement("file");
filesNode.appendChild(fileNode);
Node sourcesNode = document.createElement("source");
sourcesNode.setTextContent(sourceLocation);
fileNode.appendChild(sourcesNode);
Node outputDirNode = document.createElement("outputDirectory");
outputDirNode.setTextContent("lib");
fileNode.appendChild(outputDirNode);
Node destNameNode = document.createElement("destName");
destNameNode.setTextContent(destName);
fileNode.appendChild(destNameNode);
// TESB-27614:NPE while building a route
if (filesNode != null) {
for (Entry<String, Set<Dependency>> entry : duplicateDependencies.entrySet()) {
Set<Dependency> dependencies = entry.getValue();
for (Dependency dependency : dependencies) {
String sourceLocation = maven
.getArtifactPath(repository, dependency.getGroupId(), dependency.getArtifactId(),
dependency.getVersion(), dependency.getType(), dependency.getClassifier());
Path path = new File(repository.getBasedir()).toPath().resolve(sourceLocation);
sourceLocation = path.toString();
String destName = path.getFileName().toString();
Node fileNode = document.createElement("file");
filesNode.appendChild(fileNode);
Node sourcesNode = document.createElement("source");
sourcesNode.setTextContent(sourceLocation);
fileNode.appendChild(sourcesNode);
Node outputDirNode = document.createElement("outputDirectory");
outputDirNode.setTextContent("lib");
fileNode.appendChild(outputDirNode);
Node destNameNode = document.createElement("destName");
destNameNode.setTextContent(destName);
fileNode.appendChild(destNameNode);
}
}
}
} catch (CoreException e) {

View File

@@ -70,6 +70,7 @@ import org.talend.core.model.general.Project;
import org.talend.core.model.process.IProcess;
import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.properties.ProjectReference;
import org.talend.core.model.properties.Property;
import org.talend.core.model.properties.RoutineItem;
import org.talend.core.model.repository.ERepositoryObjectType;
@@ -581,7 +582,8 @@ public class ModulesNeededProvider {
ERepositoryObjectType type) {
if (service != null) {
IProxyRepositoryFactory repositoryFactory = service.getProxyRepositoryFactory();
getRefRoutines(routines, ProjectManager.getInstance().getCurrentProject(), type);
Set<Project> visited = new HashSet<Project>();
getRefRoutines(routines, ProjectManager.getInstance().getCurrentProject(), type, visited);
for (IRepositoryViewObject current : routines) {
if (repositoryFactory.getStatus(current) != ERepositoryStatus.DELETED) {
Item item = current.getProperty().getItem();
@@ -727,7 +729,8 @@ public class ModulesNeededProvider {
IProxyRepositoryFactory repositoryFactory = service.getProxyRepositoryFactory();
try {
List<IRepositoryViewObject> routines = repositoryFactory.getAll(type, true);
getRefRoutines(routines, ProjectManager.getInstance().getCurrentProject(), type);
Set<Project> visited = new HashSet<Project>();
getRefRoutines(routines, ProjectManager.getInstance().getCurrentProject(), type, visited);
for (IRepositoryViewObject current : routines) {
if (!current.isDeleted()) {
Item item = current.getProperty().getItem();
@@ -811,14 +814,21 @@ public class ModulesNeededProvider {
return importNeedsListForBeans;
}
private static void getRefRoutines(List<IRepositoryViewObject> routines, Project mainProject, ERepositoryObjectType type) {
private static void getRefRoutines(List<IRepositoryViewObject> routines, Project mainProject, ERepositoryObjectType type,
Set<Project> projects) {
if (service != null) {
IProxyRepositoryFactory repositoryFactory = service.getProxyRepositoryFactory();
try {
if (mainProject.getProjectReferenceList().size() > 0) {
for (Project referencedProject : ProjectManager.getInstance().getAllReferencedProjects()) {
routines.addAll(repositoryFactory.getAll(referencedProject, type, true));
}
// no referenced project or already visited
if (mainProject.getProjectReferenceList().size() == 0 || projects.contains(mainProject)) {
return;
}
projects.add(mainProject);
for (ProjectReference referencedProject : mainProject.getProjectReferenceList()) {
Project p = new Project(referencedProject.getReferencedProject());
routines.addAll(repositoryFactory.getAll(p, type, true));
getRefRoutines(routines, p, type, projects);
}
} catch (PersistenceException e) {
CommonExceptionHandler.process(e);

View File

@@ -15,7 +15,6 @@ Require-Bundle: org.eclipse.ui,
org.talend.core.repository,
org.talend.core.ui,
org.talend.repository.items.importexport,
org.talend.core,
org.talend.designer.maven
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin

View File

@@ -22,7 +22,6 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.zip.ZipException;
@@ -30,6 +29,7 @@ import org.apache.commons.lang.StringUtils;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -78,18 +78,16 @@ import org.talend.commons.runtime.model.repository.ERepositoryStatus;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.PluginChecker;
import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.RoutineItem;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.RepositoryViewObject;
import org.talend.core.model.utils.TalendPropertiesUtil;
import org.talend.core.repository.model.ProjectRepositoryNode;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.service.IExchangeService;
import org.talend.core.ui.advanced.composite.FilteredCheckboxTree;
import org.talend.core.ui.component.ComponentPaletteUtilities;
import org.talend.designer.core.IMultiPageTalendEditor;
import org.talend.designer.maven.tools.AggregatorPomsHelper;
import org.talend.designer.maven.tools.MavenPomSynchronizer;
import org.talend.designer.runprocess.IRunProcessService;
import org.talend.repository.items.importexport.handlers.ImportExportHandlersManager;
import org.talend.repository.items.importexport.handlers.imports.ImportCacheHelper;
import org.talend.repository.items.importexport.handlers.model.EmptyFolderImportItem;
@@ -109,8 +107,6 @@ import org.talend.repository.items.importexport.wizard.models.ImportNodesBuilder
import org.talend.repository.items.importexport.wizard.models.ItemImportNode;
import org.talend.repository.model.IProxyRepositoryFactory;
import org.talend.repository.model.IRepositoryNode;
import org.talend.repository.model.IRepositoryNode.ENodeType;
import org.talend.repository.model.IRepositoryNode.EProperties;
import org.talend.repository.model.RepositoryNode;
import org.talend.repository.model.RepositoryNodeUtilities;
import org.talend.repository.ui.dialog.AProgressMonitorDialogWithCancel;
@@ -1072,42 +1068,10 @@ public class ImportItemsWizardPage extends WizardPage {
}
}
});
RepositoryNode codeRepositoryNode = ProjectRepositoryNode.getInstance().getRootRepositoryNode(
ERepositoryObjectType.CODE);
Optional<IRepositoryNode> beansNode = codeRepositoryNode.getChildren(false).stream().filter(item ->
((ERepositoryObjectType)item.getProperties(EProperties.LABEL)).getType().equals(TYPE_BEANS)).findFirst();
if (beansNode.isPresent()) {
List<IRepositoryNode> beanNodes = beansNode.get().getChildren(false);
GlobalServiceRegister globalServiceRegister = GlobalServiceRegister.getDefault();
if (globalServiceRegister.isServiceRegistered(IRunProcessService.class)) {
IRunProcessService runProcessService = globalServiceRegister.getService(IRunProcessService.class);
MavenPomSynchronizer.addChangeLibrariesListener();
updateLibrariesForBeans(beanNodes, runProcessService);
}
}
}
private boolean updateLibrariesForBeans(List<IRepositoryNode> beanNodesNewList, IRunProcessService runProcessService) {
if (beanNodesNewList != null) {
for (IRepositoryNode importedBean : beanNodesNewList) {
if (!importedBean.getType().equals(ENodeType.REPOSITORY_ELEMENT)) {
if (updateLibrariesForBeans(importedBean.getChildren(), runProcessService)) {
return true;
}
} else {
runProcessService.updateLibraries((RoutineItem) importedBean.getObject().getProperty().getItem());
return true;
}
}
}
return false;
MavenPomSynchronizer.addChangeLibrariesListener();
new AggregatorPomsHelper().updateCodeProjects(new NullProgressMonitor());
}
};

View File

@@ -10,7 +10,8 @@ Require-Bundle: org.eclipse.core.runtime,
org.talend.model,
org.talend.commons.runtime,
org.talend.core.runtime,
org.talend.core.repository
org.talend.core.repository,
org.talend.designer.maven
Bundle-Localization: plugin
Bundle-ActivationPolicy: lazy
Eclipse-RegisterBuddy: org.talend.testutils

View File

@@ -66,6 +66,7 @@ import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.ui.IJobletProviderService;
import org.talend.designer.maven.tools.AggregatorPomsHelper;
import org.talend.repository.ProjectManager;
import org.talend.repository.RepositoryWorkUnit;
import org.talend.repository.documentation.ERepositoryActionName;
@@ -977,6 +978,8 @@ public class ImportExportHandlersManager {
repositoryWorkUnit.setUnloadResourcesAfterRun(true);
ProxyRepositoryFactory.getInstance().executeRepositoryWorkUnit(repositoryWorkUnit);
new AggregatorPomsHelper().updateCodeProjects(new NullProgressMonitor());
progressMonitor.done();

View File

@@ -16,6 +16,7 @@ Export-Package:
org.talend.utils.io;uses:="org.talend.utils.sugars",
org.talend.utils.jobconductor,
org.talend.utils.json,
org.talend.utils.migration,
org.talend.utils.network,
org.talend.utils.properties,
org.talend.utils.security;uses:="org.talend.daikon.security",