]> source.dussan.org Git - archiva.git/commitdiff
start rest documentation
authorOlivier Lamy <olamy@apache.org>
Fri, 16 Sep 2011 14:33:21 +0000 (14:33 +0000)
committerOlivier Lamy <olamy@apache.org>
Fri, 16 Sep 2011 14:33:21 +0000 (14:33 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1171591 13f79535-47bb-0310-9956-ffa450edef68

archiva-docs/src/site/apt/adminguide/web-services.apt
archiva-docs/src/site/apt/adminguide/webservices/rest.apt.vm [new file with mode: 0644]
archiva-docs/src/site/apt/adminguide/webservices/xml-rpc.apt [new file with mode: 0644]
archiva-docs/src/site/apt/customising/writing-consumer.apt.vm
archiva-docs/src/site/site.xml
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java

index 1b5ae14050181af658fcc6ec1de1d2376fe582b3..45f3cf7313439b48088d4ea117a62effcbf358c6 100644 (file)
@@ -2,6 +2,7 @@
  Using Archiva Web Services
  ------
  Maria Odea Ching
+ Olivier Lamy
  ------
  19 Mar 2009
  ------
 
 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:
-
-+-------------------------------------------------------------------------+
-<project>
-  ...
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>exec-maven-plugin</artifactId>
-        <configuration>
-          <executable>java</executable>
-          <mainClass>org.apache.archiva.web.xmlrpc.client.SampleClient</mainClass>
-          <arguments>
-            <!--
-                 URL: ex. http://127.0.0.1:8080/archiva/xmlrpc
-                 USERNAME & PASSWORD: Archiva credentials
-            -->
-            <argument>http://127.0.0.1:8080/archiva/xmlrpc</argument>
-            <argument>admin</argument>
-            <argument>${password}</argument>
-          </arguments>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
-+-------------------------------------------------------------------------+
-
-  In the first \<argument\>, set the url of the Archiva instance you are running but make sure that you have </xmlrpc> 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 \<argument\> corresponds to the username of the existing Archiva user that will be used to access the services while
-  the last \<argument\> is where you set the user's password.
-
-  After configuring the pom, you can now run the sample client by executing <<mvn exec:java>> 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 <<System Administrator>> 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\<String\> 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\<String\> 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\<ManagedRepository\> getAllManagedRepositories() - retrieves all the managed repositories in Archiva.
-
-  [[8]] List\<RemoteRepository\> 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 <<Repository Observer>> role.
-
-  The Search Service exposes the following methods:
-
-  [[1]] List\<Artifact\> quickSearch( String queryString ) - search for the specified term. This behaves just like Archiva's Quick Search
-     from the web app.
-
-  [[2]] List\<Artifact\> getArtifactByChecksum( String checksum ) - search for artifact(s) matching the specified checksum. This behaves like
-     the Find Artifact from the web app.
-
-  [[3]] List\<Artifact\> getArtifactVersions( String groupId, String artifactId ) - retrieves all available versions of the artifact.
-
-  [[4]] List\<Artifact\> getArtifactVersionsByDate( String groupId, String artifactId, String version, Date since ) - <not yet implemented>
-
-  [[5]] List\<Dependency\> 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\<Artifact\> getDependencyTree( String groupId, String artifactId, String version ) - <not yet implemented>
-
-  [[7]] List\<Artifact\> 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.
+  Web services is a new feature for 1.2. Archiva exposes two types of services: administrative and search. More details : {{{./webservices/xml-rpc.html} Archiva Xml Rpc Services}}
 
+  Starting version 1.4, you can now use REST services : More details : {{{./webservices/rest.html} Archiva REST Services}}
\ No newline at end of file
diff --git a/archiva-docs/src/site/apt/adminguide/webservices/rest.apt.vm b/archiva-docs/src/site/apt/adminguide/webservices/rest.apt.vm
new file mode 100644 (file)
index 0000000..06f35e4
--- /dev/null
@@ -0,0 +1,43 @@
+ ------
+ Using REST Services
+ ------
+ Olivier Lamy
+ ------
+ 16 Sep 2011
+ ------
+
+~~ 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 REST Services
+
+  Starting version 1.4, you can use some REST Services to manage your Apache Archiva instance and Search artifacts.
+  All samples here will use Apache CXF REST client API. By the way you can use some others REST client frameworks.
+
+* Search Service
+
+   Authentication headers for connect to your Archiva instance :
+
+   %{snippet|id=authz-header|url=http://svn.apache.org/repos/asf/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java}
+
+
+   Get a Search Service Client :
+
+   %{snippet|id=cxf-searchservice-creation|url=http://svn.apache.org/repos/asf/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/AbstractArchivaRestTest.java}
diff --git a/archiva-docs/src/site/apt/adminguide/webservices/xml-rpc.apt b/archiva-docs/src/site/apt/adminguide/webservices/xml-rpc.apt
new file mode 100644 (file)
index 0000000..5d88f43
--- /dev/null
@@ -0,0 +1,127 @@
+ ------
+ Using Archiva Xml Rpc
+ ------
+ Maria Odea Ching
+ ------
+ 16 Sep 2011
+ ------
+
+~~ 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:
+
++-------------------------------------------------------------------------+
+<project>
+  ...
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>exec-maven-plugin</artifactId>
+        <configuration>
+          <executable>java</executable>
+          <mainClass>org.apache.archiva.web.xmlrpc.client.SampleClient</mainClass>
+          <arguments>
+            <!--
+                 URL: ex. http://127.0.0.1:8080/archiva/xmlrpc
+                 USERNAME & PASSWORD: Archiva credentials
+            -->
+            <argument>http://127.0.0.1:8080/archiva/xmlrpc</argument>
+            <argument>admin</argument>
+            <argument>${password}</argument>
+          </arguments>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
++-------------------------------------------------------------------------+
+
+  In the first \<argument\>, set the url of the Archiva instance you are running but make sure that you have </xmlrpc> 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 \<argument\> corresponds to the username of the existing Archiva user that will be used to access the services while
+  the last \<argument\> is where you set the user's password.
+
+  After configuring the pom, you can now run the sample client by executing <<mvn exec:java>> 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 <<System Administrator>> 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\<String\> 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\<String\> 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\<ManagedRepository\> getAllManagedRepositories() - retrieves all the managed repositories in Archiva.
+
+  [[8]] List\<RemoteRepository\> 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 <<Repository Observer>> role.
+
+  The Search Service exposes the following methods:
+
+  [[1]] List\<Artifact\> quickSearch( String queryString ) - search for the specified term. This behaves just like Archiva's Quick Search
+     from the web app.
+
+  [[2]] List\<Artifact\> getArtifactByChecksum( String checksum ) - search for artifact(s) matching the specified checksum. This behaves like
+     the Find Artifact from the web app.
+
+  [[3]] List\<Artifact\> getArtifactVersions( String groupId, String artifactId ) - retrieves all available versions of the artifact.
+
+  [[4]] List\<Artifact\> getArtifactVersionsByDate( String groupId, String artifactId, String version, Date since ) - <not yet implemented>
+
+  [[5]] List\<Dependency\> 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\<Artifact\> getDependencyTree( String groupId, String artifactId, String version ) - <not yet implemented>
+
+  [[7]] List\<Artifact\> 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.
+
index cc1c74195cb20566cb15da44665069c701e8193d..ed2419641ab050d76d3890aa1b1b0bb9787a0242 100644 (file)
@@ -4,7 +4,7 @@
  Maria Odea Ching
  Olivier Lamy
  ------
06 Sep 2011
16 Sep 2011
  ------
 
 ~~ Licensed to the Apache Software Foundation (ASF) under one
index dbe8bc9a596b9516dfaba8bf540d054b7d3c0fef..0007c0a524e7173e151bf82fabd77569e427bd44 100644 (file)
         <item name="Security Logs"           href="/adminguide/security-logs.html" />
       </item>
       <item name="Reports"                   href="/adminguide/reports.html" />
-      <item name="Web Services"              href="/adminguide/web-services.html" />
+      <item name="Web Services"              href="/adminguide/web-services.html">
+        <item name="Xml Rpc"                 href="/adminguide/webservices/xml-rpc.html"/>
+        <item name="REST"                    href="/adminguide/webservices/rest.html"/>
+      </item>
     </menu>
 
     <menu name="Customising Archiva">
index 82f496e9f28109e03b8a08eef9488c0cd5f71e87..e663327d53fa05e94613d72e14484e52a7838021 100644 (file)
@@ -44,8 +44,15 @@ public abstract class AbstractArchivaRestTest
 {
 
     // START SNIPPET: authz-header
+    // guest with an empty password
     public String guestAuthzHeader =
         "Basic " + org.apache.cxf.common.util.Base64Utility.encode( ( "guest" + ":" ).getBytes() );
+
+    // with an other login/password
+    //public String authzHeader =
+    //    "Basic " + org.apache.cxf.common.util.Base64Utility.encode( ( "login" + ":password" ).getBytes() );
+
+
     // END SNIPPET: authz-header
 
     @Override