Home » Eclipse Projects » Eclipse Platform » Need help building org.eclipse.ua without having to build every other eclipse project(For one file changed, fixed-version dependencies have me building virtually all eclipse projects my target depends on)
|Need help building org.eclipse.ua without having to build every other eclipse project [message #1816294]
||Fri, 25 October 2019 13:18
| Simon L.
Registered: July 2009
Hi, I am a newcomer to building eclipse platform components. My original thread asking for help on how to do so was at https://www.eclipse.org/forums/index.php/m/1811194/ . I need a tycho-built bundle or p2 repository which I want to integrate into my target platform to hot-fix an error in the e4 compatibility layer (for which I plan to follow up in the bugtracker and eventually, a PR upstream if that works out).|
I have succeeded in fixing the issue I had with (eclipse.platform.ua/.../ReusableHelpPart.java). PDE-building the project it belongs to -- org.eclipse.help.ui -- in a PDE build. That means, exporting the project via PDE as a JAR and putting it into the run configuration of my product works. Great! Now I am sure to have the problem almost fixed.
However, the RCP is built at the end with Tycho. And this is giving me problems. My target platform  seems to depend on a fixed version of the project I fixed, and Tycho seems to force me to build all of the platform, equinox etc. projects!!
Therefore, 2 parts and the following inquiries:
- I) is the stuff as I see it that is forcing me to build so much extra dependencies with tycho
- II) is where I am stuck at the moment and where I think I can be helped quickly, but where I don't have domain knowledge to get further.
- please enlighten me :) the more the better, because I want to do a sleek version of this adventure in the future when similar issues arise
- but for the sake of getting things done, please also take a look directly at II) because I think I have gotten quite far and maya just need a pointer to where to get a dependency to get forward with work right now. Thanks :)
Ok, here is the matter:
The circumstances where OSGi and Tycho seem to force me to build everything are:
- My product seems to have a non-explicit dependency on org.eclipse.help.feature.group with a fixed version number. As I nowhere specify this dependency myself (I thoroughly searched and grepped for it), it must be referenced by some of my target platform's constituents 
- org.eclipse.help.feature.group in turn depends on a FIXED version of org.eclipse.help.ui. This is part of eclipse.platform.ua, and indeed where I made changed to one file.
- Building and installing org.eclipse.help.ui with that same version number (to hotfix-replace it in my product) fails; tycho tells me, file contents differ from the SDK baseline or something, and it just plainly disregards the changes. It won't let me install the changed code with that same version number in my local repository. If there is a workaround for this, it would solve my problem, I think.
- I am a therefore forced to mvn install my changes (locally) under a new version number
Therefore I have to also build org.eclipse.help.feature.group (where the fixed version dependency came from), and following that, I have to pull into my build e.g. rt.equinox.bundles for a jetty component etc etc.
There must be a way around all that hassle for a single class to be changed, right? Help is much appreciated!
II) Where I am right now
Right now, I have installed locally the locally-built version org.eclipse.help.feature.group 2.3.0.v20191024-1814 which requires my changed code and I hoped everything would go fine now. However, this seems to force me to build other stuff. My hope now is, to get this "other stuff" via some public repositories. But I have no idea of how to get e.g. org.eclipse.equinox.http.jetty of that specific version without building it myself. After all, it is depended upon from the Oomph-cloned master branch of an eclipse platform project and tycho can't seem to find that version itself. Help!! :)
Tycho says right now:
[ERROR] Software being installed: jcryptool 1.0.0
[ERROR] Missing requirement: org.eclipse.help.feature.group 2.3.0.v20191024-1814 requires 'org.eclipse.equinox.p2.iu; org.eclipse.equinox.http.jetty [3.7.300.v20191015-2006,3.7.300.v20191015-2006]' but it could not be found
[ERROR] Only one of the following can be installed at once: [org.eclipse.help.ui 4.1.700.v20190917-1614, org.eclipse.help.ui 4.1.701.v20190917-1614]
[ERROR] Cannot satisfy dependency: jcryptool 1.0.0 depends on: org.eclipse.equinox.p2.iu; org.jcryptool.core.dependencies.feature.feature.group [1.0.0,2.0.0)
[ERROR] Cannot satisfy dependency: jcryptool 1.0.0 depends on: org.eclipse.equinox.p2.iu; org.jcryptool.core.feature.feature.group [1.0.0,2.0.0)
[ERROR] Cannot satisfy dependency: org.eclipse.help.feature.group 2.3.0.v20191009-1800 depends on: org.eclipse.equinox.p2.iu; org.eclipse.help.ui [4.1.700.v20190917-1614,4.1.700.v20190917-1614]
[ERROR] Cannot satisfy dependency: org.jcryptool.core.dependencies.feature.feature.group 1.0.0 depends on: org.eclipse.equinox.p2.iu; org.eclipse.help.feature.group [2.3.0,2.3.1)
[ERROR] Cannot satisfy dependency: org.jcryptool.core.feature.feature.group 1.0.0 depends on: org.eclipse.equinox.p2.iu; org.eclipse.help.ui [4.1.701.v20190917-1614,4.1.701.v20190917-1614]
- org.eclipse.help.feature.group 2.3.0.v20191024-1814 I have built and installed locally myself after its predecessor (transitively required somewhere in my project) depended on the org.eclipse.help.ui with a fixed version
- org.eclipse.help.ui 4.1.701.v20190917-1614 is the version of org.eclipse.help.ui I built myself and which I want in my product. 4.1.700 I don't need, it is just the Oomph-cloned "current" version of that project. My product depended previously upon org.eclipse.help.ui 4.1.600.<something>
Thank you for your help! :)
------ Appendix / github code pointers:
(I had fixed versions first for the units. To make things easier for tycho, I changed from 2019/09 to /12 and allowed with 0.0.0 to choose the most fitting ones; but maybe that is the wrong way. Yes, I read about that platform DSL but have not come around to use it.)
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit">
<unit id="org.eclipse.equinox.core.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.equinox.executable.feature.group" version="0.0.0"/>
<unit id="org.eclipse.equinox.p2.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.gef.feature.group" version="0.0.0"/>
<unit id="org.eclipse.platform.feature.group" version="0.0.0"/>
<unit id="org.eclipse.rcp.feature.group" version="0.0.0"/>
<unit id="org.eclipse.rcp.sdk.id" version="0.0.0"/>
<unit id="org.eclipse.zest.sdk.feature.group" version="0.0.0"/>
This is an excerpt of: https://github.com/simlei/core/blob/contextHelpHotfix--tychoConfigWIP/org.jcryptool.target/org.jcryptool.target.target
The project has a .releng, .target and .product subproject structure that follows more or less the tutorials of vogella. This is the branch at the time of my posting.
points of interest would be e.g.:
xxx:~/git/jct-simlei-core$ grep -R --include='feature.xml' help . | grep -v '/target/'
./org.jcryptool.core.dependencies.nl_de.feature/feature.xml: <import feature="org.eclipse.help" version="2.3.0"/>
[Updated on: Fri, 25 October 2019 13:34]
Report message to a moderator
Current Time: Wed Aug 12 07:36:11 GMT 2020
Powered by FUDForum
. Page generated in 0.02025 seconds