Search in sources :

Example 1 with LocalScmMetadataXpp3Reader

use of org.apache.maven.scm.provider.local.metadata.io.xpp3.LocalScmMetadataXpp3Reader in project maven-scm by apache.

the class LocalUpdateCommandTckTest method testDeletion.

/**
 * Tests that a file that has been deleted from repository after checkout will be removed by scm-local. Local
 * additions must not be deleted.
 */
public void testDeletion() throws Exception {
    FileUtils.deleteDirectory(getUpdatingCopy());
    ScmRepository repository = makeScmRepository(getScmUrl());
    checkOut(getUpdatingCopy(), repository);
    // Check preconditions
    File readmeFileLocal = new File(getUpdatingCopy(), "readme.txt");
    assertTrue(readmeFileLocal.exists());
    File newFileLocal = new File(getUpdatingCopy(), "newfile.xml");
    assertTrue(!newFileLocal.exists());
    // Delete readme.txt from repository
    File readmeFileRepo = new File(getRepositoryRoot(), moduleName + "/readme.txt");
    assertTrue(readmeFileRepo.exists());
    assertTrue("Could not delete", readmeFileRepo.delete());
    assertFalse(readmeFileRepo.exists());
    // Make local addition to updating copy - this one must not be touched
    ScmTestCase.makeFile(getUpdatingCopy(), "newfile.xml", "added newfile.xml locally");
    assertTrue(newFileLocal.exists());
    // ----------------------------------------------------------------------
    // Update the project
    // ----------------------------------------------------------------------
    ScmManager scmManager = getScmManager();
    Date lastUpdate = new Date(System.currentTimeMillis());
    Thread.sleep(1000);
    UpdateScmResult result = scmManager.update(repository, new ScmFileSet(getUpdatingCopy()), lastUpdate);
    assertNotNull("The command returned a null result.", result);
    assertResultIsSuccess(result);
    List<ScmFile> updatedFiles = result.getUpdatedFiles();
    assertEquals("Expected 1 files in the updated files list " + updatedFiles, 1, updatedFiles.size());
    // ----------------------------------------------------------------------
    // Assert the files in the updated files list
    // ----------------------------------------------------------------------
    Iterator<ScmFile> files = new TreeSet<ScmFile>(updatedFiles).iterator();
    // readme.txt
    ScmFile file = (ScmFile) files.next();
    assertPath("/readme.txt", file.getPath());
    assertTrue(file.getStatus().isUpdate());
    // ----------------------------------------------------------------------
    // Assert working directory contents
    // ----------------------------------------------------------------------
    // readme.txt
    assertTrue("Expected local copy of readme.txt to be deleted", !readmeFileLocal.exists());
    // newfile.xml
    assertTrue("Expected local copy of newfile.xml NOT to be deleted", newFileLocal.exists());
    // ----------------------------------------------------------------------
    // Assert metadata file
    // ----------------------------------------------------------------------
    File metadataFile = new File(getUpdatingCopy(), ".maven-scm-local");
    assertTrue("Expected metadata file .maven-scm-local does not exist", metadataFile.exists());
    Reader reader = new FileReader(metadataFile);
    LocalScmMetadata metadata;
    try {
        metadata = new LocalScmMetadataXpp3Reader().read(reader);
    } finally {
        IOUtil.close(reader);
    }
    File root = new File(getRepositoryRoot() + "/" + moduleName);
    @SuppressWarnings("unchecked") List<String> fileNames = FileUtils.getFileNames(root, "**", null, false);
    assertEquals(fileNames, metadata.getRepositoryFileNames());
}
Also used : ScmRepository(org.apache.maven.scm.repository.ScmRepository) ScmFileSet(org.apache.maven.scm.ScmFileSet) LocalScmMetadata(org.apache.maven.scm.provider.local.metadata.LocalScmMetadata) UpdateScmResult(org.apache.maven.scm.command.update.UpdateScmResult) Reader(java.io.Reader) FileReader(java.io.FileReader) LocalScmMetadataXpp3Reader(org.apache.maven.scm.provider.local.metadata.io.xpp3.LocalScmMetadataXpp3Reader) Date(java.util.Date) ScmFile(org.apache.maven.scm.ScmFile) LocalScmMetadataXpp3Reader(org.apache.maven.scm.provider.local.metadata.io.xpp3.LocalScmMetadataXpp3Reader) ScmManager(org.apache.maven.scm.manager.ScmManager) FileReader(java.io.FileReader) ScmFile(org.apache.maven.scm.ScmFile) File(java.io.File)

Example 2 with LocalScmMetadataXpp3Reader

use of org.apache.maven.scm.provider.local.metadata.io.xpp3.LocalScmMetadataXpp3Reader in project maven-scm by apache.

the class LocalScmMetadataUtils method readMetadata.

/**
 * Reads metadata file from given directory.
 *
 * @param dir The directory that should contain the metadata file
 * @return LocalScmMetadata or <tt>null</tt> in case of problems
 */
public LocalScmMetadata readMetadata(File dir) {
    File metadataFile = new File(dir, FILENAME);
    if (!metadataFile.exists()) {
        return null;
    }
    LocalScmMetadata result = null;
    Reader reader = null;
    try {
        reader = ReaderFactory.newXmlReader(metadataFile);
        result = new LocalScmMetadataXpp3Reader().read(reader);
    } catch (XmlPullParserException e) {
        if (logger.isWarnEnabled()) {
            logger.warn("Could not interpret .maven-scm-local - ignoring", e);
        }
        return null;
    } catch (IOException e) {
        if (logger.isWarnEnabled()) {
            logger.warn("Could not Read .maven-scm-local - ignoring", e);
        }
    } finally {
        IOUtil.close(reader);
    }
    return result;
}
Also used : LocalScmMetadataXpp3Reader(org.apache.maven.scm.provider.local.metadata.io.xpp3.LocalScmMetadataXpp3Reader) Reader(java.io.Reader) LocalScmMetadataXpp3Reader(org.apache.maven.scm.provider.local.metadata.io.xpp3.LocalScmMetadataXpp3Reader) XmlPullParserException(org.codehaus.plexus.util.xml.pull.XmlPullParserException) IOException(java.io.IOException) File(java.io.File)

Example 3 with LocalScmMetadataXpp3Reader

use of org.apache.maven.scm.provider.local.metadata.io.xpp3.LocalScmMetadataXpp3Reader in project maven-scm by apache.

the class LocalCheckOutCommandTckTest method testMetadata.

/**
 * Tests that the metadata file .maven-scm-local is written correctly
 */
public void testMetadata() throws Exception {
    FileUtils.deleteDirectory(getWorkingCopy());
    CheckOutScmResult result = checkOut(getWorkingCopy(), getScmRepository());
    assertResultIsSuccess(result);
    List<ScmFile> checkedOutFiles = result.getCheckedOutFiles();
    assertEquals(4, checkedOutFiles.size());
    // ----------------------------------------------------------------------
    // Assert metadata file
    // ----------------------------------------------------------------------
    File metadataFile = new File(getWorkingCopy(), ".maven-scm-local");
    assertTrue("Expected metadata file .maven-scm-local does not exist", metadataFile.exists());
    Reader reader = new FileReader(metadataFile);
    LocalScmMetadata metadata;
    try {
        metadata = new LocalScmMetadataXpp3Reader().read(reader);
    } finally {
        IOUtil.close(reader);
    }
    File root = new File(getRepositoryRoot() + "/" + module);
    @SuppressWarnings("unchecked") List<String> fileNames = FileUtils.getFileNames(root, "**", null, false);
    assertEquals(fileNames, metadata.getRepositoryFileNames());
}
Also used : LocalScmMetadata(org.apache.maven.scm.provider.local.metadata.LocalScmMetadata) LocalScmMetadataXpp3Reader(org.apache.maven.scm.provider.local.metadata.io.xpp3.LocalScmMetadataXpp3Reader) FileReader(java.io.FileReader) Reader(java.io.Reader) LocalScmMetadataXpp3Reader(org.apache.maven.scm.provider.local.metadata.io.xpp3.LocalScmMetadataXpp3Reader) CheckOutScmResult(org.apache.maven.scm.command.checkout.CheckOutScmResult) FileReader(java.io.FileReader) ScmFile(org.apache.maven.scm.ScmFile) File(java.io.File) ScmFile(org.apache.maven.scm.ScmFile)

Aggregations

File (java.io.File)3 Reader (java.io.Reader)3 LocalScmMetadataXpp3Reader (org.apache.maven.scm.provider.local.metadata.io.xpp3.LocalScmMetadataXpp3Reader)3 FileReader (java.io.FileReader)2 ScmFile (org.apache.maven.scm.ScmFile)2 LocalScmMetadata (org.apache.maven.scm.provider.local.metadata.LocalScmMetadata)2 IOException (java.io.IOException)1 Date (java.util.Date)1 ScmFileSet (org.apache.maven.scm.ScmFileSet)1 CheckOutScmResult (org.apache.maven.scm.command.checkout.CheckOutScmResult)1 UpdateScmResult (org.apache.maven.scm.command.update.UpdateScmResult)1 ScmManager (org.apache.maven.scm.manager.ScmManager)1 ScmRepository (org.apache.maven.scm.repository.ScmRepository)1 XmlPullParserException (org.codehaus.plexus.util.xml.pull.XmlPullParserException)1