Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 539655

Summary: Where has org.eclipse.equinox.ds gone?
Product: [Eclipse Project] Platform Reporter: Ed Willink <ed>
Component: RelengAssignee: Platform-Releng-Inbox <platform-releng-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: christian.dietrich.opensource, ken, loskutov, mistria, tjwatson, velo.br
Version: 4.9   
Target Milestone: 4.10 M3   
Hardware: All   
OS: All   
Whiteboard:
Bug Depends on: 538737    
Bug Blocks: 539657    

Description Ed Willink CLA 2018-09-30 04:16:32 EDT
Eclipse 4.9 had an org.eclipse.equinox.ds bundle.

Eclipse 4.10 I-builds does not.

This appears to be an unannounced API breakage.

Strictly speaking this requires a major version change, but more pragmatically surely it requires an announcement and a two year delay before removal?
Comment 1 Thomas Watson CLA 2018-10-01 09:37:13 EDT
I think you are referring to the removal of it from the RCP feature.  Moving to releng.
Comment 2 Ed Willink CLA 2018-10-01 11:53:18 EDT
No. I'm referring to the removal of the plugin from the platform distro allowing Tycho to barf on dependency not found.
Comment 3 Thomas Watson CLA 2018-10-01 14:42:51 EDT
(In reply to Ed Willink from comment #2)
> No. I'm referring to the removal of the plugin from the platform distro
> allowing Tycho to barf on dependency not found.

Pretty sure we are talking about the same thing.  You should voice your concern in bug 538737.

*** This bug has been marked as a duplicate of bug 538737 ***
Comment 4 Thomas Watson CLA 2018-10-01 16:47:03 EDT
Re-opening issue as requested by bug 538737 comment 17
Comment 5 Mickael Istria CLA 2018-10-01 16:56:19 EDT
> Eclipse 4.10 I-builds does not.

The org.eclipse.equinox.ds bundle is still (or at least should still be) in the p2 repository so people can use it in their target-platforms.

> This appears to be an unannounced API breakage.

Not really, An API is an API, a removed bundle from a feature/product but with the bundle still available to dependency resolution by using the project site is not really an API breakage as it doesn't prevent working code from working at runtime (worst case is it cause build or install issues).

> No. I'm referring to the removal of the plugin from the platform distro
> allowing Tycho to barf on dependency not found.

Tycho 1.3.0-SNAPSHOT already has it fixed.
For Tycho 1.2.0 and earlier with Eclipse 4.10 as TP, some adjustments may be necessary; like explicitly including org.eclipse.equinox.ds in TP.


All that said, I agree this should be announced to wider audience with some FAQ and troubleshooting hints.
What would be great would be that you help in producing such a guide by sharing the actual error message you got and the pom that led to it to initiate the catalog of typical issues and remediations.
Comment 6 Ed Willink CLA 2018-10-02 01:59:43 EDT
(In reply to Mickael Istria from comment #5)
> Tycho 1.3.0-SNAPSHOT already has it fixed.
> For Tycho 1.2.0 and earlier with Eclipse 4.10 as TP, some adjustments may be
> necessary; like explicitly including org.eclipse.equinox.ds in TP.

Tycho 1.3.0 is not available. 1.3.0-SNAHOT is not resolved by Tycho.

It is my explicit require bundle for org.eclipse.equinox.ds that is barfing on 4.10 but not 4.9..
Comment 7 Mickael Istria CLA 2018-10-02 02:22:18 EDT
(In reply to Ed Willink from comment #6)
> It is my explicit require bundle for org.eclipse.equinox.ds that is barfing
> on 4.10 but not 4.9..

When is it failing? At build-time?
If so, please adjust your build target platform so it can reference the org.eclipse.equinox.ds bundle, that is still present in http://download.eclipse.org/eclipse/updates/4.10-I-builds .
Also, you should audit why your bundle require org.eclipse.equinox.ds and whether the requirement could be replaced by a capability-requirement, that org.apache.felix.scr could resolve as well.
Comment 8 Christian Dietrich CLA 2018-10-03 11:01:43 EDT
Xtext is affected as well
Comment 9 Andrey Loskutov CLA 2018-10-03 11:12:25 EDT
(In reply to Christian Dietrich from comment #8)
> Xtext is affected as well

How?
Comment 10 Christian Dietrich CLA 2018-10-03 11:17:09 EDT
We have the following in our tp

	<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit">
		<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
		<unit id="org.eclipse.platform.feature.group" version="0.0.0"/>
		<unit id="org.eclipse.pde.feature.group" version="0.0.0"/>
		<unit id="org.eclipse.pde.api.tools.ee.feature.feature.group" version="0.0.0"/>
		<repository location="http://download.eclipse.org/eclipse/updates/4.10-I-builds"/>
	</location>


And this in the Pom of a test bundle

<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<configuration>
					<dependency-resolution>
						<extraRequirements>
							<requirement>
								<type>eclipse-plugin</type>
								<id>org.eclipse.equinox.ds</id>
								<versionRange>1.0.0</versionRange>
							</requirement>
							<requirement>
								<type>eclipse-plugin</type>
								<id>org.eclipse.equinox.event</id>
								<versionRange>1.0.0</versionRange>
							</requirement>
							<requirement>
								<type>eclipse-plugin</type>
								<id>org.eclipse.pde.ui</id>
								<versionRange>1.0.0</versionRange>
							</requirement>
							<requirement>
								<type>eclipse-plugin</type>
								<id>org.eclipse.equinox.event</id>
								<versionRange>1.0.0</versionRange>
							</requirement>
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.platform</id>
								<versionRange>3.6</versionRange>
							</requirement>
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.pde.api.tools.ee.feature</id>
								<versionRange>1.0.0</versionRange>
							</requirement>
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.jdt</id>
								<versionRange>0.0.0</versionRange>
							</requirement>
						</extraRequirements>
					</dependency-resolution>
				</configuration>
			</plugin>
		</plugins>

This fails cause equinox.ds is not found
Comment 11 Mickael Istria CLA 2018-10-03 11:33:11 EDT
(In reply to Christian Dietrich from comment #10)
> 						<extraRequirements>

The best solution (which is backward compatible) seems to remove several features and bundles from this list to replace them by a requirement on the org.eclipse.rcp feature.
Comment 12 Ed Willink CLA 2018-10-03 11:57:13 EDT
There are certainly workarounds, but the need for them demonstrates that there is a packaging (API) breakage.

Because of the previous felix.scr problems OCL and friends (and presumably Xtext and friends) had to add dependencies on org.eclipse.equinox.ds that were satisfied by a major feature such as org.eclipse.sdk.feature.group. This enabled 4.9 and Tycho 1.2.0 to work. Now this is broken by retractions that are surely not permitted without multi-year delay?
Comment 13 Ed Willink CLA 2018-10-06 06:46:26 EDT
(In reply to Ed Willink from comment #12)
> There are certainly workarounds, but the need for them demonstrates that
> there is a packaging (API) breakage.

The breakage is a bit magic.

Before 4.9, probably most users/developers were totally unaware that org.eclipse.equinox.ds existed. It appeared in no feature and was just magically activated by the platform. Removal in 4.10 would not have been a problem APR/feature-wise. However TYcho is very aware of org.eclipse.equinox.ds so changing the behavior of org.eclipse.equinox.ds is a breakage that affects Tycho users.

The change in 4.9 meant that users/developers had to learn about org.eclipse.equinox.ds and put a require-bundle in their test plugins (pending the availability of Tycho 1.3.0).

Now the removal of the magic provision of org.eclipse.equinox.ds means that users/developers must explicitly provision org.eclipse.equinox.ds by adding it to the target platform definition.

Since Tycho is not part and not even synchronized with the platform, it would seem that the platform should remain compatible with Tycho versions of reasonable vintage, i.e. 1.1.0 and 1.2.0 and retain the ability for org.eclipse.equinox.ds to be started for at least a couple of years after announcement of its deprecation.
Comment 14 Mickael Istria CLA 2018-11-20 02:26:39 EST
Comment #5 answers the question. Marking as resolved.
Further concerns seem more relevant to.bring to Tycho.
Comment 15 Christian Dietrich CLA 2018-11-20 02:28:58 EST
well isnt the problem that we all have to wait 3 or more more weeks for tycho 1.3 which is quite late in the 2018-12 game?
Comment 16 Mickael Istria CLA 2018-11-20 02:32:31 EST
(In reply to Christian Dietrich from comment #15)
> well isnt the problem that we all have to wait 3 or more more weeks for
> tycho 1.3 which is quite late in the 2018-12 game?

Maybe. But it's an issue in Tycho,not in Platform.
Comment 17 Christian Dietrich CLA 2018-11-20 02:33:23 EST
well i wonder what we can learn from this to get such problems resolve in a smoother way in the future
Comment 18 Mickael Istria CLA 2018-11-20 02:48:54 EST
(In reply to Christian Dietrich from comment #17)
> well i wonder what we can learn from this to get such problems resolve in a
> smoother way in the future

Tycho 1.3.0-SNAPSHOT has been able to deal with it for more 2.5 months now, almost immediately after Platform made the change. Many projects have been using Tycho 1.3.0-SNAPSHOT and 4.10 TP successfully. This was discussed and documented on many channels. So it's not really something we can blame Platform for: communication from Platform to Tycho and to community and reactivity in term of development in Tycho was good. There was actually no problem on that part.
This is not really in the control of Platform if Tycho community didn't produce a release for this case yet. I think it's more up to the community of users and developers of Tycho to learn something, and that the following of the discussion would better happen on Tycho mailing-list or tickets.
Comment 19 Christian Dietrich CLA 2018-11-20 02:57:10 EST
well i am not talking about the last 6 weeks or so.
obviously the plans of removal where there for longer
so i wonder why this was not recognized to be an issue and resolved before e.g. in tycho 1.2
Comment 20 Mickael Istria CLA 2018-11-20 03:02:16 EST
(In reply to Christian Dietrich from comment #19)
> obviously the plans of removal where there for longer

What makes you say so? 
Bug 538737 - Remove org.eclipse.equinox.ds from products Reported 2018-09-06 10:15 EDT


(In reply to Christian Dietrich from comment #19)
> wonder why this was not recognized to be an issue and resolved before
> e.g. in tycho 1.2

You mean 6 months ago?

So your comment can be rephrased to "I wonder why a change that was suggested 2.5 months ago wasn't anticipated downstream 6 month ago?". I let you think about it ;)
Comment 21 Christian Dietrich CLA 2018-11-20 03:09:15 EST
well the problem is that i always see the events at the other end of the food chain (platform) and see that i don't have a new released tycho version to eat when i want to use the new platform. afaik tycho is not part of the simultaneos releases which then forces us (or even projects out in the wild) to use snapshots
Comment 22 Mickael Istria CLA 2018-11-20 03:12:13 EST
(In reply to Christian Dietrich from comment #21)
> afaik tycho is not part of the
> simultaneos releases which then forces us (or even projects out in the wild)
> to use snapshots

Again, a Platform ticket isn't the right place to discuss that.
If you want, PDE and the headless workspace build are still part of SimRel ;)
Comment 23 Kenneth Evans CLA 2019-01-22 21:04:41 EST
I am having this same problem.  Every time the Eclipse version changes I have to change my configuration on long-standing RCP applications, often a frustrating task.  (See https://bugs.eclipse.org/bugs/show_bug.cgi?id=494913#c12 for details).  This magic involves declaring org.eclipse.equinox.ds, even though it says it is unused.

For 4.10 I cannot fix it because org.eclipse.equinox.ds isn't there.

If I just delete org.eclipse.equinox.ds as a dependency, it runs in the Workspace but not when deployed.  The validity check on the plugins succeeds.

The update site in Comment #7 does not exist.  I don't know where to find org.eclipse.equinox.ds.

I am not using Tycho nor Maven.  These are just Eclipse RCP applications that were written a long time ago.
Comment 24 Kenneth Evans CLA 2019-01-22 21:21:09 EST
Ok, I found it in the 4.10 update site under Equinox Target Components.

If someone would explain why I need this plug-in (which it says is unused on top of that) to deploy but not run in the Workspace, that would be appreciated.  And perhaps a way to get around it?

Thanks.
Comment 25 Kenneth Evans CLA 2019-01-22 21:21:47 EST
Ok, I found it in the 4.10 update site under Equinox Target Components.

If someone would explain why I need this plug-in (which it says is unused on top of that) to deploy but not run in the Workspace, that would be appreciated.  And perhaps a way to get around it?

Thanks.
Comment 26 Ed Willink CLA 2019-01-23 00:57:01 EST
You don't need it any more, but workarounds for its initial demise may need it. For OCL, I have my own dummy version of it just to satisfy residual dependencies.
Comment 27 Kenneth Evans CLA 2019-01-23 01:28:07 EST
I do need it.  Without it what I deploy doesn't run, even though it runs in the Workspace. I don't see where it is coming in.  It isn't a required plug-in.  It, in fact, says it is unused.  It has to be added manually.

But, again, without it what I deploy doesn't run.
Comment 29 Kenneth Evans CLA 2019-01-23 15:30:22 EST
Thanks for the link.  It looks like org.apache.felix.scr would replace using org.eclipse.equinox.ds.  I would have to do trial-and-error on it to be sure.  I am building with J2SE-1.8 (in a Java 10 Workbench) at least until I resolve some Java 9+ issues and maybe longer, so I don't know if doing that is appropriate or not.  For the moment, now that I found org.eclipse.equinox.ds, my problem is fixed.

What either of these does is unknown to me.  The "add-required-plugins" capability should find what I need.  It doesn't, and that is probably a bug.  I shouldn't have to know the details of every last detail in the platform.

The "add-required-plugins" capability has been broken for a long time.  
Bug #494913 addresses the "add-required-plugins" capability issue, but has not been resolved since 2016.
Comment 30 Ed Willink CLA 2019-01-24 09:39:40 EST
(In reply to Ed Willink from comment #6)
> Tycho 1.3.0 is not available. 1.3.0-SNAHOT is not resolved by Tycho.

Now that Tycho 1.3.0 is available, my need for a hard requirement of equinox.ds in the platform definition in order to satisfy the optional requirement by test plugins vanishes. Bye bye psudo-org.eclipse.equinox.dos.

We really should have a mechanism to get a fixed Tycho released before the platform release that necessitates a fixed Tycho.