Project home | Documentation | Feature overview
- Make Gretty aware of Gradle Java Toolchain (thanks @mr-serjey)
- Fix jetty redeploy with custom jetty-env.xml
- Support folders under "src/resources" in fastReload configuration property
- Update Tomcat and Bouncy Castle (thanks to @pranav24gupta)
- jettyStart throws exception if using jetty-env.xml #299 (special thanks to @gy-chen)
- Fix broken
restart
tasks after runner classpath separation - Use appropriate class loader for servermanger commands. Thanks to Shane Hird.
- Upgrade Tomcat version to 10.1.5. Thanks to @pranav24gupta.
- Drops Gradle 6 support
- Enables stricter plugin validation
- Adds Gradle 8 integration test build
- Replace internal Gradle API usage with public API #263 Thank you, @octylFractal, for making Gretty better.
- Upgraded default versions of Tomcat to 10.0.22, and Jetty to 11.0.11
- Use Tomcat 10.0.21
- Use Jetty 11.0.9
- Use Gradle 7.4.2 for testing Gretty
- Added exclusion patterns for
commons-cli
andcommons-io
classes to FilteringClassLoader #258 Adding the patterns fixes a bug which gave preference to thecommons-cli
andcommons-io
versions that Gretty uses, rather than using the JARs bundled with the webapp (which is the correct behavior). - Upgrade to Logback 1.3.0-alpha14
- Remove Groovy-based logging configuration in response to Log4Shell #249
-
Fix inability to build a product due to missing Groovy dependencies (#238).
-
Version upgrades to mitigate some CVEs (#252). Thanks to @dutta1kartik3.
-
Gretty requires JDK11+.
-
Gretty supports only Tomcat 10 and Jetty 11 (
Jakarta
versions of the containers). All thanks goes to @f4lco.
- JDK 16 support
-
Added some release details for Maven Central.
-
Added uploadArchives for upload to Maven Central.
-
Restored simple GPG signing in prep for replacement of Bintray with Maven Central.
-
Build with Gradle 6.x in Jitpack
-
Use a fixed Gecko driver version
-
Use Gradle 6.9 for the "global" build
-
Fix the
gradle clean
task -
Update some packages
-
Gradle defines version as an object so we need to make sure we are doing explicit to String conversion
-
Revert "Purge identical builds by removing 'pull_request' trigger from GH actions"
-
Replace deprecated JavaExec.main usage with JavaExec.mainClass property
-
Merge pull request #218 from brandonramirez/loopback_address_bind
-
Update Gradle wrapper to 7.0-rc-2
-
Remove Gradle wrapper task definitions
-
Add Java 16 and build only against currently supported versions of Java
-
Update
actions/setup-java
-
Purge identical builds by removing 'pull_request' trigger from GH actions
-
Run tests on JUnit 5 on Gradle 7
-
Upgrade dependencies in Gradle 7 build
-
Replace jcenter repository with Maven Central
-
Rely on Groovy version shipped with Gradle
-
Add Gradle 7 build job
-
Explicitly bind to loopback address rather than local address to fix a BindException.
-
Use the
springBoot
option when it is not null (#213) -
Avoid calling afterEvaluate on already evaluated project
-
Remove unused import
-
Improve the code structure
-
Improve the dependency resolving logic
-
Update Gradle's version in CI
-
[skip ci] Remove mentions of Tomcat 10 in the
changes.md
file too -
Remove publishing to Bintray on push
-
Fixed 'multiple plugins are using the same ID' error in publishPlugins. (#211)
-
Gradle 7 support
-
Fix handling of httpsIdleTimeout in Tomcat (#144)
-
Fix behavior of maxPostSize in Tomcat (#144)
-
Guard remaining calls to Connector#setProperty with assertions (#144)
-
Removed calls to Jetty 9.4 deprecated method (soLingerTime) (#171)
-
Update Gradle's testing version to 6.6.1 and geckodriver to 0.27.0
-
Fix issue #104 - Bug: HotReload Exception with Composite
-
Correctly populate the
writer
field inServerStartEventImpl
-
Fix issue #104 - Bug: HotReload Exception with Composite
-
Ability to add additinal files to product build.
-
Update ASM
-
Update default Tomcat versions
-
Also run the full test suite on JDK 15
-
Use a specific Gradle version for all Travis tasks
-
Update Gradle's version to 6.8.3
-
Non-blocking context initialization. Fix "redeploy" cleanup.
-
Update Groovy
-
Migrate from Travis CI to GitHub actions
-
Annotate
ServerConfig
to fix Gradle deprecation warnings (#195) -
Annotate
WebAppConfig
, StartBaseTask, AppAfterIntegrationTestTask, AppBeforeIntegrationTestTask, AppServiceTask, FarmStartTask, AppRedeployTask, FarmAfterIntegrationTestTask, FarmBeforeIntegrationTestTask, FarmIntegrationTestTask, JacocoHelper -
Rename annotated interfaces for tasks
-
Fix a bunch of Gradle deprecation warnings
-
Use
api
forlibs/gretty
dependencies -
Lazily add source and classes dirs
-
Use Gradle's
Task Configuration Avoidance
APIs in a few places -
Add validation task to gretty plugin
-
Use java-gradle-plugin for generating the plugin properties
-
Upgrade to newest version of the publishing plugin
-
Enable stricter validation for validatePlugins
-
Replace deprecated task name in jacocoInstantiateTasks itest
-
Move common.gradle to a precompiled script plugin
-
Use different configuration for library and plugin projects
-
Move some more things out of
afterEvaluate
-
Fix source- and targetCompatibility versions
-
Use publication for uploading to bintray
-
Remove the maven plugin
-
Use new API for publishing javadoc and sources
-
Add a missing
bintrayUserOrg
property -
Fix using the wrong configuration for runner-projects
-
Use task configuration avoidance (easy instances) #141
-
Add some dependencies needed by Groovy 3
-
Spring support: avoid classloading of webapp classes at configuration time
-
Updated ASM to 8.0.1.
-
Fixed excess logging output and set initial log level (#150).
-
Removed deprecated check for already in-use ports (#147).
-
Added support for Gradle 5.6 debugging API.
-
Fixed incorrect serialization of the initParameters in productBuild.
-
Updated Tomcat 9 version and TC9 servlet API version.
-
Set javaExec debug options properly.
-
Updated Gradle 6 testing to use Gradle 6.3.
-
Fixes replacing use of deprecated Gradle properties.
-
Upgraded defaults to latest versions of Jetty and Tomcat.
-
Groovy updated to 2.5.10 along with dependencies.
-
Choose random free ports atomically to fix bug with random port generation.
-
Java 14 support.
-
Gradle 6.0 fixes - thanks @boris-petrov
-
Gradle 6.0 integration-tests now run on Travis
-
Gradle 6.0 support.
-
JDK11 support.
-
Support for Gradle <5.0 has been removed.
-
Support for Tomcat 7.x and Tomcat 8.0.x has been removed.
-
Support for JDK7 has been removed.
-
Upgraded to ASM 7.0 (#100, #97)
-
Fixed generics syntax error noticed by Gradle/Groovy upgrade (#95).
-
Workaround for Groovy @CompileStatic bug (#99)
-
2.3.0 was missing artifact gretty-starter (#98)
-
Gradle 5.0 support (#93). Thanks Martin Chalupa (@chali) for bug-fixes and testing.
-
buildProduct fix for Gradle 5.0 (#91). Thanks Martin Chalupa (@chali).
-
Added getFreeRandomPort() support for httpsPort (#85). Thanks Josh Cummings (@jzheaux).
-
Default container version updates:
- jetty93_version = 9.3.25.v20180904
- jetty94_version = 9.4.14.v20181114
- tomcat8_version = 8.0.53
- tomcat85_version = 8.5.35
- tomcat9_version = 9.0.13
-
Support is removed for running Jetty 7.x containers in this release. Jetty 7.x is EOL, please upgrade.
-
A modest performance improvement was achieved via #46 (Add
@CompileStatic
to most classes).
-
Bumped default Tomcat 9 version to 9.0.6 (was 9.0.5).
-
Support added for Tomcat 8.5 and Tomcat support refactoring (thanks Boris Petrov). Tomcat 8.5 replaces deprecated Tomcat 8.0.
-
Bumped Spring Boot version to 1.5.9 (was 1.5.4).
-
Bumped versions of asm (6.1.1, was 6.0), Groovy (2.4.15, was 2.4.13) and Spring (4.3.16, was 4.3.9) (thanks Henrik Brautaset Aronsen).
-
Fixed incompatibility with java-library plugin (thanks Ollie Freeman).
-
Dev: various build and test improvements.
-
Project fork - plugin-group is now org.gretty.
-
Compatibility with Gradle 4.6 (with thanks to Stefan Wolf)
-
Compatability with JDK9. Note that some latest container versions do not have full JDK9 compatibility at the time of release.
-
Tomcat 9 support (with thanks to Boris Petrov).
-
Upgraded default Jetty 9.4 to latest.
-
Updated SpringLoaded version, fixed #408.
-
Updated ASM version.
-
Updated Groovy version.
-
Gretty no longer adds org.slf4j:slf4j-nop:1.7.12 if SLF4J impl is missing, fixed #394.
-
Compatibility with Gradle 4.0
-
Support of Jetty 9.4 (issue #365).
-
Now it's possible to override versions of Jetty, Tomcat and servlet API via properties in "gradle.properties" file (issue #330).
-
All integration tests now run against Firefox 54.
-
Fixed product generation.
-
Support of Spring Framework 4.3.9 and Spring Boot 1.5.4.
-
Dropped support of Java 6.
-
Now Gretty is compatible with Gradle versions from 2.14.1 to 3.4.1
-
resolved issue #326: Gradle 3.3 compatibility work breaks earlier versions of Gradle
-
resolved issue #329: Cannot call TaskInputs.property(String, Object) on task ':jettyStart' after task has started execution
-
The most significant change is compatibility with Gradle 3.3.
-
Pull Requests #198, #205, #266, #293, #297 and #312 were merged into master.
-
Issues #296, #300, #307, #317, #320, #322, #323 were resolved.
-
All changes by @saladinkzn were merged back to mainstream.
-
Upgraded gradle wrapper to 2.14.1 (akhikhl#276)
-
Component upgrades (akhikhl#277)
-
Fixed failing springBootWebSocket example (akhikhl#278)
-
Fixed issue #247: Could not find property 'main' on task ':run' (akhikhl#279)
-
New scanner for jdk 7+
-
Fix for: akhikhl#239 (Gretty service port)
-
Fix for: akhikhl#195 (Possibility to run multiple gretty builds on different ports)
-
Support overlays for war webapps in farms #4
-
Update jetty to 9.3 (by providing separate 'container' because latest jetty 9.3 is compiled with jdk 8)
-
Add support for inserting paths before application output folders (will fix #6)
-
Add support for dependencies option in farm webapp configuration. #13
-
New feature: akhikhl#262 (Changing product name)
-
Fix for duplicate entries in getResources(path) in tomcat 7 and 8 #20
-
scanDependencies property is working again.
-
redeployMode=redeploy support to redeploy changed web applications only.
-
Jetty is updated to version 9.2.15
-
Spring loaded was updated to 1.2.5.RELEASE
-
Merged fix for
contextPath = '/'
in tomcat -
Merged patch replacing groovy-all dependency with groovy modules
-
Fixed issue setting keepAliveTimeout
-
Added support for NeedClientAuth param
-
Properties servicePort and statusPort are deprecated and not used anymore. Gretty automatically selects available TCP ports for communication with it's runner process.
-
Classpath isolation improved. If your web-app uses Groovy, you are free to choose whatever version of it - it will not conflict with the Groovy version used by Gretty runner.
-
Resolved issue #185 "No warning when port service is already in use"
-
Resolved issue #182 "Unable to use log4j-slf4j-impl"
-
Resolved issue #178 "Classpath with property files added to the jetty"
-
Resolved issue #173 "webappCopy doesn't seem to setup inputs/outputs"
-
Resolved issue #145 "Logging via log4j backend doesn't work"
-
Resolved issue #42 "allow to specify custom groovyVersion"
-
Upgraded to Tomcat 7.0.62 and Tomcat 8.0.23
-
Resolved issue #175 "SpringBoot applications are not isolated from one another in farm and product runs"
-
Resolved issues with logging: #164, #145, #133
-
Upgraded to Tomcat 7.0.61 and Tomcat 8.0.22
-
Upgrade and tests on Gradle 2.4 (Gradle versions >= 1.10 are still supported)
This is a maintenance release, fixing a single issue #163: MissingPropertyException when running Tomcat with HTTPS.
Gretty version 1.2.1 introduces the following changes:
-
Inheriting logging options to generated product is fixed (issue #152).
-
Gretty now provides out-of-the-box websocket support (issue #155) and examples of using websocket:
- https://github.com/akhikhl/gretty/blob/master/examples/websocket
- https://github.com/akhikhl/gretty/blob/master/examples/springBootWebSocket
-
spring-loaded failure under java 8u40 is fixed (issue #156).
-
SpringBoot 1.2.x incompatibility with Jetty 8-9 is fixed (issue #158).
-
Fixed gretty.baseURI property in integration tests: now it returns "localhost" for all supported servlet containers (issue #160).
-
Upgraded to latest components:
tomcat8: 8.0.20 -> 8.0.21
slf4j-api: 1.7.7 -> 1.7.12
logback: 1.1.2 -> 1.1.3
spring-boot: 1.1.9.RELEASE -> 1.2.3.RELEASE
spring-loaded: 1.2.1.RELEASE -> 1.2.3.RELEASE
Gretty version 1.2.0 introduces the following changes:
- Upgrade to Jetty 9.2.9.v20150224, which fixes critical vulnerability CVE-2015-2080
- Fix for class reloading with WAR tasks. Now if some class is changed (recompiled), the web-application restarts as expected.
- Fix for the bug: slf4j/logback libraries are excluded from webapps packed into Gretty product.
Gretty version 1.1.9 introduces full isolation of it's own logging system (slf4j/logback) from the constituent web-applications. Now web-applications are free to use any logging system - Gretty does not interfere and does not force logback to be used.
Also Gretty 1.1.9 solves problems with farm configuration when farm is defined in the parent project and web-applications are defined in child projects.
At last Gretty 1.1.9 includes upgrades of the following components to their latest versions:
jetty7: 7.6.15.v20140411 -> 7.6.16.v20140903
jetty9: 9.2.3.v20140905 -> 9.2.7.v20150116
selenium: 2.44.0 -> 2.45.0
spock: 0.7-groovy-2.0 -> 1.0-groovy-2.4
tomcat7: 7.0.55 -> 7.0.59
tomcat8: 8.0.15 -> 8.0.20
Gretty version 1.1.8 introduces new parameters for fine-tuning of debugging tasks.
Also Gretty version 1.1.8 includes upgrades of the following components to their latest versions:
- Geb : 0.9.3 -> 0.10.0
- gradle-bintray-plugin : 0.4 -> 1.0
- Gradle Wrapper : 2.1 -> 2.1.1
- Groovy : 2.3.7 -> 2.3.8
- Tomcat-8 : 8.0.14 -> 8.0.15
- Selenium : 2.43.1 -> 2.44.0
- Spring Boot : 1.1.8.RELEASE -> 1.1.9.RELEASE
New feature: redirect filter.
The feature is completely independent from the rest of Gretty and can be deployed as part of WAR-file. Charming thing about redirect filter is that it provides groovy-based configuration DSL.
Resolved issue #102: How to do integration test in a multi-project setup.
Resolved issue with host name in generated certificates, when gretty config does not define sslHost property.
Maintenance release. Fixed bug: "readonly property" exception when trying to generate Gretty product.
Gretty version 1.1.5 brings new bug, preventing Gretty product generation. If you run buildProduct task and experience "readonly property" exception, please switch to Gretty 1.1.6 - it fixes the problem.
-
New feature: composite farms.
-
New feature dependent projects can run in inplace mode.
-
New feature: override of context path in integration test tasks.
-
New feature: injection of version variables into project.ext.
-
Upgraded to Spring Boot 1.1.8.RELEASE.
-
Fixed bug: spring-boot improperly shutdown in SpringBootServerManager.stopServer.
-
Resolved issue #101: Jetty.xml Rewrite Handler doesnt seem to take effect.
-
Resolved issue #97: How can I add runner libraries.
-
Resolved issue #96: Custom builds of Gradle cause NumberFormatException.
-
Resolved issue #93: Groovy version conflicts when running farmStart with a war file.
-
New feature: inplaceMode property, when assigned to "hard", instructs Gretty to serve files directly from src/main/webapp, bypassing file copy on change.
-
New feature: runner arguments for Gretty products.
-
New feature: interactiveMode property allows to fine-tune Gretty's reaction on keypresses.
-
New feature: archiveProduct task, archives the generated product to zip-file.
-
New feature: gretty.springBootVersion property allows to specify spring boot version (the default is 1.1.7.RELEASE) (issue #88, "Set Spring / SpringBoot version doesn't work").
-
New feature: gretty.enableNaming property allows to enable JNDI naming on Tomcat (issue #64, "JNDI - NoInitialContextException with Tomcat (tried in 7x and 8x)").
-
Enhancement: now gretty.jvmArgs property is automatically passed to Gretty products.
-
Enhancement in Jetty/Windows-specific lifecycle: useFileMappedBuffer is set to false for all Gretty tasks, so that Jetty does not lock css/js files.
-
Enhancement in buildProduct task: now it automatically generates VERSION.txt file with the version and creation date information.
-
Resolved issue #89, "How to configure fastReload?".
-
Upgrades:
- gradle wrapper to version 2.1
- Groovy to version 2.3.7
- SpringBoot to version 1.1.7.RELEASE
- Embedded Tomcat 7 to version 7.0.55
- Embedded Tomcat 8 to version 8.0.14
- Embedded Jetty 9 to version 9.2.3.v20140905
- asm to version 5.0.3
-
Implemented support of Gradle 1.10 (still, using Gradle 2.1 is highly recommended!).
-
fixed issues with groovy-all versions and logback versions in the webapp classpath
-
New feature: virtual mapping of gradle dependencies (of the web-application) to "WEB-INF/lib" directory. This feature is needed by web frameworks accessing jar files in "WEB-INF/lib" (e.g. Freemarker).
-
Fix for compatibility problem with Gradle 1.12 and introduction of Gradle version check.
-
New feature: webapp extra resource bases.
-
New feature webapp filtering.
-
Better start/stop protocol, gracefully handling attempts to start Gretty twice (on the same ports). There should be no hanging processes after such attempts anymore.
-
gretty.host now defaults to "0.0.0.0", effectively allowing to connect to any interface.
-
Fixed issues: #41, #44, #45, #49, #52, #53, #54, #56, #57, #60, #61.
-
Fixed breaking change in 1.1.0: properties jettyXmlFile and jettyEnvXmlFile are supported again (although deprecated, please use serverConfigFile and contextConfigFile properties instead).
-
Changed the default value of managedClassReload property to false. Please set it to true, if you need springloaded integration.
-
New feature: generation of self-contained runnable products.
-
New feature: support of tomcat-specific server.xml and context.xml - in Gretty tasks as well as in generated products.
-
New feature: single sign-on with Jetty security realms and Tomcat security realms.
-
New properties for finer control of hot deployment feature: recompileOnSourceChange, reloadOnClassChange, reloadOnConfigChange, reloadOnLibChange. See more information at hot deployment
-
Upgraded Gretty to Jetty 7.6.15.v20140411, Jetty 9.2.1.v20140609, Tomcat 8.0.9 and Spring Boot 1.1.4.RELEASE. Note that Gretty was not upgraded to Jetty 8.1.15.v20140411 because this release brings some strange errors not reproducible with other releases of Jetty 8.
🔔 Attention
Gretty 1.1.0 brings one little incompatibility: property jettyEnvXml was renamed to jettyEnvXmlFile. If you are using jettyEnvXml, please adjust your gradle scripts accordingly.
-
Unified all Gretty plugins to a single plugin "org.akhikhl.gretty".
-
Introduced servlet container selection via servletContainer property.
-
Added support of Tomcat 7 and 8.
-
Introduced servlet-container-agnostic tasks appRun, appRunDebug, ..., as well as servlet-container-specific tasks jettyRun, jettyRunDebug, ..., tomcatRun, tomcatRunDebug, ...
-
Facilitated all web-apps with spring-loaded by default. This can be turned off by setting
managedClassReload=false
in Gretty configuration. -
Hot-deployment property scanInterval is set to 1 (second) by default. Hot-deployment can be turned off by setting
scanInterval=0
in Gretty configuration. -
Hot-deployment property fastReload is set to true by default. Fast reloading can be turned off by setting
fastReload=false
in Gretty configuration. -
Added start task functions prepareServerConfig and prepareWebAppConfig for property inheritance override in gretty tasks.
-
Adopted new plugin identification scheme suggested at the portal https://plugins.gradle.org. See more information at Gretty gradle plugins.
-
Upgraded to Jetty 9.2.1.v20140609. See Jetty Release 9.2.0 announcement and Jetty 9.2.1.v20140609 release announcement for technical details on new Jetty version.
-
Upgraded to Spring Boot 1.1.1.RELEASE.
-
Implemented spring-boot support.
-
Improved compatibility with JRE-6.
-
Implemented HTTPS support.
-
Introduced new properties in Gretty configuration and Farm configuration, related to HTTPS protocol.
-
Introduced convenience functions ServerConfig.jvmArgs, ServerConfig.jvmArg to simplify adding JVM arguments.
- Implemented Jacoco code coverage support - both server-side and client-side.
-
Fixed issue gretty-farm plugin throws IllegalStateException: zip file closed
-
Fixed issue gretty-farm plugin throws ExecException (jdk1.7.0_55)
-
Fixed bug: stack-overflow exception when warResourceBase is assigned to java.io.File
- Fixed issue No such property: absolutePath for class: java.lang.String error is thrown on jetty* build
- Fixed compatibility issue: gretty would not start on JDK7, when taken from maven (not compiled from sources).
-
implemented multiple web-apps feature.
-
implemented debugger support for multiple web-apps.
-
implemented integration tests support for multiple web-apps.
-
implemented gretty.afterEvaluate and farm.afterEvaluate closures for easy configuration of gretty tasks.
-
implemented highly customizable gretty task classes and farm task classes.
-
improved security of realmConfigFile: now it uses "${webAppDir}/WEB-INF" as a base folder, if you specify relative path.
-
completely rewritten documentation.
- fixed incorrect parameter passing to javaexec in GrettyStartTask, preventing debug mode.
-
Reimplemented Gretty tasks as reusable classes.
-
Renamed integrationTestStatusPort to statusPort.
-
Moved documentation from README.md to wiki pages.
-
Updated documentation, added nice diagrams to every task description. See more at wiki pages.
-
Introduced configuration property fastReload.
-
Fixed JDK-8 compatibility issues.
- Introduced configuration property jvmArgs.
- Implemented support of web fragments
- Implemented integration tests for most of the examples
- Introduced bintray publishing configuration in build.gradle
- Implemented support of integration tests
- Introduced configuration property logbackConfigFile (in response to issue #6 "Possibility to provide custom logback.xml or logback.groovy configuration")
- Fixed overlay WAR generation.
- Upgraded to logback version 1.1.1 and slf4j version 1.7.6.
- Updated documentation.
- Implemented out-of-the-box JEE annotations support.
- Various bug-fixes.
- Implemented support of jetty.xml and jetty-env.xml.
- Implemented accurate re-configuration of logback loggers and appenders on hot-deployment.
- Implemented support of multiple jetty versions and multiple servlet API versions.
- Implemented debugger support and logging.
- Implemented hot deployment.