]> source.dussan.org Git - archiva.git/blob
727a4e7a5c3500a6172de87236d9ffbab0128811
[archiva.git] /
1 package org.apache.archiva.metadata.repository;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *   http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import org.apache.archiva.metadata.model.ArtifactMetadata;
23 import org.apache.archiva.metadata.model.MetadataFacet;
24 import org.apache.archiva.metadata.model.ProjectMetadata;
25 import org.apache.archiva.metadata.model.ProjectVersionMetadata;
26 import org.apache.archiva.metadata.model.ProjectVersionReference;
27
28 import java.util.Collection;
29 import java.util.Date;
30 import java.util.List;
31
32 public interface MetadataRepository
33 {
34     /**
35      * Update metadata for a particular project in the metadata repository, or create it if it does not already exist.
36      *
37      * @param repositoryId the repository the project is in
38      * @param project      the project metadata to create or update
39      */
40     void updateProject( String repositoryId, ProjectMetadata project )
41         throws MetadataRepositoryException;
42
43     void updateArtifact( String repositoryId, String namespace, String projectId, String projectVersion,
44                          ArtifactMetadata artifactMeta )
45         throws MetadataRepositoryException;
46
47     void updateProjectVersion( String repositoryId, String namespace, String projectId,
48                                ProjectVersionMetadata versionMetadata )
49         throws MetadataRepositoryException;
50
51     void updateProjectReference( String repositoryId, String namespace, String projectId, String projectVersion,
52                                  ProjectVersionReference reference )
53         throws MetadataRepositoryException;
54
55     void updateNamespace( String repositoryId, String namespace )
56         throws MetadataRepositoryException;
57
58     List<String> getMetadataFacets( String repositoryId, String facetId )
59         throws MetadataRepositoryException;
60
61     MetadataFacet getMetadataFacet( String repositoryId, String facetId, String name )
62         throws MetadataRepositoryException;
63
64     void addMetadataFacet( String repositoryId, MetadataFacet metadataFacet )
65         throws MetadataRepositoryException;
66
67     void removeMetadataFacets( String repositoryId, String facetId )
68         throws MetadataRepositoryException;
69
70     void removeMetadataFacet( String repositoryId, String facetId, String name )
71         throws MetadataRepositoryException;
72
73     List<ArtifactMetadata> getArtifactsByDateRange( String repositoryId, Date startTime, Date endTime )
74         throws MetadataRepositoryException;
75
76     // TODO: remove from API, just use configuration
77     Collection<String> getRepositories()
78         throws MetadataRepositoryException;
79
80     List<ArtifactMetadata> getArtifactsByChecksum( String repositoryId, String checksum )
81         throws MetadataRepositoryException;
82
83     void removeArtifact( String repositoryId, String namespace, String project, String version, String id )
84         throws MetadataRepositoryException;
85
86     /**
87      * Delete a repository's metadata. This includes all associated metadata facets.
88      *
89      * @param repositoryId the repository to delete
90      */
91     void removeRepository( String repositoryId )
92         throws MetadataRepositoryException;
93
94     List<ArtifactMetadata> getArtifacts( String repositoryId )
95         throws MetadataRepositoryException;
96
97     ProjectMetadata getProject( String repoId, String namespace, String projectId )
98         throws MetadataResolutionException;
99
100     ProjectVersionMetadata getProjectVersion( String repoId, String namespace, String projectId, String projectVersion )
101         throws MetadataResolutionException;
102
103     Collection<String> getArtifactVersions( String repoId, String namespace, String projectId, String projectVersion )
104         throws MetadataResolutionException;
105
106     /**
107      * Retrieve project references from the metadata repository. Note that this is not built into the content model for
108      * a project version as a reference may be present (due to reverse-lookup of dependencies) before the actual
109      * project is, and we want to avoid adding a stub model to the content repository.
110      *
111      * @param repoId         the repository ID to look within
112      * @param namespace      the namespace of the project to get references to
113      * @param projectId      the identifier of the project to get references to
114      * @param projectVersion the version of the project to get references to
115      * @return a list of project references
116      */
117     Collection<ProjectVersionReference> getProjectReferences( String repoId, String namespace, String projectId,
118                                                               String projectVersion )
119         throws MetadataResolutionException;
120
121     Collection<String> getRootNamespaces( String repoId )
122         throws MetadataResolutionException;
123
124     Collection<String> getNamespaces( String repoId, String namespace )
125         throws MetadataResolutionException;
126
127     Collection<String> getProjects( String repoId, String namespace )
128         throws MetadataResolutionException;
129
130     Collection<String> getProjectVersions( String repoId, String namespace, String projectId )
131         throws MetadataResolutionException;
132
133     Collection<ArtifactMetadata> getArtifacts( String repoId, String namespace, String projectId,
134                                                String projectVersion )
135         throws MetadataResolutionException;
136
137     void save()
138         throws MetadataRepositoryException;
139
140     void close();
141
142     void revert()
143         throws MetadataRepositoryException;
144
145     boolean canObtainAccess( Class<?> aClass );
146
147     Object obtainAccess( Class<?> aClass );
148 }