You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2008/03/31 07:56:10 UTC
svn commit: r642890 - in
/archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src:
main/java/org/apache/maven/archiva/configuration/ test/conf/
test/java/org/apache/maven/archiva/configuration/
Author: brett
Date: Sun Mar 30 22:56:09 2008
New Revision: 642890
URL: http://svn.apache.org/viewvc?rev=642890&view=rev
Log:
[MRM-758] cron expressions with a comma are not being scheduled after configuration save
Merged from: r642886
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/test/conf/escape-cron-expressions.xml
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java?rev=642890&r1=642889&r2=642890&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java Sun Mar 30 22:56:09 2008
@@ -145,7 +145,7 @@
if ( configuration == null )
{
configuration = load();
- configuration = processExpressions( configuration );
+ configuration = unescapeExpressions( configuration );
}
return configuration;
@@ -432,19 +432,7 @@
}
// escape all cron expressions to handle ','
- for ( Iterator<ManagedRepositoryConfiguration> i = configuration.getManagedRepositories().iterator(); i
- .hasNext(); )
- {
- ManagedRepositoryConfiguration c = i.next();
- c.setRefreshCronExpression( escapeCronExpression( c.getRefreshCronExpression() ) );
- }
-
- if ( configuration.getDatabaseScanning() != null )
- {
- configuration.getDatabaseScanning().setCronExpression(
- escapeCronExpression( configuration
- .getDatabaseScanning().getCronExpression() ) );
- }
+ escapeCronExpressions( configuration );
// [MRM-661] Due to a bug in the modello registry writer, we need to take these out by hand. They'll be put back by the writer.
if ( configuration.getManagedRepositories().isEmpty() )
@@ -493,9 +481,23 @@
new ConfigurationRegistryWriter().write( configuration, section );
section.save();
+ this.configuration = unescapeExpressions( configuration );
+
triggerEvent( ConfigurationEvent.SAVED );
+ }
+
+ private void escapeCronExpressions( Configuration configuration )
+ {
+ for ( ManagedRepositoryConfiguration c : (List<ManagedRepositoryConfiguration>) configuration.getManagedRepositories() )
+ {
+ c.setRefreshCronExpression( escapeCronExpression( c.getRefreshCronExpression() ) );
+ }
- this.configuration = processExpressions( configuration );
+ DatabaseScanningConfiguration scanning = configuration.getDatabaseScanning();
+ if ( scanning != null )
+ {
+ scanning.setCronExpression( escapeCronExpression( scanning.getCronExpression() ) );
+ }
}
private Registry createDefaultConfigurationFile()
@@ -576,14 +578,7 @@
ConfigurationEvent evt = new ConfigurationEvent( type );
for ( ConfigurationListener listener : listeners )
{
- try
- {
- listener.configurationEvent( evt );
- }
- catch ( Throwable t )
- {
- log.warn( "Unable to notify of saved configuration event.", t );
- }
+ listener.configurationEvent( evt );
}
}
@@ -678,7 +673,7 @@
return StringUtils.replace( cronExpression, ",", "\\," );
}
- private Configuration processExpressions( Configuration config )
+ private Configuration unescapeExpressions( Configuration config )
{
// TODO: for commons-configuration 1.3 only
for ( Iterator<ManagedRepositoryConfiguration> i = config.getManagedRepositories().iterator(); i.hasNext(); )
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/test/conf/escape-cron-expressions.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/test/conf/escape-cron-expressions.xml?rev=642890&r1=642889&r2=642890&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/test/conf/escape-cron-expressions.xml (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/test/conf/escape-cron-expressions.xml Sun Mar 30 22:56:09 2008
@@ -26,7 +26,7 @@
<location>file://${appserver.base}/repositories/internal</location>
<releases>false</releases>
<snapshots>true</snapshots>
- <refreshCronExpression>0 0\,30 * * ?</refreshCronExpression>
+ <refreshCronExpression>0 0\,30 * * * ?</refreshCronExpression>
</managedRepository>
</managedRepositories>
<databaseScanning>
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java?rev=642890&r1=642889&r2=642890&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java Sun Mar 30 22:56:09 2008
@@ -618,7 +618,7 @@
userFile.getParentFile().mkdirs();
FileUtils.writeStringToFile( userFile, "<configuration/>", null );
- ArchivaConfiguration archivaConfiguration =
+ final ArchivaConfiguration archivaConfiguration =
(ArchivaConfiguration) lookup( ArchivaConfiguration.class.getName(), "test-cron-expressions" );
Configuration configuration = archivaConfiguration.getConfiguration();
@@ -626,9 +626,27 @@
ManagedRepositoryConfiguration repository =
(ManagedRepositoryConfiguration) configuration.getManagedRepositories().get( 0 );
- assertEquals( "check cron expression", "0 0,30 * * ?", repository.getRefreshCronExpression().trim() );
+ assertEquals( "check cron expression", "0 0,30 * * * ?", repository.getRefreshCronExpression().trim() );
configuration.getDatabaseScanning().setCronExpression( "0 0,15 0 * * ?" );
+
+ // add a test listener to confirm it doesn't see the escaped format. We don't need to test the number of calls,
+ // etc. as it's done in other tests
+ archivaConfiguration.addListener( new ConfigurationListener()
+ {
+ public void configurationEvent( ConfigurationEvent event )
+ {
+ assertEquals( ConfigurationEvent.SAVED, event.getType() );
+
+ Configuration configuration = archivaConfiguration.getConfiguration();
+
+ ManagedRepositoryConfiguration repository =
+ (ManagedRepositoryConfiguration) configuration.getManagedRepositories().get( 0 );
+
+ assertEquals( "check cron expression", "0 0,15 0 * * ?",
+ configuration.getDatabaseScanning().getCronExpression() );
+ }
+ } );
archivaConfiguration.save( configuration );