Community
Participate
Working Groups
If you try to install an IU that includes a feature patch, and you don't have the feature patch installed, the installation fails. For example 1. Install the Eclipse-Platform (not the SDK) 2. Add: http://dist.springsource.org/release/GRECLIPSE/e3.6/ 3. Select "Contact all update sites" (and make sure helios is listed) 4. Install Groovy-Eclipse Feature This will fail, even though the feature we want to patch exists in helios. Cannot complete the install because one or more required items could not be found. Software being installed: Groovy-Eclipse Feature 2.1.0.xx-20101020-1000-e36-release (org.codehaus.groovy.eclipse.feature.feature.group 2.1.0.xx-20101020-1000-e36-release) Missing requirement: JDT Core patch for Groovy-Eclipse plugin 2.1.0.xx-20101020-1000-e36-release (org.codehaus.groovy.jdt.patch.feature.group 2.1.0.xx-20101020-1000-e36-release) requires 'org.eclipse.jdt.feature.group [3.6.0,3.6.2)' but it could not be found Cannot satisfy dependency: From: Groovy-Eclipse Feature 2.1.0.xx-20101020-1000-e36-release (org.codehaus.groovy.eclipse.feature.feature.group 2.1.0.xx-20101020-1000-e36-release) To: org.codehaus.groovy.jdt.patch.feature.group [2.1.0.xx-20101020-1000-e36-release]
If you install the JDT (or include it in your plan) then things install fine. Without any digging (just speculation), I wonder if p2 is marking the 'patched feature' (the feature being patched by the feature patch) as 'non-greedy' and 'required'. This would explain why p2 won't fetch the JDT for you, but happily complain when it's not there. Does anybody know if this is the case? Is this by design?
This is the desired behaviour. Patches are a mechanism to fix pre-installed things, consequently it should not try to install the things being patched.
Thanks Pascal. After the discussion a few weeks ago, I meant to come back and close this. In the case of groovy, if this is a problem, the groovy core can put a dependency on the JDT itself, this will pull in the JDT and Patch it. I've tested this and it appears to work.
(In reply to comment #3) > In the case of groovy, if this is a problem, the groovy core can put a > dependency on the JDT itself, this will pull in the JDT and Patch it. I've > tested this and it appears to work. That's the solution that we have. The core patch feature patches jdt.core and the groovy.core feature references jdt.core. This particular set-up has been working for us so far. There is particular reason to install the core patch without installing the rest of groovy. However, I could imagine situations where this might be necessary for patches of other features.