tmf: Add XML analysis helper properties
authorGeneviève Bastien <gbastien+lttng@versatic.net>
Wed, 27 Jan 2016 03:36:22 +0000 (22:36 -0500)
committerGenevieve Bastien <gbastien+lttng@versatic.net>
Wed, 17 Feb 2016 01:06:01 +0000 (20:06 -0500)
Change-Id: I35eeb288a97071930c01dedd449a54161512032b
Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/65227
Reviewed-by: Hudson CI
Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
tmf/org.eclipse.tracecompass.tmf.analysis.xml.core.tests/src/org/eclipse/tracecompass/tmf/analysis/xml/core/tests/module/XmlAnalysisModuleSourceTest.java
tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/Messages.java
tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/TmfAnalysisModuleHelperXml.java
tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/messages.properties

index f997ed07e791c540a519d6484c7751e87a5a8a40..6f2e9ad0178b57f45fde1cd6662e5854a68647da 100644 (file)
 
 package org.eclipse.tracecompass.tmf.analysis.xml.core.tests.module;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.io.File;
+import java.util.Map;
+import java.util.stream.StreamSupport;
 
+import org.eclipse.tracecompass.tmf.analysis.xml.core.module.TmfAnalysisModuleHelperXml.XmlAnalysisModuleType;
 import org.eclipse.tracecompass.tmf.analysis.xml.core.module.XmlAnalysisModuleSource;
 import org.eclipse.tracecompass.tmf.analysis.xml.core.module.XmlUtils;
 import org.eclipse.tracecompass.tmf.analysis.xml.core.tests.common.TmfXmlTestFiles;
 import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModuleHelper;
 import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisManager;
+import org.eclipse.tracecompass.tmf.core.project.model.ITmfPropertiesProvider;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -132,4 +138,36 @@ public class XmlAnalysisModuleSourceTest {
         assertTrue(findModule(modules.values(), SS_MODULE));
         assertTrue(findModule(modules.values(), BUILTIN_MODULE));
     }
+
+    /**
+     * Test that helper returns the right properties
+     */
+    @Test
+    public void testProperties() {
+
+        /* Get the helper for the builtin module */
+        XmlAnalysisModuleSource module = new XmlAnalysisModuleSource();
+
+        Iterable<IAnalysisModuleHelper> modules = module.getAnalysisModules();
+
+        IAnalysisModuleHelper helper = StreamSupport.stream(modules.spliterator(), false)
+                .filter(h -> h.getId().equals(BUILTIN_MODULE))
+                .findFirst()
+                .get();
+        assertNotNull(helper);
+
+        /* Verify the helper is a properties provider */
+        assertTrue(helper instanceof ITmfPropertiesProvider);
+        ITmfPropertiesProvider provider = (ITmfPropertiesProvider) helper;
+        Map<String, String> properties = provider.getProperties();
+        assertEquals(2, properties.size());
+
+        /*
+         * The text is externalized, so we're not sure about the property key,
+         * but we know the values that should be present
+         */
+        assertTrue(properties.containsValue(XmlAnalysisModuleType.STATE_SYSTEM.name()));
+        assertTrue(properties.containsValue("test_builtin.xml"));
+    }
+
 }
index 3c637ff17aa452488a6676fd9f15c9948d2c05e3..5624e901316a115150abb526b77d9f9bbbc72f5a 100644 (file)
@@ -22,6 +22,16 @@ import org.eclipse.osgi.util.NLS;
 public class Messages extends NLS {
     private static final String BUNDLE_NAME = "org.eclipse.tracecompass.tmf.analysis.xml.core.module.messages"; //$NON-NLS-1$
 
+    /** Property name for file
+     * @since 2.0
+     */
+    public static String XmlModuleHelper_PropertyFile;
+
+    /** Property name for type
+     * @since 2.0
+     */
+    public static String XmlModuleHelper_PropertyType;
+
     /** Error copying XML file to workspace folder */
     public static String XmlUtils_ErrorCopyingFile;
     /** XML parse error */
index 379bb1e70f38d21b2c96962f0297bbcb49120d3f..79d42453cae0c9ed6ef525541405e94f5a17008f 100644 (file)
@@ -13,10 +13,13 @@ import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
 
 import java.io.File;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.tracecompass.common.core.NonNullUtils;
 import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.Activator;
 import org.eclipse.tracecompass.tmf.analysis.xml.core.stateprovider.TmfXmlStrings;
 import org.eclipse.tracecompass.tmf.analysis.xml.core.stateprovider.XmlStateSystemModule;
@@ -25,6 +28,7 @@ import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModuleHelper;
 import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisManager;
 import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisRequirement;
 import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException;
+import org.eclipse.tracecompass.tmf.core.project.model.ITmfPropertiesProvider;
 import org.eclipse.tracecompass.tmf.core.project.model.TmfTraceType;
 import org.eclipse.tracecompass.tmf.core.project.model.TraceTypeHelper;
 import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
@@ -37,7 +41,7 @@ import org.w3c.dom.Element;
  * @author Geneviève Bastien
  * @since 2.0
  */
-public class TmfAnalysisModuleHelperXml implements IAnalysisModuleHelper {
+public class TmfAnalysisModuleHelperXml implements IAnalysisModuleHelper, ITmfPropertiesProvider {
 
     /**
      * The types of analysis that can be XML-defined
@@ -198,4 +202,16 @@ public class TmfAnalysisModuleHelperXml implements IAnalysisModuleHelper {
         return module;
     }
 
+    // ------------------------------------------------------------------------
+    // ITmfPropertiesProvider
+    // ------------------------------------------------------------------------
+
+    @Override
+    public @NonNull Map<@NonNull String, @NonNull String> getProperties() {
+        Map<@NonNull String, @NonNull String> properties = new HashMap<>();
+        properties.put(NonNullUtils.checkNotNull(Messages.XmlModuleHelper_PropertyFile), fSourceFile.getName());
+        properties.put(NonNullUtils.checkNotNull(Messages.XmlModuleHelper_PropertyType), fType.name());
+        return properties;
+    }
+
 }
index 2f81a3d9968983577d0561f3d63f6cf4da570e44..9622a76a0c118a7a28282e56f30098240a915335 100644 (file)
@@ -9,6 +9,8 @@
 # Contributors:
 #    Ericsson - Initial API and implementation
 ###############################################################################
+XmlModuleHelper_PropertyFile=Source XML File
+XmlModuleHelper_PropertyType=Type of analysis
 XmlUtils_ErrorCopyingFile=An error occurred while copying the XML file to the TMF directory. The file was not imported.
 XmlUtils_XmlParseError=XML Parsing error at line {0}: {1}
 XmlUtils_XmlValidateError=An error occurred while validating the XML file.
This page took 0.028822 seconds and 5 git commands to generate.