You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2006/08/03 08:21:15 UTC

svn commit: r428256 - in /maven/repository-manager/trunk/maven-repository-webapp/src/main: java/org/apache/maven/repository/manager/web/action/ java/org/apache/maven/repository/manager/web/mapper/ java/org/apache/maven/repository/proxy/web/actionmapper...

Author: brett
Date: Wed Aug  2 23:21:14 2006
New Revision: 428256

URL: http://svn.apache.org/viewvc?rev=428256&view=rev
Log:
[MRM-132] support /browse/group.id/artifactId/version format paths instead

Added:
    maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/mapper/
    maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/mapper/RepositoryActionMapper.java   (with props)
Modified:
    maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/action/BrowseAction.java
    maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/RepositoryProxyActionMapper.java
    maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/webwork.properties

Modified: maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/action/BrowseAction.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/action/BrowseAction.java?rev=428256&r1=428255&r2=428256&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/action/BrowseAction.java (original)
+++ maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/action/BrowseAction.java Wed Aug  2 23:21:14 2006
@@ -77,7 +77,7 @@
 
     private String groupId;
 
-    private static final String GROUP_SEPARATOR = "/";
+    private static final String GROUP_SEPARATOR = ".";
 
     private List artifactIds;
 
@@ -142,7 +142,6 @@
 
         this.groups = collateGroups( rootNode );
 
-        String groupId = this.groupId.replaceAll( GROUP_SEPARATOR, "." );
         List records = index.search(
             new LuceneQuery( new TermQuery( new Term( StandardIndexRecordFields.GROUPID_EXACT, groupId ) ) ) );
 
@@ -177,8 +176,6 @@
             return ERROR;
         }
 
-        String groupId = this.groupId.replaceAll( GROUP_SEPARATOR, "." );
-
         BooleanQuery query = new BooleanQuery();
         query.add( new TermQuery( new Term( StandardIndexRecordFields.GROUPID_EXACT, groupId ) ),
                    BooleanClause.Occur.MUST );
@@ -230,7 +227,7 @@
         {
             String groupId = (String) i.next();
 
-            StringTokenizer tok = new StringTokenizer( groupId, "." );
+            StringTokenizer tok = new StringTokenizer( groupId, GROUP_SEPARATOR );
 
             GroupTreeNode node = rootNode;
 

Added: maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/mapper/RepositoryActionMapper.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/mapper/RepositoryActionMapper.java?rev=428256&view=auto
==============================================================================
--- maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/mapper/RepositoryActionMapper.java (added)
+++ maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/mapper/RepositoryActionMapper.java Wed Aug  2 23:21:14 2006
@@ -0,0 +1,95 @@
+package org.apache.maven.repository.manager.web.mapper;
+
+/*
+ * 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.
+ */
+
+import com.opensymphony.webwork.dispatcher.mapper.ActionMapping;
+import com.opensymphony.webwork.dispatcher.mapper.DefaultActionMapper;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Map alternate URLs to specific actions. Used for the repository browser and the proxy.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ */
+public class RepositoryActionMapper
+    extends DefaultActionMapper
+{
+    private static final String BROWSE_PREFIX = "/browse/";
+
+    public String getUriFromActionMapping( ActionMapping actionMapping )
+    {
+        Map params = actionMapping.getParams();
+        if ( "browseGroup".equals( actionMapping.getName() ) )
+        {
+            return BROWSE_PREFIX + params.remove( "groupId" );
+        }
+        else if ( "browseArtifact".equals( actionMapping.getName() ) )
+        {
+            return BROWSE_PREFIX + params.remove( "groupId" ) + "/" + params.remove( "artifactId" );
+        }
+        else if ( "showArtifact".equals( actionMapping.getName() ) )
+        {
+            return BROWSE_PREFIX + params.remove( "groupId" ) + "/" + params.remove( "artifactId" ) + "/" +
+                params.remove( "version" );
+        }
+
+        return super.getUriFromActionMapping( actionMapping );
+    }
+
+    public ActionMapping getMapping( HttpServletRequest httpServletRequest )
+    {
+        String path = httpServletRequest.getServletPath();
+        if ( path.startsWith( BROWSE_PREFIX ) )
+        {
+            path = path.substring( BROWSE_PREFIX.length() );
+            if ( path.length() == 0 )
+            {
+                return new ActionMapping( "browse", "/", "", null );
+            }
+            else
+            {
+                String[] parts = path.split( "/" );
+                if ( parts.length == 1 )
+                {
+                    Map params = new HashMap();
+                    params.put( "groupId", parts[0] );
+                    return new ActionMapping( "browseGroup", "/", "", params );
+                }
+                else if ( parts.length == 2 )
+                {
+                    Map params = new HashMap();
+                    params.put( "groupId", parts[0] );
+                    params.put( "artifactId", parts[1] );
+                    return new ActionMapping( "browseArtifact", "/", "", params );
+                }
+                else if ( parts.length == 3 )
+                {
+                    Map params = new HashMap();
+                    params.put( "groupId", parts[0] );
+                    params.put( "artifactId", parts[1] );
+                    params.put( "version", parts[2] );
+                    return new ActionMapping( "showArtifact", "/", "", params );
+                }
+            }
+        }
+
+        return super.getMapping( httpServletRequest );
+    }
+}

Propchange: maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/mapper/RepositoryActionMapper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/mapper/RepositoryActionMapper.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/RepositoryProxyActionMapper.java
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/RepositoryProxyActionMapper.java?rev=428256&r1=428255&r2=428256&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/RepositoryProxyActionMapper.java (original)
+++ maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/proxy/web/actionmapper/RepositoryProxyActionMapper.java Wed Aug  2 23:21:14 2006
@@ -28,6 +28,9 @@
 import java.util.HashMap;
 import java.util.Properties;
 
+/**
+ * @todo remove this!
+ */
 public class RepositoryProxyActionMapper
     extends DefaultActionMapper
 {

Modified: maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/webwork.properties
URL: http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/webwork.properties?rev=428256&r1=428255&r2=428256&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/webwork.properties (original)
+++ maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/webwork.properties Wed Aug  2 23:21:14 2006
@@ -1,3 +1,3 @@
 # define our own action mapper here
-webwork.mapper.class=org.apache.maven.repository.proxy.web.actionmapper.RepositoryProxyActionMapper
+webwork.mapper.class=org.apache.maven.repository.manager.web.mapper.RepositoryActionMapper
 webwork.objectFactory = org.codehaus.plexus.xwork.PlexusObjectFactory