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
Mex$631.99 Mex$902.99
Paperback
Mex$1128.99
Subscription
Free Trial

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
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 : 9781849519366
Category :
Languages :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Oct 22, 2013
Length: 394 pages
Edition : 1st
Language : English
ISBN-13 : 9781849519366
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 Mex$85 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 Mex$85 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total Mex$ 2,257.98
Groovy 2 Cookbook
Mex$1128.99
Groovy for Domain-Specific Languages, Second Edition
Mex$1128.99
Total Mex$ 2,257.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

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.