From 145efc1f92357df4e825f4e02d9a6d4b81bc13f4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Genevi=C3=A8ve=20Bastien?= Date: Tue, 26 Jan 2016 22:36:22 -0500 Subject: [PATCH] tmf: Add XML analysis helper properties MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Change-Id: I35eeb288a97071930c01dedd449a54161512032b Signed-off-by: Geneviève Bastien Reviewed-on: https://git.eclipse.org/r/65227 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle Tested-by: Marc-Andre Laperle --- .../module/XmlAnalysisModuleSourceTest.java | 38 +++++++++++++++++++ .../analysis/xml/core/module/Messages.java | 10 +++++ .../module/TmfAnalysisModuleHelperXml.java | 18 ++++++++- .../xml/core/module/messages.properties | 2 + 4 files changed, 67 insertions(+), 1 deletion(-) diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core.tests/src/org/eclipse/tracecompass/tmf/analysis/xml/core/tests/module/XmlAnalysisModuleSourceTest.java b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core.tests/src/org/eclipse/tracecompass/tmf/analysis/xml/core/tests/module/XmlAnalysisModuleSourceTest.java index f997ed07e7..6f2e9ad017 100644 --- a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core.tests/src/org/eclipse/tracecompass/tmf/analysis/xml/core/tests/module/XmlAnalysisModuleSourceTest.java +++ b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core.tests/src/org/eclipse/tracecompass/tmf/analysis/xml/core/tests/module/XmlAnalysisModuleSourceTest.java @@ -12,17 +12,23 @@ 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 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 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")); + } + } diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/Messages.java b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/Messages.java index 3c637ff17a..5624e90131 100644 --- a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/Messages.java +++ b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/Messages.java @@ -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 */ diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/TmfAnalysisModuleHelperXml.java b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/TmfAnalysisModuleHelperXml.java index 379bb1e70f..79d42453ca 100644 --- a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/TmfAnalysisModuleHelperXml.java +++ b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/TmfAnalysisModuleHelperXml.java @@ -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; + } + } diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/messages.properties b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/messages.properties index 2f81a3d996..9622a76a0c 100644 --- a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/messages.properties +++ b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/messages.properties @@ -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. -- 2.34.1