tmf: Ignore xml analysis files not having xml file extension
authorBernd Hufmann <Bernd.Hufmann@ericsson.com>
Tue, 9 Feb 2016 18:46:37 +0000 (13:46 -0500)
committerBernd Hufmann <bernd.hufmann@ericsson.com>
Fri, 12 Feb 2016 12:26:25 +0000 (07:26 -0500)
Change-Id: If9261146b9fd8d03cb9cbd66e12a166f130b17b4
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/66240
Reviewed-by: Jean-Christian Kouame <jean-christian.kouame@ericsson.com>
Reviewed-by: Hudson CI
Reviewed-by: Genevieve Bastien <gbastien+lttng@versatic.net>
Tested-by: Genevieve Bastien <gbastien+lttng@versatic.net>
tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/XmlAnalysisModuleSource.java
tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/XmlUtils.java
tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/handler/ManageXMLAnalysisDialog.java
tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/tmf/analysis/xml/ui/module/TmfXmlAnalysisOutputSource.java

index 13d4626e490533ef1401f501191918c6b11f6e3c..c9eb4346a1bceb17e6b53cf10a0934bdae6c5676 100644 (file)
@@ -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<String, File> files = XmlUtils.listFiles();
+        for (File xmlFile : files.values()) {
+            processFile(xmlFile);
         }
     }
 
index 87575112f794cde5785258e6db5f255a1a827cb2..9fe69a03d79ab8d281adb0da94599b46899d855a 100644 (file)
@@ -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<String, File> listFile() {
-        Map<String, File> files = new HashMap<>();
-        File[] listOfFiles = getXmlFilesPath().toFile().listFiles();
-        for (File file : listOfFiles) {
-            files.put(file.getName(), file);
+    public static synchronized @NonNull Map<String, File> listFiles() {
+        IPath pathToFiles = XmlUtils.getXmlFilesPath();
+        File folder = pathToFiles.toFile();
+
+        Map<String, File> 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<String, File> files = listFile();
+        Map<String, File> files = listFiles();
         File file = files.get(name);
         if (file == null) {
             return;
index e11338bc0d0e571b9860189a8e7f3d56c5aa8052..acc28f97b2d9da1012d7d9fa6f63b00bbafc47cd 100644 (file)
@@ -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<String, File> files = XmlUtils.listFile();
-        File file = files.get(selection[0] + XmlUtils.XML_EXTENSION);
+        Map<String, File> 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<IResource> resourceToDelete = new ArrayList<>();
-        java.util.List<String> ids = XmlUtils.getAnalysisIdsFromFile(selection + XmlUtils.XML_EXTENSION);
+        java.util.List<String> 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<String, File> files = XmlUtils.listFile();
+        Map<String, File> 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();
+    }
 }
index cdd0952e1b84fc630e8c7c741446593df30887fb..7db8d7e294320b036293ab7f580b88332060d50b 100644 (file)
@@ -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<String, File> files = XmlUtils.listFiles();
+        for (File xmlFile : files.values()) {
             if (!XmlUtils.xmlValidate(xmlFile).isOK()) {
                 continue;
             }
This page took 0.028822 seconds and 5 git commands to generate.