os.linux: Move ThreadPriorityAspect to the event.aspect package
authorAlexandre Montplaisir <alexmonthy@efficios.com>
Tue, 15 Mar 2016 21:31:00 +0000 (17:31 -0400)
committerAlexandre Montplaisir <alexmonthy@efficios.com>
Wed, 30 Mar 2016 00:26:04 +0000 (20:26 -0400)
Also move the related logic from KernelThreadInformationProvider
to the aspect itself.

Change-Id: I9dbf5854e3b8057fc5cb5dd147040e4b1a63cf68
Signed-off-by: Alexandre Montplaisir <alexmonthy@efficios.com>
Reviewed-on: https://git.eclipse.org/r/68561
Reviewed-by: Hudson CI
Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
analysis/org.eclipse.tracecompass.analysis.os.linux.core.tests/stubs/org/eclipse/tracecompass/analysis/os/linux/core/tests/stubs/trace/TmfXmlKernelTraceStub.java
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/event/aspect/Messages.java
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/event/aspect/ThreadPriorityAspect.java [new file with mode: 0644]
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/event/aspect/messages.properties
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/kernel/KernelThreadInformationProvider.java
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/kernel/Messages.java
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/kernel/ThreadPriorityAspect.java [deleted file]
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/kernel/messages.properties
lttng/org.eclipse.tracecompass.lttng2.kernel.core/src/org/eclipse/tracecompass/lttng2/kernel/core/trace/LttngKernelTrace.java

index 6594d03fbe3b82c455f5d0b18ddfb07a7495f5fb..837993127526acbc85da22492d7c30c7723c479a 100644 (file)
@@ -11,7 +11,7 @@ package org.eclipse.tracecompass.analysis.os.linux.core.tests.stubs.trace;
 
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.tracecompass.analysis.os.linux.core.kernel.KernelTidAspect;
-import org.eclipse.tracecompass.analysis.os.linux.core.kernel.ThreadPriorityAspect;
+import org.eclipse.tracecompass.analysis.os.linux.core.event.aspect.ThreadPriorityAspect;
 import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout;
 import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelTrace;
 import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect;
index 49a9b1101e4d9ffecf2ba5e7b87ba653e299ee1c..da26e512a1f1fd7f0536268dd7e415c3cd36d465 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.osgi.util.NLS;
 
 /**
  * @since 1.0
+ * @noreference Messages class
  */
 @SuppressWarnings("javadoc")
 public class Messages extends NLS {
@@ -27,6 +28,10 @@ public class Messages extends NLS {
 
     public static @Nullable String AspectHelpText_Tid;
 
+    public static @Nullable String AspectName_Prio;
+
+    public static @Nullable String AspectHelpText_Prio;
+
     static {
         NLS.initializeMessages(BUNDLE_NAME, Messages.class);
     }
diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/event/aspect/ThreadPriorityAspect.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/event/aspect/ThreadPriorityAspect.java
new file mode 100644 (file)
index 0000000..8f8b78c
--- /dev/null
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Keba AG
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *   Christian Mansky - Initial implementation
+ *******************************************************************************/
+
+package org.eclipse.tracecompass.analysis.os.linux.core.event.aspect;
+
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.tracecompass.analysis.os.linux.core.kernel.Attributes;
+import org.eclipse.tracecompass.analysis.os.linux.core.kernel.KernelAnalysisModule;
+import org.eclipse.tracecompass.analysis.os.linux.core.kernel.KernelTidAspect;
+import org.eclipse.tracecompass.common.core.NonNullUtils;
+import org.eclipse.tracecompass.statesystem.core.ITmfStateSystem;
+import org.eclipse.tracecompass.statesystem.core.exceptions.AttributeNotFoundException;
+import org.eclipse.tracecompass.statesystem.core.exceptions.StateSystemDisposedException;
+import org.eclipse.tracecompass.statesystem.core.exceptions.TimeRangeException;
+import org.eclipse.tracecompass.statesystem.core.interval.ITmfStateInterval;
+import org.eclipse.tracecompass.statesystem.core.statevalue.ITmfStateValue;
+import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
+import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect;
+import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils;
+
+/**
+ * This aspect finds the priority of the thread running from this event using
+ * the {@link KernelAnalysisModule}.
+ *
+ * @author Christian Mansky
+ * @since 2.0
+ */
+public final class ThreadPriorityAspect implements ITmfEventAspect {
+
+    /** The singleton instance */
+    public static final ThreadPriorityAspect INSTANCE = new ThreadPriorityAspect();
+
+    private ThreadPriorityAspect() {
+    }
+
+    @Override
+    public final String getName() {
+        return NonNullUtils.nullToEmptyString(Messages.AspectName_Prio);
+    }
+
+    @Override
+    public final String getHelpText() {
+        return NonNullUtils.nullToEmptyString(Messages.AspectHelpText_Prio);
+    }
+
+    @Override
+    public @Nullable Integer resolve(ITmfEvent event) {
+        KernelAnalysisModule kernelAnalysis = TmfTraceUtils.getAnalysisModuleOfClass(event.getTrace(), KernelAnalysisModule.class, KernelAnalysisModule.ID);
+        if (kernelAnalysis == null) {
+            return null;
+        }
+
+        ITmfStateSystem ss = kernelAnalysis.getStateSystem();
+        if (ss == null) {
+            return null;
+        }
+
+        Integer tid = KernelTidAspect.INSTANCE.resolve(event);
+        if (tid == null) {
+            return null;
+        }
+
+        final long ts = event.getTimestamp().getValue();
+        Integer execPrio = null;
+        try {
+            int execPrioQuark = ss.getQuarkAbsolute(Attributes.THREADS, tid.toString(), Attributes.PRIO);
+            ITmfStateInterval interval = ss.querySingleState(ts, execPrioQuark);
+            ITmfStateValue prioValue = interval.getStateValue();
+            /* We know the prio must be an Integer */
+            execPrio = prioValue.unboxInt();
+        } catch (AttributeNotFoundException | StateSystemDisposedException | TimeRangeException e) {
+        }
+        return execPrio;
+    }
+}
index a75686f814ca43363e6c6fe5d2a2f19f9cd8182f..6be08f3bc8544982d26c726e79532132ea55c629 100644 (file)
@@ -188,34 +188,6 @@ public final class KernelThreadInformationProvider {
         return execName;
     }
 
-    /**
-     * Get the priority of a thread running at a time ts.
-     *
-     * @param module
-     *            The kernel analysis instance to run this method on
-     * @param threadId
-     *            The thread ID of the target thread
-     * @param ts
-     *            The timestamp at which to get the priority
-     * @return The priority of this thread, or {@code null} if not found
-     */
-    public static @Nullable Integer getThreadPrio(KernelAnalysisModule module, Integer threadId, long ts) {
-        Integer execPrio = null;
-        ITmfStateSystem ss = module.getStateSystem();
-        if (ss == null) {
-            return execPrio;
-        }
-        try {
-            int execPrioQuark = ss.getQuarkAbsolute(Attributes.THREADS, threadId.toString(), Attributes.PRIO);
-            ITmfStateInterval interval = ss.querySingleState(ts, execPrioQuark);
-            ITmfStateValue prioValue = interval.getStateValue();
-            /* We know the prio must be an Integer */
-            execPrio = prioValue.unboxInt();
-        } catch (AttributeNotFoundException | StateSystemDisposedException | TimeRangeException e) {
-        }
-        return execPrio;
-    }
-
     /**
      * Get the status intervals for a given thread with a resolution
      *
index 64aafdd5807ffabfcfd5142a8f5263da09e857e6..7c05e846ef6ab592ce1e268c62306c9697762044 100644 (file)
@@ -25,10 +25,6 @@ import org.eclipse.osgi.util.NLS;
 public class Messages extends NLS {
     private static final String BUNDLE_NAME = "org.eclipse.tracecompass.analysis.os.linux.core.kernel.messages"; //$NON-NLS-1$
 
-    public static @Nullable String AspectName_Prio;
-
-    public static @Nullable String AspectHelpText_Prio;
-
     public static @Nullable String LttngKernelAnalysisModule_Help;
 
     static {
diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/kernel/ThreadPriorityAspect.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/kernel/ThreadPriorityAspect.java
deleted file mode 100644 (file)
index 6827f35..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015 Keba AG
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   Christian Mansky - Initial implementation
- *******************************************************************************/
-
-package org.eclipse.tracecompass.analysis.os.linux.core.kernel;
-
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.tracecompass.common.core.NonNullUtils;
-import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
-import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect;
-import org.eclipse.tracecompass.tmf.core.trace.TmfTraceUtils;
-
-/**
- * This aspect finds the priority of the thread running from this event using
- * the {@link KernelAnalysisModule}.
- *
- * @author Christian Mansky
- * @since 2.0
- */
-public final class ThreadPriorityAspect implements ITmfEventAspect {
-
-    /** The singleton instance */
-    public static final ThreadPriorityAspect INSTANCE = new ThreadPriorityAspect();
-
-    private ThreadPriorityAspect() {
-    }
-
-    @Override
-    public final String getName() {
-        return NonNullUtils.nullToEmptyString(Messages.AspectName_Prio);
-    }
-
-    @Override
-    public final String getHelpText() {
-        return NonNullUtils.nullToEmptyString(Messages.AspectHelpText_Prio);
-    }
-
-    @Override
-    public @Nullable Integer resolve(ITmfEvent event) {
-        KernelAnalysisModule kernelAnalysis = TmfTraceUtils.getAnalysisModuleOfClass(event.getTrace(), KernelAnalysisModule.class, KernelAnalysisModule.ID);
-        if (kernelAnalysis == null) {
-            return null;
-        }
-
-        Integer tid = KernelTidAspect.INSTANCE.resolve(event);
-        if (tid == null) {
-            return null;
-        }
-
-        Integer prio = KernelThreadInformationProvider.getThreadPrio(kernelAnalysis, tid, event.getTimestamp().getValue());
-        return prio;
-    }
-
-}
index a666ee1a7600a05380fc6368831314feeef4ca2c..0ae0b51c129992436dfccb1bdbeeae7aba840a6f 100644 (file)
@@ -10,6 +10,4 @@
 #     Geneviève Bastien - Initial API and implementation
 ###############################################################################
 
-AspectName_Prio=Prio
-AspectHelpText_Prio=The priority of the thread this event belongs to
 LttngKernelAnalysisModule_Help=Builds the LTTng2 kernel state system to populate the Control Flow view and the Resources View
index f55f48416ae8cb336726f747c3373ceaf8b5bfeb..949497d849108ee15c268ae16108d5ec370f44dd 100644 (file)
@@ -23,7 +23,7 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.tracecompass.analysis.os.linux.core.kernel.KernelTidAspect;
-import org.eclipse.tracecompass.analysis.os.linux.core.kernel.ThreadPriorityAspect;
+import org.eclipse.tracecompass.analysis.os.linux.core.event.aspect.ThreadPriorityAspect;
 import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout;
 import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelTrace;
 import org.eclipse.tracecompass.internal.lttng2.kernel.core.Activator;
This page took 0.03053 seconds and 5 git commands to generate.