[ http://jira.codehaus.org/browse/MRELEASE-416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=167188#action_167188 ]
Jens Mühlenhoff edited comment on MRELEASE-416 at 2/26/09 11:03 AM: -------------------------------------------------------------------- As far as I know the properties in the {{release.property}} file must have the following format {{dependency.${groupid}:${artifactid}.development}} or {{dependency.${groupid}:${artifactid}.release}} In this case the ReleaseUtils the method could be rewriten like this: {noformat} private static void loadResolvedDependencies( Properties prop, ReleaseDescriptor descriptor ) { Map resolvedDependencies = new HashMap(); Set entries = prop.entrySet(); Iterator iterator = entries.iterator(); while ( iterator.hasNext() ) { Entry currentEntry = (Entry) iterator.next(); String propertyName = (String) currentEntry.getKey(); if ( propertyName.startsWith( "dependency." ) ) { String artifactVersionlessKey = null; String versionType = null; if ( propertyName.endsWith( ".development" ) ) { artifactVersionlessKey = propertyName.substring( 11, propertyName.length() - 12 ); versionType = ReleaseDescriptor.DEVELOPMENT_KEY; } else if( propertyName.endsWith( ".release" ) ) { artifactVersionlessKey = propertyName.substring( 11, propertyName.length() - 9 ); versionType = ReleaseDescriptor.RELEASE_KEY; } if( versionType != null && artifactVersionlessKey != null && artifactVersionlessKey.isEmpty() == false ) { Map versionMap = (Map) resolvedDependencies.get( artifactVersionlessKey ); if( versionMap == null ) { versionMap = new HashMap(); resolvedDependencies.put( artifactVersionlessKey, versionMap ); } versionMap.put( versionType, currentEntry.getValue() ); } else { // TODO do some nice warning, that this entry will be ignored // getLogger().info("Ignore property " + propertyName + ". Starts with 'dependency.'"+ // "but do not end with '.development' or '.release'" ) } } } descriptor.setResolvedSnapshotDependencies( resolvedDependencies ); } {noformat} was (Author: jens.muehlenhoff): As far as I know the properties in the release.property file must have the following format dependency.${groupid}:${artifactid}.development or dependency.${groupid}:${artifactid}.release In this case the ReleaseUtils the method could be rewriten like this: private static void loadResolvedDependencies( Properties prop, ReleaseDescriptor descriptor ) { Map resolvedDependencies = new HashMap(); Set entries = prop.entrySet(); Iterator iterator = entries.iterator(); while ( iterator.hasNext() ) { Entry currentEntry = (Entry) iterator.next(); String propertyName = (String) currentEntry.getKey(); if ( propertyName.startsWith( "dependency." ) ) { String artifactVersionlessKey = null; String versionType = null; if ( propertyName.endsWith( ".development" ) ) { artifactVersionlessKey = propertyName.substring( 11, propertyName.length() - 12 ); versionType = ReleaseDescriptor.DEVELOPMENT_KEY; } else if( propertyName.endsWith( ".release" ) ) { artifactVersionlessKey = propertyName.substring( 11, propertyName.length() - 9 ); versionType = ReleaseDescriptor.RELEASE_KEY; } if( versionType != null && artifactVersionlessKey != null && artifactVersionlessKey.isEmpty() == false ) { Map versionMap = (Map) resolvedDependencies.get( artifactVersionlessKey ); if( versionMap == null ) { versionMap = new HashMap(); resolvedDependencies.put( artifactVersionlessKey, versionMap ); } versionMap.put( versionType, currentEntry.getValue() ); } else { // TODO do some nice warning, that this entry will be ignored // getLogger().info("Ignore property " + propertyName + ". Starts with 'dependency.'"+ // "but do not end with '.development' or '.release'" ) } } } descriptor.setResolvedSnapshotDependencies( resolvedDependencies ); } > given dependencies from a release.property file not used during > release:prepare > ------------------------------------------------------------------------------- > > Key: MRELEASE-416 > URL: http://jira.codehaus.org/browse/MRELEASE-416 > Project: Maven 2.x Release Plugin > Issue Type: Bug > Components: prepare > Environment: Windows, maven 2.0.10 > Reporter: Jens Mühlenhoff > > Create a release.property file which holds all dependency you want to be > resolved. > Drung the release:prepare this properties are currently not used to resolve > snapshot dependencies: > #release configuration > dependency.test.parent\:root.release=0.0.2 > dependency.test.parent\:root.development=0.0.6-SNAPSHOT > The problem seams to be in the method: > ReleaseUtils.loadResolvedDependencies( ... ) > startIndex = propertyName.lastIndexOf( "dependency." ); > The methode lastIndexOf returns in this case always 0 because the last time > the string "dependency." was found at the starting position 0. > Until this isn't fixed it is hard to release several projects with one script. > Furthermore it would be good to niticed, that using the release.properties > will only work if the resume=flas is toggeled to true. > endIndex = propertyName.indexOf( ".development" ); > artifactVersionlessKey = propertyName.substring( startIndex, > endIndex ); > Currently artifactVersionlessKey will contain "dependency.test.parent:root" > which seams to be wrong. > This line must be changed to > artifactVersionlessKey = propertyName.substring( > startIndex+11, endIndex ); -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira