------ Using Archiva Web Services ------ Maria Odea Ching ------ 19 Mar 2009 ------ ~~ 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 Web Services 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 database and 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. [[2]] Boolean executeDatabaseScanner() - triggers the database scanner to be executed. [[3]] List\ getAllDatabaseConsumers() - retrieves all the Archiva database consumers associated with the database scanning. [[4]] Boolean configureDatabaseConsumer( String consumerId, boolean enable ) - enables or disables the specified database consumer. [[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.