}
URI tempURI = ObrUtils.findRepositoryXml( "", remoteOBR );
String repositoryName = new File( tempURI.getSchemeSpecificPart() ).getName();
Log log = getLog();
ObrUpdate update;
RemoteFileManager remoteFile = new RemoteFileManager( m_wagonManager, settings, log );
remoteFile.connect( repositoryId, url );
// ======== LOCK REMOTE OBR ========
log.info( "LOCK " + remoteFile + '/' + repositoryName );
remoteFile.lockFile( repositoryName, ignoreLock );
File downloadedRepositoryXml = null;
try
{
// ======== DOWNLOAD REMOTE OBR ========
log.info( "Downloading " + repositoryName );
downloadedRepositoryXml = remoteFile.get( repositoryName, ".xml" );
String mavenRepository = localRepository.getBasedir();
URI repositoryXml = downloadedRepositoryXml.toURI();
URI obrXmlFile = ObrUtils.toFileURI( obrXml );
URI bundleJar;
if ( null == file )
{
bundleJar = ObrUtils.getArtifactURI( localRepository, project.getArtifact() );
}
else
{
bundleJar = file.toURI();
}
Config userConfig = new Config();
userConfig.setRemoteFile( true );
if ( null != bundleUrl )
{
// public URL differs from the bundle file location
URI uri = URI.create( bundleUrl );
log.info( "Computed bundle uri: " + uri );
userConfig.setRemoteBundle( uri );
}
else if ( null != file )
{
// assume file will be deployed in remote repository, so find the remote relative location
URI uri = URI.create( localRepository.pathOf( project.getArtifact() ) );
log.info( "Computed bundle uri: " + uri );
userConfig.setRemoteBundle( uri );
}
update = new ObrUpdate( repositoryXml, obrXmlFile, project, mavenRepository, userConfig, log );
update.parseRepositoryXml();
update.updateRepository( bundleJar, null, null );
update.writeRepositoryXml();
if ( downloadedRepositoryXml.exists() )
{
// ======== UPLOAD MODIFIED OBR ========
log.info( "Uploading " + repositoryName );
remoteFile.put( downloadedRepositoryXml, repositoryName );
}
}
catch ( Exception e )
{
log.warn( "Exception while updating remote OBR: " + e.getLocalizedMessage(), e );
}
finally
{
// ======== UNLOCK REMOTE OBR ========
log.info( "UNLOCK " + remoteFile + '/' + repositoryName );
remoteFile.unlockFile( repositoryName );
remoteFile.disconnect();
if ( null != downloadedRepositoryXml )
{