Compare commits

...

6 Commits

Author SHA1 Message Date
Chao MENG
fddff3b8ad fix issues 2020-08-07 18:40:43 +08:00
Chao MENG
acdf127890 fix issues 2020-07-24 10:31:37 +08:00
Chao MENG
453ac0377b fix issues 2020-07-17 17:26:15 +08:00
Chao MENG
0d4d9c4940 fix issues 2020-07-07 17:36:04 +08:00
Chao MENG
963f90ad22 fix issues 2020-06-29 15:07:21 +08:00
Chao MENG
0301920131 fix uhg issue 2020-06-16 09:40:04 +08:00
4 changed files with 67 additions and 4 deletions

View File

@@ -14,6 +14,7 @@ package org.talend.core.repository.recyclebin;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
@@ -24,6 +25,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.emf.common.util.EList;
@@ -106,7 +108,8 @@ public class RecycleBinManager {
List<IRepositoryViewObject> deletedObjects = new ArrayList<IRepositoryViewObject>();
final EList<TalendItem> deletedItems = projectRecyclebins.get(project.getTechnicalLabel()).getDeletedItems();
List<TalendItem> notDeletedItems = new ArrayList<TalendItem>();
for (TalendItem deletedItem : deletedItems) {
List<TalendItem> dup_deletedItems = new ArrayList<>(deletedItems);
for (TalendItem deletedItem : dup_deletedItems) {
try {
final ERepositoryObjectType type = ERepositoryObjectType.getType(deletedItem.getType());
// ignore the generated doc in recycle bin
@@ -274,7 +277,40 @@ public class RecycleBinManager {
resource = createRecycleBinResource(project);
}
resource.getContents().clear();
recycleBin.setLastUpdate(new Date());
EList<String> deletedFolders = recycleBin.getDeletedFolders();
if (deletedFolders != null) {
List<String> folders = new LinkedList<>(deletedFolders);
Collections.sort(folders);
deletedFolders.clear();
deletedFolders.addAll(folders);
}
EList<TalendItem> deletedItems = recycleBin.getDeletedItems();
if (deletedItems != null) {
List<TalendItem> items = new LinkedList<>(deletedItems);
items.sort((l, r) -> {
if (l == null && r == null) {
return 0;
} else if (l == null) {
return -1;
} else if (r == null) {
return 1;
}
int result = StringUtils.compare(l.getType(), r.getType());
if (result != 0) {
return result;
}
result = StringUtils.compare(l.getPath(), r.getPath());
if (result != 0) {
return result;
}
return StringUtils.compare(l.getId(), r.getId());
});
deletedItems.clear();
deletedItems.addAll(items);
}
// set date to null to avoid timezone conflict
recycleBin.setLastUpdate(null);
resource.getContents().add(recycleBin);
EmfHelper.saveResource(resource);
lastSavedRecycleBinMap.put(recycleBin, EcoreUtil.copy(recycleBin));

View File

@@ -32,6 +32,7 @@ import org.talend.designer.maven.template.AbstractMavenTemplateManager;
import org.talend.designer.maven.template.MavenTemplateManager;
import org.talend.designer.maven.tools.extension.PomExtensionRegistry;
import org.talend.designer.maven.ui.DesignerMavenUiPlugin;
import org.talend.designer.maven.utils.PomUtil;
/**
* DOC ggu class global comment. Detailled comment
@@ -68,6 +69,7 @@ public class MavenScriptsProjectSettingInitializer extends AbstractProjectPrefer
Model model = MavenPlugin.getMavenModelManager().readMavenModel(stream);
PomExtensionRegistry.getInstance().updatePomTemplate(model);
ByteArrayOutputStream out = new ByteArrayOutputStream();
PomUtil.sortModules(model);
MavenPlugin.getMaven().writeModel(model, out);
String content = out.toString(TalendMavenConstants.DEFAULT_ENCODING);
if (content != null) {

View File

@@ -29,6 +29,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -138,6 +139,7 @@ public class PomUtil {
* copied the codes from createMavenModel of MavenModelManager
*/
ByteArrayOutputStream buf = new ByteArrayOutputStream();
sortModules(model);
MavenPlugin.getMaven().writeModel(model, buf);
ByteArrayInputStream source = new ByteArrayInputStream(buf.toByteArray());
@@ -159,6 +161,7 @@ public class PomUtil {
properties.putAll(model.getProperties());
model.setProperties(properties);
ByteArrayOutputStream buf = new ByteArrayOutputStream();
sortModules(model);
MavenPlugin.getMaven().writeModel(model, buf);
ByteArrayInputStream source = new ByteArrayInputStream(buf.toByteArray());
@@ -180,6 +183,17 @@ public class PomUtil {
}
}
public static void sortModules(Model model) {
if (model != null) {
List<String> modules = model.getModules();
if (modules != null && !modules.isEmpty()) {
List<String> sortedModules = new LinkedList<>(modules);
Collections.sort(sortedModules);
model.setModules(sortedModules);
}
}
}
private static void safeClose(Closeable stream) {
try {
if (stream != null) {
@@ -619,7 +633,9 @@ public class PomUtil {
File pomFile = new File(baseFolder, TalendMavenConstants.POM_FILE_NAME);
ByteArrayOutputStream buf = new ByteArrayOutputStream();
MavenPlugin.getMaven().writeModel(createModel(artifact), buf);
Model model = createModel(artifact);
sortModules(model);
MavenPlugin.getMaven().writeModel(model, buf);
DocumentBuilderFactory documentBuilderFactory = XmlUtils.getSecureDocumentBuilderFactory();
documentBuilderFactory.setNamespaceAware(false);

View File

@@ -28,6 +28,7 @@ import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import org.apache.commons.collections.keyvalue.MultiKey;
@@ -899,6 +900,14 @@ public class LocalRepositoryFactory extends AbstractEMFRepositoryFactory impleme
}
}
/**
* Avoid conflicts between different timezone
*/
Optional.ofNullable(project).map(p -> p.getEmfProject()).ifPresent(p -> {
p.setCreationDate(null);
p.setDeleteDate(null);
});
xmiResourceManager.saveResource(projectResource);
project.getEmfProject().getMigrationTask().addAll(realMigrationTaskList);
ProjectDataJsonProvider.saveProjectData(project.getEmfProject());
@@ -3066,7 +3075,7 @@ public class LocalRepositoryFactory extends AbstractEMFRepositoryFactory impleme
public void createUser(Project project) throws PersistenceException {
Resource projectResource = project.getEmfProject().eResource();
projectResource.getContents().add(getRepositoryContext().getUser());
xmiResourceManager.saveResource(projectResource);
saveProject(project);
}
@Override