# HG changeset patch # User Ingo Weinzierl # Date 1299239389 0 # Node ID 19a617578b88dce12c9553be586d16e9a67ac6ef # Parent 2fdfa20cfa63eddfd8ed8d8695198b3c70415aaf Added a new method to the HttpClient that triggers the creation of a new artifact collection. http-client/trunk@1398 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 2fdfa20cfa63 -r 19a617578b88 ChangeLog --- a/ChangeLog Thu Feb 17 11:19:02 2011 +0000 +++ b/ChangeLog Fri Mar 04 11:49:49 2011 +0000 @@ -1,3 +1,12 @@ +2011-03-04 Ingo Weinzierl + + * src/main/java/de/intevation/artifacts/httpclient/http/HttpClientImpl.java, + src/main/java/de/intevation/artifacts/httpclient/http/HttpClient.java: + New method that creates a new artifact collection. + + * src/main/java/de/intevation/artifacts/httpclient/exceptions/ConnectionException.java: + New constructor added. + 2011-02-17 Ingo Weinzierl * src/main/java/de/intevation/artifacts/httpclient/utils/ArtifactCreator.java: diff -r 2fdfa20cfa63 -r 19a617578b88 src/main/java/de/intevation/artifacts/httpclient/exceptions/ConnectionException.java --- a/src/main/java/de/intevation/artifacts/httpclient/exceptions/ConnectionException.java Thu Feb 17 11:19:02 2011 +0000 +++ b/src/main/java/de/intevation/artifacts/httpclient/exceptions/ConnectionException.java Fri Mar 04 11:49:49 2011 +0000 @@ -17,5 +17,9 @@ public ConnectionException(String msg) { super(msg); } + + public ConnectionException(String msg, Throwable throwable) { + super(msg, throwable); + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: diff -r 2fdfa20cfa63 -r 19a617578b88 src/main/java/de/intevation/artifacts/httpclient/http/HttpClient.java --- a/src/main/java/de/intevation/artifacts/httpclient/http/HttpClient.java Thu Feb 17 11:19:02 2011 +0000 +++ b/src/main/java/de/intevation/artifacts/httpclient/http/HttpClient.java Fri Mar 04 11:49:49 2011 +0000 @@ -28,6 +28,12 @@ Object create(Document createDocument, ArtifactCreator creator) throws ConnectionException; + Object createCollection( + Document createDocument, + String ownerId, + ResponseHandler handler) + throws ConnectionException; + Object describe( Artifact artifact, Document describeDocument, diff -r 2fdfa20cfa63 -r 19a617578b88 src/main/java/de/intevation/artifacts/httpclient/http/HttpClientImpl.java --- a/src/main/java/de/intevation/artifacts/httpclient/http/HttpClientImpl.java Thu Feb 17 11:19:02 2011 +0000 +++ b/src/main/java/de/intevation/artifacts/httpclient/http/HttpClientImpl.java Fri Mar 04 11:49:49 2011 +0000 @@ -42,6 +42,9 @@ private static final Logger logger = Logger.getLogger(HttpClient.class); + /** The URL path of the resource to create new artifact collections.*/ + public static final String PATH_CREATE_COLLECTION = "/create-collection"; + private String serverUrl; @@ -101,6 +104,33 @@ } + /** + * This method triggers the artifact servers resource to create a new + * artifact collection. + * + * @param create The CREATE document for the collection. + * @param ownerId The uuid of the creator. + * @param handler The handler that is used to create the result object. + * + * @return a result object created by handler. + */ + public Object createCollection( + Document create, + String ownerId, + ResponseHandler handler) + throws ConnectionException + { + String url = serverUrl + PATH_CREATE_COLLECTION + "/" + ownerId; + + try { + return handler.handle(doPost(url, create)); + } + catch (IOException ioe) { + throw new ConnectionException(ioe.getMessage(), ioe); + } + } + + @Override public Object describe( Artifact artifact,