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 <patrick.ta...@gmail.com>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 <ranhow.c...@gmail.com> 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
>> linuxtools-dev@eclipse.org
>> https://dev.eclipse.org/mailman/listinfo/linuxtools-dev
>>
>>
>
> _______________________________________________
> linuxtools-dev mailing list
> linuxtools-dev@eclipse.org
> https://dev.eclipse.org/mailman/listinfo/linuxtools-dev
>
>
_______________________________________________
linuxtools-dev mailing list
linuxtools-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/linuxtools-dev

Reply via email to