[jira] Resolved: (IVY-874) can't use gotoNode with a node which has not been visited yet
[ https://issues.apache.org/jira/browse/IVY-874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Xavier Hanin resolved IVY-874. -- Resolution: Fixed Well, actually this is not a bug, at least from what I reproduce on my own. The point is that Ivy does dependency resolution per configuration. Each configuration is isolated from the others. So in the runtime conf, you only have hibernate 3.2.6.ga, and thus end up with commons-collections 2.1.1. In default conf, with both hibernate and commons-collections 3.2.1, commons-collections 2.1.1 is evicted and not part of the conf. If you really want to always evict commons-collections 2.1.1, I suggest to put your commons-collections 3.2.1 dependency in your runtime conf. And if I've misinterpreted the bug, do not hesitate to reopen once again. can't use gotoNode with a node which has not been visited yet - Key: IVY-874 URL: https://issues.apache.org/jira/browse/IVY-874 Project: Ivy Issue Type: Bug Components: Core Affects Versions: 2.0-RC1 Environment: 2.0.0-rc1-local-20080805174033 (built from trunk); checked using Eclipse 3.3 under Windows XP; Ant 1.7.0; jdk1.5.0_05 Reporter: rednix Assignee: Xavier Hanin Fix For: 2.0-RC1 Attachments: hibernate-3.2.6.ga.and.commons-collections-3.2.1_trunk-2008-09-03.log, ivy-bug-log-2008-08-06.txt, Test-test-default.png While using the latest version of Ivy built from the trunk (2.0.0-rc1-local-20080805174033) I can't resolve hibernate 3.2.6 GA and commons-collection 3.2.1 together. Hibernate 3.2.6ga has a dependency on commons-collection 2.1.1 - but I want to include the latest revision 3.2.1 in my project. Using the fairly old ivy-2.0.0-alpha2-incubating.jar there is not such a problem. The configuration and error logs are as follows: ivy.xml: ivy-module version=1.0 info organisation=Test module=test/ configurations conf name=default visibility=public description=runtime dependencies and master artifact can be used with this conf extends=runtime,master/ conf name=master visibility=public description=contains only the artifact published by this module itself, with no transitive dependencies/ conf name=compile visibility=public description=this is the default scope, used if none is specified. Compile dependencies are available in all classpaths./ conf name=provided visibility=public description=this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive./ conf name=runtime visibility=public description=this scope indicates that the dependency is not required for compilation, but is for execution. It is in the runtime and test classpaths, but not the compile classpath. extends=compile/ conf name=test visibility=private description=this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases./ conf name=system visibility=public description=this scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repository./ conf name=optional visibility=public description=contains all optional dependencies / /configurations dependencies dependency org=commons-collections name=commons-collections rev=3.2.1 conf=default / dependency org=org.hibernate name=hibernate rev=3.2.6.ga conf=runtime-runtime,master / /dependencies /ivy-module ivysettings.xml: ivysettings settings defaultResolver=shared / property name=ivy.shared.default.root value=https://[removed]; override=false/ property name=ivy.shared.default.ivy.pattern value=[organisation]/[module]/[revision]/[module]-ivy.xml override=false/ property name=ivy.shared.default.artifact.pattern value=[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext] override=false/ resolvers url name=shared ivy pattern=${ivy.shared.default.root}/${ivy.shared.default.ivy.pattern} / artifact pattern=${ivy.shared.default.root}/${ivy.shared.default.artifact.pattern} / /url /resolvers /ivysettings Error-Log: ... [ivy:retrieve] == resolving dependencies org.hibernate#hibernate;3.2.6.ga-commons-collections#commons-collections;2.1.1 [compile-compile(*)] [ivy:retrieve] ERROR: You can't use gotoNode with a node which has not been visited yet. [ivy:retrieve] Given node id=commons-collections#commons-collections;3.2.1
[jira] Resolved: (IVY-874) can't use gotoNode with a node which has not been visited yet
[ https://issues.apache.org/jira/browse/IVY-874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Xavier Hanin resolved IVY-874. -- Resolution: Fixed I've reproduced the bug in a unit test, and fixed the problem. Thanks for reporting! can't use gotoNode with a node which has not been visited yet - Key: IVY-874 URL: https://issues.apache.org/jira/browse/IVY-874 Project: Ivy Issue Type: Bug Components: Core Affects Versions: 2.0-RC1 Environment: 2.0.0-rc1-local-20080805174033 (built from trunk); checked using Eclipse 3.3 under Windows XP; Ant 1.7.0; jdk1.5.0_05 Reporter: rednix Assignee: Xavier Hanin Fix For: 2.0-RC1 Attachments: ivy-bug-log-2008-08-06.txt While using the latest version of Ivy built from the trunk (2.0.0-rc1-local-20080805174033) I can't resolve hibernate 3.2.6 GA and commons-collection 3.2.1 together. Hibernate 3.2.6ga has a dependency on commons-collection 2.1.1 - but I want to include the latest revision 3.2.1 in my project. Using the fairly old ivy-2.0.0-alpha2-incubating.jar there is not such a problem. The configuration and error logs are as follows: ivy.xml: ivy-module version=1.0 info organisation=Test module=test/ configurations conf name=default visibility=public description=runtime dependencies and master artifact can be used with this conf extends=runtime,master/ conf name=master visibility=public description=contains only the artifact published by this module itself, with no transitive dependencies/ conf name=compile visibility=public description=this is the default scope, used if none is specified. Compile dependencies are available in all classpaths./ conf name=provided visibility=public description=this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive./ conf name=runtime visibility=public description=this scope indicates that the dependency is not required for compilation, but is for execution. It is in the runtime and test classpaths, but not the compile classpath. extends=compile/ conf name=test visibility=private description=this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases./ conf name=system visibility=public description=this scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repository./ conf name=optional visibility=public description=contains all optional dependencies / /configurations dependencies dependency org=commons-collections name=commons-collections rev=3.2.1 conf=default / dependency org=org.hibernate name=hibernate rev=3.2.6.ga conf=runtime-runtime,master / /dependencies /ivy-module ivysettings.xml: ivysettings settings defaultResolver=shared / property name=ivy.shared.default.root value=https://[removed]; override=false/ property name=ivy.shared.default.ivy.pattern value=[organisation]/[module]/[revision]/[module]-ivy.xml override=false/ property name=ivy.shared.default.artifact.pattern value=[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext] override=false/ resolvers url name=shared ivy pattern=${ivy.shared.default.root}/${ivy.shared.default.ivy.pattern} / artifact pattern=${ivy.shared.default.root}/${ivy.shared.default.artifact.pattern} / /url /resolvers /ivysettings Error-Log: ... [ivy:retrieve] == resolving dependencies org.hibernate#hibernate;3.2.6.ga-commons-collections#commons-collections;2.1.1 [compile-compile(*)] [ivy:retrieve] ERROR: You can't use gotoNode with a node which has not been visited yet. [ivy:retrieve] Given node id=commons-collections#commons-collections;3.2.1 [ivy:retrieve] :: problems summary :: [ivy:retrieve] WARNINGS [ivy:retrieve] Error while parsing configuration resolve report C:\Documents and Settings\[removed]\.ivy2\cache\Test-test-default.xml [ivy:retrieve] ERRORS [ivy:retrieve] You can't use gotoNode with a node which has not been visited yet. [ivy:retrieve] Given node id=commons-collections#commons-collections;3.2.1 [ivy:retrieve] [ivy:retrieve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS BUILD FAILED C:\workspaces\eclipseEuropa\Test\build.xml:433: impossible to resolve dependencies: java.lang.IllegalArgumentException: You can't use gotoNode with a node which has not