@Service(value="repositoryStorage#maven2") public class Maven2RepositoryStorage extends Object implements RepositoryStorage
Maven 2 repository format storage implementation. This class currently takes parameters to indicate the repository to deal with rather than being instantiated per-repository. FIXME: instantiate one per repository and allocate permanently from a factory (which can be obtained within the session).
The session is passed in as an argument to obtain any necessary resources, rather than the class being instantiated within the session in the context of a single managed repository's resolution needs.
Modifier and Type | Class and Description |
---|---|
private static class |
Maven2RepositoryStorage.ArtifactDirectoryFilter |
private static class |
Maven2RepositoryStorage.DirectoryFilter |
private static class |
Maven2RepositoryStorage.PomFileFilter |
private static class |
Maven2RepositoryStorage.PomFilenameFilter |
Modifier and Type | Field and Description |
---|---|
private org.springframework.context.ApplicationContext |
applicationContext |
private org.apache.maven.model.building.ModelBuilder |
builder |
private static String[] |
IGNORED_FILES |
private static org.slf4j.Logger |
LOGGER |
private ManagedRepositoryAdmin |
managedRepositoryAdmin |
private static org.apache.maven.model.io.xpp3.MavenXpp3Reader |
MAVEN_XPP_3_READER |
private static String |
METADATA_FILENAME |
private static String |
METADATA_FILENAME_START |
private NetworkProxyAdmin |
networkProxyAdmin |
private PathParser |
pathParser |
private RepositoryPathTranslator |
pathTranslator |
private ProxyConnectorAdmin |
proxyConnectorAdmin |
private RemoteRepositoryAdmin |
remoteRepositoryAdmin |
private WagonFactory |
wagonFactory |
Constructor and Description |
---|
Maven2RepositoryStorage() |
Modifier and Type | Method and Description |
---|---|
void |
applyServerSideRelocation(ManagedRepositoryContent managedRepository,
ArtifactReference artifact)
A relocation capable client will request the POM prior to the artifact, and will then read meta-data and do
client side relocation.
|
private CiManagement |
convertCiManagement(org.apache.maven.model.CiManagement ciManagement) |
private List<Dependency> |
convertDependencies(List<org.apache.maven.model.Dependency> dependencies) |
private IssueManagement |
convertIssueManagement(org.apache.maven.model.IssueManagement issueManagement) |
private List<License> |
convertLicenses(List<org.apache.maven.model.License> licenses) |
private List<MailingList> |
convertMailingLists(List<org.apache.maven.model.MailingList> mailingLists) |
private Organization |
convertOrganization(org.apache.maven.model.Organization organization) |
private Scm |
convertScm(org.apache.maven.model.Scm scm) |
private ArtifactMetadata |
getArtifactFromFile(String repoId,
String namespace,
String projectId,
String projectVersion,
File file) |
String |
getFilePath(String requestPath,
ManagedRepository managedRepository)
add an other method to evaluate real path as when receiving -SNAPSHOT (for maven storage)
request redirect to the last build
|
String |
getFilePathWithVersion(String requestPath,
ManagedRepositoryContent managedRepositoryContent) |
PathParser |
getPathParser() |
private File |
getRepositoryBasedir(String repoId) |
private static Collection<String> |
getSortedFiles(File dir,
Filter<String> filter) |
void |
initialize() |
private boolean |
isProject(File dir,
Filter<String> filter) |
private boolean |
isProjectVersion(File dir) |
Collection<String> |
listNamespaces(String repoId,
String namespace,
Filter<String> filter) |
Collection<String> |
listProjects(String repoId,
String namespace,
Filter<String> filter) |
Collection<String> |
listProjectVersions(String repoId,
String namespace,
String projectId,
Filter<String> filter) |
Collection<String> |
listRootNamespaces(String repoId,
Filter<String> filter) |
private static void |
populateArtifactMetadataFromFile(ArtifactMetadata metadata,
File file) |
ArtifactMetadata |
readArtifactMetadataFromPath(String repoId,
String path) |
Collection<ArtifactMetadata> |
readArtifactsMetadata(ReadMetadataRequest readMetadataRequest) |
private ArchivaRepositoryMetadata |
readMetadata(File directory) |
ProjectMetadata |
readProjectMetadata(String repoId,
String namespace,
String projectId) |
ProjectVersionMetadata |
readProjectVersionMetadata(ReadMetadataRequest readMetadataRequest) |
private static String |
removePrefix(String href)
FIXME remove
|
void |
setPathParser(PathParser pathParser) |
void |
setWagonFactory(WagonFactory wagonFactory) |
private static final org.slf4j.Logger LOGGER
private org.apache.maven.model.building.ModelBuilder builder
@Inject private RemoteRepositoryAdmin remoteRepositoryAdmin
@Inject private ManagedRepositoryAdmin managedRepositoryAdmin
@Inject private ProxyConnectorAdmin proxyConnectorAdmin
@Inject private NetworkProxyAdmin networkProxyAdmin
@Inject @Named(value="repositoryPathTranslator#maven2") private RepositoryPathTranslator pathTranslator
@Inject private WagonFactory wagonFactory
@Inject private org.springframework.context.ApplicationContext applicationContext
@Inject @Named(value="pathParser#default") private PathParser pathParser
private static final String METADATA_FILENAME_START
private static final String METADATA_FILENAME
private static final String[] IGNORED_FILES
private static final org.apache.maven.model.io.xpp3.MavenXpp3Reader MAVEN_XPP_3_READER
public Maven2RepositoryStorage()
@PostConstruct public void initialize()
public ProjectMetadata readProjectMetadata(String repoId, String namespace, String projectId)
readProjectMetadata
in interface RepositoryStorage
public ProjectVersionMetadata readProjectVersionMetadata(ReadMetadataRequest readMetadataRequest) throws RepositoryStorageMetadataNotFoundException, RepositoryStorageMetadataInvalidException, RepositoryStorageRuntimeException
public void setWagonFactory(WagonFactory wagonFactory)
private List<Dependency> convertDependencies(List<org.apache.maven.model.Dependency> dependencies)
private Scm convertScm(org.apache.maven.model.Scm scm)
private Organization convertOrganization(org.apache.maven.model.Organization organization)
private List<License> convertLicenses(List<org.apache.maven.model.License> licenses)
private List<MailingList> convertMailingLists(List<org.apache.maven.model.MailingList> mailingLists)
private IssueManagement convertIssueManagement(org.apache.maven.model.IssueManagement issueManagement)
private CiManagement convertCiManagement(org.apache.maven.model.CiManagement ciManagement)
public Collection<String> listRootNamespaces(String repoId, Filter<String> filter) throws RepositoryStorageRuntimeException
listRootNamespaces
in interface RepositoryStorage
RepositoryStorageRuntimeException
private static Collection<String> getSortedFiles(File dir, Filter<String> filter)
private File getRepositoryBasedir(String repoId) throws RepositoryStorageRuntimeException
public Collection<String> listNamespaces(String repoId, String namespace, Filter<String> filter) throws RepositoryStorageRuntimeException
listNamespaces
in interface RepositoryStorage
RepositoryStorageRuntimeException
public Collection<String> listProjects(String repoId, String namespace, Filter<String> filter) throws RepositoryStorageRuntimeException
listProjects
in interface RepositoryStorage
RepositoryStorageRuntimeException
public Collection<String> listProjectVersions(String repoId, String namespace, String projectId, Filter<String> filter) throws RepositoryStorageRuntimeException
listProjectVersions
in interface RepositoryStorage
RepositoryStorageRuntimeException
public Collection<ArtifactMetadata> readArtifactsMetadata(ReadMetadataRequest readMetadataRequest) throws RepositoryStorageRuntimeException
readArtifactsMetadata
in interface RepositoryStorage
RepositoryStorageRuntimeException
public ArtifactMetadata readArtifactMetadataFromPath(String repoId, String path) throws RepositoryStorageRuntimeException
readArtifactMetadataFromPath
in interface RepositoryStorage
RepositoryStorageRuntimeException
private ArtifactMetadata getArtifactFromFile(String repoId, String namespace, String projectId, String projectVersion, File file)
public void applyServerSideRelocation(ManagedRepositoryContent managedRepository, ArtifactReference artifact) throws ProxyDownloadException
RepositoryStorage
For such clients, archiva does server-side relocation by reading itself the <relocation> element in metadatas and serving the expected artifact.
applyServerSideRelocation
in interface RepositoryStorage
managedRepository
- the used managed repositoryartifact
- the artifact referenceProxyDownloadException
public String getFilePath(String requestPath, ManagedRepository managedRepository)
RepositoryStorage
getFilePath
in interface RepositoryStorage
requestPath
- the web uri requestmanagedRepository
- the used managed repository can be null
so last version won't be resolvedpublic String getFilePathWithVersion(String requestPath, ManagedRepositoryContent managedRepositoryContent) throws XMLException, RelocationException
getFilePathWithVersion
in interface RepositoryStorage
XMLException
RelocationException
private static String removePrefix(String href)
href
- private static void populateArtifactMetadataFromFile(ArtifactMetadata metadata, File file)
private boolean isProjectVersion(File dir)
private ArchivaRepositoryMetadata readMetadata(File directory)
public PathParser getPathParser()
public void setPathParser(PathParser pathParser)
Copyright © 2006–2022 The Apache Software Foundation. All rights reserved.