You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by oc...@apache.org on 2008/05/05 08:24:29 UTC

svn commit: r653303 - in /archiva/trunk/archiva-modules: archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ archiva-web/archiva-rss/src/main/java/o...

Author: oching
Date: Sun May  4 23:24:29 2008
New Revision: 653303

URL: http://svn.apache.org/viewvc?rev=653303&view=rev
Log:
[MRM-773]
-set limit date of artifacts to be included in the feed (new artifacts in repo)
-created test for ArtifactsByRepositoryConstraint

Added:
    archiva/trunk/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraintTest.java
Modified:
    archiva/trunk/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraint.java
    archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessor.java
    archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.java

Modified: archiva/trunk/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraint.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraint.java?rev=653303&r1=653302&r2=653303&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraint.java (original)
+++ archiva/trunk/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraint.java Sun May  4 23:24:29 2008
@@ -19,6 +19,8 @@
  * under the License.
  */
 
+import java.util.Date;
+
 import org.apache.maven.archiva.database.Constraint;
 
 /**
@@ -41,13 +43,15 @@
         declParams = new String[] { "String repoId" };
         params = new Object[] { repoId };
 	}
-	
-	public ArtifactsByRepositoryConstraint( String repoId, String sortColumn )
+		
+	public ArtifactsByRepositoryConstraint( String repoId, Date whenGathered, String sortColumn )
     {
-        this( repoId );
+	    whereClause = "repositoryId == repoId && whenGathered >= whenGathered";        
+        declParams = new String[] { "String repoId", "Date whenGathered" };
+        params = new Object[] { repoId, whenGathered };
         this.sortColumn = sortColumn;
     }
-	
+		
 	public String getSortColumn() 
 	{		
 		return sortColumn;

Added: archiva/trunk/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraintTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraintTest.java?rev=653303&view=auto
==============================================================================
--- archiva/trunk/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraintTest.java (added)
+++ archiva/trunk/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraintTest.java Sun May  4 23:24:29 2008
@@ -0,0 +1,127 @@
+package org.apache.maven.archiva.database.constraints;
+
+/*
+ * 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.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase;
+import org.apache.maven.archiva.database.ArchivaDAO;
+import org.apache.maven.archiva.database.ArtifactDAO;
+import org.apache.maven.archiva.model.ArchivaArtifact;
+
+/**
+ * ArtifactsByRepositoryConstraintTest
+ * 
+ * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
+ * @version
+ */
+public class ArtifactsByRepositoryConstraintTest
+    extends AbstractArchivaDatabaseTestCase
+{
+    private ArtifactDAO artifactDao;
+
+    public void setUp()
+        throws Exception
+    {
+        super.setUp();
+
+        ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" );
+        artifactDao = dao.getArtifactDAO();
+    }
+
+    private ArchivaArtifact createArtifact( String groupId, String artifactId, String version )
+    {
+        ArchivaArtifact artifact = artifactDao.createArtifact( groupId, artifactId, version, null, "jar" );
+        artifact.getModel().setLastModified( new Date() );
+        artifact.getModel().setRepositoryId( "test-repo" );
+
+        return artifact;
+    }
+
+    public void testQueryAllArtifactsInRepo()
+        throws Exception
+    {
+        Date whenGathered = Calendar.getInstance().getTime();
+        whenGathered.setTime( 123456789 );
+
+        ArchivaArtifact artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0" );
+        artifact.getModel().setWhenGathered( whenGathered );
+        artifactDao.saveArtifact( artifact );
+
+        artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.1" );
+        artifact.getModel().setWhenGathered( whenGathered );
+        artifactDao.saveArtifact( artifact );
+
+        artifact = createArtifact( "org.apache.archiva", "artifact-two", "1.0.2" );
+        artifact.getModel().setWhenGathered( whenGathered );
+        artifactDao.saveArtifact( artifact );
+
+        artifact = createArtifact( "org.apache.archiva", "artifact-one", "2.0" );
+        artifact.getModel().setRepositoryId( "different-repo" );
+        artifact.getModel().setWhenGathered( whenGathered );
+        artifactDao.saveArtifact( artifact );
+
+        assertConstraint( "Artifacts By Repository", 3, new ArtifactsByRepositoryConstraint( "test-repo" ) );
+    }
+
+    public void testQueryArtifactsInRepoWithWhenGathered()
+        throws Exception
+    {
+        Date whenGathered = Calendar.getInstance().getTime();
+
+        ArchivaArtifact artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0" );
+        artifact.getModel().setWhenGathered( whenGathered );
+        artifactDao.saveArtifact( artifact );
+
+        artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.1" );
+        artifact.getModel().setWhenGathered( whenGathered );
+        artifactDao.saveArtifact( artifact );
+
+        artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.2" );
+        artifact.getModel().setWhenGathered( whenGathered );
+        artifactDao.saveArtifact( artifact );
+
+        artifact = createArtifact( "org.apache.archiva", "artifact-one", "2.0" );
+        artifact.getModel().setRepositoryId( "different-repo" );
+        artifact.getModel().setWhenGathered( whenGathered );
+        artifactDao.saveArtifact( artifact );
+
+        artifact = createArtifact( "org.apache.archiva", "artifact-two", "1.1-SNAPSHOT" );
+        artifact.getModel().setWhenGathered( whenGathered );
+        artifactDao.saveArtifact( artifact );
+
+        artifact = createArtifact( "org.apache.archiva", "artifact-three", "2.0-beta-1" );
+        artifact.getModel().setWhenGathered( whenGathered );
+        artifactDao.saveArtifact( artifact );
+
+        assertConstraint( "Artifacts By Repository and When Gathered", 5,
+                          new ArtifactsByRepositoryConstraint( "test-repo" ) );
+    }
+
+    private void assertConstraint( String msg, int count, ArtifactsByRepositoryConstraint constraint )
+        throws Exception
+    {
+        List results = artifactDao.queryArtifacts( constraint );
+        assertNotNull( msg + ": Not Null", results );
+        assertEquals( msg + ": Results.size", count, results.size() );
+    }
+}

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessor.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessor.java?rev=653303&r1=653302&r2=653303&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessor.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessor.java Sun May  4 23:24:29 2008
@@ -19,11 +19,13 @@
  * under the License.
  */
 
+import java.util.Calendar;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.archiva.rss.RssFeedEntry;
 import org.apache.archiva.rss.RssFeedGenerator;
+import org.apache.commons.lang.time.DateUtils;
 import org.apache.maven.archiva.database.ArchivaDatabaseException;
 import org.apache.maven.archiva.database.ArtifactDAO;
 import org.apache.maven.archiva.database.Constraint;
@@ -46,6 +48,8 @@
 public class NewArtifactsRssFeedProcessor
     extends AbstractArtifactsRssFeedProcessor
 {
+    public static int numberOfDaysBeforeNow = 100;
+    
     private String title = "New Artifacts in Repository ";
 
     private String desc = "These are the new artifacts found in the repository ";
@@ -83,7 +87,10 @@
     {
         try
         {
-            Constraint artifactsByRepo = new ArtifactsByRepositoryConstraint( repoId, "whenGathered" );
+            Calendar greaterThanThisDate = Calendar.getInstance( DateUtils.UTC_TIME_ZONE );
+            greaterThanThisDate.add( Calendar.DATE, -numberOfDaysBeforeNow );
+            
+            Constraint artifactsByRepo = new ArtifactsByRepositoryConstraint( repoId, greaterThanThisDate.getTime(), "whenGathered" );
             List<ArchivaArtifact> artifacts = artifactDAO.queryArtifacts( artifactsByRepo );
 
             List<RssFeedEntry> entries = processData( artifacts, true );

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.java?rev=653303&r1=653302&r2=653303&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.java Sun May  4 23:24:29 2008
@@ -30,6 +30,7 @@
 import org.apache.archiva.rss.stubs.ArtifactDAOStub;
 import org.apache.maven.archiva.model.ArchivaArtifact;
 import org.codehaus.plexus.spring.PlexusInSpringTestCase;
+
 import com.sun.syndication.feed.synd.SyndEntry;
 import com.sun.syndication.feed.synd.SyndFeed;
 
@@ -64,9 +65,7 @@
         throws Exception
     {
         List<ArchivaArtifact> newArtifacts = new ArrayList<ArchivaArtifact>();
-
         Date whenGathered = Calendar.getInstance().getTime();
-        whenGathered.setTime( 123456789 );
 
         ArchivaArtifact artifact = new ArchivaArtifact( "org.apache.archiva", "artifact-one", "1.0", "", "jar" );
         artifact.getModel().setRepositoryId( "test-repo" );