You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2008/10/07 02:56:39 UTC

svn commit: r702318 - in /maven/sandbox/trunk/mercury: mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/ mercury-repo/mercury-repo-api/ mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/ mercury...

Author: ogusakov
Date: Mon Oct  6 17:56:38 2008
New Revision: 702318

URL: http://svn.apache.org/viewvc?rev=702318&view=rev
Log:
Repository metadata data transfer object and repository policy added

Added:
    maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/VersionComparator.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAMetadata.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAVMetadata.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryMetadataCache.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdateIntervalPolicy.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdatePolicy.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/test/java/org/
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/test/java/org/apache/
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/test/java/org/apache/maven/
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/test/java/org/apache/maven/mercury/
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/test/java/org/apache/maven/mercury/repository/
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/test/java/org/apache/maven/mercury/repository/api/
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/test/java/org/apache/maven/mercury/repository/api/RepositoryUpdatePolicyIntervalTest.java
Modified:
    maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/Messages.properties
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/pom.xml
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Messages.properties
    maven/sandbox/trunk/mercury/mercury-util/src/main/java/org/apache/maven/mercury/util/TimeUtil.java
    maven/sandbox/trunk/mercury/mercury-util/src/main/java/org/apache/maven/mercury/util/Util.java

Modified: maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/Messages.properties
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/Messages.properties?rev=702318&r1=702317&r2=702318&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/Messages.properties (original)
+++ maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/Messages.properties Mon Oct  6 17:56:38 2008
@@ -1 +1,2 @@
-bad.version.sn=version range cannot include SNAPSHOT, LATEST or RELEASE versions, found: {0}
\ No newline at end of file
+bad.version.sn=version range cannot include SNAPSHOT, LATEST or RELEASE versions, found: {0}
+null.version.to.compare=one of the versions is null: {0} vs {1}, cannot compare
\ No newline at end of file

Added: maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/VersionComparator.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/VersionComparator.java?rev=702318&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/VersionComparator.java (added)
+++ maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/version/VersionComparator.java Mon Oct  6 17:56:38 2008
@@ -0,0 +1,31 @@
+package org.apache.maven.mercury.artifact.version;
+
+import java.util.Comparator;
+
+import org.codehaus.plexus.lang.DefaultLanguage;
+import org.codehaus.plexus.lang.Language;
+
+/**
+ * version comparator used elsewhere to keep version collections sorted
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class VersionComparator
+    implements Comparator<String>
+{
+  private static final Language _lang = new DefaultLanguage( VersionComparator.class );
+  
+  public int compare( String v1, String v2 )
+  {
+    if( v1 == null || v2 == null )
+      throw new IllegalArgumentException( _lang.getMessage( "null.version.to.compare", v1,v2 )  );
+    
+    DefaultArtifactVersion av1 = new DefaultArtifactVersion( v1 );
+    DefaultArtifactVersion av2 = new DefaultArtifactVersion( v2 );
+    
+    return av1.compareTo( av2 );
+  }
+
+}

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/pom.xml?rev=702318&r1=702317&r2=702318&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/pom.xml (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/pom.xml Mon Oct  6 17:56:38 2008
@@ -4,26 +4,33 @@
   <artifactId>mercury-repo-api</artifactId>
   <name>Mercury Repository APIs:        ${project.version}</name>
   <description>Repository APIs</description>
+  
   <parent>
   	<groupId>org.apache.maven.mercury</groupId>
   	<artifactId>mercury-repo</artifactId>
   	<version>1.0.0-alpha-2-SNAPSHOT</version>
   </parent>
+  
   <dependencies>
   	<dependency>
   		<groupId>org.apache.maven.mercury</groupId>
   		<artifactId>mercury-artifact</artifactId>
-  		<version>1.0.0-alpha-2-SNAPSHOT</version>
+  		<version>${project.version}</version>
   	</dependency>
   	<dependency>
   		<groupId>org.apache.maven.mercury</groupId>
   		<artifactId>mercury-transport-api</artifactId>
-  		<version>1.0.0-alpha-2-SNAPSHOT</version>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.apache.maven.mercury</groupId>
-  		<artifactId>mercury-external</artifactId>
-  		<version>1.0.0-alpha-2-SNAPSHOT</version>
+  		<version>${project.version}</version>
   	</dependency>
+    <dependency>
+      <groupId>org.apache.maven.mercury</groupId>
+      <artifactId>mercury-external</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.mercury</groupId>
+      <artifactId>mercury-md-shared</artifactId>
+      <version>${project.version}</version>
+    </dependency>
   </dependencies>
 </project>
\ No newline at end of file

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Messages.properties
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Messages.properties?rev=702318&r1=702317&r2=702318&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Messages.properties (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Messages.properties Mon Oct  6 17:56:38 2008
@@ -6,3 +6,7 @@
 null.reader.processor=reader processor cannot be null
 null.writer.repo=writer repository cannot be null
 null.writer.processor=writer processor cannot be null
+
+empty.policy=repository update policy cannot be empty: {0}
+bad.policy=cannot parse repository update policy: {0}
+bad.interval.policy=cannot parse interval repository update policy: {0}

Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAMetadata.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAMetadata.java?rev=702318&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAMetadata.java (added)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAMetadata.java Mon Oct  6 17:56:38 2008
@@ -0,0 +1,65 @@
+package org.apache.maven.mercury.repository.api;
+
+import java.util.Collection;
+import java.util.TreeSet;
+
+import org.apache.maven.mercury.artifact.ArtifactCoordinates;
+import org.apache.maven.mercury.artifact.version.VersionComparator;
+import org.apache.maven.mercury.util.TimeUtil;
+import org.apache.maven.mercury.util.Util;
+
+/**
+ * This is a data object to carry GA level repository 
+ * metadata, namely - a list of versions and last check timestamp
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class RepositoryGAMetadata
+{
+  ArtifactCoordinates ga;
+
+  /** a list of last discovered versions, ordered ascending */
+  protected TreeSet<String> versions;
+  
+  /** GMT timestamp of the last metadata check */
+  protected long lastCheck;
+
+  /**
+   * @param versions
+   * @param lastCheck
+   */
+  public RepositoryGAMetadata( ArtifactCoordinates ga, Collection<String> versions )
+  {
+    this.ga = ga;
+    this.versions = new TreeSet<String>( new VersionComparator() );
+    
+    if( ! Util.isEmpty( versions ) )
+      this.versions.addAll( versions );
+    
+    this.lastCheck = TimeUtil.getUTCTimestampAsLong();
+  }
+
+  public TreeSet<String> getVersions()
+  {
+    return versions;
+  }
+
+  public long getLastCheck()
+  {
+    return lastCheck;
+  }
+  
+  public void update( Collection<String> versions )
+  {
+    this.versions.addAll( versions );
+    this.lastCheck = TimeUtil.getUTCTimestampAsLong();
+  }
+  
+  public ArtifactCoordinates getGA()
+  {
+    return ga;
+  }
+
+}

Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAVMetadata.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAVMetadata.java?rev=702318&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAVMetadata.java (added)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAVMetadata.java Mon Oct  6 17:56:38 2008
@@ -0,0 +1,96 @@
+package org.apache.maven.mercury.repository.api;
+
+import java.util.Collection;
+import java.util.TreeSet;
+
+import org.apache.maven.mercury.artifact.ArtifactCoordinates;
+import org.apache.maven.mercury.artifact.version.VersionComparator;
+import org.apache.maven.mercury.util.TimeUtil;
+import org.apache.maven.mercury.util.Util;
+
+/**
+ * This is a data object to carry GA level repository 
+ * metadata, namely - a list of versions and last check timestamp
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class RepositoryGAVMetadata
+{
+  ArtifactCoordinates gav;
+  
+  /** a list of last discovered snapshots, ordered descending */
+  protected TreeSet<String> snapshots;
+
+  /** a list of last discovered versions, ordered ascending */
+  protected Collection<String> classifiers;
+  
+  /** GMT timestamp of the last metadata check */
+  protected long lastCheck;
+
+  /**
+   * @param versions
+   * @param lastCheck
+   */
+  public RepositoryGAVMetadata( ArtifactCoordinates gav, Collection<String> snapshots, Collection<String> classifiers )
+  {
+    this.gav = gav;
+
+    this.snapshots = new TreeSet<String>( new VersionComparator() );
+    
+    if( !Util.isEmpty( snapshots ) )
+      this.snapshots.addAll( snapshots );
+    
+    this.classifiers = classifiers;
+    this.lastCheck = TimeUtil.getUTCTimestampAsLong();
+  }
+
+  public TreeSet<String> getSnapshots()
+  {
+    return snapshots;
+  }
+
+  public Collection<String> getClassifiers()
+  {
+    return classifiers;
+  }
+
+  /**
+   * find the most recent snapshot timestamp
+   * 
+   * @return
+   */
+  public String getSnapshot()
+  {
+    return snapshots.last();
+  }
+
+  public long getLastCheck()
+  {
+    return lastCheck;
+  }
+
+  public void updateSnapshots( Collection<String> snapshots )
+  {
+    this.snapshots.clear();
+
+    if( !Util.isEmpty( snapshots ) )
+      this.snapshots.addAll( snapshots );
+    
+    this.lastCheck = TimeUtil.getUTCTimestampAsLong();
+  }
+
+  public void updateClassifiers( Collection<String> classifiers )
+  {
+    this.classifiers = classifiers;
+    this.lastCheck = TimeUtil.getUTCTimestampAsLong();
+  }
+  
+  
+  public ArtifactCoordinates getGAV()
+  {
+    return gav;
+  }
+
+}

Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryMetadataCache.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryMetadataCache.java?rev=702318&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryMetadataCache.java (added)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryMetadataCache.java Mon Oct  6 17:56:38 2008
@@ -0,0 +1,34 @@
+package org.apache.maven.mercury.repository.api;
+
+import java.util.Collection;
+
+import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
+import org.apache.maven.mercury.repository.metadata.Metadata;
+
+/**
+ * this object abstracts the existence of multiple repositories and repository
+ * policies. Given a metadata request, implementor of this interface will
+ * either return a local copy if one exists, or will go out and read from a remote repo
+ * if either local copy does not exist or remote repository policy allows a read 
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public interface RepositoryMetadataCache
+{
+  /**
+   * initialize cache implementor with a collection of remote repositories. Order 
+   * does not matter here because access is defined by repository policy.
+   * 
+   * @param repos
+   */
+  public void init( Collection<RemoteRepository> repos );
+  
+  /**
+   * 
+   * @param bmd
+   * @return 
+   */
+  public Metadata findGA( ArtifactBasicMetadata bmd );
+}

Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdateIntervalPolicy.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdateIntervalPolicy.java?rev=702318&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdateIntervalPolicy.java (added)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdateIntervalPolicy.java Mon Oct  6 17:56:38 2008
@@ -0,0 +1,77 @@
+package org.apache.maven.mercury.repository.api;
+
+import org.apache.maven.mercury.artifact.version.VersionComparator;
+import org.apache.maven.mercury.util.Util;
+import org.codehaus.plexus.lang.DefaultLanguage;
+import org.codehaus.plexus.lang.Language;
+
+/**
+ * implements current maven update policy
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class RepositoryUpdateIntervalPolicy
+implements RepositoryUpdatePolicy
+{
+  private static final Language _lang = new DefaultLanguage( RepositoryUpdateIntervalPolicy.class );
+  
+  public static final String UPDATE_POLICY_NEVER = "never";
+
+  public static final String UPDATE_POLICY_ALWAYS = "always";
+
+  public static final String UPDATE_POLICY_DAILY = "daily";
+
+  public static final String UPDATE_POLICY_INTERVAL = "interval";
+  private static final int UPDATE_POLICY_INTERVAL_LENGTH = UPDATE_POLICY_INTERVAL.length();
+  
+  private static final long NEVER = -1L;
+  
+  private static final long DAYLY = 3600000L*24L;
+  
+  protected long interval = DAYLY;
+  
+  
+  public RepositoryUpdateIntervalPolicy()
+  {
+  }
+
+  public RepositoryUpdateIntervalPolicy( String policy )
+  {
+    init( policy );
+  }
+
+  public void init( String policy )
+  {
+     if( Util.isEmpty( policy ) )
+       throw new IllegalArgumentException( _lang.getMessage( "empty.policy", policy ));
+     
+     if( policy.startsWith( UPDATE_POLICY_ALWAYS ) )
+       interval = 0L;
+     else if( policy.startsWith( UPDATE_POLICY_DAILY ) )
+       interval = DAYLY;
+     else if( policy.startsWith( UPDATE_POLICY_NEVER ) )
+       interval = NEVER;
+     else if( policy.startsWith( UPDATE_POLICY_INTERVAL ) )
+     {
+       int len = policy.length();
+       if( len <= UPDATE_POLICY_INTERVAL_LENGTH )
+         throw new IllegalArgumentException( _lang.getMessage( "bad.interval.policy", policy ));
+
+       interval = Integer.parseInt( policy.substring( len-1 ) ) * 60000L;
+     }
+     else
+       throw new IllegalArgumentException( _lang.getMessage( "bad.policy", policy ));
+  }
+
+  public boolean timeToUpdate( long lastUpdate )
+  {
+    long now =System.currentTimeMillis();
+    
+    boolean res = now - lastUpdate > interval; 
+    
+    return res;
+  }
+
+}

Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdatePolicy.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdatePolicy.java?rev=702318&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdatePolicy.java (added)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdatePolicy.java Mon Oct  6 17:56:38 2008
@@ -0,0 +1,26 @@
+package org.apache.maven.mercury.repository.api;
+
+/**
+ * abstraction of a repository update policy calculator
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public interface RepositoryUpdatePolicy
+{
+  /**
+   * initialize this calculator
+   * 
+   * @param policy as a string somewhere in configuration
+   */
+  void init( String policy );
+
+  /**
+   * perform the calculation and decide if it's time to update
+   * 
+   * @param lastUpdate
+   * @return
+   */
+  boolean timeToUpdate( long lastUpdate );
+}

Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/test/java/org/apache/maven/mercury/repository/api/RepositoryUpdatePolicyIntervalTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/test/java/org/apache/maven/mercury/repository/api/RepositoryUpdatePolicyIntervalTest.java?rev=702318&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/test/java/org/apache/maven/mercury/repository/api/RepositoryUpdatePolicyIntervalTest.java (added)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/test/java/org/apache/maven/mercury/repository/api/RepositoryUpdatePolicyIntervalTest.java Mon Oct  6 17:56:38 2008
@@ -0,0 +1,40 @@
+package org.apache.maven.mercury.repository.api;
+
+import junit.framework.TestCase;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class RepositoryUpdatePolicyIntervalTest
+    extends TestCase
+{
+  RepositoryUpdateIntervalPolicy in;
+  long now;
+  
+  @Override
+  protected void setUp()
+      throws Exception
+  {
+    in = new RepositoryUpdateIntervalPolicy( RepositoryUpdateIntervalPolicy.UPDATE_POLICY_INTERVAL+"1" );
+    now = System.currentTimeMillis();
+  }
+
+  public void testInterval()
+  {
+    assertFalse( in.timeToUpdate( now ) );
+    assertTrue( in.timeToUpdate( now-80000L ) );
+  }
+
+  public void testDayly()
+  {
+    in = new RepositoryUpdateIntervalPolicy( RepositoryUpdateIntervalPolicy.UPDATE_POLICY_DAILY );
+
+    assertFalse( in.timeToUpdate( now ) );
+    assertFalse( in.timeToUpdate( now-80000L ) );
+    assertTrue( in.timeToUpdate( now - 24L*3600L*1000L - 80000L ) );
+  }
+}

Modified: maven/sandbox/trunk/mercury/mercury-util/src/main/java/org/apache/maven/mercury/util/TimeUtil.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-util/src/main/java/org/apache/maven/mercury/util/TimeUtil.java?rev=702318&r1=702317&r2=702318&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-util/src/main/java/org/apache/maven/mercury/util/TimeUtil.java (original)
+++ maven/sandbox/trunk/mercury/mercury-util/src/main/java/org/apache/maven/mercury/util/TimeUtil.java Mon Oct  6 17:56:38 2008
@@ -23,6 +23,15 @@
 
   /**
    * 
+   * @return current UTC timestamp by yyyyMMddHHmmss mask as a long int
+   */
+  public static long getUTCTimestampAsLong( )
+  {
+    return Long.parseLong( getUTCTimestamp( new Date() ) );
+  }
+
+  /**
+   * 
    * @param date
    * @return current date converted to UTC timestamp by yyyyMMddHHmmss mask
    */

Modified: maven/sandbox/trunk/mercury/mercury-util/src/main/java/org/apache/maven/mercury/util/Util.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-util/src/main/java/org/apache/maven/mercury/util/Util.java?rev=702318&r1=702317&r2=702318&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-util/src/main/java/org/apache/maven/mercury/util/Util.java (original)
+++ maven/sandbox/trunk/mercury/mercury-util/src/main/java/org/apache/maven/mercury/util/Util.java Mon Oct  6 17:56:38 2008
@@ -12,22 +12,22 @@
 public class Util
 {
    @SuppressWarnings("unchecked")
-  public boolean isEmpty( Collection o )
+  public static boolean isEmpty( Collection o )
    {
      return o == null || o.isEmpty();
    }
    
-   public boolean isEmpty( String o )
+   public static boolean isEmpty( String o )
    {
      return o == null || o.length() < 1;
    }
 
-   public boolean isEmpty( Object [] o )
+   public static boolean isEmpty( Object [] o )
    {
      return o == null || o.length < 1;
    }
 
-   public boolean isEmpty( Object o )
+   public static boolean isEmpty( Object o )
    {
      return o == null;
    }