[jira] Resolved: (IVY-874) can't use gotoNode with a node which has not been visited yet

2008-09-03 Thread Xavier Hanin (JIRA)

 [ 
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

2008-09-02 Thread Xavier Hanin (JIRA)

 [ 
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