You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jd...@apache.org on 2008/06/25 05:55:28 UTC

svn commit: r671411 - in /archiva/sandbox/new-repository-api: ./ src/main/java/org/apache/archiva/repository/ src/main/java/org/apache/archiva/repository/filesystem/

Author: jdumay
Date: Tue Jun 24 20:55:27 2008
New Revision: 671411

URL: http://svn.apache.org/viewvc?rev=671411&view=rev
Log:
Adding the ability to list a resource in a repository

Modified:
    archiva/sandbox/new-repository-api/pom.xml
    archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/Repository.java
    archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/ResourceRepository.java
    archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/filesystem/FileSystemRepositoryBackend.java

Modified: archiva/sandbox/new-repository-api/pom.xml
URL: http://svn.apache.org/viewvc/archiva/sandbox/new-repository-api/pom.xml?rev=671411&r1=671410&r2=671411&view=diff
==============================================================================
--- archiva/sandbox/new-repository-api/pom.xml (original)
+++ archiva/sandbox/new-repository-api/pom.xml Tue Jun 24 20:55:27 2008
@@ -1,23 +1,35 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.archiva.repository</groupId>
-  <artifactId>archiva-repository</artifactId>
-  <packaging>jar</packaging>
-  <version>1.0-SNAPSHOT</version>
-  <name>archiva-repository</name>
-  <url>http://maven.apache.org</url>
-  <dependencies>
-    <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-      <version>1.4</version>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.archiva.repository</groupId>
+  <artifactId>archiva-repository-future</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>archiva-repository</name>
+  <url>http://maven.apache.org</url>
+  <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>2.0.2</version>
+                <configuration>
+                    <source>1.5</source>
+                    <target>1.5</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+  <dependencies>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <version>1.4</version>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>

Modified: archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/Repository.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/Repository.java?rev=671411&r1=671410&r2=671411&view=diff
==============================================================================
--- archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/Repository.java (original)
+++ archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/Repository.java Tue Jun 24 20:55:27 2008
@@ -31,4 +31,7 @@
     
     public void writeStream(ResourceContext context, InputStream is)
         throws RepositoryWriteException;
+    
+    public String[] listResources(ResourceContext context)
+        throws RepositoryReadException;
 }

Modified: archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/ResourceRepository.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/ResourceRepository.java?rev=671411&r1=671410&r2=671411&view=diff
==============================================================================
--- archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/ResourceRepository.java (original)
+++ archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/ResourceRepository.java Tue Jun 24 20:55:27 2008
@@ -47,23 +47,9 @@
         sourceRepository.writeStream(context, is);
     }
 
-    public RepositoryProxyManager getProxyManager() 
+    public String[] listResources(ResourceContext context)
+        throws RepositoryReadException
     {
-        return proxyManager;
-    }
-
-    public void setProxyManager(RepositoryProxyManager proxyManager) 
-    {
-        this.proxyManager = proxyManager;
-    }
-
-    public Repository getSourceRepository() 
-    {
-        return sourceRepository;
-    }
-
-    public void setRepositorySource(Repository sourceRepository) 
-    {
-        this.sourceRepository = sourceRepository;
+        return sourceRepository.listResources(context);
     }
 }

Modified: archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/filesystem/FileSystemRepositoryBackend.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/filesystem/FileSystemRepositoryBackend.java?rev=671411&r1=671410&r2=671411&view=diff
==============================================================================
--- archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/filesystem/FileSystemRepositoryBackend.java (original)
+++ archiva/sandbox/new-repository-api/src/main/java/org/apache/archiva/repository/filesystem/FileSystemRepositoryBackend.java Tue Jun 24 20:55:27 2008
@@ -89,6 +89,25 @@
             IOUtils.closeQuietly(os);
         }
     }
+
+    public String[] listResources(ResourceContext context)
+        throws RepositoryReadException
+    {
+        File directory = getFileForContext(context);
+        if (!directory.exists())
+        {
+            throw new RepositoryReadException(directory.getAbsolutePath() + " does not exist");
+        }
+        
+        if (!directory.isDirectory() && directory.isFile())
+        {
+            throw new RepositoryReadException("Listing resources at " 
+                    + directory.getAbsolutePath() 
+                    + " failed as resource is a file, not a directory.");
+        }
+        
+        return directory.list();
+    }
     
     private File getFileForContext(ResourceContext context)
     {