Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Groovy 2 Cookbook
Groovy 2 Cookbook

Groovy 2 Cookbook: Java and Groovy go together like ham and eggs, and this book is a great opportunity to learn how to exploit Groovy 2 to the full. Packed with recipes, both intermediate and advanced, it's a great way to speed up and modernize your programming.

eBook
$22.99 $32.99
Paperback
$54.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 2 Cookbook

Chapter 2. Using Groovy Ecosystem

In this chapter, we will cover:

  • Using Java classes from Groovy

  • Embedding Groovy into Java

  • Compiling Groovy code

  • Simplifying dependency management with Grape

  • Integrating Groovy into the build process using Ant

  • Integrating Groovy into the build process using Maven

  • Integrating Groovy into the build process using Gradle

  • Generating documentation for Groovy code

  • Checking Groovy code's quality with CodeNarc

Introduction


In this chapter, we will introduce the Groovy ecosystem: compilation, embedding, building, documentation, and analysis options that various, tools surrounding, Groovy offer to make your life smoother.

In the first three recipes, we will demonstrate how simple Java and Groovy interoperability is and what makes Groovy the perfect tool in a Java developer's hands. The following recipes will describe external dependency management possibilities and the most popular build tools (for example, Ant, Maven, and Gradle) integration options. Then there will be a recipe devoted to Groovydoc, which can be used to generate documentation for your sources. Finally, the last recipe will introduce a way to verify your Groovy code quality.

Using Java classes from Groovy


The Groovy language is designed in a way that it fully supports the Java syntax (there are only few minor exceptions; for example, do..while is not supported in Groovy). Most of the code that you can write in Java can automatically be considered Groovy code as well.

In this recipe, we will learn how simple it is to use existing Java classes and libraries from your Groovy code and we will explore some basic language features that makes Groovy—groovy!

How to do it...

This recipe has a rather simple setup. You can either start up the groovyConsole, as described in the Starting groovyConsole to execute Groovy snippets recipe in Chapter 1, Getting Started with Groovy, or you can create a new file with the *.groovy extension.

  1. In the groovyConsole type the following code:

    import java.io.File;
    File currentDir = new File(".");
    System.out.println("Current directory: " + currentDir.getAbsolutePath());
    File[] files = currentDir.listFiles();
    for (File file: files) {
      System...

Embedding Groovy into Java


There are plenty of scripting languages available at the moment on the JVM. Some of them only offer expression language support for data binding and configuration needs, for example, MVEL (http://mvel.codehaus.org/) and SpEL (Spring Expression Language, http://www.springsource.org/documentation). Others provide a fully featured programming language. Examples of these are JRuby, Jython, Clojure, Jaskell, and of course, Groovy.

In this recipe, we will show you how to benefit from Groovy scripting from within your Java application.

Getting ready

To embed Groovy scripts into your Java code base, first of all, you need to add groovy-all-2.x.x.jar library to your class path. Or if you are using Java 7 and want to take advantage of the invokedynamic optimization, you should add groovy-all-2.x.x-indy.jar instead (see also the Running Groovy with invokedynamic support recipe in Chapter 1, Getting Started with Groovy).

These libraries are located inside the Groovy distribution...

Compiling Groovy code


Groovy scripts are normally executed by running the groovy command from the console; for example:

groovy someScript.groovy

The groovy command generates the JVM bytecode on the fly and immediately executes it. There are scenarios in which the Groovy code is required to be compiled to bytecode as a *.class file. A typical case is when Java and Groovy code have to be used side-by-side for building a mixed Groovy/Java application.

Groovy has an answer to that by offering a compiler command, groovyc (similarly to Java's javac), that can also be invoked from the command line or through a build tool such as Ant (see the Integrating Groovy into the build process using Ant recipe), Maven (see the Integrating Groovy into the build process using Maven recipe), or Gradle (see the Integrating Groovy into the build process using Gradle recipe).

In this recipe, we are going to show you the principal purposes of the groovyc command.

Getting ready

The best way to show the Groovy compiler...

Simplifying dependency management with Grape


Your nicely written and useful script can solve many interesting problems with the help of third-party libraries, and as long as it resides on your machine and has all the dependencies in place, it will work perfectly. However, at the point when you need to share it with your colleagues or community, you will realize that small and concise code requires several megabytes of additional libraries to be passed together with the script in order to make it work. Luckily, Groovy has a solution for that called Grape.

In this recipe, we will show you how to declare and automatically load Groovy script dependencies with the help of the wonderful Grape tool, which is integrated into Groovy.

Getting ready

Grape stands for the Groovy Adaptable (Advanced) Packaging Engine, and it is a part of the Groovy installation. Grape helps you download and cache external dependencies from within your script with a set of simple annotations.

How to do it...

If, in your script...

Integrating Groovy into the build process using Ant


Apache Ant (http://ant.apache.org/) was one of the first build tools that appeared within the Java ecosystem, and it is still widely used by many organizations around the globe.

In this recipe, we will cover how to compile and test a complete Groovy project using Apache Ant. At the end of the recipe, we will show you how to use Groovy from within Ant to add scripting to a build task.

Getting ready

For demonstrating the build tool integration, let's create the following folders and files:

src/main/groovy/org/groovy/cookbook
    DatagramWorker.groovy
    MessageReceiver.groovy
    MessageSender.groovy
src/test/groovy/org/groovy/cookbook
    MessageProcessingTest.groovy

The aim of the project is to create a very simple UDP client/server and accompany it with a unit test.

The base class for the server and the client, DatagramWorker, has the following code:

abstract class DatagramWorker {

  byte[] buffer = new byte[256]
  DatagramSocket socket =...

Integrating Groovy into the build process using Maven


Apache Maven (http://maven.apache.org/) is a software project build tool that uses the POM (Project Object Model) to describe project artifacts, dependencies, and rules in a declarative form.

Apache Maven was an important milestone in Java build tool evolution. Together with important features such as organized dependency management and declarative build scripts, it also brought a variety of standards and conventions that have been widely adopted by the Java community, even if Maven itself is not used.

In this recipe, we are going to look into how to compile, test, and run a fully blown Groovy project using the Apache Maven build tool.

Getting ready

We are going to re-use the same Groovy project presented in the Integrating Groovy into the build process using Ant recipe. We also assume that you are familiar with Apache Maven and that it is installed on your machine and is ready for use. The steps of this recipe were tested against Maven...

Integrating Groovy into the build process using Gradle


Gradle (http://www.gradle.org/) is a build and automation tool written in Java/Groovy, which makes use of a Groovy-based DSL for defining declarative and imperative build scripts. Gradle brings a lot of innovation into the Java/Groovy build tool space, and at a fast pace is replacing other popular tools. At the same time, it builds upon the best practices and foundations of those tools, such as project conventions standardization and dependency management.

In this recipe, we will demonstrate how Gradle can simplify the compilation and testing of a complete Groovy project.

Getting ready

We will build the same example Groovy project defined in the Integrating Groovy into the build process using Ant recipe. We assume that you have at least some familiarity with Gradle, and it is already installed on your system. Otherwise, you can refer to the installation page (http://www.gradle.org/docs/current/userguide/installation.html) of the Gradle...

Generating documentation for Groovy code


All Java developers are familiar with Javadoc comment style and the javadoc command-line tool, which is well integrated into all major IDEs and build tools.

Unfortunately, you will not be able to run the javadoc tool against Groovy source code, just because javadoc does not recognize the Groovy language syntax - unless your Groovy classes or scripts are written in Java. This is why Groovy has a tool, which for obvious reasons is called Groovydoc. It shares a lot of features with its predecessor but also has some significant differences. For example, groovydoc does not implement the Doclet extension feature, which was used mainly for code generation but since the introduction of annotations in Java 5, its usage has decreased dramatically. Also, unlike javadoc, which is a standalone executable originally written in C++ with its extension points (that is, Doclets) written in Java, Groovydoc's core functionality is fully implemented in Groovy and is available...

Checking Groovy code's quality with CodeNarc


As soon as you finish writing your first Groovy scripts or classes, you will probably start wondering how Groovy pros write their code and what are the best practices they are using. One way would be to learn by peeking at the best Groovy code bases (for example, Groovy itself: https://github.com/groovy/groovy-core/tree/master/src/main/groovy). Another way can be using code analysis tools that let you catch common coding mistakes that are already well-known in the community.

In the Java language world, there are many open source static code analysis tools such as PMD (Project Mess Detector) (http://pmd.sourceforge.net/), Checkstyle (http://checkstyle.sourceforge.net/), FindBugs (http://findbugs.sourceforge.net/), and so on. There are also many commercial products and IDEs that support various types of Java source code analysis.

In that regard, Groovy is less rich, though it has one library called CodeNarc (http://codenarc.sourceforge.net). The library...

Left arrow icon Right arrow icon

Key benefits

  • Simple and more advanced recipes to cover a broad number of topics and challenges
  • With scores of practical examples, this book will help you to build efficient, flexible, and well-integrated systems
  • Solve everyday programming problems with the elegance and simplicity of Groovy 2

Description

Get up to speed with Groovy, a language for the Java Virtual Machine (JVM) that integrates features of both object-oriented and functional programming. This book will show you the powerful features of Groovy 2 applied to real-world scenarios and how the dynamic nature of the language makes it very simple to tackle problems that would otherwise require hours or days of research and implementation. Groovy 2 Cookbook contains a vast number of recipes covering many facets of today's programming landscape. From language-specific topics such as closures and metaprogramming, to more advanced applications of Groovy flexibility such as DSL and testing techniques, this book gives you quick solutions to everyday problems. The recipes in this book start from the basics of installing Groovy and running your first scripts and continue with progressively more advanced examples that will help you to take advantage of the language's amazing features. Packed with hundreds of tried-and-true Groovy recipes, Groovy 2 Cookbook includes code segments covering many specialized APIs to work with files and collections, manipulate XML, work with REST services and JSON, create asynchronous tasks, and more. But Groovy does more than just ease traditional Java development: it brings modern programming features to the Java platform like closures, duck-typing, and metaprogramming. In this new book, you'll find code examples that you can use in your projects right away along with a discussion about how and why the solution works. Focusing on what's useful and tricky, Groovy 2 Cookbook offers a wealth of useful code for all Java and Groovy programmers, not just advanced practitioners.

Who is this book for?

This book is for Java developers who have an interest in discovering new ways to quickly get the job done using a new language that shares many similarities with Java. The book's recipes start simple, therefore no previous Groovy experience is required to understand the code and the explanations accompanying the examples.

What you will learn

  • Use Groovy with different IDEs and Operating Systems
  • Integrate Groovy with Java and understand the peculiar features of the language
  • Work with files of different formats, like PDF, Excel, and Zip
  • Manipulate XML and work with JSON
  • Access databases using the elegant Groovy API
  • Unleash the power of asynchronous programming using the advanced features of the GPars API
  • Learn how to use Groovy to test your Java code and other testing techniques
  • Master the metaprogramming capabilities of the language and learn how to write Domain Specific Languages

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Oct 22, 2013
Length: 394 pages
Edition : 1st
Language : English
ISBN-13 : 9781849519373
Category :
Languages :

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 : Oct 22, 2013
Length: 394 pages
Edition : 1st
Language : English
ISBN-13 : 9781849519373
Category :
Languages :

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 $ 109.98
Groovy 2 Cookbook
$54.99
Groovy for Domain-Specific Languages, Second Edition
$54.99
Total $ 109.98 Stars icon

Table of Contents

10 Chapters
Getting Started with Groovy Chevron down icon Chevron up icon
Using Groovy Ecosystem Chevron down icon Chevron up icon
Using Groovy Language Features Chevron down icon Chevron up icon
Working with Files in Groovy Chevron down icon Chevron up icon
Working with XML in Groovy Chevron down icon Chevron up icon
Working with JSON in Groovy Chevron down icon Chevron up icon
Working with Databases in Groovy Chevron down icon Chevron up icon
Working with Web Services in Groovy Chevron down icon Chevron up icon
Metaprogramming and DSLs in Groovy Chevron down icon Chevron up icon
Concurrent Programming in Groovy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.2
(12 Ratings)
5 star 41.7%
4 star 50%
3 star 0%
2 star 0%
1 star 8.3%
Filter icon Filter
Top Reviews

Filter reviews by




Jess Feb 06, 2014
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I haven't read any of the other Groovy/Grails cook or recipe books but I was impressed by this one. Compared to the Intro books that I've read, it is much quicker to come up to speed on topics quickly. The book is almost 400 pages but you don't feel like you need to get to 400 to be able to do anything interesting (and let's face it, by the time you reach page 400 you've already forgotten the first 200).It is well organized and well edited covering a wide range of topics that you might not find elsewhere. For example, I liked the discussion of integration with a few of the build tools (Gradle, Ant, Maven, etc) and the commentary that comes along with them. I'm not a professional Java developer and while I've heard of these tools they're use in practice has always been pretty vague to me. Books like these are good for learning the patterns that professional developers pick up in practice on a day to day basis. What the authors choose to include is useful in addition to what they have to say on the topics for example.
Amazon Verified review Amazon
Pierluigi Vernetto Mar 20, 2014
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The authors are clearly seasoned IT professionals, they teach you the most advanced features of Groovy with great competence and neatness. Particularly appreciated the chapter on the DSL, on AST and dynamic behavior definition. The examples are clear and terse, and the book can be read front to cover without being boring at any time. I have gained more knowledge from this book than from any other book on Groovy I have read before (Groovy for DSL, Groovy in Action)
Amazon Verified review Amazon
S. Saxon Aug 28, 2014
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This is a really good introduction to Groovy. Was able to start this on a flight from Orange County to Seattle, and by the time I arrived I was already productive thanks to the good coverage of the basics early on, and the cookbook examples which cover many scenarios from JSON processing, web requests and more.The best thing about this format was, I could skip chapters for topics that weren't immediately relevant. Kudos to the authors for making that possible.There were several typos, which was a little jarring, but it was always pretty obvious what the authors meant.
Amazon Verified review Amazon
Chris Malan Feb 13, 2014
Full star icon Full star icon Full star icon Full star icon Full star icon 5
First of all, where I come from: I've been using Groovy in Grails web applications for some years. Once in a while I create a Groovy script to work out things, like how much rice the king's chessboard contained. So, I'm not a total Groovy newbie, but I only use the subset of Groovy needed for Grails.The title says "cookbook", but this book goes beyond that. It explains Groovy principles in greater depth than I expected a cookbook would do, but not in the same depth as, for example Groovy in Action, Second Edition, which is also close to 400 pages longer. This means it's accessible to Groovy users with only a small to moderate knowledge of Groovy. One does not expect a cookbook to cover all the intricacies of the subject it deals with and can't fault a cookbook style book for this. The page count also comes in at under 400, that's including an index which looks quite detailed. This is a nice length.Like one reviewer said, this book also shows one how to use libraries which are available to do many very useful things. Personally I didn't know of most of these libraries. This, alone, goes a long way in making this book worthwhile.The language is clear, simple and straightforward. Nobody will have any problems there.The recipes, which is what a cookbook is all about, are more or less useful, depending on what one wants and needs. How they work is explained in detail after each recipe. Of course, it's not to say that if one has no use for something now, one won't have any use for it in the future.My advice is to read it in some e-book reader and put in bookmarks as you go. I'm going to go through it again using Calibre. You will definitely come back to it from time to time.The probability that anyone programming in Groovy will be very happy with this book is very high.
Amazon Verified review Amazon
Nathan Maynes Feb 05, 2014
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I found this book an excellent resource for my work writing groovy scripts. I deal with legacy code and data sources in my job capacity and am constantly updating Groovy, Java and PL/SQL scripts to make them more efficient and maintainable. This book offers plenty of examples of common on-the-job scenarios where Groovy would be appropriate.The book has many examples with Groovy as a standalone language. There are a few examples of using Groovy and common ecosystem frameworks/ tools but they are very basic and deal largely with set up. If you are looking for a book that will give you examples of how to use Groovy in a framework like Grails, be aware the scope of the book does not cover Grails and Groovy.I use this book as a quick reference guide for on the job scripting. Its examples provide a solid starting point for many common tasks and also help with Groovy version migration. I would recommend this book to any person who deals with Groovy on a regular basis as it will help you learn to make your code more Groovy while leaving it maintainable.
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.