Speakers


Luke Daley

Principal Engineer @ Gradleware

Luke Daley

Luke Daley is a member of the Gradleware engineering team. At Gradleware Luke works on Gradle (A JVM based build automation tool) and helps teams reach new levels of project automation and quality.

Luke is the lead of the Geb project (a productivity focussed Groovy browser automation/web testing tool) project which he created in 2010. You'll also find Luke contributing to other Open Source projects such as Grails (a Groovy web development framework), Spock (a next generation testing framework for the JVM) and anything else that catches his attention.



Presentations

Geb - Very Groovy Browser Automation

Geb is a browser automation solution for Groovy. It brings together the power of WebDriver, the elegance of jQuery content selection, the robustness of Page Object modelling and the expressiveness of the Groovy language. Geb enables more expressive, more concise, and (very importantly) more maintainable web tests.

In this session we'll explore the foundations of Geb and illustrate how it uses the language features of Groovy to make web automation and testing productive and effective. After exploring the basics we'll explore Geb's rich Content DSL and discuss patterns for achieving maintainable tests. We'll also look at how it combines with Spock, the Enterprise ready testing framework, to enable low cost executable specifications that describe user behaviour, not browser details.

Next Level Spock

So you already know and love Spock, the Enterprise ready testing framework, but want to know how to make the most of it and take your testing to the next level? Then this talk is for you. Even if you're new to Spock, but are interested in making your testing more effective this talk is for you.

Spock has many hidden gems which we'll be going through in this session. We'll also be looking at some of the upcoming features in Spock 0.7 including; functionality and contract mixins, improved configurability, and several new lumps of syntax sugar.

Functionally Testing Modern Web Applications with Geb

Geb is a browser automation solution for Groovy. It brings together the power of WebDriver, the elegance of jQuery content selection, the robustness of Page Object modelling and the expressiveness of the Groovy language. Geb enables more expressive, more concise, and (very importantly) more maintainable web tests.

In this session we'll go beyond an introduction and explore how to take advantage of Geb's advanced features to functionally test modern rich, dynamic, web applications. We'll also explore some common patterns and best practices for Page Object modelling that lead to robust tests with a high level of reuse. Finally we'll discuss cross browser testing strategies and explore the options for testing mobile device targeted sites. A basic understanding of Geb is required for this session.

Managing JavaScript with Gradle

JavaScript is playing an ever increasing role in modern web applications. This is having an impact on the way be automate the building of our applications as JavaScript introduces new challenges such as magnification, unification and even compilation of languages such as CoffeeScript.

In this session we'll look at how the Gradle build tool can help you test your JavaScript and transform your raw assets into optimised, deployment ready, units.

Gradle: Next Generation Dependency Management

The Java ecosystem has a strong tradition of dependency management. This can range from structuring the use of the jars in the source to automatically fetching dependencies on demand from a remote repository. This practice has enabled new levels of automation and understanding of just what the dependencies are for a given component. However, the limitations of today's most popular tools, platforms and models are proving to be inadequate in dealing with the complex modern world of continuously delivered, polyglot, software.

In this session we'll discuss these issues, their implications and the work happening in the Gradle ecosystem to address them. Topics will include dependency variants, smart consumers, extensibility, new metadata models and bringing the kind of automated dependency management that Java developers are accustomed to to the world of C/C++ and JavaScript.

Gradle: Pushing automation to the limits

Effective companies and teams do more with less, and automation is a vital ingredient to this. As developers we are accustomed to the idea of build automation through build & continuous integration systems that compile, test & deploy our software. However, the production of software is typically only one of the concerns of a team or company. There are many auxiliary processes that can equally benefit from the rigour, repeatability and cheap labour of automation.

Gradleware - the company behind the Gradle build automation tool - has automation in its DNA, and applies it to everything that it does. In this session, we'll discuss and showcase different examples of the kind of automation the team @ Gradleware have developed to support the development of Gradle and its documentation, the online presence, user support, business processes and other aspects. The ideas discussed will invigorate participants to see new opportunities for automation in their endeavours.

Standardizing your Enterprise Build Environment with Gradle

The larger and more diverse your technology organization, the greater the value you can realize in standardizing your build and delivery process. Internal build standards make it easier for people to switch between teams, allowing you to more readily adjust your staffing to meet changing business needs. In this session we’ll walk through examples of leveraging Gradle’s extensibility and plugin mechanisms to develop standards, enforce compliance and deliver tailored out of the box functionality. We will also discuss how to provision such customisations throughout your enterprise in a controllable way.

Standards help establish the software development practices developed by your best engineers and communicate them to the rest of the company. Perhaps most importantly, they keep your developers from wasting time endlessly re-creating commodity portions of the build infrastructure that do not create value unique to the project they are building. Standardizing the right parts of the build makes for a lower-friction software development organization full of higher quality builds and happier engineers.

  • You have many company-specific standards that you would like to model across your teams.
  • You have a large number of projects with different languages, runtime platforms, and build systems. You would like to model a standard across all those projects.
  • You have tried imposing too rigid a build standard across your organization and found that it didn't work, but you still want the benefits of standardization for new and established projects alike.

Gradle Core Developer Luke Daley will show you how the Gradle build tool gives you a powerful, developer-friendly, toolkit for defining your enterprise build standards across the organization in a way that they are automatically applied to all developers without the need on their side to configure anything. Gradle adopts Maven's innovation by providing the same out-of-the-box standards for typical project types--but it doesn't stop there. The more you automate the process of software delivery, then more you end up defining your own company-specific build standards. These standards must find expression in the build tool in a native way, not as ad-hoc additions. At its heart, Gradle is not a mere provider of build standards, but a toolkit for defining your own standards as a body of tested, executable code that finds expression in a concise and idiomatic domain-specific language.

Another important aspect of an enterprise build infrastructure is provisioning the build environment. With Gradle you can avoid many scenarios where developers have to read wiki pages how to configure their local build environment. Things will just work. Furthermore the specification of the build environment is version controlled, thus making historical builds much more reproducible.

Gradle - the Innovation continues

The Gradle development team have not been taking it easy since the release of Gradle 1.0. New features and innovations are constantly being added, rough edges are being smoothed and the platform continues to expand. In this session we’ll explore the most notable additions to Gradle since the release of 1.0 and preview some of the new and exciting features just over the horizon with Gradle founder and Gradleware CEO Hans Dockter and Gradle core developer Luke Daley.

The 1.0 release was the result of many years of engineering and innovation, and its release signals an increased commitment to stability and backwards compatibility for Gradle. But Gradle will continue to evolve with a high velocity to gain new capabilities, features and increased build performance.

We’ll dig into to some of the features incorporated since the 1.0 release, such as:

  • Support for Build Migration
  • Maven import support
  • Parallel task execution
  • Improved Dependency Reporting
  • Improved access to the resolved dependency graph
  • Gradle Android Support
  • Improved test execution feedback on the command line
  • Convenient testing of Gradle upgrades via build comparison
  • Dependency injection for tasks, plugins and extensions
  • More flexible error handling (i.e. continuing on failure)
  • Improvements to the Tooling API (i.e. embedded Gradle)
  • Better scalability for large scale enterprise builds
  • And more.

We’ll also take a sneak peak at some of the upcoming features that will soon be available in Gradle and discuss strategies for keeping up to date with the latest Gradle developments to ensure you are getting the most out of your build tool.