Andrey Hihlovskiy

Professional blog on groovy, gradle, Java, Javascript and other stuff.

Gretty 1.2.3 is out!

I’m happy to announce that Gretty version 1.2.3 is out!

What’s new: I finally fixed bugs with classpath isolation. Now all web-applications (including SpringBoot applications) run on their classloader and are isolated from one another. That means: no more spring beans conflicts, no more problems configuring logback.

You don’t know what is Gretty? It’s a Gradle plugin for running web-applications on Tomcat and Jetty. Full documentation and sources:

Concurrent Kitties Using GPars

Stuff I've learned recently...

On today’s Groovy Podcast, I mentioned that I was teaching a Groovy training class this week at Research Now in Plano, TX. That’s not how I said it, though. I said that I was broadcasting live in front of a studio audience and that they were the most amazingly awesome group I’ve ever encountered.

(Yeah, okay, sometimes I shamelessly pander for good evals. I’ll let you know if it worked after the class ends. Unless it doesn’t, in which case I probably won’t.)

During the podcast, I told my inestimable co-host, Peter Ledbrook, that we got a chance to use GPars in class. The app we used it on was all about the primary goal of the internet, which is to display cat pictures.

Peter then shamed me into writing a blog post about it, which you’re reading now.

I’ve actually written about this app before, for another client…

View original post 489 more words

Gretty 1.1.9 is out!

Gretty version 1.1.9 is out and immediately available at github, bintray, maven central and gradle plugin portal!

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 is a feature-rich gradle plugin for running web-apps on embedded servlet containers. It supports Jetty versions 7, 8 and 9, Tomcat versions 7 and 8, multiple web-apps and many more. It wraps servlet container functions as convenient Gradle tasks and configuration DSL.

A complete list of Gretty features is available in feature overview.

Complete sources of Gretty are here:

Complete documentation on Gretty is here:

Now Co-Hosting the Groovy Podcast…

Stuff I've learned recently...

When I first starting learning Groovy in a serious way, one tool I enjoyed was listening to the Grails Podcast. Glen Smith and Sven Haiges led a discussion about Grails-related issues on a regular basis. Of course, since they talked about new developments in Grails, they also had to cover new developments in Groovy, so the podcast was a valuable resource for both.

At the beginning of each podcast, Glen would say that he was podcasting from Canberra, Australia, and Sven was podcasting from San Jose, California. Of course, Sven might have been in CA, but Sven is actually a European and eventually moved back to Munich. That led me to contact Glen and ask to be the third person in the booth, arguing (a) that they needed an American, too, and (b) together we’d be Glen, Sven, and Ken, and how cool was that?

(To be honest, I…

View original post 891 more words

Gretty 1.1.5 is out!

Hello people,

Gretty version 1.1.5 is out and immediately available at github, bintray, maven central and gradle plugin portal!

Gretty is a feature-rich gradle plugin for running webapps on Jetty and Tomcat. Sources available here:

What’s new in Gretty 1.1.5:

Full list of changes:

I would be thankful for your feedback, bug reports and suggestions 🙂

Gretty 1.1.4 is out!

I’m glad to announce release 1.1.4 of Gretty – advanced Gradle plugin for running web-apps on Jetty and Tomcat!

What’s new in Gretty 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

I highly appreciate your feedback!

Gretty 1.1.3 is out!

I’m happy to announce that Gretty 1.1.3 is out!

New in Gretty 1.1.3: virtual mapping of gradle dependencies (of the web-application) to “WEB-INF/lib” directory. This feature is needed by some web frameworks accessing jar files in “WEB-INF/lib” (e.g. Freemarker).

Special thanks to @saladinkzn (Timur Shakurov) for introducing this nice feature.

Up-to-date Gretty sources are always available at:

Gretty documentation:

All Gretty releases are also available as maven artifacts at jcenter and maven central.

How-to: unfreeze terminal on ssh disconnect

Gretty 1.1.2 is out!

Today I released Version 1.1.2 of Gretty – feature-rich gradle plugin for running web-apps on embedded servlet containers: Jetty 7, 8, 9 and Tomcat 7, 8.

Gretty 1.1.2 brings:

  • 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.
  • lot of bug fixes

You can get Gretty in sources from:

All Gretty releases are available at jcenter and maven central under group ‘org.akhikhl.gretty’.

You can start using gretty right away, with a single line of code in your “build.gradle”:

apply from: ''



Powerful feature in Gretty 0.0.24 – full support of Spring Boot 1.1.0

Today is a wonderful day: Spring Boot 1.1.0 was released and I released Gretty version 0.0.24.

Gretty is a feature-rich gradle plugin for running web-apps on Jetty. It supports multiple Jetty versions (7, 8 and 9), multiple web-apps and many more. It wraps Jetty functions as convenient Gradle tasks and configuration DSL. A complete list of Gretty features is available in feature overview.

There is new powerful feature in Gretty 0.0.24: it supports running Spring Boot web-apps out-of-the-box. All Gretty features, including (but not limited to) debugging, code coverage and integration tests, also apply to spring-boot web-apps.

Simplest Gretty setup with Spring Boot:

buildscript {
ext {
springBootVersion = '1.1.0.RELEASE'
repositories {
dependencies {
classpath "org.springframework.boot:spring-boot-loader-tools:${springBootVersion}"
classpath "org.springframework.boot:spring-boot-dependency-tools:${springBootVersion}"
classpath 'org.akhikhl.gretty:gretty-spring-boot-plugin:0.0.24'
apply plugin: 'java'
apply plugin: 'gretty-spring-boot'

view raw


hosted with ❤ by GitHub

You get Gretty as maven artifacts at jcenter and maven central under the group “org.akhikhl.gretty”.

Full Gretty sources and examples are available at

Full Gretty documentation is available at