Author: olamy
Date: Mon Sep 5 08:53:47 2011
New Revision: 1165210
URL: http://svn.apache.org/viewvc?rev=1165210&view=rev
Log:
[MRM-1506] api to configure RemoteRepository : implementation of update method
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/remote/RemoteRepositoryAdminTest.java
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java?rev=1165210&r1=1165209&r2=1165210&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java
Mon Sep 5 08:53:47 2011
@@ -85,20 +85,13 @@ public class DefaultRemoteRepositoryAdmi
//MRM-752 - url needs trimming
remoteRepository.setUrl( StringUtils.trim( remoteRepository.getUrl() )
);
- RemoteRepositoryConfiguration remoteRepositoryConfiguration = new
RemoteRepositoryConfiguration();
- remoteRepositoryConfiguration.setId( remoteRepository.getId() );
- remoteRepositoryConfiguration.setPassword(
remoteRepository.getPassword() );
- remoteRepositoryConfiguration.setTimeout(
remoteRepository.getTimeout() );
- remoteRepositoryConfiguration.setUrl( remoteRepository.getUrl() );
- remoteRepositoryConfiguration.setUsername(
remoteRepository.getUserName() );
- remoteRepositoryConfiguration.setLayout( remoteRepository.getLayout()
);
- remoteRepositoryConfiguration.setName( remoteRepository.getName() );
+ RemoteRepositoryConfiguration remoteRepositoryConfiguration =
+ getRemoteRepositoryConfiguration( remoteRepository );
Configuration configuration =
getArchivaConfiguration().getConfiguration();
configuration.addRemoteRepository( remoteRepositoryConfiguration );
saveConfiguration( configuration );
-
return Boolean.TRUE;
}
@@ -138,6 +131,43 @@ public class DefaultRemoteRepositoryAdmi
public Boolean updateRemoteRepository( RemoteRepository remoteRepository,
AuditInformation auditInformation )
throws RepositoryAdminException
{
- return null; //To change body of implemented methods use File |
Settings | File Templates.
+
+ String repositoryId = remoteRepository.getId();
+
+ triggerAuditEvent( repositoryId, null, AuditEvent.MODIFY_REMOTE_REPO,
auditInformation );
+
+ // update means : remove and add
+
+ Configuration configuration =
getArchivaConfiguration().getConfiguration();
+
+ RemoteRepositoryConfiguration remoteRepositoryConfiguration =
+ configuration.getRemoteRepositoriesAsMap().get( repositoryId );
+ if ( remoteRepositoryConfiguration == null )
+ {
+ throw new RepositoryAdminException(
+ "remoteRepository with id " + repositoryId + " not exist
cannot remove it" );
+ }
+
+ configuration.removeRemoteRepository( remoteRepositoryConfiguration );
+
+ remoteRepositoryConfiguration = getRemoteRepositoryConfiguration(
remoteRepository );
+ configuration.addRemoteRepository( remoteRepositoryConfiguration );
+ saveConfiguration( configuration );
+
+ return Boolean.TRUE;
+ }
+
+ private RemoteRepositoryConfiguration getRemoteRepositoryConfiguration(
RemoteRepository remoteRepository )
+ {
+ RemoteRepositoryConfiguration remoteRepositoryConfiguration = new
RemoteRepositoryConfiguration();
+ remoteRepositoryConfiguration.setId( remoteRepository.getId() );
+ remoteRepositoryConfiguration.setPassword(
remoteRepository.getPassword() );
+ remoteRepositoryConfiguration.setTimeout(
remoteRepository.getTimeout() );
+ remoteRepositoryConfiguration.setUrl( remoteRepository.getUrl() );
+ remoteRepositoryConfiguration.setUsername(
remoteRepository.getUserName() );
+ remoteRepositoryConfiguration.setLayout( remoteRepository.getLayout()
);
+ remoteRepositoryConfiguration.setName( remoteRepository.getName() );
+ return remoteRepositoryConfiguration;
}
+
}
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/remote/RemoteRepositoryAdminTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/remote/RemoteRepositoryAdminTest.java?rev=1165210&r1=1165209&r2=1165210&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/remote/RemoteRepositoryAdminTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/remote/RemoteRepositoryAdminTest.java
Mon Sep 5 08:53:47 2011
@@ -92,7 +92,67 @@ public class RemoteRepositoryAdminTest
assertEquals( "archiva-localhost",
mockAuditListener.getAuditEvents().get( 0 ).getRemoteIP() );
assertEquals( AuditEvent.DELETE_REMOTE_REPO,
mockAuditListener.getAuditEvents().get( 1 ).getAction() );
+ assertEquals( "root", mockAuditListener.getAuditEvents().get( 1
).getUserId() );
+
+ }
+
+
+ @Test
+ public void addAndUpdateAndDelete()
+ throws Exception
+ {
+ mockAuditListener.clearEvents();
+ int initialSize = remoteRepositoryAdmin.getRemoteRepositories().size();
+
+ RemoteRepository remoteRepository = getRemoteRepository();
+
+ remoteRepositoryAdmin.addRemoteRepository( remoteRepository,
getFakeAuditInformation() );
+
+ assertEquals( initialSize + 1,
remoteRepositoryAdmin.getRemoteRepositories().size() );
+
+ RemoteRepository repo = remoteRepositoryAdmin.getRemoteRepository(
"foo" );
+ assertNotNull( repo );
+ assertEquals( getRemoteRepository().getPassword(), repo.getPassword()
);
+ assertEquals( getRemoteRepository().getUrl(), repo.getUrl() );
+ assertEquals( getRemoteRepository().getUserName(), repo.getUserName()
);
+ assertEquals( getRemoteRepository().getName(), repo.getName() );
+ assertEquals( getRemoteRepository().getTimeout(), repo.getTimeout() );
+
+ repo.setUserName( "foo-name-changed" );
+ repo.setPassword( "titi" );
+ repo.setUrl( "http://foo.com/maven-really-rocks" );
+
+
+ remoteRepositoryAdmin.updateRemoteRepository( repo,
getFakeAuditInformation() );
+
+
+ repo = remoteRepositoryAdmin.getRemoteRepository( "foo" );
+
+ assertEquals( "foo-name-changed", repo.getUserName() );
+ assertEquals( "titi", repo.getPassword() );
+ assertEquals( "http://foo.com/maven-really-rocks", repo.getUrl() );
+
+
+
+ remoteRepositoryAdmin.deleteRemoteRepository( "foo",
getFakeAuditInformation() );
+
+ assertEquals( initialSize,
remoteRepositoryAdmin.getRemoteRepositories().size() );
+
+ repo = remoteRepositoryAdmin.getRemoteRepository( "foo" );
+ assertNull( repo );
+
+ assertEquals( 3, mockAuditListener.getAuditEvents().size() );
+
+ assertEquals( AuditEvent.ADD_REMOTE_REPO,
mockAuditListener.getAuditEvents().get( 0 ).getAction() );
assertEquals( "root", mockAuditListener.getAuditEvents().get( 0
).getUserId() );
+ assertEquals( "archiva-localhost",
mockAuditListener.getAuditEvents().get( 0 ).getRemoteIP() );
+
+ assertEquals( AuditEvent.MODIFY_REMOTE_REPO,
mockAuditListener.getAuditEvents().get( 1 ).getAction() );
+ assertEquals( "root", mockAuditListener.getAuditEvents().get( 1
).getUserId() );
+ assertEquals( "archiva-localhost",
mockAuditListener.getAuditEvents().get(1 ).getRemoteIP() );
+
+ assertEquals( AuditEvent.DELETE_REMOTE_REPO,
mockAuditListener.getAuditEvents().get( 2 ).getAction() );
+ assertEquals( "root", mockAuditListener.getAuditEvents().get( 2
).getUserId() );
}