Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[m2e-dev] Offer to contribute advanced source lookup implementation

Over last several years I implemented what I call "advanced source
lookup", which I would like to contribute to Eclipse.

>From user perspective, the advanced source lookup provides correct
source lookup when runtime classpath is not fully known in advance
and/or contains multiple versions of the same class. It also downloads
sources archives from remote artifact repositories automatically when
they are needed. No manual source lookup path configuration is needed.
In other words, the source lookup just works (at least it fails far less
frequently).

Internally, the implementation uses javaagent to capture exact location
of the running code in a custom JSR45 stratum. When source lookup is
requested by the debugger, the captured location is matched to one of
workspace projects, their dependencies or artifacts in the remote
artifact repositories. If needed, the corresponding sources archive is
located locally or downloaded from remote repoitories. Currently
implementation supports JDT java, Maven and PDE projects, but support
for other project types can be added via an extension point. Only Maven
remote repositories are currently supported, but other repository types
can be supported via extension point too (I hope somebody will implement
P2 support, for example).

The code is currently hosted at Github [1]. I think it makes sense to
split the code among JDT/Debug, which will provide general
infrastructure and extension points, PDE, which will provide support for
Plug-In projects and P2 repositories and M2E, which will provide support
for Maven projects and repositories. 

I'd like to know if JDT and PDE developers are interested to accept this
contribution and what are the steps to make it happen. (I know M2E is
fully onboard with the idea :-) ).

Thank you in advance.

--
Regards,
Igor

[1] https://github.com/ifedorenko/com.ifedorenko.m2e.sourcelookup


Back to the top