From 188548089d47c4d3cad9025a46046f79b7023443 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Thu, 26 Oct 2006 22:04:46 +0000 Subject: [PATCH] * Adding distinction between repo.id and repo.urlName. * Adding copy-paste block for repositories. * Adding copy-paste block for dependency. * Adding webdav url link in repository config. git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@468167 13f79535-47bb-0310-9956-ffa450edef68 --- .../DefaultConfigurationStore.java | 23 +++++++++++ .../src/main/mdo/configuration.mdo | 23 +++++++++++ .../servlet/repository/RepositoryAccess.java | 10 ++--- .../admin/include/managedRepositoryForm.jspf | 1 + .../main/webapp/WEB-INF/jsp/admin/index.jsp | 41 ++++++++++++++++++- .../WEB-INF/jsp/include/artifactInfo.jspf | 12 ++++++ .../src/main/webapp/css/maven-theme.css | 12 ++++++ .../repository/RepositoryAccessTest.java | 2 +- 8 files changed, 116 insertions(+), 8 deletions(-) diff --git a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultConfigurationStore.java b/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultConfigurationStore.java index 7a31d64d8..759e635e8 100644 --- a/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultConfigurationStore.java +++ b/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultConfigurationStore.java @@ -20,6 +20,7 @@ import org.apache.maven.archiva.configuration.io.xpp3.ConfigurationXpp3Reader; import org.apache.maven.archiva.configuration.io.xpp3.ConfigurationXpp3Writer; import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.util.IOUtil; +import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import java.io.File; @@ -99,6 +100,7 @@ public class DefaultConfigurationStore try { configuration = reader.read( fileReader, false ); + sanitizeConfiguration( configuration ); } catch ( IOException e ) { @@ -116,6 +118,27 @@ public class DefaultConfigurationStore return configuration; } + /** + * Perform any Upgrades and Adjustments needed to bring configuration up to the + * current configuration format. + * + * @param config the configuration to upgrade and adjust. + */ + private void sanitizeConfiguration( Configuration config ) + { + Iterator it = config.getRepositories().iterator(); + while ( it.hasNext() ) + { + RepositoryConfiguration repo = (RepositoryConfiguration) it.next(); + + // Ensure that the repo.urlName is set. + if ( StringUtils.isEmpty( repo.getUrlName() ) ) + { + repo.setUrlName( repo.getId() ); + } + } + } + public void storeConfiguration( Configuration configuration ) throws ConfigurationStoreException, InvalidConfigurationException, ConfigurationChangeException { diff --git a/archiva-configuration/src/main/mdo/configuration.mdo b/archiva-configuration/src/main/mdo/configuration.mdo index 9fd042427..2b501d6c3 100644 --- a/archiva-configuration/src/main/mdo/configuration.mdo +++ b/archiva-configuration/src/main/mdo/configuration.mdo @@ -114,6 +114,19 @@ return valid; } + public RepositoryConfiguration getRepositoryByUrlName( String urlName ) + { + for ( java.util.Iterator i = getRepositories().iterator(); i.hasNext(); ) + { + RepositoryConfiguration repository = (RepositoryConfiguration) i.next(); + if ( repository.getUrlName().equals( urlName ) ) + { + return repository; + } + } + return null; + } + public RepositoryConfiguration getRepositoryById( String id ) { for ( java.util.Iterator i = getRepositories().iterator(); i.hasNext(); ) @@ -256,6 +269,16 @@ RepositoryConfiguration 1.0.0 + + urlName + 1.0.0 + String + true + + The URL name for this repository. + Used to create the WebDAV URL for the repository such like - http://hostname.com/repository/${urlName}/ + + directory 1.0.0 diff --git a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/servlet/repository/RepositoryAccess.java b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/servlet/repository/RepositoryAccess.java index 3970478f0..3ae46df9c 100644 --- a/archiva-webapp/src/main/java/org/apache/maven/archiva/web/servlet/repository/RepositoryAccess.java +++ b/archiva-webapp/src/main/java/org/apache/maven/archiva/web/servlet/repository/RepositoryAccess.java @@ -88,7 +88,7 @@ public class RepositoryAccess public class RequestPath { - String repoId; + String repoName; String path; } @@ -125,11 +125,11 @@ public class RepositoryAccess return; } - RepositoryConfiguration repoconfig = config.getRepositoryById( reqpath.repoId ); + RepositoryConfiguration repoconfig = config.getRepositoryByUrlName( reqpath.repoName ); if ( repoconfig == null ) { - routeToErrorPage( response, "Invalid Repository ID." ); + routeToErrorPage( response, "Invalid Repository URL." ); return; } @@ -247,7 +247,7 @@ public class RepositoryAccess // Find the first 'path' of the pathInfo. // Default: "/pathid" -> "pathid" - ret.repoId = requestPathInfo.substring( 1 ); + ret.repoName = requestPathInfo.substring( 1 ); ret.path = "/"; // Find first element, if slash exists. @@ -255,7 +255,7 @@ public class RepositoryAccess if ( slash > 0 ) { // Filtered: "/central/org/apache/maven/" -> "central" - ret.repoId = requestPathInfo.substring( 1, slash ); + ret.repoName = requestPathInfo.substring( 1, slash ); String repoPath = requestPathInfo.substring( slash ); diff --git a/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/managedRepositoryForm.jspf b/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/managedRepositoryForm.jspf index 3bcf34061..220257acf 100644 --- a/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/managedRepositoryForm.jspf +++ b/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/managedRepositoryForm.jspf @@ -16,6 +16,7 @@ <%@ taglib prefix="ww" uri="/webwork" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + +${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}/repository/ +
<%-- TODO replace with icons --%> @@ -119,6 +121,10 @@ Directory ${repository.directory} + + WebDAV URL + ${urlbase}${repository.urlName} + Type <%-- TODO: can probably just use layout appended to a key prefix in i18n to simplify this --%> @@ -135,11 +141,42 @@ Snapshots Included - + ${repository.includeSnapshots} Indexed - + ${repository.indexed} + + + POM Snippet + +
+<project>
+  ...
+  <distributionManagement>
+    <${repository.includeSnapshots ? 'snapshotRepository' : 'repository'}>
+      <id>${repository.id}</id>
+      <url>dav:${urlbase}${repository.urlName}</url>
+    </${repository.includeSnapshots ? 'snapshotRepository' : 'repository'}>
+  </distributionManagement>
+  
+  <repositories>
+    <repository>
+      <id>${repository.id}</id>
+      <name>${repository.name}</name>
+      <url>${urlbase}${repository.urlName}</url>
+      <releases>
+        <enabled>${repository.includeSnapshots ? 'false' : 'true'}</enabled>
+      </releases>
+      <snapshots>
+        <enabled>${repository.includeSnapshots ? 'true' : 'false'}</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+  ...
+</project>
+
+
diff --git a/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactInfo.jspf b/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactInfo.jspf index d2ce2cad1..fe3af8982 100644 --- a/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactInfo.jspf +++ b/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactInfo.jspf @@ -99,6 +99,18 @@ --%> + +

POM Dependency Snippet

+
+    <dependency>
+      <groupId>${model.groupId}</groupId>
+      <artifactId>${model.artifactId}</artifactId>
+      <version>${model.version}</version>
+      <type>${model.packaging}</type>
+    </dependency>
+
+
+ diff --git a/archiva-webapp/src/main/webapp/css/maven-theme.css b/archiva-webapp/src/main/webapp/css/maven-theme.css index 8f1d8fc4b..6823a115a 100644 --- a/archiva-webapp/src/main/webapp/css/maven-theme.css +++ b/archiva-webapp/src/main/webapp/css/maven-theme.css @@ -170,6 +170,18 @@ dt { background-image: url( ../images/icon_info_sml.gif ); } +.booleanIcon { + padding-left: 20px; + height: 20px; +} + +pre.pom { + font-size: 0.9em; + border: 1px solid #ddddff; + background-color: #f8f8ff; + padding: 5px; +} + #leftColumn { padding: 4px 4px 4px 4px; overflow: hidden; diff --git a/archiva-webapp/src/test/java/org/apache/maven/archiva/web/servlet/repository/RepositoryAccessTest.java b/archiva-webapp/src/test/java/org/apache/maven/archiva/web/servlet/repository/RepositoryAccessTest.java index 124bca8df..a9b73fda0 100644 --- a/archiva-webapp/src/test/java/org/apache/maven/archiva/web/servlet/repository/RepositoryAccessTest.java +++ b/archiva-webapp/src/test/java/org/apache/maven/archiva/web/servlet/repository/RepositoryAccessTest.java @@ -44,7 +44,7 @@ public class RepositoryAccessTest assertNotNull( requestPath ); - assertEquals( expectedId, requestPath.repoId ); + assertEquals( expectedId, requestPath.repoName ); assertEquals( expectedPath, requestPath.path ); } -- 2.39.5