Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Groovy for Domain-Specific Languages, Second Edition
Groovy for Domain-Specific Languages, Second Edition

Groovy for Domain-Specific Languages, Second Edition: Extend and enhance your Java applications with domain-specific scripting in Groovy

eBook
€28.99 €32.99
Paperback
€41.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Groovy for Domain-Specific Languages, Second Edition

Chapter 2. Groovy Quick Start

In this chapter, we will jump straight into getting you up and running with the language on your computer. We will explore the various ways you can get Groovy installed and running on your environment, and look at how we make use of the various tools that come packaged in the Groovy installation:

  • We will start out with a section on using GVM. This is definitely the preferred mechanism for installing Groovy and a host of other Groovy-related tools.
  • We will follow this with a section on how to find the Groovy binaries and install them on your system.
  • The next section will guide you through running Groovy scripts by using the various shell tools provided with the Groovy download.
  • Most of you will be using one of the popular IDE environments, so we'll look at the various integration options for the popular IDEs and programmer's editors.

Installing Groovy with GVM

The Groovy ecosystem continues to evolve and is not too proud to take inspiration from other sources. While the language itself has moved forwards in leaps and bounds over the last few years, by far my favorite addition to the ecosystem is GVM (Groovy enVironment Manager). GVM was inspired by tools such as RVM (Ruby Version Manager).

GVM is the ideal tool for maintaining parallel versions of the various tools in the Groovy ecosystem. GVM has a simple and intuitive command-line interface for installing and using Groovy, and a whole collection of other useful Groovy-based tools. Switching between different versions of the Grails framework is achieved with a simple command:

$gvm use grails 3.0.5
$grails run-app
$gvm u grails 3.0.5
$grails upgrade

As well as Groovy itself, GVM can be used to install most of the popular Groovy tools such as Grails, Griffon, Gradle, and Vert.x. This list is being extended by the Groovy community all the time, so for the latest list...

How to find and install Groovy from binaries

The Groovy project is hosted at http://www.groovy-lang.org/download.html and can be downloaded as a ZIP archive or a platform-specific installer for Windows and certain Linux distributions. At the time of writing this book, the latest version of the language available is Groovy 2.4.4.

In five simple steps, you can run Groovy and start experimenting with the language:

  1. Download the latest build from http://www.groovy-lang.org/download.html.
  2. Unzip the archive into a directory on your computer.
  3. Set an environment variable in your command line or shell for GROOVY_HOME. This should point to the base directory to which you unzipped the archive.
  4. Add the Groovy bin directory to your PATH. This will be %GROOVY_HOME%\bin (Windows) or $GROOVY_HOME/bin on Linux and Unix systems.
  5. Open a new command shell and test your setup by issuing the Groovy version command groovy -v.

Note

Windows users can also make use of the Windows Installer, which can be found at http://www...

Running Groovy

Now that you have Groovy installed, let's introduce some of the tools that come with the Groovy package. Groovy can be compiled into a Java class file and deployed as part of an application, the same as for any other Java class file. In addition to this, Groovy has several tools that allow us to execute a Groovy program as a script without the need to package it into a Java application.

There are three commands that we can use to launch a script. In the following sections, we will demonstrate the different methods of running Groovy scripts. As we progress through the book, you can use these methods to execute the Groovy scripts that we will describe.

The Groovy script engine – groovy

Let's start by writing a Groovy version of the ubiquitous Hello World program. We can start by creating a file called Hello.groovy, which contains the following code:

public class HelloGroovy {
public static void main(String [] args) {
        System.out.println("Hello, World...

The Groovy IDE and editor integration

If you are going to do any amount of serious Groovy coding, you will want to work with Groovy in your favorite IDE.

NetBeans

Of the popular IDE environments, NetBeans was the first to provide built-in Groovy support. From NetBeans 6.5 onwards, Groovy support is available from within any of the Java bundles without any additional plugins being required. By default, you have excellent Groovy source editing with syntax highlighting, source folding, and code completion. You can mix and match Groovy with Java in your projects, or build a full Groovy on Grails-based project from scratch. You can download the latest NetBeans installation from https://netbeans.org/downloads/.

Eclipse

Eclipse was the first Java IDE to have Groovy support integrated through the Groovy-Eclipse plugin. You can install the Groovy-Eclipse plugin from the update site at http://dist.springsource.org/snapshot/GRECLIPSE/e4.5/.

The Groovy-Eclipse plugin has full support for source-level Groovy...

Summary

In this chapter, I gave you all the tools to get started with the Groovy language, but we have barely touched the language itself. Whatever your own personal preference for an operating system or IDE, you should now be ready to start coding.

In the next chapter, we will start to look at some of the essential Groovy DSLs that are available. Gradle is a Groovy-based build and dependency management tool. Spock is a Groovy-based unit testing framework that used DSL syntax to implement behavior-driven development (BDD) syntax into your tests.

Left arrow icon Right arrow icon

Description

The times when developing on the JVM meant you were a Java programmer have long passed. The JVM is now firmly established as a polyglot development environment with many projects opting for alternative development languages to Java such as Groovy, Scala, Clojure, and JRuby. In this pantheon of development languages, Groovy stands out for its excellent DSL enabling features which allows it to be manipulated to produce mini languages that are tailored to a project’s needs. A comprehensive tutorial on designing and developing mini Groovy based Domain Specific Languages, this book will guide you through the development of several mini DSLs that will help you gain all the skills needed to develop your own Groovy based DSLs with confidence and ease. Starting with the bare basics, this book will focus on how Groovy can be used to construct domain specific mini languages, and will go through the more complex meta-programming features of Groovy, including using the Abstract Syntax Tree (AST). Practical examples are used throughout this book to de-mystify these seemingly complex language features and to show how they can be used to create simple and elegant DSLs. Packed with examples, including several fully worked DSLs, this book will serve as a springboard for developing your own DSLs.

Who is this book for?

This book is for Java software developers who have an interest in building domain scripting into their Java applications. No knowledge of Groovy is required, although it will be helpful. This book does not teach Groovy, but quickly introduces the basic ideas of Groovy. An experienced Java developer should have no problems with these and move quickly on to the more involved aspects of creating DSLs with Groovy. No experience of creating a DSL is required.

What you will learn

  • Familiarize yourself with Groovy scripting and work with Groovy closures
  • Use the metaprogramming features in Groovy to build mini languages
  • Employ Groovy markup and builders to simplify application development
  • Familiarize yourself with Groovy markup and build your own Groovy builders
  • Build effective DSLs with operator overloading, command chains, builders, and a host of other Groovy language features
  • Integrate Groovy with your Java and JVM based applications

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Sep 28, 2015
Length: 386 pages
Edition : 1st
Language : English
ISBN-13 : 9781849695411
Category :
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Sep 28, 2015
Length: 386 pages
Edition : 1st
Language : English
ISBN-13 : 9781849695411
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 120.97
Groovy for Domain-Specific Languages, Second Edition
€41.99
Mastering Gradle
€36.99
Groovy 2 Cookbook
€41.99
Total 120.97 Stars icon

Table of Contents

13 Chapters
1. Introduction to DSLs and Groovy Chevron down icon Chevron up icon
2. Groovy Quick Start Chevron down icon Chevron up icon
3. Essential Groovy DSLs Chevron down icon Chevron up icon
4. The Groovy Language Chevron down icon Chevron up icon
5. Groovy Closures Chevron down icon Chevron up icon
6. Example DSL – GeeTwitter Chevron down icon Chevron up icon
7. Power Groovy DSL Features Chevron down icon Chevron up icon
8. AST Transformations Chevron down icon Chevron up icon
9. Existing Groovy DSLs Chevron down icon Chevron up icon
10. Building a Builder Chevron down icon Chevron up icon
11. Implementing a Rules DSL Chevron down icon Chevron up icon
12. Integrating It All Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.7
(3 Ratings)
5 star 66.7%
4 star 33.3%
3 star 0%
2 star 0%
1 star 0%
Gary B. Price Feb 24, 2018
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book is a gem. Though not exhaustive, it covers many Groovy DSL topics with a care and a thoughtfulness that I wish was more common. Perhaps that is because the author has experience teaching young coders. Whatever the reason, as questions occurred to me, I found them almost always subsequently answered in the text. I'm not a Groovy novice, having used it for more than a year, but several times I found succinct explanations or useful tidbits that I had wondered about but never been motivated to follow up in the day-to-day work environment. In the area of DSLs specifically, the explanations of topics like Spock and Grails in a compact, approachable form were very useful to me. The author has an obvious fondness for his topic and this helps reader motivation. It seemed to me that he was speaking from the experience of having used the things he was writing about. I read this book through my company's Safari subscription.
Amazon Verified review Amazon
George Adamopoulos May 19, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I owned an electronic edition of the first edition of the book. I liked it so much even though it was dealing with Groovy 1.x that I purchased the second edition that works with 2.x
Amazon Verified review Amazon
Sidharth Masaldaan Dec 07, 2015
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
All in all, a good introduction to DSLs in the Groovy languageThe first chapter is a decent enough introduction, it serves well to setup the rest of the book. It's a nice introduction to the concepts of DSL & explains why Groovy was chosen as the language of choice.The second chapter introduces Groovy at a basic level, one change from the previous edition that I'm happy was done, was to split the language concepts in depth into a standalone chapter. In the previous edition, the 2nd chapter was a bit of a behemoth.The third chapter introduces some basic Groovy DSL that you may or may not have heard of. This gives a nice peek into Gradle & Spock & helped me correlate how they are, in fact, DSLs.The fourth & fifth chapter introduce, in this order, Groovy's concepts (you may skip this if you aren't a total beginner with Groovy), and Closures in Groovy (you could skip this as well, unless you come from a background where closures are new, in that case, don't skip it!)It's important to note that this book isn't to learn Groovy, (I'd recommend Groovy in Action, 2nd ed from Manning), the basics that you'd need are covered, but no more, and more concepts are introduced as you need them in your DSL. I'm judging it as a gateway to DSLs in Groovy & not as a gateway to Groovy the language. Your mileage may vary, of course.Chapter 6 is where we dive into our first Groovy DSL, a Twitter client. I'm a little conflicted by the example, which is well done, but I'd personally have chosen something like a Banking example, where you could showcase different domain rules & you'd have a lot of scenarios with tons of boilerplate code in Java, which could be broken down into a Groovy DSL.Chapters 7 introduce us to some patterns & advanced techniques (or Power Features, as suggested by the chapters title) that we can leverage in our DSLs. This is where I started to sort of disagree with the book. I would have preferred that a single Domain be used as the basis for our example application/DSL, wherein we build it up & make it more feature-rich, by adding the concepts into that single DSL as these concepts are introduced to us.Don't get me wrong, the examples are clear & do a great job of explaining the concept, e.g. Chapter 10, Building a Builder, has a great example of using these patterns to build a database seed builder (something I've tried to do in Java, only to have it devolve into an unholy mess)Chapter 8 again does a good job of explaining (what is a tough topic to digest for me) Abstract Syntax Trees (ASTs), I thought it was a neat, well-thought out chapter, with a nice enough example implementation of a state machine at the end.Chapter 9 shows how Groovy DSLs Spock & Grails implement features & techniques we saw earlier, this is where the book starts to win my attention back. It was nice to see how the techniques we read about earlier are used in real-world, full-fledged DSLsChapter 11 & 12 are where it really shines again, first with an example in 11 for a rules based DSL (which should have been our example application from the beginning, in my view) & then with a full-fledged game app, complete with a backing MongoDB & a web based front-end. Again, the examples are well done, the explanation is really great.Conclusion: If you have the first edition, you could give the 2nd ed a skip. A good book, but the constant switching of contexts lost me from time-to-time. If you're looking to understand how DSLs are implemented (& want to move beyond Java) this is a nice starting point.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.