From 5a770cf0b6c2166fa46c1588b0535eebf2a2ca48 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Wed, 4 Apr 2012 09:57:50 +0000 Subject: [PATCH] [MRM-1620] add a tab to browse artifact content in artifact detail view add rest api design. git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1309312 13f79535-47bb-0310-9956-ffa450edef68 --- .../rest/api/model/ArtifactContentEntry.java | 75 +++++++++++++++++++ .../rest/api/services/BrowseService.java | 8 ++ .../rest/services/DefaultBrowseService.java | 8 ++ 3 files changed, 91 insertions(+) create mode 100644 archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ArtifactContentEntry.java diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ArtifactContentEntry.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ArtifactContentEntry.java new file mode 100644 index 000000000..fac87f2ca --- /dev/null +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/ArtifactContentEntry.java @@ -0,0 +1,75 @@ +package org.apache.archiva.rest.api.model; +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 javax.xml.bind.annotation.XmlRootElement; + +/** + * @author Olivier Lamy + * @since 1.4-M3 + */ +@XmlRootElement( name = "artifactContentEntry" ) +public class ArtifactContentEntry +{ + private String name; + + private boolean file; + + public ArtifactContentEntry() + { + // no op + } + + public ArtifactContentEntry( String name, boolean file ) + { + this.name = name; + this.file = file; + } + + public String getName() + { + return name; + } + + public void setName( String name ) + { + this.name = name; + } + + public boolean isFile() + { + return file; + } + + public void setFile( boolean file ) + { + this.file = file; + } + + @Override + public String toString() + { + final StringBuilder sb = new StringBuilder(); + sb.append( "ArtifactContentEntry" ); + sb.append( "{name='" ).append( name ).append( '\'' ); + sb.append( ", file=" ).append( file ); + sb.append( '}' ); + return sb.toString(); + } +} diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java index 332892b79..ff628931b 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/BrowseService.java @@ -21,6 +21,7 @@ package org.apache.archiva.rest.api.services; import org.apache.archiva.admin.model.beans.ManagedRepository; import org.apache.archiva.metadata.model.ProjectVersionMetadata; import org.apache.archiva.rest.api.model.Artifact; +import org.apache.archiva.rest.api.model.ArtifactContentEntry; import org.apache.archiva.rest.api.model.BrowseResult; import org.apache.archiva.rest.api.model.Entry; import org.apache.archiva.rest.api.model.TreeEntry; @@ -144,4 +145,11 @@ public interface BrowseService @PathParam( "v" ) String version, @PathParam( "key" ) String key, @QueryParam( "repositoryId" ) String repositoryId ) throws ArchivaRestServiceException; + + List getArtifactContentEntries( @PathParam( "g" ) String groupId, + @PathParam( "a" ) String artifactId, + @PathParam( "v" ) String version, + @PathParam( "" ) String path, + @QueryParam( "repositoryId" ) String repositoryId ) + throws ArchivaRestServiceException; } diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java index 86182503c..aa5e4f7dc 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultBrowseService.java @@ -32,6 +32,7 @@ import org.apache.archiva.metadata.repository.MetadataResolver; import org.apache.archiva.metadata.repository.RepositorySession; import org.apache.archiva.metadata.repository.storage.maven2.MavenProjectFacet; import org.apache.archiva.rest.api.model.Artifact; +import org.apache.archiva.rest.api.model.ArtifactContentEntry; import org.apache.archiva.rest.api.model.BrowseResult; import org.apache.archiva.rest.api.model.BrowseResultEntry; import org.apache.archiva.rest.api.model.Entry; @@ -692,6 +693,13 @@ public class DefaultBrowseService return Boolean.TRUE; } + public List getArtifactContentEntries( String groupId, String artifactId, String version, + String path, String repositoryId ) + throws ArchivaRestServiceException + { + return null; + } + //--------------------------- // internals //--------------------------- -- 2.39.5