- Add support for latest Eclipse versions. (#216)
- Eclipse
4.33.0
aka2024-09
(new and noteworthy)
- Eclipse
- Revert spotless dependency bump.
- Add support for latest Eclipse versions. (#215)
- Eclipse
4.31.0
aka2024-03
(new and noteworthy) - Eclipse
4.32.0
aka2024-06
(new and noteworthy) - BREAKING Updated spotless dependency to be compatible with spotless-plugin-gradle 7.x.
- Eclipse
- Eclipse
4.30.0
aka2023-12
(new and noteworthy) (#213)
com.diffplug.configuration-cache-for-platform-specific-build
no longer throws Gradle warnings aboutuname -a
or aboutforUseAtConfigurationTime
being deprecated. (#214)
- Eclipse
4.29.0
aka2023-09
(new and noteworthy)
- Attempt to fix the publish.
** Failed publish **
- Eclipse
4.27.0
aka2023-03
(new and noteworthy) - Eclipse
4.28.0
aka2023-06
(new and noteworthy)
- Fixed CI publishing and plugin migration notice.
- Eclipse
4.26.0
aka2022-12
(new and noteworthy) - We recommend users of the following plugins to migrate as follows:
com.diffplug.eclipse.mavencentral
andcom.diffplug.p2.asmaven
->dev.equo.p2deps
com.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
eclipseMavenCentral
have been removedcompile
,testCompile
,runtime
,testRuntime
and their native versions- this was required to compile Goomph against Gradle 7.x
- breaking Removed
CmdLine.run(Throwing.Runnable)
andCmdLineTask.(Throwing.Runnable)
CmdLineTask
andCmdLine
now 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.0
aka2022-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.0
aka2022-06
(new and noteworthy) (#191).
- Tweaked the
4.13.0
bootstrapper to fix antrunner tasks (fixes #185).
- Handle groupId with dots in p2AsMaven (#188)
- Eclipse
4.23.0
aka2022-03
(new and noteworthy).
- Added new method
T output = JavaExecable.exec(WorkQueue queue, T input)
(#177).- This bumps the minimum required Gradle from
5.1
to5.6
.
- This bumps the minimum required Gradle from
- Bumped
spotless-lib
from1.5.1
to2.20.0
which is used in the spotless gradle plugin v6.0.0 (#176)
- Eclipse
4.22.0
aka2021-12
(new and noteworthy).
- Bumped
bndlib
from5.3.0
to6.1.0
which 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.0
aka2021-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-build
which makes theOS.getNative()
andSwtPlatform.xxx
methods work without breaking the Gradle configuration cache. (#153)
com.diffplug.eclipse.mavencentral
now hasconstrainTransitivesToThisRelease()
- Bumped
bndlib
from5.2.0
to5.3.0
which adds support forOS.MAC_silicon
.
- Bumped
durian-swt.os
to3.4.0
which adds support forOS.MAC_silicon
.
- Eclipse
4.20.0
aka2021-06
(new and noteworthy).
- Added support for using Goomph (pde bootstrap) with Gradle
6.7
and newer (#147)
p2asmaven
works again, but requires JRE 8. (#145)
- Eclipse
4.19.0
aka2021-03
(new and noteworthy).
- All
ide
tasks now explicitly specify the-vm
argument ineclipse.ini
. (#141)
ide
task 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
mavencentral
plugin now supports EMF artifacts (#136).
ide
task now works again on macOS BigSur (#131)- Changed
p2-bootstrap
URLs torepo.diffplug.com
because bintray is shutting down (#135)
- Eclipse
4.18.0
aka2020-12
(new and noteworthy).- the
ide
task isstill broken withfixed in4.17.0
and4.18.0
3.28.0
- the
mavencentral
plugin still works great with4.17.0
and4.18.0
- the
- Eclipse
4.17.0
aka2020-09
(new and noteworthy).- the
ide
task is currentlybroken withfixed in4.17.0
3.28.0
- the
mavencentral
plugin still works great with4.17.0
- the
- Added
CategoryPublisher
(#124)
- Eclipse
4.16.0
aka2020-06
(new and noteworthy).
- Give a better error message when using
com.diffplug.eclipse.mavencentral
with an underspecified release. (#121) - Improve documentation for
com.diffplug.p2.asmaven
to better describe multiproject setups in Gradle 6+. (#119)
- Eclipse
4.15.0
aka2020-03
(new and noteworthy).
- Fix markdown formatting for the
AsMavenPlugin
javadocs (#118). - Fix
java.lang.NoSuchMethodError: org.gradle.util.SingleMessageLogger.nagUserOfReplacedPlugin
error 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-eclipse
plugin. 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
bndlib
from4.2.0
to5.0.0
. - Deprecate the
com.diffplug.swt.nativedeps
plugin, becausecom.diffplug.eclipse.mavencentral
is now a better option.
- Added eclipse
4.14.0
aka2019-12
(new and noteworthy). EquinoxLaunchTask
now has up-to-date support if you manually specify output files, as well as any program-specific input files- Added
MavenCentralExtesion.testImplementation
and deprecatedtestCompile
(fixes #109).
- Simplified build with blowdryer.
- Updated gradle and all plugins.
p2asmaven
now works with Gradle 6+ (fixes #106)- broken javadoc links (fixes #105)
- missing annotation warnings on
PdeBuildTask
(still no up-to-date support though) oomphIde
workspaceXml
would 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
404
to 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.0
aka2019-09
(new and noteworthy). - Removed the
com.diffplug.gradle.eclipse.classic
plugin, 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.projectdeps
where libraries which were a prefix of another library could screw up replacement, e.g.durian-swt
anddurian-swt.os
.
- Added eclipse
4.12.0
aka2019-06
.
- Adopted
okhttp
so that we respect redirects when downloading. Fixes bugs introduced whendownload.eclipse.org
began using redirects.
- Added eclipse
4.11.0
aka2019-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
equinoxLaunch
plugin, 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-swt
would 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.a
as an EclipseRelease. - Update minimum gradle version to
4.0
:eclipseMavenCentral
now supports the new configurations:api
,implementation
,runtimeOnly
,testRuntimeOnly
.osgiBndManifest
no longer uses deprecated methods.
- Updated
bndlib
to4.0
. - Replaced dependency on
com.diffplug.durian:durian-swt
withdurian-swt.os
. This removes the dependency onorg.eclipse.swt
. - Set the
oomphIde
splash 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
includeLaunchers
property from product files (#58)
- Bump OSGi version to fix
NoClassDefFoundError: org/eclipse/osgi/framework/util/CaseInsensitiveDictionaryMap
(#57)
- Bump pde-bootstrap from
4.5.2
to4.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_SITE
property (was accidentally UDPATE). (#48) ] - Old spelling (UDPATE) is still supported for backward-compatibility.
- Added
--launcher.suppressErrors
to allEclipseApp
invocations 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.0
to3.5.0
. p2asmaven
now supports slicing options. (#41)p2asmaven
now supports appending] - a huge performance improvement for incrementally adding p2 deps. (#44)- Updated
EclipseRelease
to4.7.2
.
- Updated
EclipseRelease
to4.7.1a
, and also added4.7.1
. - Updated default buildship release from
e46/releases/1.0
toe47/releases/2.x
.
- Added the
com.diffplug.gradle.equinoxlaunch
can 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.0
to3.4.0
.
- Updated
EclipseRelease.latestOfficial()
toOxygen
.
- Updated
EclipseRelease.latestOfficial()
toNeon.3
. - Fixed a confusing error message (#30).
com.diffplug.gradle.eclipse.buildproperties
now includes all non-java files in thesrc
folder as resources, instead of only*.properties
files.
- 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.bndmanifest
so that it doesn't createExport-Package
entries 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
AsMavenPlugin
andOomphIdePlugin
which 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.
p2asmaven
now respects the buildDir variable (#9).EclipseRelease
now knows about Neon.1, and uses Neon.1 as the latest available eclipse release.- Improved
FeaturesAndBundlesPublisher
javadoc. - 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.home
manually. - Fixed NPE when using
p2asmaven
on 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.resourcefilters
com.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
pde
package 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.
ProjectDepsPlugin
can now replace binary dependencies with an eclipse project.- Added
NativeFileManager
for opening the native file manager to look at a file (for debugging). - Added
OomphIdePlugin
.
com.diffplug.gradle.osgi.bndmanifest
now always writes out the calculated manifest to the output resources directory. This way, if a task such astest
relies 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.bndmanifest
now 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.eclipse
intocom.diffplug.gradle.pde
. - BREAKING CHANGE: Renamed plugin
com.diffplug.gradle.swt
tocom.diffplug.gradle.swt.nativedeps
. - Added plugin
com.diffplug.gradle.osgi.bndmanifest
which uses bnd to generateMANIFEST.MF
and the entire jar, while respecting the result of gradle's resources directory. - Added plugin
com.diffplug.gradle.eclipse.buildproperties
which uses the Eclipse PDE build.properties file as the single source of truth for controlling binary assets. - Added plugin
com.diffplug.gradle.eclipse.projectdeps
which fixes some bugs with interproject dependencies. - Added plugin
com.diffplug.gradle.eclipse.excludebuildfolder
which 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
pde
package 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.