- Fixed build failure when querying APT options for compile tasks before
project.afterEvaluate.
- Add Gradle configuration cache compatibility fixes for the Eclipse APT plugin.
- Add support for latest Eclipse versions.
- Eclipse
4.35.0aka2025-03(new and noteworthy)
- Eclipse
- Add support for latest Eclipse versions. (#216)
- Eclipse
4.34.0aka2024-12(new and noteworthy)
- Eclipse
- Add support for latest Eclipse versions. (#216)
- Eclipse
4.33.0aka2024-09(new and noteworthy)
- Eclipse
- Revert spotless dependency bump.
- Add support for latest Eclipse versions. (#215)
- Eclipse
4.31.0aka2024-03(new and noteworthy) - Eclipse
4.32.0aka2024-06(new and noteworthy) - BREAKING Updated spotless dependency to be compatible with spotless-plugin-gradle 7.x.
- Eclipse
- Eclipse
4.30.0aka2023-12(new and noteworthy) (#213)
com.diffplug.configuration-cache-for-platform-specific-buildno longer throws Gradle warnings aboutuname -aor aboutforUseAtConfigurationTimebeing deprecated. (#214)
- Eclipse
4.29.0aka2023-09(new and noteworthy)
- Attempt to fix the publish.
** Failed publish **
- Eclipse
4.27.0aka2023-03(new and noteworthy) - Eclipse
4.28.0aka2023-06(new and noteworthy)
- Fixed CI publishing and plugin migration notice.
- Eclipse
4.26.0aka2022-12(new and noteworthy) - We recommend users of the following plugins to migrate as follows:
com.diffplug.eclipse.mavencentralandcom.diffplug.p2.asmaven->dev.equo.p2depscom.diffplug.oomph.ide->dev.equo.ide- The legacy plugins will continue to be maintained, so you don't have to migrate, but the new plugins are strictly better.
- breaking Long-deprecated methods of
eclipseMavenCentralhave been removedcompile,testCompile,runtime,testRuntimeand their native versions- this was required to compile Goomph against Gradle 7.x
- breaking Removed
CmdLine.run(Throwing.Runnable)andCmdLineTask.(Throwing.Runnable)
CmdLineTaskandCmdLinenow support configuration cache.- This required replacing
run(Throwing.Runnable)withrun(SerializableAction). - Also added new method
CmdLine.cleanDir
- This required replacing
- New method
constrainTransitivesToThisReleaseExcept('icu4j', 'someotherdep')to limit which transitives get constrained.
- Eclipse
4.25.0aka2022-09(new and noteworthy)
- Fixed zip-slip vulnerability in
ZipMisc(CVE-2022-26049). This could have allowed a malicious zip file to extract itself into an arbitrary directory. The only file that Goomph extracts is the p2 bootstrapper and eclipse metadata files hosted ateclipse.org, which are not malicious, so the only way this vulnerability could have affected you is if you had set a custom bootstrap zip, and that zip was malicious. Unlikely! Defense in depth is important, so good to have this fixed, and thanks to @JLLeitschuh for reporting, and with a fix no less! (#198) - Bumped all deps to latest. (#199)
- Eclipse
4.24.0aka2022-06(new and noteworthy) (#191).
- Tweaked the
4.13.0bootstrapper to fix antrunner tasks (fixes #185).
- Handle groupId with dots in p2AsMaven (#188)
- Eclipse
4.23.0aka2022-03(new and noteworthy).
- Added new method
T output = JavaExecable.exec(WorkQueue queue, T input)(#177).- This bumps the minimum required Gradle from
5.1to5.6.
- This bumps the minimum required Gradle from
- Bumped
spotless-libfrom1.5.1to2.20.0which is used in the spotless gradle plugin v6.0.0 (#176)
- Eclipse
4.22.0aka2021-12(new and noteworthy).
- Bumped
bndlibfrom5.3.0to6.1.0which no longer includes copies of the OSGi packages (#172)
- Handle "com.ibm.icu" in eclipseMavenCentral (#170)
- Fix ecf mapping in eclipseMavenCentral (#163)
- Eclipse
4.21.0aka2021-09(new and noteworthy).
- Fix ecj mapping in eclipseMavenCentral (#158)
- Fix version parsing in eclipseMavenCentral (#156)
- New plugin
com.diffplug.configuration-cache-for-platform-specific-buildwhich makes theOS.getNative()andSwtPlatform.xxxmethods work without breaking the Gradle configuration cache. (#153)
com.diffplug.eclipse.mavencentralnow hasconstrainTransitivesToThisRelease()
- Bumped
bndlibfrom5.2.0to5.3.0which adds support forOS.MAC_silicon.
- Bumped
durian-swt.osto3.4.0which adds support forOS.MAC_silicon.
- Eclipse
4.20.0aka2021-06(new and noteworthy).
- Added support for using Goomph (pde bootstrap) with Gradle
6.7and newer (#147)
p2asmavenworks again, but requires JRE 8. (#145)
- Eclipse
4.19.0aka2021-03(new and noteworthy).
- All
idetasks now explicitly specify the-vmargument ineclipse.ini. (#141)
idetask can now correctly configure the workspace, also fixedcom.diffplug.osgi.equinoxlaunch. (#140)
Support for Java 11, ide task works again for eclipse 4.17 and 4.18 (#137).
As an unfortunate side-effect of the PR above, the following plugins don't work anymore:
com.diffplug.swt.nativedeps(fixed in 3.29.1)com.diffplug.p2.asmaven(fixed in 3.29.1)
This isn't on purpose, and it seems like it should be avoidable. If you use the plugins above, then you need to stick with 3.27.0. If you want to fix them, look at the PR above. The code is still in-tree, but their tests are @Ignored.
- the
mavencentralplugin now supports EMF artifacts (#136).
idetask now works again on macOS BigSur (#131)- Changed
p2-bootstrapURLs torepo.diffplug.combecause bintray is shutting down (#135)
- Eclipse
4.18.0aka2020-12(new and noteworthy).- the
idetask isstill broken withfixed in4.17.0and4.18.03.28.0 - the
mavencentralplugin still works great with4.17.0and4.18.0
- the
- Eclipse
4.17.0aka2020-09(new and noteworthy).- the
idetask is currentlybroken withfixed in4.17.03.28.0 - the
mavencentralplugin still works great with4.17.0
- the
- Added
CategoryPublisher(#124)
- Eclipse
4.16.0aka2020-06(new and noteworthy).
- Give a better error message when using
com.diffplug.eclipse.mavencentralwith an underspecified release. (#121) - Improve documentation for
com.diffplug.p2.asmavento better describe multiproject setups in Gradle 6+. (#119)
- Eclipse
4.15.0aka2020-03(new and noteworthy).
- Fix markdown formatting for the
AsMavenPluginjavadocs (#118). - Fix
java.lang.NoSuchMethodError: org.gradle.util.SingleMessageLogger.nagUserOfReplacedPluginerror in gradle 6.2 (details).
- New plugin
com.diffplug.eclipse.apt, which modifies eclipse project files to support gradle's annotation processing.- It is a near-exact copy of Thomas Broyer's excellent
net.ltgt.apt-eclipseplugin. The only change is that Gradle 6+ warnings have been fixed. We will maintain it to address any future deprecations as well.
- It is a near-exact copy of Thomas Broyer's excellent
- All plugin ids (not classes) have moved, from
plugins { id 'com.diffplug.gradle.blah' }tocom.diffplug.blah) (#115)- The old ids will keep working, but they'll print a warning advising a switch to the new id.
- One exception:
com.diffplug.gradle.equinoxlaunch->com.diffplug.osgi.equinoxlaunch(it should have been in OSGi category all along) - This is annoying, but the deprecation warnings include an easy regex fix, and it's better to fix this now than later.
- More detail on the reasoning if you're curious.
- Bump
bndlibfrom4.2.0to5.0.0. - Deprecate the
com.diffplug.swt.nativedepsplugin, becausecom.diffplug.eclipse.mavencentralis now a better option.
- Added eclipse
4.14.0aka2019-12(new and noteworthy). EquinoxLaunchTasknow has up-to-date support if you manually specify output files, as well as any program-specific input files- Added
MavenCentralExtesion.testImplementationand deprecatedtestCompile(fixes #109).
- Simplified build with blowdryer.
- Updated gradle and all plugins.
p2asmavennow works with Gradle 6+ (fixes #106)- broken javadoc links (fixes #105)
- missing annotation warnings on
PdeBuildTask(still no up-to-date support though) oomphIdeworkspaceXmlwould wipe out the existing XML (fixes issue found in #85).- if the p2 bootstrap download fails, it will now complain loudly rather than write the text
404to a file (fixes #101).
This was published accidentally. Nothing bad in it, it's just a halfway-done version of 3.20.0 above.
- Added eclipse
4.13.0aka2019-09(new and noteworthy). - Removed the
com.diffplug.gradle.eclipse.classicplugin, because it does not work well with newer versions of gradle or eclipse.
- Minimum gradle version is now
5.1 - Migrated off of all deprecated APIs as of Gradle
5.5.1. - Fix URL for the
minimalistGradleEditor()update site. - Fix bug in
com.diffplug.gradle.eclipse.projectdepswhere libraries which were a prefix of another library could screw up replacement, e.g.durian-swtanddurian-swt.os.
- Added eclipse
4.12.0aka2019-06.
- Adopted
okhttpso that we respect redirects when downloading. Fixes bugs introduced whendownload.eclipse.orgbegan using redirects.
- Added eclipse
4.11.0aka2019-03.
- Replace
http://withhttps://throughout the project, now that eclipse supports https for download.eclipse.org (#94).
- Fixed up-to-date checking for the
BndManifestPlugin(6480298).
- Fix the
equinoxLaunchplugin, and added a test to prevent future breakage. (#93)
- Added eclipse
4.10.0.
- Generated manifest is now put into the output resources directory, to make sure that it's available at runtime for development.
- Fixed a bug in ProjectDepsPlugin where similarly-named jars might not replace all of the desired projects.
- e.g. if you want to replace
durian-swt,durian-swt.os, anddurian-swt.cocoa.macosx.x86_64, in the old versiondurian-swtwould not get replaced. Now fixed. (#80)
- e.g. if you want to replace
- Add BndManifest support for every Jar task. (#79)
- Added eclipse
4.9.0. (#83)
- Added ability to set vmArgs for EquinoxLaunchTask.
- Add
4.7.3.aas an EclipseRelease. - Update minimum gradle version to
4.0:eclipseMavenCentralnow supports the new configurations:api,implementation,runtimeOnly,testRuntimeOnly.osgiBndManifestno longer uses deprecated methods.
- Updated
bndlibto4.0. - Replaced dependency on
com.diffplug.durian:durian-swtwithdurian-swt.os. This removes the dependency onorg.eclipse.swt. - Set the
oomphIdesplash location with an absolute path to fix warnings on mac. (#74)
- Added support for eclipse 4.8.0.
- EquinoxLaunch handles applications with async exist code (EXIT_ASYNC_RESULT) (#66)
- Added
useNativesForRunningPlatform()toeclipseMavenCentral.
- Added support for translating eclipse releases to maven central coordinates. (#61)
- Added support for eclipse 4.7.3. (#62)
- Added support for
includeLaunchersproperty from product files (#58)
- Bump OSGi version to fix
NoClassDefFoundError: org/eclipse/osgi/framework/util/CaseInsensitiveDictionaryMap(#57)
- Bump pde-bootstrap from
4.5.2to4.7.2. - Allow fine grained configuration of EclipseApp in PdeBuildTask (#55)
- Added nosplash argument to EclipseApp in order to prevent splash screens during gradle tasks. (#53)
- Added a feature to provide a custom goomph-pde-bootstrap installation. (#52)
- Fix typo in
GOOMPH_PDE_UPDATE_SITEproperty (was accidentally UDPATE). (#48) ] - Old spelling (UDPATE) is still supported for backward-compatibility.
- Added
--launcher.suppressErrorsto allEclipseAppinvocations so that build errors won't open a blocking dialog on build servers. (#49) - Fixed a bug where a console app's execution might block because of an overfilled stderr. (#50)
- Added
addBuildSrc()method to Oomph configuration. - Upgrade bndlib from
3.4.0to3.5.0. p2asmavennow supports slicing options. (#41)p2asmavennow supports appending] - a huge performance improvement for incrementally adding p2 deps. (#44)- Updated
EclipseReleaseto4.7.2.
- Updated
EclipseReleaseto4.7.1a, and also added4.7.1. - Updated default buildship release from
e46/releases/1.0toe47/releases/2.x.
- Added the
com.diffplug.gradle.equinoxlaunchcan configure and run equinox applications as part of the build, such as a code generator. - CopyJarsUsingProductFile now gives better error messages when a plugin is missing.
- Bump bndlib from
3.2.0to3.4.0.
- Updated
EclipseRelease.latestOfficial()toOxygen.
- Updated
EclipseRelease.latestOfficial()toNeon.3. - Fixed a confusing error message (#30).
com.diffplug.gradle.eclipse.buildpropertiesnow includes all non-java files in thesrcfolder as resources, instead of only*.propertiesfiles.
- Updated
EclipseResult.latestOfficial()toNeon.2. - It is now possible to set the description in the startup dialog and about dialog. commit
- Fixed JDK detection on mac. commit
- Goomph constants (such as p2 bootstrap url) can now be overridden using Gradle extension properties:
- e.g.
ext.goomph_override_p2bootstrapUrl='https://intranet/goomph-p2-boostrap' - Required when splitting buildscripts across files, because of Gradle classpath separation.
- See issue #25 for more details.
- e.g.
- Fixed bug which prevented buildship import. issue
- Added a mechanism for integrating third-party plugins into Goomph, e.g.
oomphIde {
thirdParty {
tmTerminal {}
minimalistGradleEditor {}
buildship {}
}
}- Added
workspaceFile('pathInWorkspace', 'srcFile')for copying files into the workspace directly. - Improved
workspaceProp('pathInWorkspace', { map -> map.put('key', 'value')}so it can now be called multiple times to modify earlier results, including modifying a file set byworkspaceFile. It can still create a file from scratch, as before. - Added
workspaceXml('pathInWorkspace', { xmlProvider -> xmlProvider.asNode() ...})which can modify an XML file which was initially created byworkpaceFile. It cannot create an xml file from scratch, however. style { niceText() }now sets line numbers, and there are methods which give more fine-grained control (#20).- Added the ability to change how the oomphIde p2 action is carried out, using
runUsingPDE()(#19). - Improvements to the JDT config and the ability to link resources (#23).
- The p2bootstrap url can now be overridden (#25).
- Added the ability to set the installed JRE (#16).
- See javadoc for details.
- Added
FileMisc.deleteEmptyFolders(). - Fixed
com.diffplug.gradle.eclipse.bndmanifestso that it doesn't createExport-Packageentries for empty packages.- If bnd sees an empty folder in the classes directory, it will put that directory into the manifest.
- To fix this, we now clean empty folders out of the classes directory before we run bndmanifest.
- Added javadoc to
AsMavenPluginandOomphIdePluginwhich describes proxy support. - Added
OomphIdeExtension::p2director, to allow the proxy support described above.
- IDE setup tasks could not upgrade or downgrade the IDE version, because of a p2 director limitation. Fixed.
p2asmavennow respects the buildDir variable (#9).EclipseReleasenow knows about Neon.1, and uses Neon.1 as the latest available eclipse release.- Improved
FeaturesAndBundlesPublisherjavadoc. - P2BootstrapInstallation could fail intermittently due to filesystem flushing issues. Fixed now.
- Second attempt at fixing a bug where trailing whitespaces in bundle symbolic names would break
p2asmaven.
- Fixed a bug where trailing whitespaces in bundle symbolic names would break
p2asmaven.
- Added
OomphIdeExtension.addProjectFolder(). You can now add projects to the eclipse IDE without having an eclipse project in the build.
- More fixes to behavior around creating the goomph bundle pool.
- Old behavior sometimes created a bundle pool which worked, but sometimes didn't.
- New behavior is more reliable.
- We were creating
file://URLs on Windows, which should have beenfile:///. This fix may cause some p2 repositories to become marked as dirty and redownload, even though they are really clean. One-time fix.
- Fixed behavior around creating the goomph bundle pool.
- Old behavior was: if pool is listed as dependency but doesn't exist, just remove the dependency.
- New behavior is: if pool is listed as dependency but doesn't exist, create the pool.
- Fixed a mac-specific bug which made it impossible to use any PDE tasks.
- Fixed unnecessary errors for users who don't specify
org.gradle.java.homemanually. - Fixed NPE when using
p2asmavenon jars with no manifest.- Failures on a single jar will no longer bring down the whole build.
- Jars with no manifest have their name and version parsed from their filename.
- Fixed
com.diffplug.gradle.eclipse.excludebuildfolder.
- Fixed plugin metadata so that all our plugins make it to the plugin portal. The following were missing:
com.diffplug.gradle.eclipse.resourcefilterscom.diffplug.gradle.oomph.ide
We added a ton of stuff in 3.0.0. Everything in the p2 and pde packages has been revamped, but the eclipse
and osgi packages are unchanged.
- BREAKING CHANGE: Everything in the
pdepackage has been revamped.- Wuff/Unpuzzle are no longer required.
- BREAKING CHANGE: Renamed ZipUtil to ZipMisc.
- BREAKING CHANGE: Renamed P2DirectorModel to P2Model.
- Added the ability to download a small (~10MB) archive with everything required to run p2 director and the p2 ant tasks.
ProjectDepsPlugincan now replace binary dependencies with an eclipse project.- Added
NativeFileManagerfor opening the native file manager to look at a file (for debugging). - Added
OomphIdePlugin.
com.diffplug.gradle.osgi.bndmanifestnow always writes out the calculated manifest to the output resources directory. This way, if a task such astestrelies on having a valid manifest, it will be there.- Note that if your tests rely on having an accurate META-INF/MANIFEST.MF, you should add
test.dependsOn(jar)to your buildscript.
com.diffplug.gradle.osgi.bndmanifestnow has the ability to specify whether or not to merge the calculated manifest with the existing manifest. Default behavior is don't merge.
- BREAKING CHANGE: Moved former contents of
com.diffplug.gradle.eclipseintocom.diffplug.gradle.pde. - BREAKING CHANGE: Renamed plugin
com.diffplug.gradle.swttocom.diffplug.gradle.swt.nativedeps. - Added plugin
com.diffplug.gradle.osgi.bndmanifestwhich uses bnd to generateMANIFEST.MFand the entire jar, while respecting the result of gradle's resources directory. - Added plugin
com.diffplug.gradle.eclipse.buildpropertieswhich uses the Eclipse PDE build.properties file as the single source of truth for controlling binary assets. - Added plugin
com.diffplug.gradle.eclipse.projectdepswhich fixes some bugs with interproject dependencies. - Added plugin
com.diffplug.gradle.eclipse.excludebuildfolderwhich excludes the build folder from the eclipse project resources. - All plugins are now tested by Gradle's testkit. Some of the custom tasks in the
pdepackage still need better coverage.
- Fixed EclipseWuff on OS X for the rest (not just binaries).
- Fixed location of OS X eclipse binaries for Eclipse Mars and later.
- Required adding a
getVersionOsgi()method to EclipseWuff.
- Required adding a
- Fixed a DiffPlug-specific constant in PdeProductBuildTask
- Added support for Mars SR2
- Added the 'com.diffplug.gradle.swt' plugin, which applies all Eclipse dependencies needed to use SWT and JFace.
- Added EnvMisc for getting environment variables with nice error messages for missing variables.
- Fixed a hardcoded version. Yikes.
- Throw it over the wall!
- We use it in production at DiffPlug, for whatever that's worth.