Author: epunzalan
Date: Fri Jun 9 00:32:14 2006
New Revision: 412961
URL: http://svn.apache.org/viewvc?rev=412961&view=rev
Log:
added configuration to enable merging of source metadata if it exists.
Added:
maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4artifact-source-merging-metadata.xml
(with props)
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/1.0.0/
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/1.0.0/correctArtifactMetadata-1.0.0.jar
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/1.0.0/correctArtifactMetadata-1.0.0.pom
(with props)
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/maven-metadata.xml
(with props)
Modified:
maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java
maven/repository-manager/trunk/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java
Modified:
maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java
URL:
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java?rev=412961&r1=412960&r2=412961&view=diff
==============================================================================
---
maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java
(original)
+++
maven/repository-manager/trunk/maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java
Fri Jun 9 00:32:14 2006
@@ -96,6 +96,11 @@
private boolean dryrun;
/**
+ * @plexus.configuration default-value="true"
+ */
+ private boolean mergeWithSourceMetadata;
+
+ /**
* @plexus.requirement
*/
private I18N i18n;
@@ -120,8 +125,8 @@
Versioning versioning = new Versioning();
versioning.addVersion( artifact.getBaseVersion() );
metadata.setVersioning( versioning );
- updateMetadata( new ArtifactRepositoryMetadata( artifact
), targetRepository, metadata,
- transaction );
+ updateMetadata( new ArtifactRepositoryMetadata( artifact
), artifact.getRepository(),
+ targetRepository, metadata, transaction );
metadata = createBaseMetadata( artifact );
metadata.setVersion( artifact.getBaseVersion() );
@@ -136,10 +141,9 @@
versioning.setSnapshot( snapshot );
}
- // TODO: merge latest/release/snapshot from source instead
metadata.setVersioning( versioning );
- updateMetadata( new SnapshotArtifactRepositoryMetadata(
artifact ), targetRepository, metadata,
- transaction );
+ updateMetadata( new SnapshotArtifactRepositoryMetadata(
artifact ), artifact.getRepository(),
+ targetRepository, metadata, transaction );
if ( !dryrun )
{
@@ -159,16 +163,16 @@
return metadata;
}
- private void updateMetadata( RepositoryMetadata artifactMetadata,
ArtifactRepository targetRepository,
- Metadata newMetadata, FileTransaction
transaction )
+ private void updateMetadata( RepositoryMetadata artifactMetadata,
ArtifactRepository sourceRepository,
+ ArtifactRepository targetRepository, Metadata
newMetadata, FileTransaction transaction )
throws RepositoryConversionException
{
- File file = new File( targetRepository.getBasedir(),
- targetRepository.pathOfRemoteRepositoryMetadata(
artifactMetadata ) );
-
Metadata metadata;
- boolean changed;
+ boolean changed = false;
+ //merge with target repository metadata
+ File file = new File( targetRepository.getBasedir(),
+ targetRepository.pathOfRemoteRepositoryMetadata(
artifactMetadata ) );
if ( file.exists() )
{
metadata = readMetadata( file );
@@ -178,6 +182,19 @@
{
changed = true;
metadata = newMetadata;
+ }
+
+ //merge with source repository metadata
+ if ( mergeWithSourceMetadata )
+ {
+ File srcfile = new File( sourceRepository.getBasedir(),
+ sourceRepository.pathOfRemoteRepositoryMetadata(
artifactMetadata ) );
+
+ if ( srcfile.exists() )
+ {
+ Metadata sourceMetadata = readMetadata( srcfile );
+ changed = changed | metadata.merge( sourceMetadata );
+ }
}
if ( changed )
Added:
maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4artifact-source-merging-metadata.xml
URL:
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4artifact-source-merging-metadata.xml?rev=412961&view=auto
==============================================================================
---
maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4artifact-source-merging-metadata.xml
(added)
+++
maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4artifact-source-merging-metadata.xml
Fri Jun 9 00:32:14 2006
@@ -0,0 +1,10 @@
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>correctArtifactMetadata</artifactId>
+ <versioning>
+ <versions>
+ <version>1.0.0</version>
+ <version>2.0</version>
+ </versions>
+ </versioning>
+</metadata>
\ No newline at end of file
Propchange:
maven/repository-manager/trunk/maven-repository-converter/src/test/expected-files/v4artifact-source-merging-metadata.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
maven/repository-manager/trunk/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java
URL:
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java?rev=412961&r1=412960&r2=412961&view=diff
==============================================================================
---
maven/repository-manager/trunk/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java
(original)
+++
maven/repository-manager/trunk/maven-repository-converter/src/test/java/org/apache/maven/repository/converter/RepositoryConverterTest.java
Fri Jun 9 00:32:14 2006
@@ -732,6 +732,39 @@
assertFalse( "Check metadata not created", metadataFile.exists() );
}
+ public void testSourceArtifactMetadataMerging()
+ throws Exception
+ {
+ // test metadata in target repository is merged with the metadata in
the source repository
+
+ createModernSourceRepository();
+
+ Artifact artifact = createArtifact( "test", "correctArtifactMetadata",
"1.0.0" );
+
+ repositoryConverter.convert( artifact, targetRepository, reporter );
+ checkSuccess();
+
+ File artifactFile = new File( targetRepository.getBasedir(),
targetRepository.pathOf( artifact ) );
+ assertTrue( "Check artifact created", artifactFile.exists() );
+ assertTrue( "Check artifact matches", FileUtils.contentEquals(
artifactFile, artifact.getFile() ) );
+
+ artifact = createPomArtifact( artifact );
+ File pomFile = new File( targetRepository.getBasedir(),
targetRepository.pathOf( artifact ) );
+ File sourcePomFile = new File( sourceRepository.getBasedir(),
sourceRepository.pathOf( artifact ) );
+ assertTrue( "Check POM created", pomFile.exists() );
+
+ compareFiles( sourcePomFile, pomFile );
+
+ ArtifactMetadata artifactMetadata = new ArtifactRepositoryMetadata(
artifact );
+ File artifactMetadataFile = new File( targetRepository.getBasedir(),
+
targetRepository.pathOfRemoteRepositoryMetadata( artifactMetadata ) );
+ assertTrue( "Check artifact metadata created",
artifactMetadataFile.exists() );
+
+ File expectedMetadataFile = getTestFile(
"src/test/expected-files/v4artifact-source-merging-metadata.xml" );
+
+ compareFiles( expectedMetadataFile, artifactMetadataFile );
+ }
+
public void testInvalidSourceSnapshotMetadata()
throws Exception, MalformedURLException
{
Added:
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/1.0.0/correctArtifactMetadata-1.0.0.jar
URL:
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/1.0.0/correctArtifactMetadata-1.0.0.jar?rev=412961&view=auto
==============================================================================
---
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/1.0.0/correctArtifactMetadata-1.0.0.jar
(added)
+++
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/1.0.0/correctArtifactMetadata-1.0.0.jar
Fri Jun 9 00:32:14 2006
@@ -0,0 +1 @@
+incorrectMd5
Added:
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/1.0.0/correctArtifactMetadata-1.0.0.pom
URL:
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/1.0.0/correctArtifactMetadata-1.0.0.pom?rev=412961&view=auto
==============================================================================
---
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/1.0.0/correctArtifactMetadata-1.0.0.pom
(added)
+++
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/1.0.0/correctArtifactMetadata-1.0.0.pom
Fri Jun 9 00:32:14 2006
@@ -0,0 +1,22 @@
+<!--
+ ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ -->
+
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>correctArtifactMetadata</artifactId>
+ <groupId>test</groupId>
+ <version>1.0.0</version>
+</project>
Propchange:
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/1.0.0/correctArtifactMetadata-1.0.0.pom
------------------------------------------------------------------------------
svn:eol-style = native
Added:
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/maven-metadata.xml
URL:
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/maven-metadata.xml?rev=412961&view=auto
==============================================================================
---
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/maven-metadata.xml
(added)
+++
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/maven-metadata.xml
Fri Jun 9 00:32:14 2006
@@ -0,0 +1,26 @@
+<!--
+ ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ -->
+
+<metadata>
+ <groupId>test</groupId>
+ <artifactId>correctArtifactMetadata</artifactId>
+ <versioning>
+ <versions>
+ <version>1.0.0</version>
+ <version>2.0</version>
+ </versions>
+ </versioning>
+</metadata>
\ No newline at end of file
Propchange:
maven/repository-manager/trunk/maven-repository-converter/src/test/source-modern-repository/test/correctArtifactMetadata/maven-metadata.xml
------------------------------------------------------------------------------
svn:eol-style = native