From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1QvYhd-0000NC-Cw for garchives@archives.gentoo.org; Mon, 22 Aug 2011 17:54:25 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 70D0721C270; Mon, 22 Aug 2011 17:54:07 +0000 (UTC) Received: from mail-fx0-f53.google.com (mail-fx0-f53.google.com [209.85.161.53]) by pigeon.gentoo.org (Postfix) with ESMTP id DFD7B21C256; Mon, 22 Aug 2011 17:53:56 +0000 (UTC) Received: by fxd23 with SMTP id 23so4205329fxd.40 for ; Mon, 22 Aug 2011 10:53:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:cc:content-type; bh=N1Mj2ks22k8dZGC5E0aLjvdpEBhYiQQ82R9oRCqcRPw=; b=WP91pgnQ8c/y2NOd2uFOrPuSL5PdLCqghbh8JFT1eNPQOrocoxlu4wVDbbcD7aeq88 qrPA+wTIFZ9BMutSwrOEoA72ZnHZlDmFJGWF7R/BgEIe4qW+tXVJwQncFgWSMX1VvfE6 WdOZW/h8Jf0jiwX6b0M6hoEPzM2P2HCN1Z6f8= Received: by 10.223.98.129 with SMTP id q1mr4075322fan.38.1314035634859; Mon, 22 Aug 2011 10:53:54 -0700 (PDT) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-java@lists.gentoo.org Reply-To: gentoo-java@lists.gentoo.org MIME-Version: 1.0 Received: by 10.223.83.13 with HTTP; Mon, 22 Aug 2011 10:53:33 -0700 (PDT) From: Kasun Gajasinghe Date: Mon, 22 Aug 2011 23:23:33 +0530 Message-ID: Subject: [gentoo-java] Gentoo Maven Integration - Final Report To: gentoo-soc@lists.gentoo.org, gentoo-java@lists.gentoo.org Cc: kiorky , Serkan Kaba , Alistair Bush Content-Type: text/plain; charset=UTF-8 X-Archives-Salt: X-Archives-Hash: 94fb3caafafd49099619f31aa06d10a3 Hi all, Here's my final report for the Gentoo Maven Integration project for finishing the work under Google Summer of Code and starting move in to a voluntary position. The goal of this project is to build maven and it's huge number of dependencies from source, and then facilitate the packagers for packaging maven-based Java packages. There are two eclasses which will facilitate bootstrapping maven along with building maven-based packages, and packaging Maven plugins. These eclasses address some fundamental issues of incompatibilities between Gentoo build system and Maven build system. There were two main goals for the project. One is building maven-from-source. It is now completed and has been thoroughly tested. There are around 40+ ebuilds that are direct dependencies of Maven which were packaged/bumped during the project period. General users of maven can have the full benefit from this package now. Please file bugs at https://bugs.gentoo.org/ if you find any. The second phase was a lengthy process and the scope wasn't fit for one and half months time. But with mentors' blessing, I've made a quite a big progress and was able to emerge a minimal package built via native Maven. Let me describe the surface details of the second phase. The idea was to facilitate the packagers to package maven-based packages. This has been a long-time blocker for Gentoo-Java (which extends to more than 3-4 years). For this phase, we needed several requirements including dependency management issues and rewriting of pom.xml to match Gentoo's needs. One requirement in it was the need to have a mechanism to use the installed system jars instead of downloading the jars from maven repos. One another is that pom needs to respect the Gentoo SLOT system. Further, configuration details needed to be added to tell the JDK and JRE versions needed for building (ie need to add config bits to maven-compiler-plugin section in the pom). And, then it needs several maven plugins to build packages. There were enormous amount of plugins available that most of them need special attention separately. For the second phase, the hard part is over. And, as I said, I was able to emerge a minimal maven-based implementation. Maven isn't much cooperative when it comes to dependency management, but our solution worked well. Along with that, the first iteration of work is complete. I'm hoping to be the maintainer for Maven under Gentoo Java herd for the foreseeable future. And, I'm eagerly waiting to wear the Gentoo Developer hat one day. I'm interested in knowing the generic plan for recruiting developers who come via Summer of Code as well. There are few things to be done to bring the use of the Maven integration to it's full potential. These are more like plug-ins to the core base, and beautifying the process. I need to make new plans for these with help from Java herd. * There's only five maven plugins has been packaged. Have a fresh look at m-surefire-p. Needs to add all other plugins. * Currently, when MAVEN_PARENTPOM_UNIQUE_ID is set to rewrite node of the pom, it rewrites all the poms in the project including sub-modules. The most probable usecase is that rewrite the parent element of the top-level/aggregator pom. The configuration bits needed are already there (-w option), but the implementation needs to be done. * Merge the separate ebuilds of maven-2.2.1 maven-2.2.1 release in to one. There are around 20+ ebuilds dedicated for this. These ebuilds probably won't be needed separately so it's ok to merge these together. Need to evaluate possibility of issues of having all these together. Here are some references if you are interested in getting deeper in Maven in Gentoo. * The wiki 1 - Developer and User guide for Maven in Gentoo - https://overlays.gentoo.org/proj/java/wiki/Maven_Integration * The wiki 2 - Manpage for java-maven-2 eclass - http://overlays.gentoo.org/proj/java/wiki/Maven_Eclass_Manpage * Repository 1 - gsoc-maven-overlay - https://overlays.gentoo.org/svn/proj/java/gsoc-maven-overlay/ * Repository 2 - Branch for Javatoolkit - http://overlays.gentoo.org/proj/java/browser/projects/javatoolkit/branches/kasun/ * TracBrowser view - http://overlays.gentoo.org/proj/java/browser/gsoc-maven-overlay/ At the end of these thrilling three months full of excitement, I'd like to remind some people who helped me vastly. Forgive me if I missed someone. I was new to Gentoo, and all the help you've given was really useful. Kiorky, (the original author, who I dragged in to Summer of Code to be a mentor ;) ), and Serkan, my two mentors, has done hell of a job to push me and this project that it is today. You always had my back when I was in need. I must admit that the Gentoo Java herd, and Gentoo in general was very friendly and has promptly given me help and advice when I was in doubt. ali_bush, Sera, Chewi, and Betelgeuse; thanks for your support you have given me so far. Thanks bonsaikitten for providing server space to host some source tarballs at gentooexperimental.org. Appreciate the work you've done Donnie, and of course Gentoo Foundation and Google! Regards, --Kasun -- ~~~*******'''''''''''''*******~~~ Kasun Gajasinghe, University of Moratuwa, Sri Lanka. Blog: http://blog.kasunbg.org Twitter: http://twitter.com/kasunbg