[ 
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


Reply via email to