Skip to Content.
Sympa Menu

mace-opensaml-users - Re: java-xmltooling ANT build and JUnit failures

Subject: OpenSAML user discussion

List archive

Re: java-xmltooling ANT build and JUnit failures


Chronological Thread 
  • From: Brent Putman <>
  • To:
  • Subject: Re: java-xmltooling ANT build and JUnit failures
  • Date: Wed, 13 Feb 2008 21:29:18 -0500



Clifford Johnson wrote:
To perform a "production" build for java-openws, I presently "package"
java-xmltooling and copy the xmltooling jar (and some other required
jars) into the lib directory in java-openws and perform a "package" on
java-openws.  This seems reasonable to me since java-openws is dependent
on java-xmltooling -- you'd have to do the same process for any project
dependency you are building.  (I follow a similar process for building
java-opensaml2.)

  


It is currently still necessary to copy the dependency jars (both our newly built project jar and any external dependencies of it) up into the next higher level project as you describe.  Note this includes, for the tests, some impl (static binding) of the slf4j logging facade, such as the logback one we usually use.  Another option is to logically include them in build.xml without copying.  E.g for the java-opensaml2 build.xml.

    <!-- Classpath for building core classes-->
    <path id="build-path">
        <fileset dir="${build-lib.dir}" includes="**/*.jar" />
        <fileset dir="${lib.dir}" includes="**/*.jar" />
        <fileset dir="../java-xmltooling">
            <include name="lib/**/*.jar" />
            <include name="dist/**/*.jar" />
        </fileset>
        <fileset dir="../java-openws">
            <include name="lib/**/*.jar" />
            <include name="dist/**/*.jar" />
        </fileset>

    </path>

    <!-- Classpath for testing classes-->
    <path id="test-path">
        <path refid="build-path" />
        <pathelement location="${core-classes.dir}" />
        <pathelement location="${core-src.dir}" />
        <pathelement location="${test-classes.dir}" />
        <pathelement location="${test-classes.dir}/data" />
        <pathelement location="${test-src.dir}" />
        <pathelement location="${classpathres.dir}" />
        <fileset dir="../java-xmltooling/thirdparty-lib">
            <include name="slf4j/logback-classic-0.9.8.jar"/>
            <include name="slf4j/logback-core-0.9.8.jar"/>
        </fileset>

    </path>



That approach currently lets me build all the projects and run all the tests successfully on my machine, up to and including java-opensaml2.

I have thought about trying to parameterize the above so it would be easier to just set some paths from username-build.properties (with reasonable relative path defaults in build.properties like the above paths).  However, I'm not sure what this will do to the existing build process we have been using for the Shibboleth beta, I don't want to break that.

That process actually might be of interest, since it takes care of checking out all the projects and copying dependencies around and can be used to build (ultimately) java-opensaml2.  Take a look in svn at the "java-shib-dist" project.  Checkout in a fresh working directory and run "./ant.sh (or ant.bat) opensaml".


Chad and I discussed this awhile back, and baring perhaps parameterizing something like the above, I doubt we'll make any more significant changes to the Ant build process to address dependencies, etc.  The reason is that as soon as 2.0 is released (hopefully just a few more weeks), we plan to move all the projects to a Maven build process, which will work completely differently than the current Ant process.  So spending a lot of time on it now would probably not be worth the effort.

--Brent




Archive powered by MHonArc 2.6.16.

Top of Page