JavaDevelopmentToolsets

Summary

This specification outlines the details of packaging a number of popular Java and Groovy 'coding-by-convention' development tool-sets for Ubuntu.

Release Note

Ubuntu now features a [Gradle|Spring Roo|Grails|buildr] development toolset that you can use to build your [Java|Groovy) applications.

Rationale

Ubuntu currently packages Ant and Maven 2 to support Java packaging and development; a number of other development/build tool-sets including Gradle, Spring Roo, Grails and buildr are gaining popularity in the Java/Groovy development community and we should consider packaging for Ubuntu.

User stories

  • Felix is a Java developer who is new to the Spring development toolset; he quickly and easily installs both the Spring core libraries and the Spring Roo toolset on his Ubuntu Desktop without needing to download from www.springsource.com.
  • Janice is a Java developer who is fed-up of writing realms of XML to support Maven based build processes; she quickly and easily installs buildr on her Ubuntu desktop and uses it as a drop in replacement for her existing maven based Java projects and new Java/Scala/Groovy development projects.
  • Eric is a System Administrator for an estate Hudson based continuous integration servers; his development teams have adopted a new build toolset called Gradle and he is quickly and easily able to install this on all of his Ubuntu server infrastructure to support the requirements of the development team.
  • Luke is a Groovy developer who wants to use Grails to develop his next Web 2.0 project; he quickly and easily installs Grails on his Ubuntu Desktop without having to download lots of zips from various websites.

Assumptions

None at this point in time.

Design

Grails

  • Popular Spring/Java based Web 2.0 development tool-set using the Groovy development language. Implements the 'coding-by-convention' paradigm eliminating the requirement for developers to write loads of boiler-plate/configuration allowing focus on what really adds value to an application.
  • Easy deployment of resulting .war artifacts onto Tomcat (already in main archive) for production deployment.
  • Uses gradle as a build system (see below)
  • Miguel Landaeta is working on this package in Debian.

Gradle

  • build-by-convention Groovy based build system for developing Groovy and Java applications
  • Used by Grails (see above).
  • Gradle uses gradle to build itself (supplied in the source zip file)
  • Miguel Landaeta is working on this package in Debian.

Spring Roo

  • Spring/Java based web application framework for developing Java based web applications (alternative to Grails).
  • Implements the 'coding-by-convention' paradigm
  • Miguel Landaeta is assigned the ITP for this package in Debian.
  • Maven based build process:
    • some re-bundling for other jars for OSGi compatibility
    • some dependence on non-free jars such as oracle JDBC drivers.

buildr

URL

http://buildr.apache.org/

Current release

1.4.3

Dependencies

ruby-full ruby1.8-dev libopenssl-ruby build-essential rubygems

Debian ITP

N/A

  • Ruby based build-by-convention build system for Java,Scala and Groovy.
  • Based on Rake (Ruby make)
  • Potential drop-in replacement for Maven (to be validated).
  • Distributed as a Ruby gem so may be easy to on-board to Debian and Ubuntu?

Implementation

TBC

Test/Demo Plan

TBC

Unresolved issues

TBC

BoF agenda and discussion

Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.


CategorySpec

ServerTeam/Specs/JavaDevelopmentToolsets (last edited 2010-10-21 12:53:36 by james-page)