Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tracecompass-dev] API change: CallStack Analysis

Hi Genevieve,

thanks for working on migration the incubator call stack features to Trace Compass mainline.

When rebasing to the latest master in Trace Compass repo that contains your updates, I noticed that an existing extension, that I have to the CallStackAnalysis, doesn't populate the CallStackView, and CallGraph Analysis related views anymore. Looking at the changes, I realized that the "old" source code for these features are deprecated, but not wired up anymore in the plugin.xml. So, the source code is still compiling but not available anymore at runtime. A similar problem arises with the symbol provider change. I noticed a ClassCastException when the ISymbolProviderManager is casting to the ISymbolProviderFactory instance deprecated in tmf.ui, but expects an ISymbolProviderFactory in profiling.ui plug-in. Here also, the previous code still exists and is deprecated, but causes the extension to fail. 

I would be willing to update to the new API in profiling plug-ins and it would not big change. However, there might be (and we know there are) other adopters of the call stack view and symbol provider etc. in community who are affected by this. Any ideas how we can solve this the best way? Reverting the patches could be the last resort. Reminder that tomorrow is API and feature freeze and we need to have the fix merged by lunch so that we have a RC1 build early afternoon.

Please let me know.

Best Regards
Bernd
  
________________________________________
From: tracecompass-dev-bounces@xxxxxxxxxxx <tracecompass-dev-bounces@xxxxxxxxxxx> on behalf of Geneviève Bastien <gbastien@xxxxxxxxxxxx>
Sent: May 22, 2018 12:26 PM
To: tracecompass-dev@xxxxxxxxxxx
Subject: Re: [tracecompass-dev] API change: CallStack Analysis

So the change has been merged, it's harmless enough ;-) Thanks for the
prompt reviews.


Additional notes to implementers:


* If you extend the CallStackAnalysis or anything related, you'll need
to add a dependency to
'org.eclipse.tracecompass.analysis.profiling.[core|ui]' and update all
references to the now deprecated classes (they have the same name,
package, just change 'tmf' to 'analysis.profiling').


* The symbols have also been moved to the profiling plugins and the ones
in tmf.core/ui have been deprecated. Just changing the references should
be enough. If you extended the symbol provider extension point, you may
update the extension point name to
'org.eclipse.tracecompass.analysis.profiling.core.symbolProvider'


* In addition to the profiling plugins, you may need to add dependencies
to the following plugins if you extended the CallStackAnalysis:
org.eclipse.tracecompass.analysis.timing.core and
org.eclipse.tracecompass.segmentstore.core


Geneviève



On 2018-05-16 12:45 PM, Geneviève Bastien wrote:
> Hi all,
>
>
> We've been experimenting with the callstack analysis in the incubator
> for a while now. That feature is known as the Generic Callstack and it
> has feature parity and much more with the current CallStack analysis, so
> we'll slowly move it in the main repo. There's a lot of code there and
> API freeze is may 23rd, so here's the [very] short term plan to migrate
> the feature:
>
>
> 1- Add a new set of plugins in Trace Compass:
> org.eclipse.tracecompass.analysis.profiling.[core|ui][.tests[.swtbot]]
>
>
> 2- Move the IFlameChartProvider and IFlameGraphProvider from the
> incubator to those plugins.
>
>
> 3- Move the current CallStackAnalysis and its view to that plugin and
> have it extend the previous interfaces. The one in tmf.[core|ui] will be
> deprecated.
>
>
> 4- For implementers, all you have to do is have your CallStackAnalysis
> and view extend the new ones instead of the deprecated ones and no other
> code change should be needed for now. I'll let you know of any other
> update required, but I can think of none for now.
>
>
> As another step to productify the generic callstack, we'll be doing the
> following:
>
>
> * Move some interfaces from the incubator's analysis.core plugin to
> analysis.os.linux.core in the main repo, so that an os-aware callstack
> can eventually make use of it, and analysis in the main repo can
> implement those interfaces instead of having wrappers in the incubator.
>
>
> That's it for 4.0, then it gives us plenty of time to migrate the code
> to main repo and add the generic callstack features in the 4.0 cycle,
> without requiring major API breakages.
>
>
> Cheers,
>
> Geneviève
>
> _______________________________________________
> tracecompass-dev mailing list
> tracecompass-dev@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
> https://dev.eclipse.org/mailman/listinfo/tracecompass-dev

_______________________________________________
tracecompass-dev mailing list
tracecompass-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/tracecompass-dev


Back to the top