Hi Patrick
Got it, actually, I saw the dummy helper for validation purpose also ^^
The cause I ask it is that I am trying to to some injection under the TMF
way implementation for a new TraceType
I try to implementation a E4 based service that can do some additional PIPE
like trace processing
For example a power consume index could take frequency & load as input,
output could be other pipes as input also
To bridge / trigger the service to work, I bind it to the class extends
TmfTrace
To workaround it, I did a ModelAddon to force createExecutableExtension()
in TmfTraceType like bellow
@PostConstruct
public void init(IEclipseContext context, IExtensionRegistry reg) {
assert context != null;
_context = context;
/*
* A hack to TMF, since inject must be before TMFTrace implementation
*
* The getInstance() call would trigger load extension points
*
* It is the point to force inject here
*
*/
TraceTypeHelper tth =
TmfTraceType.getInstance().getTraceType(Activator.TRACETYPE_ID);
tmfTrace = tth.getTrace();
assert tmfTrace != null;
ContextInjectionFactory.inject(tmfTrace, _context);
.........
As you mentioned, it is for validation only. so I got null point on other
callbacks like parseEvent() XDDDDDDDDDDDD
Is there any way that can make the INJECT got chance to work in the class
extends TmfTrace for a new trace type ?
Or maybe I got misunderstand for the spirit of TMF framework = =!!
Thank you again for the quick response.
The TMF is very amazing !
Ran-How
On Sat, Apr 5, 2014 at 2:08 AM, Patrick Tasse <[email protected]>wrote:
> Hi Ran-How,
>
> The reason we can't use the ITmfTrace instance owned by the trace type
> helper is that we need a different instance for each opened trace (they
> have different resources, paths, indexers, etc.).
>
> The instance in the trace type helper is a dummy trace instance that is
> only used for trace type validation. It's not sure that these instances
> will remain in the future, if for example we implement a validator class
> that is separate from the trace class.
>
> Patrick
>
>
> On Fri, Apr 4, 2014 at 1:17 PM, Chen RanHow <[email protected]> wrote:
>
>>
>> Hi TMF advances
>>
>> Thank you team for the powerful framework, I have a question bellow
>>
>> In TmfTraceElement.java
>>
>> I saw createExecutableExtension() in instantiateTrace() to get an
>> instance from the extension points like bellow
>>
>> IConfigurationElement ce =
>> sfTraceTypeAttributes.get(fTraceTypeId);
>>
>> .......
>>
>> ITmfTrace trace = (ITmfTrace)
>> ce.createExecutableExtension(TmfTraceType.TRACE_TYPE_ATTR);
>>
>> ......
>>
>> return trace;
>>
>> I wonder why not just use TmfTraceType.getInstance() to do it ?
>>
>> Since the init() in TmfTraceType constructor
>> call populateCategoriesAndTraceTypes()
>>
>> The instance of createExecutableExtension is created
>>
>> Could it be replaced with
>>
>> TraceTypeHelper tth =
>> TmfTraceType.getInstance().getTraceType(fTraceTypeId);
>>
>> ITmfTrace trace = tth.getTrace();
>>
>> return trace;
>>
>> Or I misunderstand it ?
>>
>> Please kindly to reply
>>
>> Ran-How
>>
>>
>> _______________________________________________
>> linuxtools-dev mailing list
>> [email protected]
>> https://dev.eclipse.org/mailman/listinfo/linuxtools-dev
>>
>>
>
> _______________________________________________
> linuxtools-dev mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/linuxtools-dev
>
>
_______________________________________________
linuxtools-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/linuxtools-dev