From 32eddecfdad7ccee72c095589f4aa5ea4963f295 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Wed, 14 Sep 2011 13:54:26 +0000 Subject: [MRM-1003] get RID of org.apache.maven package : fix previous : never do such move with an ide ! git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1170626 13f79535-47bb-0310-9956-ffa450edef68 --- .../artifact/ArtifactConversionException.java | 49 -- .../converter/artifact/ArtifactConverter.java | 58 -- .../converter/artifact/LegacyRepositoryLayout.java | 85 --- .../artifact/LegacyToDefaultConverter.java | 780 --------------------- .../maven/archiva/converter/artifact/Messages.java | 71 -- 5 files changed, 1043 deletions(-) delete mode 100644 archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConversionException.java delete mode 100644 archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConverter.java delete mode 100644 archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyRepositoryLayout.java delete mode 100644 archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverter.java delete mode 100644 archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/Messages.java (limited to 'archiva-modules/archiva-base/archiva-artifact-converter/src') diff --git a/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConversionException.java b/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConversionException.java deleted file mode 100644 index b072ddfe0..000000000 --- a/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConversionException.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.apache.maven.archiva.converter.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * ArtifactConversionException - * - * @version $Id$ - */ -public class ArtifactConversionException - extends Exception -{ - - public ArtifactConversionException() - { - } - - public ArtifactConversionException( String message ) - { - super( message ); - } - - public ArtifactConversionException( Throwable cause ) - { - super( cause ); - } - - public ArtifactConversionException( String message, Throwable cause ) - { - super( message, cause ); - } -} diff --git a/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConverter.java b/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConverter.java deleted file mode 100644 index fc61d16a0..000000000 --- a/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/ArtifactConverter.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.apache.maven.archiva.converter.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.repository.ArtifactRepository; - -import java.util.List; -import java.util.Map; - -/** - * ArtifactConverter - * - * @version $Id$ - */ -public interface ArtifactConverter -{ - public static final String ROLE = ArtifactConverter.class.getName(); - - /** - * Convert an provided artifact, and place it into the destination repository. - * - * @param artifact the artifact to convert. - * @param destinationRepository the respository to send the artifact to. - * @throws ArtifactConversionException - */ - void convert( Artifact artifact, ArtifactRepository destinationRepository ) - throws ArtifactConversionException; - - /** - * Get the map of accumulated warnings for the conversion. - * - * @return the {@link Map}<{@link Artifact}, {@link String}> warning messages. - */ - Map> getWarnings(); - - /** - * Clear the list of warning messages. - */ - void clearWarnings(); -} diff --git a/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyRepositoryLayout.java b/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyRepositoryLayout.java deleted file mode 100644 index 015179b76..000000000 --- a/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyRepositoryLayout.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.apache.maven.archiva.converter.artifact; -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.handler.ArtifactHandler; -import org.apache.maven.artifact.metadata.ArtifactMetadata; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; - -/** - * @author jdcasey - */ -public class LegacyRepositoryLayout - implements ArtifactRepositoryLayout -{ - - private static final String PATH_SEPARATOR = "/"; - - public String getId() - { - return "legacy"; - } - - public String pathOf( Artifact artifact ) - { - ArtifactHandler artifactHandler = artifact.getArtifactHandler(); - - StringBuilder path = new StringBuilder( 128 ); - - path.append( artifact.getGroupId() ).append( '/' ); - path.append( artifactHandler.getDirectory() ).append( '/' ); - path.append( artifact.getArtifactId() ).append( '-' ).append( artifact.getVersion() ); - - if ( artifact.hasClassifier() ) - { - path.append( '-' ).append( artifact.getClassifier() ); - } - - if ( artifactHandler.getExtension() != null && artifactHandler.getExtension().length() > 0 ) - { - path.append( '.' ).append( artifactHandler.getExtension() ); - } - - return path.toString(); - } - - public String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository ) - { - return pathOfRepositoryMetadata( metadata, metadata.getLocalFilename( repository ) ); - } - - private String pathOfRepositoryMetadata( ArtifactMetadata metadata, String filename ) - { - StringBuilder path = new StringBuilder( 128 ); - - path.append( metadata.getGroupId() ).append( PATH_SEPARATOR ).append( "poms" ).append( PATH_SEPARATOR ); - - path.append( filename ); - - return path.toString(); - } - - public String pathOfRemoteRepositoryMetadata( ArtifactMetadata metadata ) - { - return pathOfRepositoryMetadata( metadata, metadata.getRemoteFilename() ); - } - -} diff --git a/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverter.java b/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverter.java deleted file mode 100644 index 3998442c3..000000000 --- a/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverter.java +++ /dev/null @@ -1,780 +0,0 @@ -package org.apache.maven.archiva.converter.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.archiva.common.plexusbridge.DigesterUtils; -import org.apache.archiva.common.plexusbridge.PlexusSisuBridge; -import org.apache.archiva.common.plexusbridge.PlexusSisuBridgeException; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.archiva.transaction.FileTransaction; -import org.apache.archiva.transaction.TransactionException; -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata; -import org.apache.maven.artifact.repository.metadata.Metadata; -import org.apache.maven.artifact.repository.metadata.RepositoryMetadata; -import org.apache.maven.artifact.repository.metadata.Snapshot; -import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata; -import org.apache.maven.artifact.repository.metadata.Versioning; -import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader; -import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer; -import org.apache.maven.model.DistributionManagement; -import org.apache.maven.model.Model; -import org.apache.maven.model.Relocation; -import org.apache.maven.model.converter.ModelConverter; -import org.apache.maven.model.converter.PomTranslationException; -import org.apache.maven.model.io.xpp3.MavenXpp3Writer; -import org.codehaus.plexus.digest.Digester; -import org.codehaus.plexus.digest.DigesterException; -import org.codehaus.plexus.util.xml.pull.XmlPullParserException; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import javax.inject.Inject; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.io.StringReader; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.regex.Matcher; - -/** - * LegacyToDefaultConverter - * - * @version $Id$ - */ -@Service( "artifactConverter#legacy-to-default" ) -public class LegacyToDefaultConverter - implements ArtifactConverter -{ - /** - * {@link List}<{@link Digester} - * - */ - private List digesters; - - @Inject - private PlexusSisuBridge plexusSisuBridge; - - @Inject - private DigesterUtils digesterUtils; - - /** - * - */ - private ModelConverter translator; - - /** - * - */ - private ArtifactFactory artifactFactory; - - /** - * - */ - private ArtifactHandlerManager artifactHandlerManager; - - /** - * default-value="false" - */ - private boolean force; - - /** - * default-value="false" - */ - private boolean dryrun; - - private Map> warnings = new HashMap>(); - - @PostConstruct - public void initialize() - throws PlexusSisuBridgeException - { - this.digesters = digesterUtils.getAllDigesters(); - translator = plexusSisuBridge.lookup( ModelConverter.class ); - artifactFactory = plexusSisuBridge.lookup( ArtifactFactory.class ); - artifactHandlerManager = plexusSisuBridge.lookup( ArtifactHandlerManager.class ); - } - - public void convert( Artifact artifact, ArtifactRepository targetRepository ) - throws ArtifactConversionException - { - if ( artifact.getRepository().getUrl().equals( targetRepository.getUrl() ) ) - { - throw new ArtifactConversionException( Messages.getString( "exception.repositories.match" ) ); //$NON-NLS-1$ - } - - if ( !validateMetadata( artifact ) ) - { - addWarning( artifact, Messages.getString( "unable.to.validate.metadata" ) ); //$NON-NLS-1$ - return; - } - - FileTransaction transaction = new FileTransaction(); - - if ( !copyPom( artifact, targetRepository, transaction ) ) - { - addWarning( artifact, Messages.getString( "unable.to.copy.pom" ) ); //$NON-NLS-1$ - return; - } - - if ( !copyArtifact( artifact, targetRepository, transaction ) ) - { - addWarning( artifact, Messages.getString( "unable.to.copy.artifact" ) ); //$NON-NLS-1$ - return; - } - - Metadata metadata = createBaseMetadata( artifact ); - Versioning versioning = new Versioning(); - versioning.addVersion( artifact.getBaseVersion() ); - metadata.setVersioning( versioning ); - updateMetadata( new ArtifactRepositoryMetadata( artifact ), targetRepository, metadata, transaction ); - - metadata = createBaseMetadata( artifact ); - metadata.setVersion( artifact.getBaseVersion() ); - versioning = new Versioning(); - - Matcher matcher = Artifact.VERSION_FILE_PATTERN.matcher( artifact.getVersion() ); - if ( matcher.matches() ) - { - Snapshot snapshot = new Snapshot(); - snapshot.setBuildNumber( Integer.parseInt( matcher.group( 3 ) ) ); - snapshot.setTimestamp( matcher.group( 2 ) ); - versioning.setSnapshot( snapshot ); - } - - // TODO: merge latest/release/snapshot from source instead - metadata.setVersioning( versioning ); - updateMetadata( new SnapshotArtifactRepositoryMetadata( artifact ), targetRepository, metadata, transaction ); - - if ( !dryrun ) - { - try - { - transaction.commit(); - } - catch ( TransactionException e ) - { - throw new ArtifactConversionException( Messages.getString( "transaction.failure", e.getMessage() ), - e ); //$NON-NLS-1$ - } - } - } - - @SuppressWarnings( "unchecked" ) - private boolean copyPom( Artifact artifact, ArtifactRepository targetRepository, FileTransaction transaction ) - throws ArtifactConversionException - { - Artifact pom = artifactFactory.createProjectArtifact( artifact.getGroupId(), artifact.getArtifactId(), - artifact.getVersion() ); - pom.setBaseVersion( artifact.getBaseVersion() ); - ArtifactRepository repository = artifact.getRepository(); - File file = new File( repository.getBasedir(), repository.pathOf( pom ) ); - - boolean result = true; - if ( file.exists() ) - { - File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( pom ) ); - - String contents = null; - boolean checksumsValid = false; - try - { - if ( testChecksums( artifact, file ) ) - { - checksumsValid = true; - } - - // Even if the checksums for the POM are invalid we should still convert the POM - contents = FileUtils.readFileToString( file, null ); - } - catch ( IOException e ) - { - throw new ArtifactConversionException( - Messages.getString( "unable.to.read.source.pom", e.getMessage() ), e ); //$NON-NLS-1$ - } - - if ( checksumsValid && contents.indexOf( "modelVersion" ) >= 0 ) //$NON-NLS-1$ - { - // v4 POM - try - { - boolean matching = false; - if ( !force && targetFile.exists() ) - { - String targetContents = FileUtils.readFileToString( targetFile, null ); - matching = targetContents.equals( contents ); - } - if ( force || !matching ) - { - transaction.createFile( contents, targetFile, digesters ); - } - } - catch ( IOException e ) - { - throw new ArtifactConversionException( - Messages.getString( "unable.to.write.target.pom", e.getMessage() ), e ); //$NON-NLS-1$ - } - } - else - { - // v3 POM - StringReader stringReader = new StringReader( contents ); - StringWriter writer = null; - try - { - org.apache.maven.model.v3_0_0.io.xpp3.MavenXpp3Reader v3Reader = - new org.apache.maven.model.v3_0_0.io.xpp3.MavenXpp3Reader(); - org.apache.maven.model.v3_0_0.Model v3Model = v3Reader.read( stringReader ); - - if ( doRelocation( artifact, v3Model, targetRepository, transaction ) ) - { - Artifact relocatedPom = - artifactFactory.createProjectArtifact( artifact.getGroupId(), artifact.getArtifactId(), - artifact.getVersion() ); - targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( relocatedPom ) ); - } - - Model v4Model = translator.translate( v3Model ); - - translator.validateV4Basics( v4Model, v3Model.getGroupId(), v3Model.getArtifactId(), - v3Model.getVersion(), v3Model.getPackage() ); - - writer = new StringWriter(); - MavenXpp3Writer Xpp3Writer = new MavenXpp3Writer(); - Xpp3Writer.write( writer, v4Model ); - - transaction.createFile( writer.toString(), targetFile, digesters ); - - List warnings = translator.getWarnings(); - - for ( String message : warnings ) - { - addWarning( artifact, message ); - } - } - catch ( XmlPullParserException e ) - { - addWarning( artifact, Messages.getString( "invalid.source.pom", e.getMessage() ) ); //$NON-NLS-1$ - result = false; - } - catch ( IOException e ) - { - throw new ArtifactConversionException( Messages.getString( "unable.to.write.converted.pom" ), - e ); //$NON-NLS-1$ - } - catch ( PomTranslationException e ) - { - addWarning( artifact, Messages.getString( "invalid.source.pom", e.getMessage() ) ); //$NON-NLS-1$ - result = false; - } - finally - { - IOUtils.closeQuietly( writer ); - } - } - } - else - { - addWarning( artifact, Messages.getString( "warning.missing.pom" ) ); //$NON-NLS-1$ - } - return result; - } - - private boolean testChecksums( Artifact artifact, File file ) - throws IOException - { - boolean result = true; - for ( Digester digester : digesters ) - { - result &= verifyChecksum( file, file.getName() + "." + getDigesterFileExtension( digester ), digester, - //$NON-NLS-1$ - artifact, - "failure.incorrect." + getDigesterFileExtension( digester ) ); //$NON-NLS-1$ - } - return result; - } - - private boolean verifyChecksum( File file, String fileName, Digester digester, Artifact artifact, String key ) - throws IOException - { - boolean result = true; - - File checksumFile = new File( file.getParentFile(), fileName ); - if ( checksumFile.exists() ) - { - String checksum = FileUtils.readFileToString( checksumFile, null ); - try - { - digester.verify( file, checksum ); - } - catch ( DigesterException e ) - { - addWarning( artifact, Messages.getString( key ) ); - result = false; - } - } - return result; - } - - /** - * File extension for checksums - * TODO should be moved to plexus-digester ? - */ - private String getDigesterFileExtension( Digester digester ) - { - return digester.getAlgorithm().toLowerCase().replaceAll( "-", "" ); //$NON-NLS-1$ //$NON-NLS-2$ - } - - private boolean copyArtifact( Artifact artifact, ArtifactRepository targetRepository, FileTransaction transaction ) - throws ArtifactConversionException - { - File sourceFile = artifact.getFile(); - - if ( sourceFile.getAbsolutePath().indexOf( "/plugins/" ) > -1 ) //$NON-NLS-1$ - { - artifact.setArtifactHandler( artifactHandlerManager.getArtifactHandler( "maven-plugin" ) ); //$NON-NLS-1$ - } - - File targetFile = new File( targetRepository.getBasedir(), targetRepository.pathOf( artifact ) ); - - boolean result = true; - try - { - boolean matching = false; - if ( !force && targetFile.exists() ) - { - matching = FileUtils.contentEquals( sourceFile, targetFile ); - if ( !matching ) - { - addWarning( artifact, Messages.getString( "failure.target.already.exists" ) ); //$NON-NLS-1$ - result = false; - } - } - if ( result ) - { - if ( force || !matching ) - { - if ( testChecksums( artifact, sourceFile ) ) - { - transaction.copyFile( sourceFile, targetFile, digesters ); - } - else - { - result = false; - } - } - } - } - catch ( IOException e ) - { - throw new ArtifactConversionException( Messages.getString( "error.copying.artifact" ), e ); //$NON-NLS-1$ - } - return result; - } - - private Metadata createBaseMetadata( Artifact artifact ) - { - Metadata metadata = new Metadata(); - metadata.setArtifactId( artifact.getArtifactId() ); - metadata.setGroupId( artifact.getGroupId() ); - return metadata; - } - - private Metadata readMetadata( File file ) - throws ArtifactConversionException - { - Metadata metadata; - MetadataXpp3Reader reader = new MetadataXpp3Reader(); - FileReader fileReader = null; - try - { - fileReader = new FileReader( file ); - metadata = reader.read( fileReader ); - } - catch ( FileNotFoundException e ) - { - throw new ArtifactConversionException( Messages.getString( "error.reading.target.metadata" ), - e ); //$NON-NLS-1$ - } - catch ( IOException e ) - { - throw new ArtifactConversionException( Messages.getString( "error.reading.target.metadata" ), - e ); //$NON-NLS-1$ - } - catch ( XmlPullParserException e ) - { - throw new ArtifactConversionException( Messages.getString( "error.reading.target.metadata" ), - e ); //$NON-NLS-1$ - } - finally - { - IOUtils.closeQuietly( fileReader ); - } - return metadata; - } - - private boolean validateMetadata( Artifact artifact ) - throws ArtifactConversionException - { - ArtifactRepository repository = artifact.getRepository(); - - boolean result = true; - - RepositoryMetadata repositoryMetadata = new ArtifactRepositoryMetadata( artifact ); - File file = - new File( repository.getBasedir(), repository.pathOfRemoteRepositoryMetadata( repositoryMetadata ) ); - if ( file.exists() ) - { - Metadata metadata = readMetadata( file ); - result = validateMetadata( metadata, repositoryMetadata, artifact ); - } - - repositoryMetadata = new SnapshotArtifactRepositoryMetadata( artifact ); - file = new File( repository.getBasedir(), repository.pathOfRemoteRepositoryMetadata( repositoryMetadata ) ); - if ( file.exists() ) - { - Metadata metadata = readMetadata( file ); - result = result && validateMetadata( metadata, repositoryMetadata, artifact ); - } - - return result; - } - - @SuppressWarnings( "unchecked" ) - private boolean validateMetadata( Metadata metadata, RepositoryMetadata repositoryMetadata, Artifact artifact ) - { - String groupIdKey; - String artifactIdKey = null; - String snapshotKey = null; - String versionKey = null; - String versionsKey = null; - - if ( repositoryMetadata.storedInGroupDirectory() ) - { - groupIdKey = "failure.incorrect.groupMetadata.groupId"; //$NON-NLS-1$ - } - else if ( repositoryMetadata.storedInArtifactVersionDirectory() ) - { - groupIdKey = "failure.incorrect.snapshotMetadata.groupId"; //$NON-NLS-1$ - artifactIdKey = "failure.incorrect.snapshotMetadata.artifactId"; //$NON-NLS-1$ - versionKey = "failure.incorrect.snapshotMetadata.version"; //$NON-NLS-1$ - snapshotKey = "failure.incorrect.snapshotMetadata.snapshot"; //$NON-NLS-1$ - } - else - { - groupIdKey = "failure.incorrect.artifactMetadata.groupId"; //$NON-NLS-1$ - artifactIdKey = "failure.incorrect.artifactMetadata.artifactId"; //$NON-NLS-1$ - versionsKey = "failure.incorrect.artifactMetadata.versions"; //$NON-NLS-1$ - } - - boolean result = true; - - if ( metadata.getGroupId() == null || !metadata.getGroupId().equals( artifact.getGroupId() ) ) - { - addWarning( artifact, Messages.getString( groupIdKey ) ); - result = false; - } - if ( !repositoryMetadata.storedInGroupDirectory() ) - { - if ( metadata.getGroupId() == null || !metadata.getArtifactId().equals( artifact.getArtifactId() ) ) - { - addWarning( artifact, Messages.getString( artifactIdKey ) ); - result = false; - } - if ( !repositoryMetadata.storedInArtifactVersionDirectory() ) - { - // artifact metadata - - boolean foundVersion = false; - if ( metadata.getVersioning() != null ) - { - for ( String version : (List) metadata.getVersioning().getVersions() ) - { - if ( version.equals( artifact.getBaseVersion() ) ) - { - foundVersion = true; - break; - } - } - } - - if ( !foundVersion ) - { - addWarning( artifact, Messages.getString( versionsKey ) ); - result = false; - } - } - else - { - // snapshot metadata - if ( !artifact.getBaseVersion().equals( metadata.getVersion() ) ) - { - addWarning( artifact, Messages.getString( versionKey ) ); - result = false; - } - - if ( artifact.isSnapshot() ) - { - Matcher matcher = Artifact.VERSION_FILE_PATTERN.matcher( artifact.getVersion() ); - if ( matcher.matches() ) - { - boolean correct = false; - if ( metadata.getVersioning() != null && metadata.getVersioning().getSnapshot() != null ) - { - Snapshot snapshot = metadata.getVersioning().getSnapshot(); - int build = Integer.parseInt( matcher.group( 3 ) ); - String ts = matcher.group( 2 ); - if ( build == snapshot.getBuildNumber() && ts.equals( snapshot.getTimestamp() ) ) - { - correct = true; - } - } - - if ( !correct ) - { - addWarning( artifact, Messages.getString( snapshotKey ) ); - result = false; - } - } - } - } - } - return result; - } - - private void updateMetadata( RepositoryMetadata artifactMetadata, ArtifactRepository targetRepository, - Metadata newMetadata, FileTransaction transaction ) - throws ArtifactConversionException - { - File file = new File( targetRepository.getBasedir(), - targetRepository.pathOfRemoteRepositoryMetadata( artifactMetadata ) ); - - Metadata metadata; - boolean changed; - - if ( file.exists() ) - { - metadata = readMetadata( file ); - changed = metadata.merge( newMetadata ); - } - else - { - changed = true; - metadata = newMetadata; - } - - if ( changed ) - { - StringWriter writer = null; - try - { - writer = new StringWriter(); - - MetadataXpp3Writer mappingWriter = new MetadataXpp3Writer(); - - mappingWriter.write( writer, metadata ); - - transaction.createFile( writer.toString(), file, digesters ); - } - catch ( IOException e ) - { - throw new ArtifactConversionException( Messages.getString( "error.writing.target.metadata" ), - e ); //$NON-NLS-1$ - } - finally - { - IOUtils.closeQuietly( writer ); - } - } - } - - private boolean doRelocation( Artifact artifact, org.apache.maven.model.v3_0_0.Model v3Model, - ArtifactRepository repository, FileTransaction transaction ) - throws IOException - { - Properties properties = v3Model.getProperties(); - if ( properties.containsKey( "relocated.groupId" ) || properties.containsKey( "relocated.artifactId" ) - //$NON-NLS-1$ //$NON-NLS-2$ - || properties.containsKey( "relocated.version" ) ) //$NON-NLS-1$ - { - String newGroupId = properties.getProperty( "relocated.groupId", v3Model.getGroupId() ); //$NON-NLS-1$ - properties.remove( "relocated.groupId" ); //$NON-NLS-1$ - - String newArtifactId = - properties.getProperty( "relocated.artifactId", v3Model.getArtifactId() ); //$NON-NLS-1$ - properties.remove( "relocated.artifactId" ); //$NON-NLS-1$ - - String newVersion = properties.getProperty( "relocated.version", v3Model.getVersion() ); //$NON-NLS-1$ - properties.remove( "relocated.version" ); //$NON-NLS-1$ - - String message = properties.getProperty( "relocated.message", "" ); //$NON-NLS-1$ //$NON-NLS-2$ - properties.remove( "relocated.message" ); //$NON-NLS-1$ - - if ( properties.isEmpty() ) - { - v3Model.setProperties( null ); - } - - writeRelocationPom( v3Model.getGroupId(), v3Model.getArtifactId(), v3Model.getVersion(), newGroupId, - newArtifactId, newVersion, message, repository, transaction ); - - v3Model.setGroupId( newGroupId ); - v3Model.setArtifactId( newArtifactId ); - v3Model.setVersion( newVersion ); - - artifact.setGroupId( newGroupId ); - artifact.setArtifactId( newArtifactId ); - artifact.setVersion( newVersion ); - - return true; - } - else - { - return false; - } - } - - private void writeRelocationPom( String groupId, String artifactId, String version, String newGroupId, - String newArtifactId, String newVersion, String message, - ArtifactRepository repository, FileTransaction transaction ) - throws IOException - { - Model pom = new Model(); - pom.setGroupId( groupId ); - pom.setArtifactId( artifactId ); - pom.setVersion( version ); - - DistributionManagement dMngt = new DistributionManagement(); - - Relocation relocation = new Relocation(); - relocation.setGroupId( newGroupId ); - relocation.setArtifactId( newArtifactId ); - relocation.setVersion( newVersion ); - if ( message != null && message.length() > 0 ) - { - relocation.setMessage( message ); - } - - dMngt.setRelocation( relocation ); - - pom.setDistributionManagement( dMngt ); - - Artifact artifact = artifactFactory.createBuildArtifact( groupId, artifactId, version, "pom" ); //$NON-NLS-1$ - File pomFile = new File( repository.getBasedir(), repository.pathOf( artifact ) ); - - StringWriter strWriter = new StringWriter(); - MavenXpp3Writer pomWriter = new MavenXpp3Writer(); - pomWriter.write( strWriter, pom ); - - transaction.createFile( strWriter.toString(), pomFile, digesters ); - } - - private void addWarning( Artifact artifact, String message ) - { - List messages = warnings.get( artifact ); - if ( messages == null ) - { - messages = new ArrayList(); - } - messages.add( message ); - warnings.put( artifact, messages ); - } - - public void clearWarnings() - { - warnings.clear(); - } - - public Map> getWarnings() - { - return warnings; - } - - - public List getDigesters() - { - return digesters; - } - - public void setDigesters( List digesters ) - { - this.digesters = digesters; - } - - public ModelConverter getTranslator() - { - return translator; - } - - public void setTranslator( ModelConverter translator ) - { - this.translator = translator; - } - - public ArtifactFactory getArtifactFactory() - { - return artifactFactory; - } - - public void setArtifactFactory( ArtifactFactory artifactFactory ) - { - this.artifactFactory = artifactFactory; - } - - public ArtifactHandlerManager getArtifactHandlerManager() - { - return artifactHandlerManager; - } - - public void setArtifactHandlerManager( ArtifactHandlerManager artifactHandlerManager ) - { - this.artifactHandlerManager = artifactHandlerManager; - } - - public boolean isForce() - { - return force; - } - - public void setForce( boolean force ) - { - this.force = force; - } - - public boolean isDryrun() - { - return dryrun; - } - - public void setDryrun( boolean dryrun ) - { - this.dryrun = dryrun; - } -} diff --git a/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/Messages.java b/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/Messages.java deleted file mode 100644 index 36ac287c1..000000000 --- a/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/Messages.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.apache.maven.archiva.converter.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.text.MessageFormat; -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -/** - * Messages - * - * @version $Id$ - */ -public class Messages -{ - private static final String BUNDLE_NAME = "org.apache.maven.archiva.converter.artifact.messages"; //$NON-NLS-1$ - - private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle( BUNDLE_NAME ); - - private Messages() - { - // no op - } - - public static String getString( String key ) - { - try - { - return RESOURCE_BUNDLE.getString( key ); - } - catch ( MissingResourceException e ) - { - return '!' + key + '!'; - } - } - - public static String getString( String key, Object argument ) - { - return getString( key, new Object[] { argument } ); - } - - public static String getString( String key, Object arguments[] ) - { - try - { - String pattern = RESOURCE_BUNDLE.getString( key ); - return MessageFormat.format( pattern, arguments ); - } - catch ( MissingResourceException e ) - { - return '!' + key + '!'; - } - } -} -- cgit v1.2.3