Olivier Lamy

Subscribe to Olivier Lamy feed
French OpenSource addict living @Melbourne, Australia. Apache committer/Member, Jenkins committer and others. Also the father of some :-) (four) beautiful kids and husband of a wonderful wife. Also a Running addict http://home.apache.org/~olamy/ http://twitter.com/olamy https://about.me/olamy A bit old and still no rolex (but a Suunto ;-) ) neither Champion of nothing neither traveling all around the world to talk about himself in conferences. But like helping Open Source users as much he can. Olivier Lamyhttps://plus.google.com/111268326109644121368noreply@blogger.comBlogger82125
Updated: 3 hours 44 min ago

What's new in the coming Gwt Maven Plugin 2.1.1

Fri, 11/26/2010 - 18:52
The coming Gwt Maven Plugin 2.1.1 will have new features.

This stuff is currently available as 2.1.1-SNAPSHOT in the codehaus repo : https://nexus.codehaus.org/content/groups/snapshots-group/

Running your application in debug mode with AppEngine Launcher


See appengine-launcher

Css Interface Generator

See Css Interface Generator

More Gwt compiler options
-compileReport, -optimize, -XsoycDetailed, -strict (see Documentation )

Compiler Report
To have link to the Gwt compiler report in your Maven generated web site
See Compiler Report

Full changelog

Do not hesitate to test and send feedback.
Thanks !

Categories: Olivier Lamy

Release Maven Gwt Plugin 2.1.0 (gwt 2.1.0 compatible)

Fri, 11/05/2010 - 10:47
Hi Folks,The gwt maven plugin version 2.1.0 has been released.The major change is to be gwt 2.1.0 compatible.
Release Notes - Maven 2.x GWT Plugin - Version 2.1.0
New Feature
  • [MGWT-181] -Add support for GWT compilers -workDir option
  • [MGWT-190] - support GWT 2.1
  • [MGWT-218] - Support for setting the -runStyle parameter for gwt:test
  • [MGWT-191] - gwt:run runs Hosted Mode instead of Dev Mode for GWT 2.1.0.M1

  • [MGWT-110] - Generated interface not identical to interface generated by GWT tooling
  • [MGWT-111] - gwt:run - Multi-module projects with custom start page not well supported
  • [MGWT-118] - GWT Compile fails with IBM JDK
  • [MGWT-129] - Multi module projects doesn't work properly in HostedMode.
  • [MGWT-142] - java.lang.NoClassDefFoundError: com/google/gwt/dev/Compiler when running plugin on Mac
  • [MGWT-147] - GWT modules with inherited entry point are never compiled
  • [MGWT-149] - generateAsync fails with ParseException (ignoring servicePattern?)
  • [MGWT-151] - skip compile when model file not contain entry point.
  • [MGWT-152] - Incorrect documenation on the Maven site
  • [MGWT-155] - Documentation on GWTTesting is incorrect/Broken link
  • [MGWT-161] - gwt-maven-plugin does not work with spaces in project location on Linux
  • [MGWT-164] - Inheriting module does not inherit its <entry-point> or <servlet> definitions
  • [MGWT-165] - scanning for .gwt.xml files doesn't take into account all source roots
  • [MGWT-171] - ServicePattern is ignored
  • [MGWT-183] - Cannot compile a module that inherits a module with entry points
  • [MGWT-186] - Generic Interface is not generated correctly
  • [MGWT-187] - "utility module" detection is incorrect
  • [MGWT-189] - .class files get copied into WEB-INF/classes without package structure
  • [MGWT-198] - AbstractGwtShellMojo hides failure information when executing the compiler process
  • [MGWT-201] - Sources directories in inherited modules are ignored
  • [MGWT-223] - i18n fails under Eclipse with m2eclipse
  • [MGWT-228] - When running with GWT 2.1.0 the plugin require gwt-dev-<platform> jars

  • [MGWT-62] - Possibly bind gwt:compile to the 'prepare-package' phase by default in 'war' projects (maven 2.1)
  • [MGWT-76] - Solution for multi module builds and hosted mode
  • [MGWT-88] - Add mergedWebXml parameter to MergeWebXmlMojo
  • [MGWT-128] - Allow specifying custom environment variables for run/debug goals
  • [MGWT-146] - Explicit setup mode setting
  • [MGWT-148] - Compile also when GWT module file has changed
  • [MGWT-154] - GenerateAsync generate files with unused imports
  • [MGWT-162] - Support for server=n
  • [MGWT-169] - support devmode for multiple modules
  • [MGWT-170] - Find source jars and add them to the classpath when executing the GWT compiler
  • [MGWT-172] - generateAsync suporting "com.google.gwt.http.client.Request" return objects
  • [MGWT-178] - No messages if a module doesn't contain entry points
  • [MGWT-180] - Add Option for bindAddress
  • [MGWT-194] - Update documentation for /war in GWT 2.0.x
  • [MGWT-195] - create documentation for 'comfortable GWT debugging'
  • [MGWT-225] - Update BCEL dependency to fix the broken pom.
  • [MGWT-188] - Update FAQ re: "NoSuchMethodError"
Have Fun !
Olivier Lamy on behalf of the The Maven Team

PS : pushing open source release is fun The famous song :-)

Categories: Olivier Lamy

Open Source song :-)

Mon, 11/01/2010 - 15:46
The famous french singer jcfrog has made a nice song on Open Source :-)
Have a look here : http://www.youtube.com/watch?v=CBHFnTlAJ4s
Check out the other one on twitter : http://www.youtube.com/watch?v=oetmdgPRyqw
I hope we will have one for ASF
Have Fun !

Categories: Olivier Lamy

Apache Maven Site Plugin 3.0-beta-3 for maven 3

Thu, 10/21/2010 - 12:13
The Maven team is pleased to announce the release of the Maven Site Plugin, version 3.0-beta-3 for Maven 3.This version is intended to be the version of the Maven Site Plugin for Maven 3.
The Site Plugin is used to generate a site for the project.
You should specify the version in the section of your project's POM:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.0-beta-3</version></plugin>
Release Notes - Maven 3.x Site Plugin - Version 3.0-beta-3

  • [MSITE-500] - Warning message about missing report plugin version shows null instead of plugin groupId:aritfactId
  • [MSITE-504] - Maven site fails to run due to non-report goals
  • [MSITE-505] - Unable to use SVN SCM wagon to upload a site
  • [MSITE-506] - Maven3 conflict with plexus-archiver
  • [MSITE-507] - report plugin doesn't have dependencies section coming from build section configuration
  • [MSITE-508] - attach-descriptor goals leaks file handlers, causing sporadic build failures when gpg tries to sign descriptor during release
  • [MSITE-512] - [Regression] Configuration of m-javadoc-p at reportSet level is not taken into account

  • [MSITE-513] - use release final maven 3.0 artifacts

Have Fun !-- Olivier Lamy on behalf of the The Maven Team

Categories: Olivier Lamy

Maven Selenium Plugin 1.1 (Maven 3 compatible)

Mon, 10/18/2010 - 10:30
Hi,The Maven Selenium Plugin 1.1 version has been released.The most important fix is the Maven 3 compatibility !
ImprovementDon't miss to update the version in your pom
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>selenium-maven-plugin</artifactId> <version>1.1</version> </plugin>
Have Fun !

Categories: Olivier Lamy

Tomcat Maven Plugin 1.1 Released

Sat, 10/09/2010 - 13:16
Tomcat Maven Plugin 1.1 has been released.
Site documentation : http://mojo.codehaus.org/tomcat-maven-plugin/.

Here the release notes :

  • [MTOMCAT-55] - Can't shutdown tomcat started with tomcat:run with fork=true
  • [MTOMCAT-57] - Secondary war files deployed with incorrect context path
  • [MTOMCAT-63] - Make isWar() check consistent with MTOMCAT-23
  • [MTOMCAT-64] - Document how to change the Embedded Tomcat Version
  • [MTOMCAT-65] - Upgrade Tomcat to 6.0.29

Have Fun !

Categories: Olivier Lamy

Hudson Maven Dependency Update Trigger : First Hudson plugin with maven 3 apis

Sun, 10/03/2010 - 09:22
I have made the first release of the Maven Dependency Update Trigger hudson plugin.
Wiki page here : http://wiki.hudson-ci.org//x/jgfDAg
This plugin will check according to the cron expression if your SNAPSHOT dependencies has been updated and (optionnaly) check if your plugins SNAPSHOT has been updated too. And trigger a build if necessary.
This is usefull if you have project dependencies not in the same hudson instance or using an other continuous integration tool.
Note this plugin use maven 3 apis to build maven projects and check dependencies.
Hudson 1.379 is required to use this plugin.

So have fun and give me feedbacks.

Categories: Olivier Lamy

Use maven 3 apis in a hudson plugin

Wed, 09/22/2010 - 22:56
Using maven 3 apis in a hudson needs to change classLoader hierarchy as hudson load some old maven artifacts in the parent classLoader.
So the solution is to use a child first classLoader.
This new classLoader has been introduced in hudson 1.378. (see HUDSON-5360).
So you can now use it to made your plugin dependencies win on hudson core classLoader.
Some steps are needed.
Configuring your hpi plugin


So now your pluginWrapper.classLoader will be of type PluginFirstClassLoader.

// pluginId is project.artifactId from your plugin pom
PluginWrapper pluginWrapper = Hudson.getInstance().getPluginManager().getPlugin( pluginId );
PluginFirstClassLoader pluginFirstClassLoader = (PluginFirstClassLoader) pluginWrapper.classLoader;

Now everthing is ready but some other tricks are needed :-)

Create a PlexusContainer (note you must use the new "plexus-guice" bridge).
This means you need the following dependency :


And very important you must exclude dependencies from the original plexus-container


To prevent this you can add an enforcer rule which will chech plexus-container-default inclusion

ensure-no-plexus-container doesn't work anymore with maven 3 librairies. you have to add some exclusions.

How to create the PlexusContainer from the PluginFirstClassLoader :

private PlexusContainer getPlexusContainer(PluginFirstClassLoader pluginFirstClassLoader) throws PlexusContainerException {
DefaultContainerConfiguration conf = new DefaultContainerConfiguration();
ClassWorld world = new ClassWorld();
ClassRealm classRealm = new ClassRealm( world, "project-building", pluginFirstClassLoader );
// olamy yup hackish but it's needed for plexus-shim which needs a URLClassLoader and PluginFirstClassLoader is not
for ( URL url : pluginFirstClassLoader.getURLs() )
classRealm.addURL( url );
LOGGER.fine( "add url " + url.toExternalForm() );
conf.setRealm( classRealm );

return new DefaultPlexusContainer( conf );

Then set the current Thread classLoader (don't miss to restore the original one in a finally statement

PlexusContainer plexusContainer = getPlexusContainer( pluginFirstClassLoader );

Thread.currentThread().setContextClassLoader( plexusContainer.getContainerRealm() );

Now you can play with maven 3 apis

ProjectBuilder projectBuilder = plexusContainer.lookup( ProjectBuilder.class );

A first sample is the plugin called : maven-dependency-update-trigger
: sources and Wiki Page (under construction :-) )
You must have a look at the dependencies used.

The plugin will check your project according to a cron expression and schedule a build if a snapshot dependency has changed (dependency and plugin).

It will be released as son as hudson 1.378 will be released.

Note : hpi:run doesn't work yet for this plugin as it needs some changes in the hpi mojo to handle the new PluginFirstClassLoader.