mirror of https://github.com/apache/archiva.git
Adding ActiveManagedRepositories for non-webapp to use.
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@535895 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f8b9e076b3
commit
cfc5869263
|
@ -0,0 +1,92 @@
|
||||||
|
package org.apache.maven.archiva.repository;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
|
||||||
|
import org.apache.maven.archiva.configuration.ConfigurationNames;
|
||||||
|
import org.apache.maven.archiva.configuration.util.LocalRepositoryPredicate;
|
||||||
|
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
|
||||||
|
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
|
||||||
|
import org.codehaus.plexus.registry.Registry;
|
||||||
|
import org.codehaus.plexus.registry.RegistryListener;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A component that provides a real-time listing of the active managed repositories within archiva.
|
||||||
|
* This object is internally consistent and will return maintain a consistent list of managed repositories internally.
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
|
||||||
|
* @version $Id$
|
||||||
|
*
|
||||||
|
* @plexus.component role="org.apache.maven.archiva.repository.ActiveManagedRepositories"
|
||||||
|
*/
|
||||||
|
public class ActiveManagedRepositories
|
||||||
|
implements RegistryListener, Initializable
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @plexus.requirement
|
||||||
|
*/
|
||||||
|
private ArchivaConfiguration archivaConfiguration;
|
||||||
|
|
||||||
|
private List allManagedRepositories = new ArrayList();
|
||||||
|
|
||||||
|
public List getAllManagedRepositories()
|
||||||
|
{
|
||||||
|
synchronized ( allManagedRepositories )
|
||||||
|
{
|
||||||
|
return Collections.unmodifiableList( allManagedRepositories );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue )
|
||||||
|
{
|
||||||
|
if ( ConfigurationNames.isRepositories( propertyName ) )
|
||||||
|
{
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue )
|
||||||
|
{
|
||||||
|
/* nothing to do here */
|
||||||
|
}
|
||||||
|
|
||||||
|
public void initialize()
|
||||||
|
throws InitializationException
|
||||||
|
{
|
||||||
|
update();
|
||||||
|
archivaConfiguration.addChangeListener( this );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void update()
|
||||||
|
{
|
||||||
|
synchronized ( allManagedRepositories )
|
||||||
|
{
|
||||||
|
allManagedRepositories.clear();
|
||||||
|
|
||||||
|
List configRepos = archivaConfiguration.getConfiguration().getRepositories();
|
||||||
|
CollectionUtils.select( configRepos, LocalRepositoryPredicate.getInstance() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue