Author: oching
Date: Thu Aug 16 23:59:41 2007
New Revision: 566945

URL: http://svn.apache.org/viewvc?view=rev&rev=566945
Log:
[MRM-436]
- Added '\' for the snapshots cron expression in default-archiva.xml to escape 
the ',' 
- (DefaultArchivaConfiguration) Added method for adding '\' to the cron 
expression if ',' exists before saving the configuration and method for 
removing '\' after the configuration is read from the configuration file


Modified:
    
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
    
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/default-archiva.xml

Modified: 
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java?view=diff&rev=566945&r1=566944&r2=566945
==============================================================================
--- 
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
 (original)
+++ 
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
 Thu Aug 16 23:59:41 2007
@@ -96,6 +96,9 @@
         {
             configuration = load();
         }
+
+        configuration = processExpressions( configuration );
+
         return configuration;
     }
 
@@ -115,12 +118,6 @@
 
         Configuration config = new ConfigurationRegistryReader().read( subset 
);
 
-        // TODO: for commons-configuration 1.3 only
-        for ( Iterator i = config.getRepositories().iterator(); i.hasNext(); )
-        {
-            RepositoryConfiguration c = (RepositoryConfiguration) i.next();
-            c.setUrl( removeExpressions( c.getUrl() ) );
-        }
         return config;
     }
 
@@ -181,6 +178,8 @@
             }
         }
 
+        configuration = escapeCronExpressions( configuration );
+
         new ConfigurationRegistryWriter().write( configuration, section );
         section.save();
 
@@ -265,6 +264,48 @@
         value = StringUtils.replace( value, "${appserver.home}",
                                      registry.getString( "appserver.home", 
"${appserver.home}" ) );
         return value;
+    }
+
+    private String unescapeCronExpression( String cronExpression )
+    {
+        return StringUtils.replace( cronExpression, "\\," , ","  );
+    }
+
+    private String escapeCronExpression( String cronExpression )
+    {
+        return StringUtils.replace( cronExpression, "," , "\\,"  );
+    }
+
+     private Configuration processExpressions( Configuration config )
+    {
+         // TODO: for commons-configuration 1.3 only
+        for ( Iterator i = config.getRepositories().iterator(); i.hasNext(); )
+        {
+            RepositoryConfiguration c = (RepositoryConfiguration) i.next();
+            c.setUrl( removeExpressions( c.getUrl() ) );
+            c.setRefreshCronExpression( unescapeCronExpression( 
c.getRefreshCronExpression() ) );
+        }
+
+        String cron = config.getDatabaseScanning().getCronExpression();
+        config.getDatabaseScanning().setCronExpression( 
unescapeCronExpression( cron ) );
+
+        return config;
+    }
+
+    private Configuration escapeCronExpressions( Configuration config )
+    {
+        for ( Iterator i = config.getRepositories().iterator(); i.hasNext(); )
+        {
+            RepositoryConfiguration c = (RepositoryConfiguration) i.next();
+
+            c.setRefreshCronExpression(
+                    escapeCronExpression( c.getRefreshCronExpression() ) );
+        }
+
+        String cron = config.getDatabaseScanning().getCronExpression();
+        config.getDatabaseScanning().setCronExpression( escapeCronExpression( 
cron ) );
+
+        return config;
     }
 
 }

Modified: 
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/default-archiva.xml
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/default-archiva.xml?view=diff&rev=566945&r1=566944&r2=566945
==============================================================================
--- 
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/default-archiva.xml
 (original)
+++ 
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/resources/org/apache/maven/archiva/configuration/default-archiva.xml
 Thu Aug 16 23:59:41 2007
@@ -21,7 +21,7 @@
       <releases>false</releases>
       <snapshots>true</snapshots>
       <indexed>true</indexed>
-      <refreshCronExpression>0 0,30 0 * * ?</refreshCronExpression>
+      <refreshCronExpression>0 0\,30 0 * * ?</refreshCronExpression>
       <daysOlder>30</daysOlder>
     </repository>
     <repository>


Reply via email to