The Source for Java Technology Collaboration
User: Password:



Kohsuke Kawaguchi

Kohsuke Kawaguchi's Blog

Hudson 1.122 and build/test matrix

Posted by kohsuke on July 27, 2007 at 03:04 PM | Comments (1)

I just released a new version of Hudson (1.122.) Along with the usual bug fixes and improvements, this version includes one note-worthy feature, which is what I call "matrix project."

Here's how this new job type is typically useful. Let's say you are developing the JAX-WS RI. This project needs its tests to run on many different environments. We need to test on Solaris, Linux, and Windows. We need to test with Glassfish, Tomcat, and Jetty. We need to test with JDK5 and JDK6. We need to test with two kinds of different StAX implementations. If you test all possible combinations, you have 36 different combinations. With free-style software project, you need to set up 36 different jobs that are almost identical to each other. This is clearly unmaintainable.

Matrix project is designed to handle situations like this. It lets you set up a single configuration with user-defined parameters, and when you tell Hudson to build it, it will build all the possible combinations of parameters and aggregate results for easier comprehension.

In addition to testing, this job type should be also useful for building a software project for multiple target platforms. For example, products like Glassfish need to be built on different target platforms to produce native binaries.

This is still a preliminary feature, so do expect some unpolished UIs/features and rough edges, but I do plan on improving this area, and your feedback would be always welcome.


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first)

  • hi! I received an error "unrecognized parameter -Xboolean-getter" when I'm running my pom.xml.
    here is the trace:

    [INFO] XJC compile
    [INFO] build id of XJC is 2.0.2-b01-fcs
    [INFO] failure in the XJC task. Use the Ant -verbose switch for more details
    [INFO] ------------------------------------------------------------------------
    [ERROR] FATAL ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] unrecognized parameter -Xboolean-getter
    [INFO] ------------------------------------------------------------------------
    [INFO] Trace
    unrecognized parameter -Xboolean-getter
    at com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:409)
    at com.sun.tools.xjc.XJC2Task.doXJC(XJC2Task.java:397)
    at com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:332)
    at com.sun.tools.xjc.maven2.XJCMojo.execute(XJCMojo.java:310)
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:420)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.jav
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:330)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:123)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
    Caused by: com.sun.tools.xjc.BadCommandLineException: unrecognized parameter -Xboolean-getter
    at com.sun.tools.xjc.Options.parseArguments(Options.java:664)
    at com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:407)
    ... 21 more
    --- Nested Exception ---
    com.sun.tools.xjc.BadCommandLineException: unrecognized parameter -Xboolean-getter
    at com.sun.tools.xjc.Options.parseArguments(Options.java:664)
    at com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:407)
    at com.sun.tools.xjc.XJC2Task.doXJC(XJC2Task.java:397)
    at com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:332)
    at com.sun.tools.xjc.maven2.XJCMojo.execute(XJCMojo.java:310)
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:420)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.jav
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:330)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:123)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 17 seconds
    [INFO] Finished at: Mon Aug 13 18:21:05 EEST 2007
    [INFO] Final Memory: 10M/19M
    [INFO] ------------------------------------------------------------------------


    but when I ran "xjc -cp booleangetter-1.0.jar -Xboolean-getter sample.xsd", it's working.
    here is an extract of my pom.xml:

    plugin
    groupId:com.sun.tools.xjc.maven2:groupId>
    artifactId:maven-jaxb-plugin:artifactId
    executions
    execution
    id:book:id
    goals
    goal:generate:goal
    :goals
    configuration>
    ${basedir}/src/main/resources/catalog.xml:catalog> -->
    includeBindings
    includeBinding:**/allDocuments.xjb:includeBinding
    :includeBindings
    includeSchemas
    includeSchema:**/*.xsd:includeSchema
    :includeSchemas

    args:-Xboolean-getter:args
    :configuration
    :execution
    :executions
    configuration
    schemaDirectory:src/main/resources:schemaDirectory
    strict:true:strict
    extension:true:extension
    verbose:true:verbose
    :configuration
    :plugin
    .....
    dependency
    groupId:jaxb2_commons:groupId
    artifactId:booleangetter:artifactId
    version:1.0:version
    :dependency


    my jar (booleangetter-1.0.jar) is located to the directory .m2\repository\jaxb2_commons\booleangetter\1.0
    . I don't know that is wrong. Thank you.

    Posted by: mhadjis on August 13, 2007 at 09:25 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds