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