if ( artifact.isSnapshot() )
{
File metadataFile = new File( file.getParentFile(), "maven-metadata-local.xml" );
Xpp3Dom metadata = new Xpp3Dom( "metadata" );
addChild( metadata, "groupId", artifact.getGroupId() );
addChild( metadata, "artifactId", artifact.getArtifactId() );
addChild( metadata, "version", artifact.getBaseVersion() );
Xpp3Dom versioning = new Xpp3Dom( "versioning" );
versioning.addChild( addChild( new Xpp3Dom( "snapshot" ), "localCopy", "true" ) );
addChild( versioning, "lastUpdated", timestamp );
metadata.addChild( versioning );
writeMetadata( metadataFile, metadata );
}
{
File metadataFile = new File( file.getParentFile().getParentFile(), "maven-metadata-local.xml" );
Set allVersions = new LinkedHashSet();
Xpp3Dom metadata = readMetadata( metadataFile );
if ( metadata != null )
{
Xpp3Dom versioning = metadata.getChild( "versioning" );
if ( versioning != null )
{
Xpp3Dom versions = versioning.getChild( "versions" );
if ( versions != null )
{
Xpp3Dom[] children = versions.getChildren( "version" );
for ( int i = 0; i < children.length; i++ )
{
allVersions.add( children[i].getValue() );
}
}
}
}
allVersions.add( artifact.getBaseVersion() );
metadata = new Xpp3Dom( "metadata" );
addChild( metadata, "groupId", artifact.getGroupId() );
addChild( metadata, "artifactId", artifact.getArtifactId() );
Xpp3Dom versioning = new Xpp3Dom( "versioning" );
versioning.addChild( addChildren( new Xpp3Dom( "versions" ), "version", allVersions ) );
addChild( versioning, "lastUpdated", timestamp );
metadata.addChild( versioning );
metadata = Xpp3DomUtils.mergeXpp3Dom( metadata, readMetadata( metadataFile ) );