From: Bernd Hufmann Date: Tue, 9 Feb 2016 18:46:37 +0000 (-0500) Subject: tmf: Ignore xml analysis files not having xml file extension X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=537572cda7fa41bb9f02c91654bdf3631369908d;p=deliverable%2Ftracecompass.git tmf: Ignore xml analysis files not having xml file extension Change-Id: If9261146b9fd8d03cb9cbd66e12a166f130b17b4 Signed-off-by: Bernd Hufmann Reviewed-on: https://git.eclipse.org/r/66240 Reviewed-by: Jean-Christian Kouame Reviewed-by: Hudson CI Reviewed-by: Genevieve Bastien Tested-by: Genevieve Bastien --- diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/XmlAnalysisModuleSource.java b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/XmlAnalysisModuleSource.java index 13d4626e49..c9eb4346a1 100644 --- a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/XmlAnalysisModuleSource.java +++ b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/XmlAnalysisModuleSource.java @@ -18,6 +18,7 @@ import java.net.URL; import java.nio.channels.FileChannel; import java.util.ArrayList; import java.util.List; +import java.util.Map; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -176,11 +177,9 @@ public class XmlAnalysisModuleSource implements IAnalysisModuleSource { } } } - final File[] analysisFiles = folder.listFiles(); - if (analysisFiles != null) { - for (File xmlFile : analysisFiles) { - processFile(xmlFile); - } + Map files = XmlUtils.listFiles(); + for (File xmlFile : files.values()) { + processFile(xmlFile); } } diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/XmlUtils.java b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/XmlUtils.java index 87575112f7..9fe69a03d7 100644 --- a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/XmlUtils.java +++ b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/XmlUtils.java @@ -70,7 +70,7 @@ public class XmlUtils { * Extension for XML files * @since 2.0 */ - public static final String XML_EXTENSION = ".xml"; //$NON-NLS-1$ + public static final String XML_EXTENSION = "xml"; //$NON-NLS-1$ /** Make this class non-instantiable */ private XmlUtils() { @@ -151,13 +151,21 @@ public class XmlUtils { * @return A map with all the XML analysis files * @since 2.0 */ - public static synchronized Map listFile() { - Map files = new HashMap<>(); - File[] listOfFiles = getXmlFilesPath().toFile().listFiles(); - for (File file : listOfFiles) { - files.put(file.getName(), file); + public static synchronized @NonNull Map listFiles() { + IPath pathToFiles = XmlUtils.getXmlFilesPath(); + File folder = pathToFiles.toFile(); + + Map fileMap = new HashMap<>(); + if ((folder.isDirectory() && folder.exists())) { + File[] listOfFiles = getXmlFilesPath().toFile().listFiles(); + for (File file : listOfFiles) { + IPath path = new Path(file.getName()); + if (path.getFileExtension().equals(XML_EXTENSION)) { + fileMap.put(file.getName(), file); + } + } } - return Collections.unmodifiableMap(files); + return Collections.unmodifiableMap(fileMap); } /** @@ -168,7 +176,7 @@ public class XmlUtils { * @since 2.0 */ public static void deleteFile(String name) { - Map files = listFile(); + Map files = listFiles(); File file = files.get(name); if (file == null) { return; diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/handler/ManageXMLAnalysisDialog.java b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/handler/ManageXMLAnalysisDialog.java index e11338bc0d..acc28f97b2 100644 --- a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/handler/ManageXMLAnalysisDialog.java +++ b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/handler/ManageXMLAnalysisDialog.java @@ -16,7 +16,9 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.MessageDialog; @@ -171,8 +173,8 @@ public class ManageXMLAnalysisDialog extends Dialog { } private void handleSelection(String[] selection) { - Map files = XmlUtils.listFile(); - File file = files.get(selection[0] + XmlUtils.XML_EXTENSION); + Map files = XmlUtils.listFiles(); + File file = files.get(createXmlFileString(selection[0])); if (file != null && XmlUtils.xmlValidate(file).isOK()) { fInvalidFileLabel.setVisible(false); } else { @@ -180,12 +182,12 @@ public class ManageXMLAnalysisDialog extends Dialog { } } - private static void deleteSupplementaryFile(String selection) { + private static void deleteSupplementaryFile(String xmlFile) { // 1. Look for all traces that have this analysis // 2. Close them if they are opened. // 3. Delete the related supplementary files java.util.List resourceToDelete = new ArrayList<>(); - java.util.List ids = XmlUtils.getAnalysisIdsFromFile(selection + XmlUtils.XML_EXTENSION); + java.util.List ids = XmlUtils.getAnalysisIdsFromFile(xmlFile); IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects(0); for (IProject project : projects) { TmfProjectElement pElement = TmfProjectRegistry.getProject(project); @@ -225,11 +227,12 @@ public class ManageXMLAnalysisDialog extends Dialog { private void fillAnalysesList() { fAnalysesList.removeAll(); - Map files = XmlUtils.listFile(); + Map files = XmlUtils.listFiles(); for (String file : files.keySet()) { // Remove the extension from the file path. The extension is at the // end of the file path - fAnalysesList.add(file.substring(0, file.length() - XmlUtils.XML_EXTENSION.length())); + IPath path = new Path(file); + fAnalysesList.add(path.removeFileExtension().toString()); } fDeleteButton.setEnabled(false); fExportButton.setEnabled(false); @@ -271,12 +274,12 @@ public class ManageXMLAnalysisDialog extends Dialog { FileDialog dialog = new FileDialog(Display.getCurrent().getActiveShell(), SWT.SAVE); dialog.setText(NLS.bind(Messages.ManageXMLAnalysisDialog_SelectFileExport, fAnalysesList.getSelection()[0])); dialog.setFilterExtensions(new String[] { XML_FILTER_EXTENSION, "*" }); //$NON-NLS-1$ - dialog.setFileName(fAnalysesList.getSelection()[0] + XmlUtils.XML_EXTENSION); + String selection = createXmlFileString(fAnalysesList.getSelection()[0]); + dialog.setFileName(selection); String path = dialog.open(); if (path != null) { - String selection = fAnalysesList.getSelection()[0]; - if (!XmlUtils.exportXmlFile(selection + XmlUtils.XML_EXTENSION, path).isOK()) { - Activator.logError(NLS.bind(Messages.ManageXMLAnalysisDialog_FailedToExport, selection + XmlUtils.XML_EXTENSION)); + if (!XmlUtils.exportXmlFile(selection, path).isOK()) { + Activator.logError(NLS.bind(Messages.ManageXMLAnalysisDialog_FailedToExport, selection)); } } } @@ -287,9 +290,9 @@ public class ManageXMLAnalysisDialog extends Dialog { Messages.ManageXMLAnalysisDialog_DeleteFile, NLS.bind(Messages.ManageXMLAnalysisDialog_DeleteConfirmation, fAnalysesList.getSelection()[0])); if (confirm) { - String selection = fAnalysesList.getSelection()[0]; + String selection = createXmlFileString(fAnalysesList.getSelection()[0]); deleteSupplementaryFile(selection); - XmlUtils.deleteFile(selection + XmlUtils.XML_EXTENSION); + XmlUtils.deleteFile(selection); fillAnalysesList(); fInvalidFileLabel.setVisible(false); XmlAnalysisModuleSource.notifyModuleChange(); @@ -333,4 +336,9 @@ public class ManageXMLAnalysisDialog extends Dialog { } } } + + private static String createXmlFileString(String baseName) { + IPath path = new Path(baseName).addFileExtension(XmlUtils.XML_EXTENSION); + return path.toString(); + } } diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/tmf/analysis/xml/ui/module/TmfXmlAnalysisOutputSource.java b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/tmf/analysis/xml/ui/module/TmfXmlAnalysisOutputSource.java index cdd0952e1b..7db8d7e294 100644 --- a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/tmf/analysis/xml/ui/module/TmfXmlAnalysisOutputSource.java +++ b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/tmf/analysis/xml/ui/module/TmfXmlAnalysisOutputSource.java @@ -15,12 +15,12 @@ package org.eclipse.tracecompass.tmf.analysis.xml.ui.module; import java.io.File; import java.io.IOException; import java.util.List; +import java.util.Map; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import org.eclipse.core.runtime.IPath; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.Activator; import org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.TmfXmlUiStrings; @@ -86,12 +86,8 @@ public class TmfXmlAnalysisOutputSource implements ITmfNewAnalysisModuleListener @Override public void moduleCreated(IAnalysisModule module) { - IPath pathToFiles = XmlUtils.getXmlFilesPath(); - File fFolder = pathToFiles.toFile(); - if (!(fFolder.isDirectory() && fFolder.exists())) { - return; - } - for (File xmlFile : fFolder.listFiles()) { + Map files = XmlUtils.listFiles(); + for (File xmlFile : files.values()) { if (!XmlUtils.xmlValidate(xmlFile).isOK()) { continue; }