Author: brett
Date: Wed Sep 28 01:08:45 2005
New Revision: 292139
URL: http://svn.apache.org/viewcvs?rev=292139&view=rev
Log:
PR: MNG-951
timestamp the metadata so that it can be merged correctly
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/AbstractRepositoryMetadata.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java
maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml
maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java
maven/components/trunk/maven-repository-metadata/src/main/mdo/metadata.mdo
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/AbstractRepositoryMetadata.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/AbstractRepositoryMetadata.java?rev=292139&r1=292138&r2=292139&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/AbstractRepositoryMetadata.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/AbstractRepositoryMetadata.java
Wed Sep 28 01:08:45 2005
@@ -159,6 +159,7 @@
{
Versioning versioning = new Versioning();
versioning.setSnapshot( snapshot );
+ versioning.updateTimestamp();
return versioning;
}
@@ -178,16 +179,16 @@
AbstractRepositoryMetadata repoMetadata = (AbstractRepositoryMetadata)
metadata;
this.metadata.merge( repoMetadata.getMetadata() );
}
-
+
public String extendedToString()
{
StringBuffer buffer = new StringBuffer();
-
+
buffer.append( "\nRepository Metadata\n--------------------------" );
buffer.append( "\nGroupId: " ).append( getGroupId() );
buffer.append( "\nArtifactId: " ).append( getArtifactId() );
- buffer.append( "\nMetadata Type: " ).append(getClass().getName() );
-
+ buffer.append( "\nMetadata Type: " ).append( getClass().getName() );
+
return buffer.toString();
}
}
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java?rev=292139&r1=292138&r2=292139&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
Wed Sep 28 01:08:45 2005
@@ -89,12 +89,6 @@
}
else
{
- // NOTE: [jc; 21-sept-2005] won't this cause
inconsistencies if the metadata wasn't found?
- // this will write out an essentially empty metadata
file, which will result
- // in the loop below NOT merging anything (each
successive pass is still empty),
- // which means that the last repository will be set as
the artifact repo, rather
- // than leaving it null. This is the root cause of
MNG-900, but I'm not sure how
- // to fix it.
metadata.storeInLocalRepository( localRepository,
repository );
}
}
@@ -105,7 +99,6 @@
// snapshot timestamp, or some other timestamp later encoded into the
metadata.
// TODO: this needs to be repeated here so the merging doesn't
interfere with the written metadata
// - we'd be much better having a pristine input, and an ongoing
metadata for merging instead
- loadMetadata( metadata, localRepository, localRepository );
for ( Iterator i = remoteRepositories.iterator(); i.hasNext(); )
{
@@ -119,6 +112,7 @@
loadMetadata( metadata, repository, localRepository );
}
}
+ loadMetadata( metadata, localRepository, localRepository );
}
private void loadMetadata( RepositoryMetadata repoMetadata,
ArtifactRepository remoteRepository,
@@ -134,12 +128,15 @@
if ( repoMetadata.getMetadata() != null )
{
- if ( !metadata.merge( repoMetadata.getMetadata() ) )
+ if ( repoMetadata.getMetadata().merge( metadata ) )
{
repoMetadata.setRepository( remoteRepository );
}
}
- repoMetadata.setMetadata( metadata );
+ else
+ {
+ repoMetadata.setMetadata( metadata );
+ }
}
}
@@ -188,7 +185,7 @@
getLogger().debug( "System is offline. Cannot resolve metadata:\n"
+ metadata.extendedToString() + "\n\n" );
return;
}
-
+
File file = new File( localRepository.getBasedir(),
localRepository.pathOfLocalRepositoryMetadata(
metadata, remoteRepository ) );
@@ -210,7 +207,7 @@
getLogger().debug( "System is offline. Cannot resolve metadata:\n"
+ metadata.extendedToString() + "\n\n" );
return;
}
-
+
try
{
wagonManager.getArtifactMetadata( metadata, repository, file,
checksumPolicy );
@@ -245,7 +242,7 @@
getLogger().warn( "System is offline. Cannot deploy metadata:\n" +
metadata.extendedToString() + "\n\n" );
return;
}
-
+
getLogger().info( "Retrieving previous metadata from " +
deploymentRepository.getId() );
File file = new File( localRepository.getBasedir(),
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java?rev=292139&r1=292138&r2=292139&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java
Wed Sep 28 01:08:45 2005
@@ -33,7 +33,8 @@
public SnapshotArtifactRepositoryMetadata( Artifact artifact )
{
- this( artifact, new Snapshot() );
+ super( createMetadata( artifact, null ) );
+ this.artifact = artifact;
}
public SnapshotArtifactRepositoryMetadata( Artifact artifact, Snapshot
snapshot )
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java?rev=292139&r1=292138&r2=292139&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java
Wed Sep 28 01:08:45 2005
@@ -109,17 +109,9 @@
else
{
// Locally installed file is newer, don't use the resolved
version
- getLogger().debug( artifact.getArtifactId() + ": using locally
installed snapshot");
+ getLogger().debug( artifact.getArtifactId() + ": using locally
installed snapshot" );
}
}
-
- if ( version.equals( artifact.getBaseVersion() ) )
- {
- // odd: we hit here when: using legecy repo, not local, and no
snapshot version meta data was availble
- // but the repository was set to one of the remote repos (and it
was the wrong one).
- artifact.setRepository( null );
- }
-
return version;
}
@@ -157,12 +149,12 @@
if ( !wagonManager.isOnline() )
{
LegacyArtifactMetadata metadata = createLegacyMetadata(
artifact );
- getLogger().debug( "System is offline. Cannot resolve
metadata:\n" + metadata.extendedToString() + "\n\n" );
-
+ getLogger().debug(
+ "System is offline. Cannot resolve metadata:\n" +
metadata.extendedToString() + "\n\n" );
+
return null;
}
-
-
+
boolean checkedUpdates = false;
for ( Iterator i = remoteRepositories.iterator(); i.hasNext(); )
{
@@ -178,8 +170,8 @@
}
else
{
- boolean checkForUpdates = localMetadata == null
- || policy.checkOutOfDate(
localMetadata.getLastModified() );
+ boolean checkForUpdates = localMetadata == null ||
+ policy.checkOutOfDate( localMetadata.getLastModified()
);
if ( checkForUpdates )
{
@@ -207,7 +199,7 @@
catch ( ResourceDoesNotExistException e )
{
getLogger().debug( "Legacy metadata for: " +
artifact.getId() +
- " could not be found on repository: " +
repository.getId(), e );
+ " could not be found on repository: " +
repository.getId() );
}
catch ( ArtifactMetadataRetrievalException e )
{
@@ -233,7 +225,8 @@
resolvedArtifactCache.add( getCacheKey( artifact ) );
}
- if ( localMetadata != null && artifact.getFile().exists() &&
!localMetadata.newerThanFile( artifact.getFile() ) )
+ if ( localMetadata != null && artifact.getFile().exists() &&
+ !localMetadata.newerThanFile( artifact.getFile() ) )
{
if ( getLogger().isDebugEnabled() && !alreadyResolved )
{
@@ -242,7 +235,7 @@
}
localMetadata = null;
}
-
+
return localMetadata != null ? localMetadata.constructVersion() : null;
}
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java?rev=292139&r1=292138&r2=292139&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java
Wed Sep 28 01:08:45 2005
@@ -73,6 +73,7 @@
private ArtifactMetadata createMetadata( Artifact artifact )
{
Versioning versioning = new Versioning();
+ versioning.updateTimestamp();
versioning.addVersion( artifact.getVersion() );
if ( artifact.isRelease() )
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java?rev=292139&r1=292138&r2=292139&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java
Wed Sep 28 01:08:45 2005
@@ -59,8 +59,9 @@
{
if ( artifact.isSnapshot() )
{
- RepositoryMetadata metadata = new
SnapshotArtifactRepositoryMetadata( artifact );
- metadata.getMetadata().getVersioning().getSnapshot().setLocalCopy(
true );
+ Snapshot snapshot = new Snapshot();
+ snapshot.setLocalCopy( true );
+ RepositoryMetadata metadata = new
SnapshotArtifactRepositoryMetadata( artifact, snapshot );
artifact.addMetadata( metadata );
}
@@ -129,12 +130,13 @@
if ( !wagonManager.isOnline() )
{
getLogger().debug( "System is offline. Cannot resolve metadata:\n"
+ metadata.extendedToString() + "\n\n" );
-
- getLogger().info( "System is offline. Assuming build number of 0
for " + metadata.getGroupId() + ":" + metadata.getArtifactId() + " snapshot." );
+
+ getLogger().info( "System is offline. Assuming build number of 0
for " + metadata.getGroupId() + ":" +
+ metadata.getArtifactId() + " snapshot." );
return 0;
}
-
+
getLogger().info( "Retrieving previous build number from " +
remoteRepository.getId() );
repositoryMetadataManager.resolveAlways( metadata, localRepository,
remoteRepository );
Modified: maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml?rev=292139&r1=292138&r2=292139&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml (original)
+++ maven/components/trunk/maven-plugins/maven-plugin-plugin/pom.xml Wed Sep 28
01:08:45 2005
@@ -2,7 +2,7 @@
<parent>
<artifactId>maven-plugin-parent</artifactId>
<groupId>org.apache.maven.plugins</groupId>
- <version>2.0-beta-1</version>
+ <version>2.0-beta-3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-plugin-plugin</artifactId>
@@ -25,6 +25,11 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-repository-metadata</artifactId>
+ <version>2.0-beta-3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
Modified:
maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java?rev=292139&r1=292138&r2=292139&view=diff
==============================================================================
---
maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java
(original)
+++
maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java
Wed Sep 28 01:08:45 2005
@@ -42,6 +42,7 @@
Versioning versioning = new Versioning();
versioning.setLatest( projectArtifact.getVersion() );
+ versioning.updateTimestamp();
ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata(
projectArtifact, versioning );
projectArtifact.addMetadata( metadata );
Modified:
maven/components/trunk/maven-repository-metadata/src/main/mdo/metadata.mdo
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-repository-metadata/src/main/mdo/metadata.mdo?rev=292139&r1=292138&r2=292139&view=diff
==============================================================================
--- maven/components/trunk/maven-repository-metadata/src/main/mdo/metadata.mdo
(original)
+++ maven/components/trunk/maven-repository-metadata/src/main/mdo/metadata.mdo
Wed Sep 28 01:08:45 2005
@@ -53,109 +53,123 @@
<codeSegment>
<version>1.0.0</version>
<code><![CDATA[
- public boolean merge( Metadata sourceMetadata )
+ public boolean merge( Metadata sourceMetadata )
+ {
+ boolean changed = false;
+
+ for ( java.util.Iterator i = sourceMetadata.getPlugins().iterator();
i.hasNext(); )
+ {
+ Plugin plugin = (Plugin) i.next();
+ boolean found = false;
+
+ for ( java.util.Iterator it = getPlugins().iterator();
it.hasNext() && !found; )
{
- boolean changed = false;
+ Plugin preExisting = (Plugin) it.next();
- for ( java.util.Iterator i =
sourceMetadata.getPlugins().iterator(); i.hasNext(); )
+ if ( preExisting.getPrefix().equals( plugin.getPrefix() ) )
{
- Plugin plugin = (Plugin) i.next();
- boolean found = false;
+ found = true;
+ }
+ }
- for ( java.util.Iterator it = getPlugins().iterator();
it.hasNext() && !found; )
- {
- Plugin preExisting = (Plugin) it.next();
+ if ( !found )
+ {
+ Plugin mappedPlugin = new Plugin();
- if ( preExisting.getPrefix().equals(
plugin.getPrefix() ) )
- {
- found = true;
- }
- }
+ mappedPlugin.setArtifactId( plugin.getArtifactId() );
- if ( !found )
- {
- Plugin mappedPlugin = new Plugin();
+ mappedPlugin.setPrefix( plugin.getPrefix() );
- mappedPlugin.setArtifactId( plugin.getArtifactId() );
+ addPlugin( mappedPlugin );
- mappedPlugin.setPrefix( plugin.getPrefix() );
+ changed = true;
+ }
+ }
- addPlugin( mappedPlugin );
+ Versioning versioning = sourceMetadata.getVersioning();
+ if ( versioning != null )
+ {
+ Versioning v = getVersioning();
+ if ( v == null )
+ {
+ v = new Versioning();
+ setVersioning( v );
+ changed = true;
+ }
- changed = true;
- }
+ for ( Iterator i = versioning.getVersions().iterator();
i.hasNext(); )
+ {
+ String version = (String) i.next();
+ if ( !v.getVersions().contains( version ) )
+ {
+ changed = true;
+ v.getVersions().add( version );
+ }
+ }
+
+ if ( versioning.getLastUpdated() == null ||
versioning.getLastUpdated().length() == 0 )
+ {
+ // this should only be for historical reasons - we assume
local is newer
+ versioning.setLastUpdated( v.getLastUpdated() );
+ }
+
+ if ( v.getLastUpdated() == null || v.getLastUpdated().length() ==
0 ||
+ versioning.getLastUpdated().compareTo( v.getLastUpdated() ) >
0 )
+ {
+ v.setLastUpdated( versioning.getLastUpdated() );
+
+ if ( versioning.getRelease() != null )
+ {
+ changed = true;
+ v.setRelease( versioning.getRelease() );
+ }
+ if ( versioning.getLatest() != null )
+ {
+ changed = true;
+ v.setLatest( versioning.getLatest() );
}
- Versioning versioning = sourceMetadata.getVersioning();
- if ( versioning != null )
+ Snapshot s = v.getSnapshot();
+ Snapshot snapshot = versioning.getSnapshot();
+ if ( snapshot != null )
{
- Versioning v = getVersioning();
- if ( v != null )
+ if ( s == null )
{
- if ( versioning.getRelease() != null )
+ s = new Snapshot();
+ v.setSnapshot( s );
+ changed = true;
+ }
+
+ if ( snapshot.isLocalCopy() )
+ {
+ s.setLocalCopy( true );
+ s.setTimestamp( null );
+ s.setBuildNumber( 0 );
+ changed = true;
+ }
+ else
+ {
+ if ( snapshot.getTimestamp() != null &&
!snapshot.getTimestamp().equals( s.getTimestamp() ) )
{
+ s.setTimestamp( snapshot.getTimestamp() );
changed = true;
- v.setRelease( versioning.getRelease() );
}
- if ( versioning.getLatest() != null )
+ if ( snapshot.getBuildNumber() > 0 &&
s.getBuildNumber() != snapshot.getBuildNumber() )
{
+ s.setBuildNumber( snapshot.getBuildNumber() );
changed = true;
- v.setLatest( versioning.getLatest() );
- }
- for ( java.util.Iterator i =
versioning.getVersions().iterator(); i.hasNext(); )
- {
- String version = (String) i.next();
- if ( !v.getVersions().contains( version ) )
- {
- changed = true;
- v.getVersions().add( version );
- }
}
-
- Snapshot s = v.getSnapshot();
- Snapshot snapshot = versioning.getSnapshot();
- if ( snapshot != null )
+ if ( s.isLocalCopy() )
{
- if ( s == null )
- {
- v.setSnapshot( snapshot );
- changed = true;
- }
- else if ( snapshot.isLocalCopy() )
- {
- s.setLocalCopy( true );
- s.setTimestamp( null );
- s.setBuildNumber( 0 );
- changed = true;
- }
- else
- {
- if ( snapshot.getTimestamp() != null &&
!snapshot.getTimestamp().equals( s.getTimestamp() ) )
- {
- s.setTimestamp( snapshot.getTimestamp() );
- changed = true;
- }
- if ( snapshot.getBuildNumber() > 0 &&
s.getBuildNumber() != snapshot.getBuildNumber() )
- {
- s.setBuildNumber(
snapshot.getBuildNumber() );
- changed = true;
- }
- if ( s.isLocalCopy() )
- {
- s.setLocalCopy( false );
- changed = true;
- }
- }
+ s.setLocalCopy( false );
+ changed = true;
}
}
- else
- {
- setVersioning( versioning );
- changed = true;
- }
}
- return changed;
}
+ }
+ return changed;
+ }
]]></code>
</codeSegment>
</codeSegments>
@@ -194,7 +208,27 @@
<multiplicity>*</multiplicity>
</association>
</field>
+ <field>
+ <name>lastUpdated</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <description>When the metadata was last updated</description>
+ </field>
</fields>
+ <codeSegments>
+ <codeSegment>
+ <version>1.0.0</version>
+ <code>
+ public void updateTimestamp()
+ {
+ java.util.TimeZone timezone = java.util.TimeZone.getTimeZone(
"UTC" );
+ java.text.DateFormat fmt = new java.text.SimpleDateFormat(
"yyyyMMddHHmmss" );
+ fmt.setTimeZone( timezone );
+ setLastUpdated( fmt.format( new java.util.Date() ) );
+ }
+ </code>
+ </codeSegment>
+ </codeSegments>
</class>
<class>
<name>Snapshot</name>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]