This is an automated email from the ASF dual-hosted git repository.
martin_s pushed a commit to branch feature/storage_refactoring
in repository https://gitbox.apache.org/repos/asf/archiva.git
The following commit(s) were added to refs/heads/feature/storage_refactoring by
this push:
new b48158f Fixing RepositoryGroupAdmin after refactor
b48158f is described below
commit b48158fdcd72c5f8a9dfc2fd38e2ff60660d6f81
Author: Martin Stockhammer <[email protected]>
AuthorDate: Sat Jun 22 08:03:00 2019 +0200
Fixing RepositoryGroupAdmin after refactor
---
.../admin/repository/group/DefaultRepositoryGroupAdmin.java | 3 ++-
.../org/apache/archiva/repository/RepositoryRegistry.java | 13 +++++++++++++
.../content/maven2/ManagedDefaultRepositoryContent.java | 8 +++++---
3 files changed, 20 insertions(+), 4 deletions(-)
diff --git
a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/group/DefaultRepositoryGroupAdmin.java
b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/group/DefaultRepositoryGroupAdmin.java
index 142f4f4..757aa12 100644
---
a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/group/DefaultRepositoryGroupAdmin.java
+++
b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/group/DefaultRepositoryGroupAdmin.java
@@ -165,7 +165,7 @@ public class DefaultRepositoryGroupAdmin
throw new RepositoryAdminException("Removal of repository failed:
" + e.getMessage(), e);
}
mergedRemoteIndexesScheduler.unschedule(
- repositoryRegistry.getRepositoryGroup( repositoryGroupId ) );
+ repositoryGroup );
triggerAuditEvent( repositoryGroupId, null,
AuditEvent.DELETE_REPO_GROUP, auditInformation );
return Boolean.TRUE;
@@ -204,6 +204,7 @@ public class DefaultRepositoryGroupAdmin
org.apache.archiva.repository.RepositoryGroup rg =
repositoryRegistry.getRepositoryGroup( repositoryGroup.getId( ) );
mergedRemoteIndexesScheduler.unschedule( rg );
mergedRemoteIndexesScheduler.schedule( rg, getMergedIndexDirectory(
repositoryGroup.getId() ) );
+ triggerAuditEvent( repositoryGroup.getId(), null,
AuditEvent.MODIFY_REPO_GROUP, auditInformation );
return Boolean.TRUE;
}
diff --git
a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryRegistry.java
b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryRegistry.java
index 6a9db1d..79c28bb 100644
---
a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryRegistry.java
+++
b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/archiva/repository/RepositoryRegistry.java
@@ -1029,6 +1029,10 @@ public class RepositoryRegistry implements
ConfigurationListener, RepositoryEven
@SuppressWarnings( "unchecked" )
public void removeRepository(Repository repo) throws RepositoryException
{
+ if (repo==null) {
+ log.warn("Trying to remove null repository");
+ return;
+ }
if (repo instanceof RemoteRepository ) {
removeRepository( (RemoteRepository)repo );
} else if (repo instanceof ManagedRepository) {
@@ -1057,6 +1061,7 @@ public class RepositoryRegistry implements
ConfigurationListener, RepositoryEven
repo = managedRepositories.remove( id );
if (repo!=null) {
repo.close();
+ removeRepositoryFromGroups(repo);
Configuration configuration =
getArchivaConfiguration().getConfiguration();
ManagedRepositoryConfiguration cfg =
configuration.findManagedRepositoryById( id );
if (cfg!=null) {
@@ -1079,6 +1084,13 @@ public class RepositoryRegistry implements
ConfigurationListener, RepositoryEven
}
}
+ private void removeRepositoryFromGroups(ManagedRepository repo) {
+ if (repo!=null) {
+ repositoryGroups.values().stream().filter(repoGroup -> repoGroup
instanceof EditableRepository).
+ map(repoGroup -> (EditableRepositoryGroup)
repoGroup).forEach(repoGroup -> repoGroup.removeRepository(repo));
+ }
+ }
+
public void removeRepository(ManagedRepository managedRepository,
Configuration configuration) throws RepositoryException
{
final String id = managedRepository.getId();
@@ -1089,6 +1101,7 @@ public class RepositoryRegistry implements
ConfigurationListener, RepositoryEven
repo = managedRepositories.remove( id );
if (repo!=null) {
repo.close();
+ removeRepositoryFromGroups(repo);
ManagedRepositoryConfiguration cfg =
configuration.findManagedRepositoryById( id );
if (cfg!=null) {
configuration.removeManagedRepository( cfg );
diff --git
a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/content/maven2/ManagedDefaultRepositoryContent.java
b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/content/maven2/ManagedDefaultRepositoryContent.java
index c34c01d..f0d81e2 100644
---
a/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/content/maven2/ManagedDefaultRepositoryContent.java
+++
b/archiva-modules/archiva-maven/archiva-maven-repository/src/main/java/org/apache/archiva/repository/content/maven2/ManagedDefaultRepositoryContent.java
@@ -423,9 +423,11 @@ public class ManagedDefaultRepositoryContent
public void setRepository( ManagedRepository repo )
{
this.repository = repo;
- this.repoDir = PathUtil.getPathFromUri( repository.getLocation() );
- if (repository instanceof EditableManagedRepository ) {
- ((EditableManagedRepository)repository).setContent(this);
+ if (repo!=null) {
+ this.repoDir = PathUtil.getPathFromUri(repository.getLocation());
+ if (repository instanceof EditableManagedRepository) {
+ ((EditableManagedRepository) repository).setContent(this);
+ }
}
}