package org.argeo.sandbox.jackrabbit; import java.io.FileInputStream; import org.apache.commons.httpclient.Credentials; import org.apache.commons.httpclient.HostConfiguration; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpConnectionManager; import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.commons.httpclient.UsernamePasswordCredentials; import org.apache.commons.httpclient.auth.AuthScope; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.InputStreamRequestEntity; import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.commons.httpclient.params.HttpConnectionManagerParams; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.jackrabbit.webdav.client.methods.CheckoutMethod; import org.apache.jackrabbit.webdav.client.methods.CopyMethod; import org.apache.jackrabbit.webdav.client.methods.DavMethod; import org.apache.jackrabbit.webdav.client.methods.PutMethod; public class WebDavTest { private final static Log log = LogFactory.getLog(WebDavTest.class); /** * @param args */ public static void main(String[] args) { try { HostConfiguration hostConfig = new HostConfiguration(); hostConfig.setHost("localhost", 7070); // hostConfig. HttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager(); HttpConnectionManagerParams params = new HttpConnectionManagerParams(); int maxHostConnections = 20; params.setMaxConnectionsPerHost(hostConfig, maxHostConnections); connectionManager.setParams(params); HttpClient client = new HttpClient(connectionManager); Credentials creds = new UsernamePasswordCredentials("demo", "demo"); client.getState().setCredentials(AuthScope.ANY, creds); client.setHostConfiguration(hostConfig); // return client; String baseUrl = "http://localhost:7070/org.argeo.server.jackrabbit.webapp/default/"; String fileName = "test.xml"; String url1 = baseUrl + fileName; String url2 = baseUrl + "test-copied.xml"; // PUT log.debug("Create " + url1); PutMethod pm = new PutMethod(url1); RequestEntity requestEntity = new InputStreamRequestEntity( new FileInputStream(fileName)); pm.setRequestEntity(requestEntity); client.executeMethod(pm); log.debug("POST status: " + pm.getStatusCode() + " " + pm.getStatusText()); // COPY log.debug("Copy to " + url2); DavMethod copy = new CopyMethod(url1, url2, true); client.executeMethod(copy); log.debug("COPY status: " + copy.getStatusCode() + " " + copy.getStatusText()); // GET // CheckoutMethod gm = new CheckoutMethod(baseUrl + fileName); log.debug("Retrieve " + url2); GetMethod gm = new GetMethod(url2); client.executeMethod(gm); String responseGet = gm.getResponseBodyAsString(); log.debug("GET status: " + gm.getStatusCode() + " " + gm.getStatusText()); // log.debug("GET: " + responseGet); } catch (Exception e) { e.printStackTrace(); } } }