On Tue, Jun 8, 2010 at 8:14 AM, Eshan Sudharaka <[email protected]>wrote:
> to gather the source artifacts details (actually source repo details) i > have planned to create a class named SourceAritfacts and inside that class > i am going to use the services of defaultmetadata data resolver class. > > structure > > List<Artifacts> SourceArtifactsList > > List<String> rootNameSpaces; store values as org,com > List<String> groupIdList ; >>>>>> store values as org.apache, > org.codehaus > List<String> artifactsList; >>>>>> store values as org.apache.archiva, > org.codehaus.redback > List<String> artifactsVersionList; >>>>> here we store values as > org.apache.archiva-1.0 , org.apache.archiva-1.1 > > void setRootNameSpaces(String repoId); > void setGruopIdList(List<String> rootNameSpaces); > void setArtifactsList(List<String> gruopIdList); > void setArtifactsVersionList(List<String> artifactsList) > void setSourceArtifactList(List<String> artifactsVersionList ) >>>>>> > here retirieve values from the artifactsVersionList and create new objects > of Artifacts and set the parameters and add objects to the > SourceArtifactsList > > i have another doubt regarding get the usage of defaultmetadata resolver. > here it use > * private MetadataRepository metadataRepository; > * private StorageMetadataResolver storageResolver > > and wondering why there are no any setter methods to set them. and i want > to know how to set them. > These are injected by Plexus through the @plexus.requirement annotation, so there's no need for setter methods. If you build the metadata-repository-api module, you'll see a generated Plexus descriptor file (components.xml) in the target/classes/META-INF/plexus/. It is similar to Spring's context file. Archiva is using the plexus-spring adapter to translate the plexus components into Spring components during runtime. > > > once we got the source artifacts list we can check for the availability of > a particular artifacts in the target repository and then allow replacing > function and the copying function. > > may be this module should be put in to the plugging. > > +1 :) Thanks, Deng > > > On Mon, Jun 7, 2010 at 3:49 PM, Deng Ching <[email protected]> wrote: > >> On Mon, Jun 7, 2010 at 6:59 AM, Eshan Sudharaka <[email protected] >> >wrote: >> >> > In order to copy artifacts from one repository to another i need to get >> a >> > list of available list of artifacts in the source repository. So i need >> to >> > have a list of ArtifactMetadata objects so i can have more information >> > about source artifacts. >> > >> > here i am going to use following method in the DefaultMetadataResolver >> > class to get that list. >> > >> > public Collection<ArtifactMetadata> getArtifacts( String repoId, String >> > namespace, String projectId, String projectVersion ) >> > >> > but my problem is i have only one input data to get that list which is >> > repoId. >> > >> > may be i can generate other required parameters for the particular >> artifact >> > by using other methods in that defaultMetadataResolver class. >> > >> > so i need to know what are the thing return from following methods. >> > >> > 1). public Collection<String> getRootNamespaces( String repoId ) >> > for the internal repo what could be that list ..? >> > >> >> This returns a list of the root of the groupIds of the artifacts in the >> repository. For example, if the groupIds are org.apache.archiva and >> org.codehaus.redback, the root namespace is "org". >> >> >> > >> > 2). public Collection<String> getNamespaces( String repoId, String >> > namespace ) >> > >> what is returning here >> > >> >> This returns a list of the node of the specified namespace (or a chunk of >> the groupId) of the artifacts in the repository. Using the same example, >> if >> you have org.apache.archiva & org.codehaus.redback as the groupIds of the >> artifacts in the repo then you called the method getNamespaces( >> "internal", >> "org"), you'd get "apache" and "codehaus" in the list. If you passed >> "org.apache" as the namespace param (e.g. getNamespaces( "internal", >> "org.apache"), the list will only contain "archiva"), and so on.. >> >> >> > >> > 3). public Collection<String> getProjects( String repoId, String >> namespace >> > ) >> > >>> this will return a list of available projects in that particular >> > repo. eg : log4j,Junit, (list of griop id's) >> > here what is the namespace parameter ..? >> > >> >> This returns a list of the artifactIds under the specified >> namespace/groupId. >> >> >> > >> > 4). public Collection<String> getProjectVersions( String repoId, String >> > namespace, String projectId ) >> > >>> here we can get the list of available projects in a particular >> > group. >> > >> >> This returns a list of the versions of the specific artifact/project. >> >> >> > >> > 5). public Collection<ArtifactMetadata> getArtifacts( String repoId, >> > String namespace, String projectId, String projectVersion ) >> > >> > /// actually i need to get this list so i can proceed with more >> details. >> > >> >> >> Thanks, >> Deng >> > > > > -- > P.A.Eshan Sudharaka > Dept of Computer Science and Engineering > University of Moratuwa > Sri Lanka >
