I am trying to create an overview of the states of several components in a system. For this I want to use a timeGraphView of TraceCompass.
The input trace is a text file file which i parse using a custom parser. I filtered out a Timestamp (2016-07-28 09:25:45.037), a field named Origin (a string) and a event_type (Closed, Closing....). The event should trigger a state change defined in my stateProvider
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<CustomTxtTraceDefinitionList>
<Definition category="Custom Text-xml" name="xml">
<TimeStampOutputFormat>yyyy-MM-dd HH:mm:ss.SSS</TimeStampOutputFormat>
<InputLine>
<Cardinality max="2147483647" min="0"/>
<RegEx>\t+.*\t+(\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d.\d\d\d)+\t([a-zA-Z]*\t)+ReportStateChange.[a-zA-Z]*\s->\s(.[a-zA-Z]*).*</RegEx>
<InputData action="" format="yyyy-MM-dd HH:mm:ss.SSS" name="Timestamp" tag="TIMESTAMP"/>
<InputData action="" format="" name="Origin" tag="OTHER"/>
<InputData action="" format="" name="Event type" tag="EVENT_TYPE"/>
</InputLine>
<OutputColumn name="Timestamp" tag="TIMESTAMP"/>
<OutputColumn name="Origin" tag="OTHER"/>
<OutputColumn name="Event type" tag="EVENT_TYPE"/>
</Definition>
</CustomTxtTraceDefinitionList>
The parser is ok, but i cannot get the connection between the filtered fields and analysis which is defined as:
<tmfxml xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../org.eclipse.tracecompass.tmf.analysis.xml.core/src/org/eclipse/tracecompass/tmf/analysis/xml/core/module/xmlDefinition.xsd">
<stateProvider version="0" id="my.al.state.provider">
<head>
<label value="My test analysis" />
</head>
<definedValue name="OPENED" value="100" />
<definedValue name="CLOSED" value="101" />
<definedValue name="OPENING" value="102" />
<definedValue name="CLOSING" value="103" />
<definedValue name="EMPTY" value="104" />
<definedValue name="FILLED" value="105" />
<definedValue name="ERROR" value="106" />
<eventHandler eventName="Opened">
<stateChange>
<stateAttribute type="constant" value="Tasks" />
<stateAttribute type="eventField" value="number" />
<stateValue type="int" value="$OPENED" />
</stateChange>
</eventHandler>
<eventHandler eventName="Closed">
<stateChange>
<stateAttribute type="constant" value="Tasks" />
<stateAttribute type="eventField" value="number" />
<stateValue type="int" value="$CLOSED" />
</stateChange>
</eventHandler>
<eventHandler eventName="Opening">
<stateChange>
<stateAttribute type="constant" value="Tasks" />
<stateAttribute type="eventField" value="number" />
<stateValue type="int" value="$OPENING" />
</stateChange>
</eventHandler>
<eventHandler eventName="Closing">
<stateChange>
<stateAttribute type="constant" value="Tasks" />
<stateAttribute type="eventField" value="number" />
<stateValue type="int" value="$CLOSING" />
</stateChange>
</eventHandler>
<eventHandler eventName="Empty">
<stateChange>
<stateAttribute type="constant" value="Tasks" />
<stateAttribute type="eventField" value="number" />
<stateValue type="int" value="$EMPTY" />
</stateChange>
</eventHandler>
<eventHandler eventName="Filled">
<stateChange>
<stateAttribute type="constant" value="Tasks" />
<stateAttribute type="eventField" value="number" />
<stateValue type="int" value="$FILLED" />
</stateChange>
</eventHandler>
<eventHandler eventName="Error">
<stateChange>
<stateAttribute type="constant" value="Tasks" />
<stateAttribute type="eventField" value="number" />
<stateValue type="int" value="$ERROR" />
</stateChange>
</eventHandler>
</stateProvider>
<timeGraphView id="my.al.time.graph.view">
<head>
<analysis id="my.al.state.provider" />
<label value="My txt View" />
</head>
<definedValue name="OPENED" value="100" color="#118811" />
<definedValue name="CLOSED" value="101" color="#881111" />
<definedValue name="OPENING" value="102" color="#AEB522" />
<definedValue name="CLOSING" value="103" color="#AEB524" />
<definedValue name="EMPTY" value="104" color="#AEB524" />
<definedValue name="FILLED" value="105" color="#AEB528" />
<definedValue name="ERROR" value="106" color="#AEB52A" />
<entry path="Tasks/*">
<display type="self" />
</entry>
</timeGraphView>
</tmfxml>
How can i get the state provider to use the events coming from the custom text parser?