You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2005/09/07 23:25:08 UTC
svn commit: r279427 - in
/maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater:
DefaultUpdaterManager.java UpdaterForContinuumOneAlphaThree.java
cli/UpdaterCli.java
Author: evenisse
Date: Wed Sep 7 14:25:03 2005
New Revision: 279427
URL: http://svn.apache.org/viewcvs?rev=279427&view=rev
Log:
Add backup and restore methods for user continuum version
Modified:
maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/DefaultUpdaterManager.java
maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/UpdaterForContinuumOneAlphaThree.java
maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/cli/UpdaterCli.java
Modified: maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/DefaultUpdaterManager.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/DefaultUpdaterManager.java?rev=279427&r1=279426&r2=279427&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/DefaultUpdaterManager.java (original)
+++ maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/DefaultUpdaterManager.java Wed Sep 7 14:25:03 2005
@@ -21,9 +21,11 @@
import org.apache.maven.continuum.updater.model.Version;
import org.apache.maven.continuum.updater.model.io.xpp3.ContinuumUpdaterXpp3Reader;
import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.util.FileUtils;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.io.IOException;
import java.io.File;
import java.util.Iterator;
import java.util.Map;
@@ -45,7 +47,7 @@
*/
private Map updaters;
- public void execute( String version, File continuumHome )
+ public void execute( String userVersion, File continuumHome )
throws UpdaterException
{
InputStream confAsStream;
@@ -73,20 +75,20 @@
{
Version v = (Version) i.next();
- if ( v.getName().equals( version ) )
+ if ( v.getName().equals( userVersion ) )
{
versionFounded = true;
}
if ( versionFounded && v.getComponentRole() != null )
{
- update( v, continuumHome );
+ update( userVersion, v, continuumHome );
}
}
if ( !versionFounded )
{
- getLogger().warn( "There are no updater for your version(" + version + ")\n" + getAvailableVersions( model ) );
+ getLogger().warn( "There are no updater for your version(" + userVersion + ")\n" + getAvailableVersions( model ) );
}
}
@@ -112,7 +114,7 @@
return sb.toString();
}
- private void update( Version version, File continuumHome )
+ private void update( String userVersion, Version version, File continuumHome )
throws UpdaterException
{
getLogger().info( "************************************************************************" );
@@ -121,16 +123,69 @@
Updater updater = (Updater) updaters.get( version.getComponentRole() );
- getLogger().info( "Update database" );
+ if ( updater == null )
+ {
+ throw new UpdaterException( "Updater " + version.getComponentRole() + " doesn't exist." );
+ }
+
+ if ( version.equals( version.getName() ) )
+ {
+ backup( continuumHome, userVersion );
+ }
+
+ try
+ {
+ getLogger().info( "==> Update database" );
+
+ updater.updateDatabase();
- updater.updateDatabase();
+ getLogger().info( "==> Update librairies" );
- getLogger().info( "Update librairies" );
+ updater.updateLibraries();
- updater.updateLibraries();
+ getLogger().info( "==> Update file system" );
- getLogger().info( "Update file system" );
+ updater.updateFileSystem();
+ }
+ catch( UpdaterException e )
+ {
+ restore( continuumHome, userVersion );
+
+ throw e;
+ }
+ }
+
+ private void backup( File continuumHome, String userVersion )
+ throws UpdaterException
+ {
+ getLogger().info( "==> Backup Continuum " + userVersion );
- updater.updateFileSystem();
+ try
+ {
+ FileUtils.copyDirectoryStructure( continuumHome,
+ new File( continuumHome.getParentFile(), "continuum-" + userVersion ) );
+ }
+ catch( IOException e )
+ {
+ throw new UpdaterException( "Can't create a continuum backup.", e );
+ }
+ }
+
+ private void restore( File continuumHome, String userVersion )
+ throws UpdaterException
+ {
+ getLogger().info( "==> Restore Continuum " + userVersion );
+
+ try
+ {
+ FileUtils.cleanDirectory( continuumHome );
+
+ FileUtils.copyDirectoryStructure( new File( continuumHome.getParentFile(), "continuum-" + userVersion ),
+ continuumHome );
+ }
+ catch( IOException e )
+ {
+ throw new UpdaterException( "Can't restore continuum.", e );
+ }
}
}
Modified: maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/UpdaterForContinuumOneAlphaThree.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/UpdaterForContinuumOneAlphaThree.java?rev=279427&r1=279426&r2=279427&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/UpdaterForContinuumOneAlphaThree.java (original)
+++ maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/UpdaterForContinuumOneAlphaThree.java Wed Sep 7 14:25:03 2005
@@ -21,6 +21,7 @@
/**
* @plexus.component
* role="org.apache.maven.continuum.updater.Updater"
+ * role-hint="updateTo1.0-alpha-4"
*
* @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
* @version $Id$
Modified: maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/cli/UpdaterCli.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/cli/UpdaterCli.java?rev=279427&r1=279426&r2=279427&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/cli/UpdaterCli.java (original)
+++ maven/continuum/trunk/continuum-updater/src/main/java/org/apache/maven/continuum/updater/cli/UpdaterCli.java Wed Sep 7 14:25:03 2005
@@ -167,7 +167,7 @@
static class CLIManager
{
- public static final char CONTINUUM_HOME = 'c';
+ public static final char CONTINUUM_HOME = 'p';
public static final char VERSION = 'v';