[MRM-1837] DefaultArchivaConfiguration holds references to classes

This commit is contained in:
Olivier Lamy 2014-05-01 14:29:28 +10:00
parent 7808ee5faf
commit 10a0761768
6 changed files with 30 additions and 24 deletions

View File

@ -89,7 +89,7 @@ import java.util.Set;
* before reading it from the registry. * before reading it from the registry.
* </p> * </p>
*/ */
@Service ( "archivaConfiguration#default" ) @Service( "archivaConfiguration#default" )
public class DefaultArchivaConfiguration public class DefaultArchivaConfiguration
implements ArchivaConfiguration, RegistryListener implements ArchivaConfiguration, RegistryListener
{ {
@ -99,7 +99,7 @@ public class DefaultArchivaConfiguration
* Plexus registry to read the configuration from. * Plexus registry to read the configuration from.
*/ */
@Inject @Inject
@Named ( value = "commons-configuration" ) @Named( value = "commons-configuration" )
private Registry registry; private Registry registry;
@Inject @Inject
@ -183,7 +183,7 @@ public class DefaultArchivaConfiguration
return configuration; return configuration;
} }
@SuppressWarnings ( "unchecked" ) @SuppressWarnings( "unchecked" )
private Configuration load() private Configuration load()
{ {
// TODO: should this be the same as section? make sure unnamed sections still work (eg, sys properties) // TODO: should this be the same as section? make sure unnamed sections still work (eg, sys properties)
@ -204,7 +204,7 @@ public class DefaultArchivaConfiguration
config.getRepositoryGroupsAsMap(); config.getRepositoryGroupsAsMap();
if ( !config.getRepositories().isEmpty() ) if ( !config.getRepositories().isEmpty() )
{ {
for ( V1RepositoryConfiguration r : config.getRepositories() ) for ( V1RepositoryConfiguration r : config.getRepositories() )
{ {
r.setScanned( r.isIndexed() ); r.setScanned( r.isIndexed() );
@ -269,8 +269,7 @@ public class DefaultArchivaConfiguration
// Fix Proxy Connector Settings. // Fix Proxy Connector Settings.
// Create a copy of the list to read from (to prevent concurrent modification exceptions) // Create a copy of the list to read from (to prevent concurrent modification exceptions)
List<ProxyConnectorConfiguration> proxyConnectorList = List<ProxyConnectorConfiguration> proxyConnectorList = new ArrayList<>( config.getProxyConnectors() );
new ArrayList<>( config.getProxyConnectors() );
// Remove the old connector list. // Remove the old connector list.
config.getProxyConnectors().clear(); config.getProxyConnectors().clear();
@ -440,7 +439,7 @@ public class DefaultArchivaConfiguration
return registry.getSubset( KEY ); return registry.getSubset( KEY );
} }
@SuppressWarnings ( "unchecked" ) @SuppressWarnings( "unchecked" )
@Override @Override
public synchronized void save( Configuration configuration ) public synchronized void save( Configuration configuration )
throws IndeterminateConfigurationException, RegistryException throws IndeterminateConfigurationException, RegistryException
@ -559,7 +558,8 @@ public class DefaultArchivaConfiguration
throw new RegistryException( throw new RegistryException(
"Unable to create configuration file in either user [" + userConfigFilename + "] or alternative [" "Unable to create configuration file in either user [" + userConfigFilename + "] or alternative ["
+ altConfigFilename + altConfigFilename
+ "] locations on disk, usually happens when not allowed to write to those locations." ); + "] locations on disk, usually happens when not allowed to write to those locations."
);
} }
} }
@ -584,7 +584,7 @@ public class DefaultArchivaConfiguration
/** /**
* Attempts to write the contents to a file, if an IOException occurs, return false. * Attempts to write the contents to a file, if an IOException occurs, return false.
* <p> * <p/>
* The file will be created if the directory to the file exists, otherwise this will return false. * The file will be created if the directory to the file exists, otherwise this will return false.
* *
* @param filetype the filetype (freeform text) to use in logging messages when failure to write. * @param filetype the filetype (freeform text) to use in logging messages when failure to write.
@ -602,7 +602,7 @@ public class DefaultArchivaConfiguration
if ( file.getParentFile() != null ) if ( file.getParentFile() != null )
{ {
// Check that directory exists // Check that directory exists
if ( ! file.getParentFile().isDirectory() ) if ( !file.getParentFile().isDirectory() )
{ {
// Directory to file must exist for file to be created // Directory to file must exist for file to be created
return false; return false;
@ -651,7 +651,6 @@ public class DefaultArchivaConfiguration
} }
@Override @Override
public void addChangeListener( RegistryListener listener ) public void addChangeListener( RegistryListener listener )
{ {
@ -680,6 +679,18 @@ public class DefaultArchivaConfiguration
{ {
boolean removed = registryListeners.remove( listener ); boolean removed = registryListeners.remove( listener );
log.debug( "RegistryListener: '{}' removed {}", listener, removed ); log.debug( "RegistryListener: '{}' removed {}", listener, removed );
Registry section = registry.getSection( KEY + ".user" );
if ( section != null )
{
section.removeChangeListener( listener );
}
section = registry.getSection( KEY + ".base" );
if ( section != null )
{
section.removeChangeListener( listener );
}
} }
@PostConstruct @PostConstruct
@ -714,7 +725,7 @@ public class DefaultArchivaConfiguration
catch ( EvaluatorException e ) catch ( EvaluatorException e )
{ {
throw new RuntimeException( throw new RuntimeException(
"Unable to evaluate expressions found in " + "userConfigFilename or altConfigFilename.", e); "Unable to evaluate expressions found in " + "userConfigFilename or altConfigFilename.", e );
} }
registry.addChangeListener( this ); registry.addChangeListener( this );
} }
@ -818,7 +829,8 @@ public class DefaultArchivaConfiguration
private Configuration unescapeExpressions( Configuration config ) private Configuration unescapeExpressions( Configuration config )
{ {
// TODO: for commons-configuration 1.3 only // TODO: for commons-configuration 1.3 only
for ( ManagedRepositoryConfiguration c : config.getManagedRepositories() ) { for ( ManagedRepositoryConfiguration c : config.getManagedRepositories() )
{
c.setLocation( removeExpressions( c.getLocation() ) ); c.setLocation( removeExpressions( c.getLocation() ) );
c.setRefreshCronExpression( unescapeCronExpression( c.getRefreshCronExpression() ) ); c.setRefreshCronExpression( unescapeCronExpression( c.getRefreshCronExpression() ) );
} }

View File

@ -167,7 +167,7 @@ public class AutoRemoveConsumer
private void initIncludes() private void initIncludes()
{ {
includes = new ArrayList<String>( filetypes.getFileTypePatterns( FileTypes.AUTO_REMOVE ) ); includes = new ArrayList<>( filetypes.getFileTypePatterns( FileTypes.AUTO_REMOVE ) );
} }
@PostConstruct @PostConstruct

View File

@ -238,7 +238,7 @@ public class RepositoryPurgeConsumer
private void initIncludes() private void initIncludes()
{ {
includes = new ArrayList<String>( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) ); includes = new ArrayList<>( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) );
} }
@PostConstruct @PostConstruct

View File

@ -266,7 +266,7 @@ public class NexusIndexerConsumer
List<String> indexable = filetypes.getFileTypePatterns( FileTypes.INDEXABLE_CONTENT ); List<String> indexable = filetypes.getFileTypePatterns( FileTypes.INDEXABLE_CONTENT );
List<String> artifacts = filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ); List<String> artifacts = filetypes.getFileTypePatterns( FileTypes.ARTIFACTS );
includes = new ArrayList<String>( indexable.size() + artifacts.size() ); includes = new ArrayList<>( indexable.size() + artifacts.size() );
includes.addAll( indexable ); includes.addAll( indexable );

View File

@ -58,15 +58,9 @@ public class LegacyConverterArtifactConsumer
{ {
private Logger log = LoggerFactory.getLogger( LegacyConverterArtifactConsumer.class ); private Logger log = LoggerFactory.getLogger( LegacyConverterArtifactConsumer.class );
/**
*
*/
@Inject @Inject
private ArtifactConverter artifactConverter; private ArtifactConverter artifactConverter;
/**
*
*/
private ArtifactFactory artifactFactory; private ArtifactFactory artifactFactory;
private ManagedRepositoryContent managedRepository; private ManagedRepositoryContent managedRepository;

View File

@ -67,7 +67,7 @@
<redback.version>2.2</redback.version> <redback.version>2.2</redback.version>
<redback.cache.version>2.2</redback.cache.version> <redback.cache.version>2.2</redback.cache.version>
<redback.quartz.version>2.1</redback.quartz.version> <redback.quartz.version>2.1</redback.quartz.version>
<redback.registry.version>2.2</redback.registry.version> <redback.registry.version>2.3-SNAPSHOT</redback.registry.version>
<redback.spring-utils.version>2.1</redback.spring-utils.version> <redback.spring-utils.version>2.1</redback.spring-utils.version>
<redback.taskqueue.version>2.1</redback.taskqueue.version> <redback.taskqueue.version>2.1</redback.taskqueue.version>
<slf4j.version>1.7.7</slf4j.version> <slf4j.version>1.7.7</slf4j.version>
@ -614,7 +614,7 @@
<dependency> <dependency>
<groupId>commons-configuration</groupId> <groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId> <artifactId>commons-configuration</artifactId>
<version>1.9</version> <version>1.10</version>
<exclusions> <exclusions>
<exclusion> <exclusion>
<groupId>commons-beanutils</groupId> <groupId>commons-beanutils</groupId>