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/07 08:09:52 UTC

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

Author: oching
Date: Tue May  6 23:09:51 2008
New Revision: 653999

URL: http://svn.apache.org/viewvc?rev=653999&view=rev
Log:
[MRM-773]
-update feed link url from the request url
-set query import in ArtifactsByRepositoryConstraint

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-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java
    archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml

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=653999&r1=653998&r2=653999&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 Tue May  6 23:09:51 2008
@@ -44,11 +44,12 @@
         params = new Object[] { repoId };
 	}
 		
-	public ArtifactsByRepositoryConstraint( String repoId, Date whenGathered, String sortColumn )
+	public ArtifactsByRepositoryConstraint( String repoId, Date targetWhenGathered, String sortColumn )
     {
-	    whereClause = "repositoryId == repoId && whenGathered >= whenGathered";        
-        declParams = new String[] { "String repoId", "Date whenGathered" };
-        params = new Object[] { repoId, whenGathered };
+	    declImports = new String[] { "import java.util.Date" };
+	    whereClause = "this.repositoryId == repoId && this.whenGathered >= targetWhenGathered";        
+        declParams = new String[] { "String repoId", "Date targetWhenGathered" };
+        params = new Object[] { repoId, targetWhenGathered };        
         this.sortColumn = sortColumn;
     }
 		

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java?rev=653999&r1=653998&r2=653999&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java Tue May  6 23:09:51 2008
@@ -98,8 +98,7 @@
 
     public void doGet( HttpServletRequest req, HttpServletResponse res )
         throws ServletException, IOException
-    {
-        log.info( "Request URL: " + req.getRequestURL() );
+    {       
         try
         {
             Map<String, String> map = new HashMap<String, String>();
@@ -107,28 +106,19 @@
             String repoId = req.getParameter( "repoId" );
             String groupId = req.getParameter( "groupId" );
             String artifactId = req.getParameter( "artifactId" );
-
-            if ( repoId != null )
+            
+            if ( isAuthorized( req ) )
             {
-
-                if ( isAuthorized( req ) )
-                {
+                if ( repoId != null )
+                {                   
                     // new artifacts in repo feed request
                     processor =
                         (RssFeedProcessor) wac.getBean( PlexusToSpringUtils.buildSpringId(
                                                                                            RssFeedProcessor.class.getName(),
                                                                                            "new-artifacts" ) );
-                    map.put( RssFeedProcessor.KEY_REPO_ID, repoId );
-                }
-                else
-                {
-                    res.sendError( HttpServletResponse.SC_UNAUTHORIZED, "Request is not authorized." );
-                    return;
+                    map.put( RssFeedProcessor.KEY_REPO_ID, repoId );                    
                 }
-            }
-            else if ( ( groupId != null ) && ( artifactId != null ) )
-            {
-                if ( isAuthorized( req ) )
+                else if ( ( groupId != null ) && ( artifactId != null ) )
                 {
                     // new versions of artifact feed request
                     processor =
@@ -136,22 +126,31 @@
                                                                                            RssFeedProcessor.class.getName(),
                                                                                            "new-versions" ) );
                     map.put( RssFeedProcessor.KEY_GROUP_ID, groupId );
-                    map.put( RssFeedProcessor.KEY_ARTIFACT_ID, artifactId );
+                    map.put( RssFeedProcessor.KEY_ARTIFACT_ID, artifactId );                    
                 }
                 else
                 {
-                    res.sendError( HttpServletResponse.SC_UNAUTHORIZED, "Request is not authorized." );
+                    res.sendError( HttpServletResponse.SC_BAD_REQUEST, "Required fields not found in request." );
                     return;
                 }
             }
             else
             {
-                res.sendError( HttpServletResponse.SC_BAD_REQUEST, "Required fields not found in request." );
+                res.sendError( HttpServletResponse.SC_UNAUTHORIZED, "Request is not authorized." );
                 return;
             }
-
+            
             feed = processor.process( map );
             res.setContentType( MIME_TYPE );
+            
+            if ( repoId != null )
+            {
+                feed.setLink( req.getRequestURL() + "?repoId=" + repoId );
+            }
+            else if ( ( groupId != null ) && ( artifactId != null ) )
+            {
+                feed.setLink( req.getRequestURL() + "?groupId=" + groupId + "&artifactId=" + artifactId );
+            }
 
             SyndFeedOutput output = new SyndFeedOutput();
             output.output( feed, res.getWriter() );
@@ -193,7 +192,7 @@
         throws UserNotFoundException, AccountLockedException, AuthenticationException, AuthorizationException
     {
         String auth = req.getHeader( "Authorization" );
-
+        
         if ( auth == null )
         {
             return false;
@@ -219,7 +218,7 @@
         String[] userCredentials = usernamePassword.split( ":" );
         String username = userCredentials[0];
         String password = userCredentials[1];
-
+        
         AuthenticationDataSource dataSource = new PasswordBasedAuthenticationDataSource( username, password );
         SecuritySession session = null;
 
@@ -236,7 +235,7 @@
         session = securitySystem.authenticate( dataSource );
 
         for ( String repoId : repoIds )
-        {
+        {            
             if ( securitySystem.isAuthorized( session, ArchivaRoleConstants.OPERATION_REPOSITORY_ACCESS, repoId ) )
             {
                 return true;

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml?rev=653999&r1=653998&r2=653999&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml Tue May  6 23:09:51 2008
@@ -93,7 +93,7 @@
   
   <servlet-mapping>
      <servlet-name>RssFeedServlet</servlet-name>
-     <url-pattern>/rss/*</url-pattern>
+     <url-pattern>/rss/rss_feeds</url-pattern>
   </servlet-mapping>
   
   <servlet-mapping>