blob: a2c0e28478b6147ea31e5012a84994813a6727b4 [file] [log] [blame]
package org.apache.maven.integrationtests;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import java.io.File;
import java.io.IOException;
import org.apache.maven.it.IntegrationTestRunner;
import org.codehaus.plexus.util.FileUtils;
/**
* Test to verify that a release can be updated.
*/
public class MavenIT0109ReleaseUpdateTest
extends AbstractMavenIntegrationTestCase
{
private static final String GROUPID = "org.apache.maven.it";
private static final String ARTIFACTID = "maven-it-release-update";
private static final String TYPE = "jar";
private static final String POM_TYPE = "pom";
private static final String OLD_VERSION = "1.0";
private static final String NEW_VERSION = "1.1";
public void testReleaseUpdated()
throws Exception
{
File testDir = extractTestResources( getClass(), "/it0109-releaseUpdate" );
IntegrationTestRunner itr = new IntegrationTestRunner( testDir.getAbsolutePath() );
itr.deleteArtifact( GROUPID, ARTIFACTID, OLD_VERSION, TYPE );
itr.deleteArtifact( GROUPID, ARTIFACTID, OLD_VERSION, POM_TYPE );
itr.deleteArtifact( GROUPID, ARTIFACTID, NEW_VERSION, TYPE );
itr.deleteArtifact( GROUPID, ARTIFACTID, NEW_VERSION, POM_TYPE );
writeMetadata( new File( itr.localRepo ), "maven-metadata-it.releases.xml", OLD_VERSION,
"20051230031110" );
// create a repository (TODO: into itr)
File repository = new File( testDir, "repository" );
repository.mkdirs();
// create artifact in repository (TODO: into itr)
writeArtifact( repository, OLD_VERSION );
writeArtifact( repository, NEW_VERSION );
writeMetadata( repository, "maven-metadata.xml", NEW_VERSION, "20061230031110" );
itr.assertArtifactNotPresent( GROUPID, ARTIFACTID, OLD_VERSION, TYPE );
itr.assertArtifactNotPresent( GROUPID, ARTIFACTID, NEW_VERSION, TYPE );
itr.invoke( "package" );
itr.assertArtifactNotPresent( GROUPID, ARTIFACTID, OLD_VERSION, TYPE );
itr.assertArtifactPresent( GROUPID, ARTIFACTID, NEW_VERSION, TYPE );
itr.verifyErrorFreeLog();
itr.resetStreams();
}
private static void writeMetadata( File repository, String fileName, String version, String timestamp )
throws IOException
{
File metadata = new File( repository, GROUPID.replace( '.', '/' ) + "/" + ARTIFACTID + "/" + fileName );
metadata.getParentFile().mkdirs();
StringBuffer content = new StringBuffer();
content.append( "<?xml version=\"1.0\"?><metadata>\n" );
content.append( " <groupId>" + GROUPID + "</groupId>\n" );
content.append( " <artifactId>" + ARTIFACTID + "</artifactId>\n" );
content.append( " <versioning>\n" );
content.append( " <latest>" + version + "</latest>\n" );
content.append( " <release>" + version + "</release>\n" );
content.append( " <versions>\n" );
content.append( " <version>" + OLD_VERSION + "</version>\n" );
content.append( " <version>" + NEW_VERSION + "</version>\n" );
content.append( " </versions>\n" );
content.append( " <lastUpdated>" + timestamp + "</lastUpdated>\n" );
content.append( " </versioning>\n" );
content.append( "</metadata>" );
FileUtils.fileWrite( metadata.getAbsolutePath(), content.toString() );
}
private static void writeArtifact( File repository, String version )
throws IOException
{
/*
File artifact = new File( repository, GROUPID.replace( '.', '/' ) + "/" + ARTIFACTID + "/" + version + "/" +
ARTIFACTID + "-" + version + "." + TYPE );
artifact.getParentFile().mkdirs();
FileUtils.fileWrite( artifact.getAbsolutePath(), version );
StringBuffer content = new StringBuffer();
content.append( "<?xml version=\"1.0\"?><project>\n" );
content.append( " <modelVersion>4.0.0</modelVersion>\n" );
content.append( " <groupId>" + GROUPID + "</groupId>\n" );
content.append( " <artifactId>" + ARTIFACTID + "</artifactId>\n" );
content.append( " <version>" + version + "</version>\n" );
content.append( " <packaging>maven-plugin</packaging>\n" );
content.append( "</project>" );
artifact = new File( artifact.getParentFile(), ARTIFACTID + "-" + version + "." + POM_TYPE );
FileUtils.fileWrite( artifact.getAbsolutePath(), content.toString() );
*/
}
}