28d24aa Jun 21, 2017
Andrey Hihlovskiy release 2.0.0
@akhikhl @saladinkzn
453 lines (249 sloc) 20.1 KB

Project home | Documentation | Feature overview


Version 2.0.0

  • 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 "" 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.

Version 1.4.2

  • 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, Object) on task ':jettyStart' after task has started execution

Version 1.4.1

  • 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.

Version 1.4.0

  1. All changes by @saladinkzn were merged back to mainstream.

  2. Upgraded gradle wrapper to 2.14.1 (

  3. Component upgrades (

  4. Fixed failing springBootWebSocket example (

  5. Fixed issue #247: Could not find property 'main' on task ':run' (

Version 1.3.0

  1. New scanner for jdk 7+

  2. Fix for: akhikhl#239 (Gretty service port)

  3. Fix for: akhikhl#195 (Possibility to run multiple gretty builds on different ports)

  4. Support overlays for war webapps in farms #4

  5. Update jetty to 9.3 (by providing separate 'container' because latest jetty 9.3 is compiled with jdk 8)

  6. Add support for inserting paths before application output folders (will fix #6)

  7. Add support for dependencies option in farm webapp configuration. #13

  8. New feature: akhikhl#262 (Changing product name)

  9. Fix for duplicate entries in getResources(path) in tomcat 7 and 8 #20

Version 1.2.5

  1. scanDependencies property is working again.

  2. redeployMode=redeploy support to redeploy changed web applications only.

  3. Jetty is updated to version 9.2.15

  4. Spring loaded was updated to 1.2.5.RELEASE

  5. Merged fix for contextPath = '/' in tomcat

  6. Merged patch replacing groovy-all dependency with groovy modules

  7. Fixed issue setting keepAliveTimeout

  8. Added support for NeedClientAuth param

Version 1.2.4

  1. Properties servicePort and statusPort are deprecated and not used anymore. Gretty automatically selects available TCP ports for communication with it's runner process.

  2. 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.

  3. Resolved issue #185 "No warning when port service is already in use"

  4. Resolved issue #182 "Unable to use log4j-slf4j-impl"

  5. Resolved issue #178 "Classpath with property files added to the jetty"

  6. Resolved issue #173 "webappCopy doesn't seem to setup inputs/outputs"

  7. Resolved issue #145 "Logging via log4j backend doesn't work"

  8. Resolved issue #42 "allow to specify custom groovyVersion"

  9. Upgraded to Tomcat 7.0.62 and Tomcat 8.0.23

Version 1.2.3

  1. Resolved issue #175 "SpringBoot applications are not isolated from one another in farm and product runs"

  2. Resolved issues with logging: #164, #145, #133

  3. Upgraded to Tomcat 7.0.61 and Tomcat 8.0.22

  4. Upgrade and tests on Gradle 2.4 (Gradle versions >= 1.10 are still supported)

Version 1.2.2

This is a maintenance release, fixing a single issue #163: MissingPropertyException when running Tomcat with HTTPS.

Version 1.2.1

Gretty version 1.2.1 introduces the following changes:

  1. Inheriting logging options to generated product is fixed (issue #152).

  2. Gretty now provides out-of-the-box websocket support (issue #155) and examples of using websocket:

  1. spring-loaded failure under java 8u40 is fixed (issue #156).

  2. SpringBoot 1.2.x incompatibility with Jetty 8-9 is fixed (issue #158).

  3. Fixed gretty.baseURI property in integration tests: now it returns "localhost" for all supported servlet containers (issue #160).

  4. 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

Version 1.2.0

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.

Version 1.1.9

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

Version 1.1.8

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

Version 1.1.7

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.

Version 1.1.6

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.

Version 1.1.5

Version 1.1.4

  • 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

Version 1.1.3

  • 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.

Version 1.1.2

  • 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.

  • now defaults to "", effectively allowing to connect to any interface.

  • Fixed issues: #41, #44, #45, #49, #52, #53, #54, #56, #57, #60, #61.

Version 1.1.1

  • 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.

Version 1.1.0

  • 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.

Version 1.0.0

  • 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.

Version 0.0.25

Version 0.0.24

Version 0.0.23

Version 0.0.22

Version 0.0.21

Version 0.0.20

Version 0.0.19

  • Fixed compatibility issue: gretty would not start on JDK7, when taken from maven (not compiled from sources).

Version 0.0.18

Version 0.0.17

  • fixed incorrect parameter passing to javaexec in GrettyStartTask, preventing debug mode.

Version 0.0.16

  • Reimplemented Gretty tasks as reusable classes.

  • Renamed integrationTestStatusPort to statusPort.

  • Moved documentation from to wiki pages.

  • Updated documentation, added nice diagrams to every task description. See more at wiki pages.

Version 0.0.15

  • Introduced configuration property fastReload.

  • Fixed JDK-8 compatibility issues.

Version 0.0.14

  • Introduced configuration property jvmArgs.

Version 0.0.13

  • Implemented support of web fragments
  • Implemented integration tests for most of the examples
  • Introduced bintray publishing configuration in build.gradle

Version 0.0.12

Version 0.0.11

  • Introduced configuration property logbackConfigFile (in response to issue #6 "Possibility to provide custom logback.xml or logback.groovy configuration")

Version 0.0.10

  • Fixed overlay WAR generation.
  • Upgraded to logback version 1.1.1 and slf4j version 1.7.6.
  • Updated documentation.

Version 0.0.9

Version 0.0.8

Version 0.0.7

  • Implemented accurate re-configuration of logback loggers and appenders on hot-deployment.

Version 0.0.6

version 0.0.5

Version 0.0.4