Correcting DatabaseUpgrade process that was causing the problem. git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@548151 13f79535-47bb-0310-9956-ffa450edef68tags/archiva-1.0-alpha-2
@@ -64,16 +64,15 @@ | |||
<groupId>org.codehaus.plexus.registry</groupId> | |||
<artifactId>plexus-registry-api</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.codehaus.plexus.registry</groupId> | |||
<artifactId>plexus-registry-commons</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.codehaus.plexus</groupId> | |||
<artifactId>plexus-container-default</artifactId> | |||
</dependency> | |||
<!-- Test Deps --> | |||
<dependency> | |||
<groupId>org.codehaus.plexus.registry</groupId> | |||
<artifactId>plexus-registry-commons</artifactId> | |||
<scope>test</scope> | |||
</dependency> | |||
<dependency> | |||
<groupId>easymock</groupId> | |||
<artifactId>easymock</artifactId> |
@@ -25,8 +25,7 @@ import org.apache.commons.lang.StringUtils; | |||
import org.apache.commons.lang.math.NumberUtils; | |||
import org.apache.maven.archiva.xml.XMLException; | |||
import org.apache.maven.archiva.xml.XMLReader; | |||
import org.codehaus.plexus.logging.Logger; | |||
import org.codehaus.plexus.logging.console.ConsoleLogger; | |||
import org.codehaus.plexus.logging.AbstractLogEnabled; | |||
import java.io.File; | |||
import java.io.FileOutputStream; | |||
@@ -41,28 +40,30 @@ import java.net.URL; | |||
* | |||
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> | |||
* @version $Id$ | |||
* | |||
* @plexus.component role="org.apache.maven.archiva.configuration.ConfigurationUpgrade" | |||
*/ | |||
public class ConfigurationUpgrade | |||
extends AbstractLogEnabled | |||
{ | |||
public static final int CURRENT_CONFIG_VERSION = 1; | |||
private Logger logger; | |||
private boolean performed = false; | |||
/** | |||
* Perform the upgrade (if needed). | |||
* | |||
* NOTE: This component should *NOT USE* the configuration api to do it's upgrade | |||
* | |||
* @return true if the upgrade modified the archiva.xml file. false otherwise. | |||
*/ | |||
public boolean perform() | |||
public void performUpgrade() | |||
{ | |||
performed = true; | |||
File userConfigFile = new File( System.getProperty( "user.home" ), ".m2/archiva.xml" ); | |||
if ( !userConfigFile.exists() ) | |||
{ | |||
writeDefaultConfigFile( userConfigFile ); | |||
return true; | |||
return; | |||
} | |||
boolean configOk = false; | |||
@@ -85,7 +86,7 @@ public class ConfigurationUpgrade | |||
catch ( XMLException e ) | |||
{ | |||
getLogger().warn( "Unable to read user configuration XML: " + e.getMessage(), e ); | |||
return false; | |||
return; | |||
} | |||
if ( !configOk ) | |||
@@ -94,7 +95,7 @@ public class ConfigurationUpgrade | |||
{ | |||
FileUtils.copyFile( userConfigFile, new File( userConfigFile.getAbsolutePath() + ".bak" ) ); | |||
writeDefaultConfigFile( userConfigFile ); | |||
return true; | |||
return; | |||
} | |||
catch ( IOException e ) | |||
{ | |||
@@ -102,7 +103,7 @@ public class ConfigurationUpgrade | |||
} | |||
} | |||
return false; | |||
return; | |||
} | |||
private void upgradeVersion( File userConfigFile, XMLReader xml ) | |||
@@ -148,18 +149,8 @@ public class ConfigurationUpgrade | |||
} | |||
} | |||
public Logger getLogger() | |||
{ | |||
if ( logger == null ) | |||
{ | |||
logger = new ConsoleLogger( ConsoleLogger.LEVEL_INFO, this.getClass().getName() ); | |||
} | |||
return logger; | |||
} | |||
public void setLogger( Logger logger ) | |||
public boolean hasPerformed() | |||
{ | |||
this.logger = logger; | |||
return this.performed; | |||
} | |||
} |
@@ -27,6 +27,7 @@ import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationExce | |||
import org.codehaus.plexus.registry.Registry; | |||
import org.codehaus.plexus.registry.RegistryException; | |||
import org.codehaus.plexus.registry.RegistryListener; | |||
import org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry; | |||
import org.codehaus.plexus.util.StringUtils; | |||
import java.util.Iterator; | |||
@@ -47,6 +48,11 @@ public class DefaultArchivaConfiguration | |||
*/ | |||
private Registry registry; | |||
/** | |||
* @plexus.requirement | |||
*/ | |||
private ConfigurationUpgrade upgrader; | |||
/** | |||
* The configuration that has been converted. | |||
*/ | |||
@@ -65,6 +71,24 @@ public class DefaultArchivaConfiguration | |||
private Configuration load() | |||
{ | |||
if ( !upgrader.hasPerformed() ) | |||
{ | |||
upgrader.performUpgrade(); | |||
// HACK: This would be so much easier with a registry.reload() method. | |||
if ( registry instanceof CommonsConfigurationRegistry ) | |||
{ | |||
try | |||
{ | |||
( (CommonsConfigurationRegistry) registry ).initialize(); | |||
} | |||
catch ( InitializationException e ) | |||
{ | |||
getLogger().error( "Unable to reinitialize the registry: " + e.getMessage(), e ); | |||
} | |||
} | |||
} | |||
// TODO: should this be the same as section? make sure unnamed sections still work (eg, sys properties) | |||
Configuration config = new ConfigurationRegistryReader().read( registry.getSubset( KEY ) ); | |||
@@ -110,13 +134,6 @@ public class DefaultArchivaConfiguration | |||
throws InitializationException | |||
{ | |||
registry.addChangeListener( this ); | |||
ConfigurationUpgrade upgrade = new ConfigurationUpgrade(); | |||
upgrade.setLogger( getLogger() ); | |||
if ( upgrade.perform() ) | |||
{ | |||
this.configuration = load(); | |||
} | |||
} | |||
public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) |
@@ -29,8 +29,13 @@ | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>empty</role-hint> | |||
</requirement> | |||
<requirement> | |||
<role>org.apache.maven.archiva.configuration.ConfigurationUpgrade</role> | |||
<field-name>upgrader</field-name> | |||
</requirement> | |||
</requirements> | |||
</component> | |||
<component> | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>empty</role-hint> | |||
@@ -48,6 +53,10 @@ | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>configured</role-hint> | |||
</requirement> | |||
<requirement> | |||
<role>org.apache.maven.archiva.configuration.ConfigurationUpgrade</role> | |||
<field-name>upgrader</field-name> | |||
</requirement> | |||
</requirements> | |||
</component> | |||
<component> | |||
@@ -72,6 +81,10 @@ | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>save</role-hint> | |||
</requirement> | |||
<requirement> | |||
<role>org.apache.maven.archiva.configuration.ConfigurationUpgrade</role> | |||
<field-name>upgrader</field-name> | |||
</requirement> | |||
</requirements> | |||
</component> | |||
<component> | |||
@@ -95,6 +108,10 @@ | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>save-user</role-hint> | |||
</requirement> | |||
<requirement> | |||
<role>org.apache.maven.archiva.configuration.ConfigurationUpgrade</role> | |||
<field-name>upgrader</field-name> | |||
</requirement> | |||
</requirements> | |||
</component> | |||
<component> | |||
@@ -120,6 +137,10 @@ | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>read-saved</role-hint> | |||
</requirement> | |||
<requirement> | |||
<role>org.apache.maven.archiva.configuration.ConfigurationUpgrade</role> | |||
<field-name>upgrader</field-name> | |||
</requirement> | |||
</requirements> | |||
</component> | |||
<component> | |||
@@ -143,6 +164,10 @@ | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>read-remove-proxied-repo</role-hint> | |||
</requirement> | |||
<requirement> | |||
<role>org.apache.maven.archiva.configuration.ConfigurationUpgrade</role> | |||
<field-name>upgrader</field-name> | |||
</requirement> | |||
</requirements> | |||
</component> | |||
<component> | |||
@@ -165,6 +190,10 @@ | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>read-back-remove-proxied-repo</role-hint> | |||
</requirement> | |||
<requirement> | |||
<role>org.apache.maven.archiva.configuration.ConfigurationUpgrade</role> | |||
<field-name>upgrader</field-name> | |||
</requirement> | |||
</requirements> | |||
</component> | |||
<component> |
@@ -59,7 +59,7 @@ public class IndexArtifactConsumer | |||
implements DatabaseUnprocessedArtifactConsumer, RegistryListener, Initializable | |||
{ | |||
private static final String INDEX_ERROR = "indexing_error"; | |||
/** | |||
* @plexus.configuration default-value="index-artifact" | |||
*/ | |||
@@ -69,7 +69,7 @@ public class IndexArtifactConsumer | |||
* @plexus.configuration default-value="Index the artifact checksums for Find functionality." | |||
*/ | |||
private String description; | |||
/** | |||
* @plexus.requirement | |||
*/ | |||
@@ -79,12 +79,12 @@ public class IndexArtifactConsumer | |||
* @plexus.requirement role="org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout" | |||
*/ | |||
private Map bidirectionalLayoutMap; | |||
/** | |||
* @plexus.requirement role-hint="lucene" | |||
*/ | |||
private RepositoryContentIndexFactory indexFactory; | |||
private Map repositoryMap = new HashMap(); | |||
public void beginScan() | |||
@@ -108,11 +108,12 @@ public class IndexArtifactConsumer | |||
HashcodesRecord record = new HashcodesRecord(); | |||
record.setRepositoryId( artifact.getModel().getRepositoryId() ); | |||
record.setArtifact( artifact ); | |||
IndexedRepositoryDetails pnl = getIndexedRepositoryDetails( artifact ); | |||
String artifactPath = pnl.layout.toPath( artifact ); | |||
record.setFilename( artifactPath ); | |||
try | |||
{ | |||
pnl.index.modifyRecord( record ); | |||
@@ -195,7 +196,7 @@ public class IndexArtifactConsumer | |||
pnl.path = repository.getUrl().getPath(); | |||
pnl.layout = (BidirectionalRepositoryLayout) this.bidirectionalLayoutMap.get( repoconfig.getLayout() ); | |||
pnl.index = indexFactory.createHashcodeIndex( repository ); | |||
this.repositoryMap.put( repoconfig.getId(), pnl ); | |||
@@ -208,7 +209,7 @@ public class IndexArtifactConsumer | |||
public String path; | |||
public BidirectionalRepositoryLayout layout; | |||
public RepositoryContentIndex index; | |||
} | |||
} |
@@ -28,6 +28,10 @@ | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>configured</role-hint> | |||
</requirement> | |||
<requirement> | |||
<role>org.apache.maven.archiva.configuration.ConfigurationUpgrade</role> | |||
<field-name>upgrader</field-name> | |||
</requirement> | |||
</requirements> | |||
</component> | |||
<component> |
@@ -10,6 +10,10 @@ | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>configured</role-hint> | |||
</requirement> | |||
<requirement> | |||
<role>org.apache.maven.archiva.configuration.ConfigurationUpgrade</role> | |||
<field-name>upgrader</field-name> | |||
</requirement> | |||
</requirements> | |||
</component> | |||
<component> |
@@ -10,6 +10,10 @@ | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>configured</role-hint> | |||
</requirement> | |||
<requirement> | |||
<role>org.apache.maven.archiva.configuration.ConfigurationUpgrade</role> | |||
<field-name>upgrader</field-name> | |||
</requirement> | |||
</requirements> | |||
</component> | |||
<component> |
@@ -42,6 +42,10 @@ | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>configured</role-hint> | |||
</requirement> | |||
<requirement> | |||
<role>org.apache.maven.archiva.configuration.ConfigurationUpgrade</role> | |||
<field-name>upgrader</field-name> | |||
</requirement> | |||
</requirements> | |||
</component> | |||
@@ -51,6 +51,10 @@ | |||
<role>org.codehaus.plexus.registry.Registry</role> | |||
<role-hint>configured</role-hint> | |||
</requirement> | |||
<requirement> | |||
<role>org.apache.maven.archiva.configuration.ConfigurationUpgrade</role> | |||
<field-name>upgrader</field-name> | |||
</requirement> | |||
</requirements> | |||
</component> | |||