}
try
{
ScmRepository scmRepository;
ScmProvider provider;
try
{
scmRepository =
scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor,
releaseEnvironment.getSettings() );
provider = scmRepositoryConfigurator.getRepositoryProvider( scmRepository );
}
catch ( ScmRepositoryException e )
{
throw new ReleaseScmRepositoryException( e.getMessage(), e.getValidationMessages() );
}
catch ( NoSuchScmProviderException e )
{
throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
}
if ( releaseDescriptor.isScmUseEditMode() || provider.requiresEditMode() )
{
EditScmResult result = provider.edit( scmRepository, new ScmFileSet(
new File( releaseDescriptor.getWorkingDirectory() ), project.getFile() ) );
if ( !result.isSuccess() )
{
throw new ReleaseScmCommandException( "Unable to enable editing on the POM", result );