------
Using Archiva Xml Rpc
------
Maria Odea Ching
------
2011-09-16
------
~~ 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.
~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/guides/mini/guide-apt-format.html
Using Archiva Xml Rpc
Web services is a new feature for 1.2. Archiva exposes two types of services: administrative and search. A sample client
that shows how to access these services is provided in the source code. You can check out the module for the sample client at:
+----+
http://svn.apache.org/repos/asf/archiva/tags/archiva-1.2/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-client/
+----+
The SampleClient class shows how to connect to and invoke the Archiva web services. To execute the sample client, edit
the following configuration in the archiva-xmlrpc-client module's pom.xml:
+-------------------------------------------------------------------------+
...
org.codehaus.mojo
exec-maven-plugin
java
org.apache.archiva.web.xmlrpc.client.SampleClient
http://127.0.0.1:8080/archiva/xmlrpc
admin
${password}
+-------------------------------------------------------------------------+
In the first \, set the url of the Archiva instance you are running but make sure that you have appended
at the end. For example if your Archiva instance is running in localhost and port 8080, then set it to http://localhost:8080/archiva/xmlrpc.
The second \ corresponds to the username of the existing Archiva user that will be used to access the services while
the last \ is where you set the user's password.
After configuring the pom, you can now run the sample client by executing <> in the command-line. You should be
able to see the list of managed and remote repositories, the list of repository consumers and more printed on the
command-line.
* Administration Service
In order for a user to be able to access the Administration services, the user must have a <> role in Archiva.
The Administration Service exposes the following methods:
[[1]] Boolean executeRepositoryScanner( String repoId ) - triggers the repository scanner to scan the specified repository.
[[5]] List\ getAllRepositoryConsumers() - retrieves all the Archiva repository consumers associated with the repository scanning.
[[6]] Boolean configureRepositoryConsumer( String repoId, String consumerId, boolean enable ) - enables or disables the specified
repository consumer.
[[7]] List\ getAllManagedRepositories() - retrieves all the managed repositories in Archiva.
[[8]] List\ getAllRemoteRepositories() - retrieves all the remote repositories in Archiva.
[[9]] Boolean deleteArtifact( String repoId, String groupId, String artifactId, String version ) - deletes the specified artifact from
the repository.
* Search Service
To access the Search Service, the user must have at least a <> role.
The Search Service exposes the following methods:
[[1]] List\ quickSearch( String queryString ) - search for the specified term. This behaves just like Archiva's Quick Search
from the web app.
[[2]] List\ getArtifactByChecksum( String checksum ) - search for artifact(s) matching the specified checksum. This behaves like
the Find Artifact from the web app.
[[3]] List\ getArtifactVersions( String groupId, String artifactId ) - retrieves all available versions of the artifact.
[[4]] List\ getArtifactVersionsByDate( String groupId, String artifactId, String version, Date since ) -
[[5]] List\ getDependencies( String groupId, String artifactId, String version ) - retrieves all the dependencies of the specified
artifact. This is the equivalent of the Dependencies tab in the Artifact Browse.
[[6]] List\ getDependencyTree( String groupId, String artifactId, String version ) -
[[7]] List\ getDependees( String groupId, String artifactId, String version ) - retrieves all the artifacts with a
dependency on the specified artifact. This is the equivalent of the Used By tab in the Artifact Browse.