Resolving XSD's using Ivy - ant

Forgive the double post but I am keen on an answer to this.
I would like some advice as to the approach I am taking. I am using Ivy for dependency management and am able to download and use all my jar files no issues. I would like to also run the <schemavalidate> task in Ant and would like to use Ivy to download the xsd's and dtd's as specified, thereby eliminating the need for a network connection after the initial download and also reducing my build time. I think I have a solution but wanted to run it
by some extra eyes for a sanity check and suggestions for possible improvements. Below is the relevant parts of my build scripts. The first call to retrieve uses my default ivysettings.xml and second call uses a settings file specific for retrieving xsd's and dtd's. Any feedback would be appreciated.
build.xml:
<project etc>
...
<target name="resolve" description="Retrieve dependencies with ivy">
<ivy:retrieve refresh="true"
sync="true"
conf="compile,war,runtime,test,findbugs"
pattern="${ivy.lib.dir}/[conf]/[artifact]-[revision].[ext]"/>
<ivy:settings id="xsd.settings"
file="${search.server.home}/ivysettings-xsd.xml"/>
<ivy:retrieve settingsref="xsd.settings"
refresh="false"
sync="false"
conf="xmlentities"
pattern="${ivy.lib.dir}/[conf]/[artifact].[ext]"/>
</target>
...
</project>
ivy.xml:
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<dependencies>
<!-- Jar files defined here but removed for brevity -->
...
<dependency org="beans" name="spring-beans" rev="3.0" conf="xmlentities->default">
<artifact name="spring-beans" type="xsd"/>
</dependency>
<dependency org="context" name="spring-context" rev="3.0" conf="xmlentities->default">
<artifact name="spring-context" type="xsd"/>
</dependency>
<dependency org="mvc" name="spring-mvc" rev="3.0" conf="xmlentities->default">
<artifact name="spring-mvc" type="xsd"/>
</dependency>
<dependency org="tool" name="spring-tool" rev="3.0" conf="xmlentities->default">
<artifact name="spring-tool" type="xsd"/>
</dependency>
<dependency org="util" name="spring-util" rev="3.0" conf="xmlentities->default">
<artifact name="spring-util" type="xsd"/>
</dependency>
<dependency org="javaee" name="javaee" rev="5" conf="xmlentities->default">
<artifact name="javaee_5" type="xsd"/>
<artifact name="web-app_2_5" type="xsd"/>
<artifact name="javaee_web_services_client_1_2" type="xsd"/>
<artifact name="jsp_2_1" type="xsd"/>
</dependency>
<dependency org="xmlschema" name="xmlschema" rev="2001" conf="xmlentities->default">
<artifact name="XMLSchema" type="xsd"/>
<artifact name="xml" type="xsd"/>
</dependency>
</dependencies>
</ivy-module>
ivysettings-xsd.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ivysettings>
<settings defaultResolver="namespaces"/>
<resolvers>
<chain name="namespaces" returnFirst="true">
<url name="w3-org-ns" checksums="">
<artifact pattern="http://www.w3.org/2001/[artifact].[ext]"/>
</url>
<url name="javaee-ns" checksums="">
<artifact pattern="http://java.sun.com/xml/ns/javaee/[artifact].[ext]"/>
</url>
<url name="spring-ns" checksums="">
<artifact pattern="http://www.springframework.org/schema/[organisation]/[artifact].[ext]"/>
</url>
</chain>
</resolvers>
</ivysettings>
Ben

Interesting problem. Caching the Schema files enables off-line validation.
As Tom stated I think only a single retrieve is needed. (My example fetches both jars and schema files)
<ivy:retrieve pattern="${lib.dir}/[conf]/[artifact]-[revision].[ext]"/>
I've offered some changes to the ivy and settings files.
ivy.xml
I've used ivy extra attributes to assist with the generation of the Spring Schema URLs:
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info organisation="com.myspotontheweb.demo" module="spring"/>
<configurations defaultconfmapping="compile->default">
<conf name="compile" description="Compile dependencies"/>
<conf name="schemas" description="XML schema files"/>
</configurations>
<dependencies>
<!-- Compile depedencies -->
<dependency org="org.springframework" name="spring-core" rev="3.0.6.RELEASE"/>
<!-- Schema dependencies -->
<dependency org="org.springframework" name="schemas" rev="3.0" conf="schemas->default">
<artifact name="spring-beans" e:framework="beans" type="xsd"/>
<artifact name="spring-context" e:framework="context" type="xsd"/>
<artifact name="spring-mvc" e:framework="mvc" type="xsd"/>
<artifact name="spring-tool" e:framework="tool" type="xsd"/>
<artifact name="spring-util" e:framework="util" type="xsd"/>
</dependency>
<dependency org="com.sun.java" name="schemas" rev="5" conf="schemas->default">
<artifact name="javaee_5" type="xsd"/>
<artifact name="web-app_2_5" type="xsd"/>
<artifact name="javaee_web_services_client_1_2" type="xsd"/>
<artifact name="jsp_2_1" type="xsd"/>
</dependency>
<dependency org="org.w3" name="schemas" rev="2001" conf="schemas->default">
<artifact name="XMLSchema" type="xsd"/>
<artifact name="xml" type="xsd"/>
</dependency>
</dependencies>
</ivy-module>
ivysettings.xml
Configure ivy to use Maven repositories by default. Use a modules declaration to route the special schema modules to your URL resolvers.
<ivysettings>
<settings defaultResolver="maven-repos"/>
<resolvers>
<chain name="maven-repos">
<ibiblio name="central" m2compatible="true"/>
..
Other Maven repositories go here
..
</chain>
<url name="spring-schemas">
<artifact pattern="http://www.springframework.org/schema/[framework]/[artifact].[ext]"/>
</url>
<url name="javaee-schemas">
<artifact pattern="http://java.sun.com/xml/ns/javaee/[artifact].[ext]"/>
</url>
<url name="w3-schemas">
<artifact pattern="http://www.w3.org/2001/[artifact].[ext]"/>
</url>
</resolvers>
<modules>
<module organisation="org.springframework" name="schemas" resolver="spring-schemas"/>
<module organisation="com.sun.java" name="schemas" resolver="javaee-schemas"/>
<module organisation="org.w3" name="schemas" resolver="w3-schemas"/>
</modules>
</ivysettings>

Related

Ivy: Fetching Javadocs and Sources

I'm fairly new to Ivy, but have gotten it to work with jar dependencies. The problem is trying to set it up, so I can fetch javadocs and sources independently of jars.
I have a simple test project, but no matter what I'm doing, I'm fetching the jar with the class files in it.
I have the following ivy.xml file:
<ivy-module version="1.0">
<info
organisation="com.vegicorp"
module="test"
revision="1.0"
status="release"/>
<configurations>
<conf name="default" visibility="public" extends="runtime,master"/>
<conf name="master" visibility="public"/>
<conf name="compile" visibility="public"/>
<conf name="provided" visibility="public"/>
<conf name="runtime" visibility="public" extends="compile"/>
<conf name="test" visibility="private" extends="runtime"/>
<conf name="system" visibility="public"/>
<conf name="sources" visibility="public"/>
<conf name="javadoc" visibility="public"/>
<conf name="optional" visibility="public"/>
</configurations>
<dependencies>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="compile->default"/>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="sources->default">
<artifact name="commons-logging" type="sources" ext="jar"/>
</dependency>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="javadoc->default">
<artifact name="commons-logging" type="javadoc" ext="jar"/>
</dependency>
</dependencies>
</ivy-module>
And the following build.xml:
<project name="ivy-test" default="default" basedir="."
xmlns:ivy="http://ant.apache.org/ivy">
<property name="ivy.dir" value="${basedir}/ivy.dir"/>
<import file="${ivy.dir}/ivy.tasks.xml"/>
<property name="target.dir" value="${basedir}/lib"/>
<target name="-resolve">
<ivy:resolve/>
</target>
<target name="clean">
<delete dir="${target.dir}"/>
<ivy:cleancache/>
</target>
<target name="default"
depends="-resolve">
<fail message="ivy.conf is not defined">
<condition>
<not>
<isset property="ivy.conf"/>
</not>
</condition>
</fail>
<delete dir="${target.dir}"/>
<mkdir dir="${target.dir}"/>
<ivy:retrieve conf="${ivy.conf}"
pattern="${target.dir}/[artifact]-[revision].[ext]"/>
</target>
</project>
At the command line, I'll type:
$ ant -Divy.conf=compile
And, that should download the jarfile with the classes.
However if I type it this:
$ ant -Divy.conf=sources
I want the jar file that contains the sources and not the classes, and when I type this:
$ ant -Divy.conf=javadoc
I want the jar file that contains the javadoc and not the sources.
I'm pretty sure it's my ivy.xml that's not quite right. I originally tried this:
<dependencies>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1">
<artifact name="commons-logging" type="jar" ext="jar" conf="compile->default"/>
<artifact name="commons-logging" type="sources" ext="jar" conf="sources->default"/>
<artifact name="commons-logging" type="javadoc" ext="jar" conf="javadoc->default"/>
</dependency>
That downloaded the jar, the sources, and javadoc, but all at once no matter which configuration I tried.
Okay, I think I've figured it out. I was over thinking this whole process. My <dependencies> section should look like this:
<dependencies>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"
conf="javadoc->javadoc;sources->sources;compile->default"/>
</dependencies>
This maps my javadoc to Maven's javadoc and my sources to Maven's sources. When I mapped conf="sources->default", it was mapping my sources to Maven's default which is the compile dependencies.
I can specify all the configurations in one line, and I don't need separate <artifact> entities.

Using status in IVY, works for the "less stable one" (ie integration), not for the other (ie milestone and release)

I am trying desperately to have this working. I've spent the whole day on it and can't find what's wrong.
It seems that IVY can resolve only the "less stable status" in the statuses list, ie for the default ones, only integration not milestone or release.
This is a test ant file.
<project name="helicopter" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<ivy:settings file="ivysettings.xml" id="ivy.instance"/>
<!-- the call to resolve is not mandatory, retrieve makes an implicit call if we don't -->
<ivy:resolve file="ivy.xml" />
<ivy:retrieve type="swc" pattern="../libs/bin/[module]-[revision].[ext]" />
<ivy:retrieve type="src" pattern="../libs/src/[module]-[revision].[ext]" />
</project>
This is the ivysettings.xml
<?xml version="1.0" encoding="UTF-8"?>
<ivysettings>
<settings defaultResolver="local" />
<resolvers>
<filesystem
name="local"
checkmodified="true">
<artifact pattern="C:/repository/[organisation]/[module]/[revision]/[artifact].[ext]" />
</filesystem>
</resolvers>
</ivysettings>
And this is the ivy.xml
<ivy-module
version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
>
<info
organisation="com.org"
module="moduleA"
status="integration"
/>
<publications>
<artifact type="swf" ext="swf" />
<artifact type="src" ext="src.zip" />
</publications>
<dependencies>
<dependency org="com.org" name="moduleB" rev="latest.integration">
<artifact name="moduleB" type="swc" ext="swc" />
<artifact name="moduleB" type="src" ext="src.zip" />
</dependency>
</dependencies>
</ivy-module>
And the moduleB ivy.xml in the repository (folder)
<info organisation="com.org" module="moduleB" revision="0.0.5.0" status="integration" publication="20111201174403"/>
<publications>
<artifact type="swc" ext="swc"/>
<artifact type="src" ext="src.zip"/>
</publications>
<dependencies>
</dependencies>
So this will work, the moduleB will be downloaded all right.
Now if I edit the ivy.xml to get the latest.milestone
<info
organisation="com.org"
module="moduleA"
status="integration"
/>
<publications>
<artifact type="swf" ext="swf" />
<artifact type="src" ext="src.zip" />
</publications>
<dependencies>
<dependency org="com.org" name="moduleB" rev="latest.milestone">
<artifact name="moduleB" type="swc" ext="swc" />
<artifact name="moduleB" type="src" ext="src.zip" />
</dependency>
</dependencies>
</ivy-module>
and edit the ivy.xml of my published moduleB (so editing in the repository folder) to be of status milestone
<info organisation="com.org" module="moduleB" revision="0.0.5.0" status="milestone" publication="20111201174403"/>
<publications>
<artifact type="swc" ext="swc"/>
<artifact type="src" ext="src.zip"/>
</publications>
<dependencies>
</dependencies>
it won't work, the artifact won't be found, although listed
:: problems summary ::
:::: WARNINGS
module not found: com.org#moduleB;latest.milestone
==== local: tried
-- artifact com.org#moduleB;latest.milestone!moduleB.src.zip(src):
C:/repository/com.org/moduleB/revision]/moduleB.src.zip
[0.0.5.0 (MD)]
-- artifact com.org#moduleB;latest.milestone!moduleB.swc:
C:/repository/com.org/moduleB/[revision]/moduleB.swc
[0.0.5.0 (MD)]
Now the FUN PART!
Before using the defaults statuses from IVY I used mine.
It had the exact same behavior (that's why I tried the defaults one then).
The fun bits is that if I had
<statuses default="status-dev">
<status name="status-stable" integration="false"/>
<status name="status-test" integration="false"/>
<status name="status-dev" integration="true" />
</statuses>
The only latest.[status] working will be for status-dev.
Now if I change the status order to
<statuses default="status-dev">
<status name="status-stable" integration="false"/>
<status name="status-dev" integration="true" />
<status name="status-test" integration="false"/>
</statuses>
The only one working will be status-test.
I' puzzled here... :/
Thanks for any help you could provide.
Cheers,
Xavier
I have created a basic project showing the weird behavior.
moduleB is the module being published.
moduleA is the module getting moduleB as a dependency.
Please update the path to the local repository in both ivysettings file
The link to download the file
https://rapidshare.com/files/1326835940/test_ivy.zip
Wow, that looks like a very strange overloading of the dependency construct. I would stick with a simpler ivy.xml, with a single dependency upon moduleB. Just change the rev attribute at runtime using a property file. That is, coalesce all of your dependencies into:
<dependency org="com.org" name="moduleB" rev="${dependency.rev.moduleB}"
conf="build-release->default;build-milestone->default;build-devs->default">
<artifact name="shared" type="swc" ext="swc" />
<artifact name="shared" type="src" ext="src.zip" />
</dependency>
You can even supply a default value to the property (for IvyDE, for example) in your ivy-settings.xml:
<property name="dependency.rev.moduleB"
value="latest.integration"
override="false"/>
Also, you'll want to edit your ivysettings.xml to include a pattern for the repository to find ivy.xml files:
<resolvers>
<filesystem
name="local"
checkmodified="true">
<artifact pattern="C:/repository/[organisation]/[module]/[revision]/[artifact].[ext]" />
<ivy pattern="C:/repository/[organisation]/[module]/[revision]/ivy.xml" />
</filesystem>
</resolvers>

Apache Ivy multiproject dependency declaration

I have 2 projects, but Apache Ivy is not able to detect dependency from one to other (I am doing something wrong, but I am not able to see what it is)
2 projects are in separate top level dirs as below
chainedresolvers-project
dep-project
project1 ivy
<ivy-module version="1.0">
<info organisation="myreports" module="chained-resolvers" status="integration"/>
<publications>
<artifact name="myapp" type="jar" conf="default" />
</publications>
<dependencies>
<dependency org="commons-lang" name="commons-lang" rev="2.0" conf="default"/>
<dependency name="test" rev="1.0"/>
<dependency name="rwrun" rev="latest"/>
</dependencies> </ivy-module>
project2 ivy (dep on project1)
<ivy-module version="1.0">
<info organisation="myreports" module="dep-project" status="integration"/>
<dependencies>
<dependency name="chained-resolvers" rev="latest.integration" conf="default"/>
</dependencies>
</ivy-module>
when i run ant on the 2nd project
::::::::::::::::::::::::::::::::::::::::::::::
:: UNRESOLVED DEPENDENCIES ::
::::::::::::::::::::::::::::::::::::::::::::::
:: myreports#chained-resolvers;latest.integration: not found
::::::::::::::::::::::::::::::::::::::::::::::
pls comment what i could be doing wrong that it is not able to pickup the dependency ?
Due to
<publications>
<artifact name="myapp" type="jar" conf="default" />
</publications>
the name of your artifact is myapp
therefore the dependency has to be:
<ivy-module version="1.0">
<info organisation="myreports" module="dep-project" status="integration"/>
<dependencies>
<dependency organisation="myreports" name="myapp" rev="latest.integration" conf="default"/>
</dependencies>
</ivy-module>

Can't get Apache Ivy not to download sources from Spring repository

In my project, I use Ivy to resolve dependencies. I use Spring's repository. The problem is that I don't want to download sources and licence/notice files. The settings which produce the problem are as follows:
ivyconf.xml
<ivysettings>
<settings defaultResolver="default" />
<resolvers namespace="apache">
<chain name="default" returnFirst="true">
<url name="com.springsource.repository.bundles.release">
<!--<ivy pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />-->
<!-- or this one? -->
<ivy pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/ivy-[revision].xml" />
<artifact pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
<url name="com.springsource.repository.bundles.external">
<!--<ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />-->
<ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/ivy-[revision].xml" />
<artifact pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
</chain>
</resolvers>
</ivysettings>
ivy.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="file:///home/nikem/workspace/ark/test.xsl"?>
<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="com.foo-corp" module="bar" />
<configurations>
<conf name="runtime" description="Modules needed for running the application"/>
</configurations>
<dependencies>
<dependency org="org.apache.batik" name="com.springsource.org.apache.batik.dom.svg" rev="1.7.0" conf="runtime->runtime">
<exclude type="src" ext="jar" conf="runtime"/>
</dependency>
<dependency org="org.apache.batik" name="com.springsource.org.apache.batik.bridge" rev="1.7.0" conf="runtime->runtime" />
<exclude type="src" ext="jar" conf="runtime"/>
<exclude type="javadoc" ext="jar" conf="runtime"/>
<exclude type="license" ext="txt" conf="runtime"/>
</dependencies>
</ivy-module>
build.xml
<project name="yunowork" default="ivy-runtime" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<property name="run.lib.dir" value="projlib"/>
<property name="lib.dir" value="lib"/>
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${lib.dir}/ivy.jar"/>
<target name="clean-lib" description="Removes all libraries">
<delete dir="${run.lib.dir}" includes="*.jar"/>
</target>
<target name="ivy-clean-cache" description="Cleans Ivy cache">
<ivy:cleancache />
</target>
<target name="ivy-runtime">
<ivy:settings file="ivyconf.xml"/>
<ivy:resolve file="ivy.xml"/>
<ivy:retrieve pattern="${run.lib.dir}/[artifact].[ext]" conf="runtime"/>
</target>
</project>
In Ivy's cache I see:
<publications>
<artifact name="com.springsource.org.apache.batik.dom.svg"/>
<artifact name="com.springsource.org.apache.batik.dom.svg-sources" type="src" ext="jar"/>
<artifact name="license" type="license" ext="txt"/>
<artifact name="notice" type="license" ext="txt"/>
</publications>
They are published for all the configs by defaults.
The question is: Why don't the source and licence files get excluded?
One workaround to achieve what I want (no sources, no licence/notice files) was to add type to <ivy:retrieve> task.
<ivy:retrieve pattern="${run.lib.dir}/[artifact].[ext]" type="jar" />
In this case, I don't need any <exclude> tags. This, however, doesn't answer the question why exclude didn't work in the first place.
Could you try (omit the nested exclude in the first dependency):
<dependencies>
<dependency org="org.apache.batik" name="com.springsource.org.apache.batik.dom.svg" rev="1.7.0" conf="runtime->runtime"/
<dependency org="org.apache.batik" name="com.springsource.org.apache.batik.bridge" rev="1.7.0" conf="runtime->runtime" />
<exclude type="src" ext="jar" conf="runtime"/>
<exclude type="javadoc" ext="jar" conf="runtime"/>
<exclude type="license" ext="txt" conf="runtime"/>
</dependencies>
I have a feeling that the deeply nested exclude may be bugged. See here:
How to exclude commons logging dependency of spring with ivy?
It's just a hunch, everything seems very fine.
I've answered a similar question on Spring here.
In brief it amounts to:
1) Clear your ivy cache
2) Change your ivy settings file to use the Spring Maven repositories:
<ivysettings>
<settings defaultResolver="chain"/>
<resolvers>
<chain name="chain">
<ibiblio name="central" m2compatible="true"/>
<ibiblio name="spring-release" root="http://repository.springsource.com/maven/bundles/release" m2compatible="true"/>
<ibiblio name="spring-external" root="http://repository.springsource.com/maven/bundles/external" m2compatible="true"/>
</chain>
</resolvers>
</ivysettings>
3) Try change your configuration mapping from:
<dependency .... conf="runtime->runtime"/>
to:
<dependency .... conf="runtime->default"/>
Instead of trying to exclude all of the artifacts you don't want, try explicitly including only the artifacts you do want:
<dependency org="org.apache.batik" name="com.springsource.org.apache.batik.dom.svg" rev="1.7.0" conf="runtime->runtime">
<artifact name="com.springsource.org.apache.batik.dom.svg"/>
</dependency>

Strange Ivy Error Message

I'm using ant with maven to build a multi module project. Until now everything worked fine but now ivy complains that it finds a"bad module".
java.text.ParseException: inconsistent module descriptor file found
in 'XYZ.ivy.xml': bad module found in XYZ.ivy.xml: expected='true' found='null';
I don't know what ivy want's to tell me with this message, maybe somone else can?
The ivy xml:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:e="http://ant.apache.org/ivy/extra" xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="xyz" module="ebusiness-core" revision="1.0" status="integration" publication="20100104174318" e:package="jar"/>
<configurations>
<conf name="default" visibility="public" extends="runtime,master"/>
<conf name="master" visibility="public" />
<conf name="compile" visibility="public" />
<conf name="provided" visibility="public" />
<conf name="runtime" visibility="public" extends="compile"/>
<conf name="test" visibility="private extends="runtime"/>
<conf name="system" visibility="public" />
<conf name="sources" visibility="public"/>
<conf name="javadoc" visibility="public" "/>
<conf name="optional" visibility="public"/>
</configurations>
<publications>
<artifact conf="sources" ext="jar" type="source"/>
<artifact conf="javadoc" ext="jar" type="javadoc"/>
<artifact conf="default" ext="jar"/>
</publications>
<dependencies defaultconf="compile->default">
<dependency org="junit" name="junit" rev="4.5"/>
<dependency org="zak-components" name="zak-components" rev="1.0"/>
<dependency org="commons-collections" name="commons-collections" rev="3.2.1"/>
<dependency org="net.sf.dozer" name="dozer" rev="3.4"/>
<dependency org="org.springframework" name="spring" rev="2.0.2" transitive="false">
<exclude module="jsf-api "/>
</dependency>
<dependency name="velocity" org="velocity" rev="1.4"/>
<dependency name="mail" org="javax.mail" rev="1.4" conf="provided->default"/>
<dependency org="org.mortbay.jetty" name="servlet-api-2.5" rev="6.1.14" conf="provided->default"/>
<dependency org="org.acegisecurity" name="acegi-security" rev="1.0.1">
<exclude org="org.springframework"/>
<exclude org="tomcat"/>
</dependency>
<dependency org="dom4j" name="dom4j" rev="1.6.1"/>
<dependency org="xalan" name="xalan" rev="2.5.1"/>
<dependency org="log4j" name="log4j" rev="1.2.14"/>
<dependency org="org.hibernate" name="hibernate" rev="3.2.6.ga">
<exclude org="javax.transaction"/>
</dependency>
<dependency name="myfaces-api" org="org.apache.myfaces.core" rev="1.1.5">
<exclude org="javax.mail"/>
<exclude org="javax.resource"/>
</dependency>
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"/>
<exclude org="javax.ejb"/>
<exclude org="javax.jms"/>
<exclude org="com.bea"/>
<exclude org="com.oracle"/>
<exclude org="javax.activation"/>
<exclude org="javax.ejb"/>
<exclude module="commonj-twm"/>
<exclude module="asm-util"/>
<exclude module="commons-attributes-compiler"/>
<exclude org="com.oracle"/>
<exclude org="org.apache.geronimo.specs"/>
<exclude org="openejb"/>
<exclude org="javax.portlet"/>
<exclude org="geronimo-spec"/>
<!-- exclude org=" javax.faces" module="jsf-api"/-->
</dependencies>
</ivy-module>
My stupidity. It was an old ivy.xml in a second repository ;-)

Resources