Compare commits
9 Commits
release/7.
...
366
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
acef9344e3 | ||
|
|
bebc3050d1 | ||
|
|
33a383a413 | ||
|
|
4e235931d0 | ||
|
|
3269e50dcd | ||
|
|
c55fb30045 | ||
|
|
8c57f7f34d | ||
|
|
4623022e03 | ||
|
|
b352645b67 |
@@ -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];
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user