# HG changeset patch # User Sascha L. Teichmann # Date 1257345517 0 # Node ID 9a29899b31e52c1539b8a96f4f269496eb9c8024 # Parent c2fc85e55f9f3ee91f91b016673d0ee40f312aea describe() in REST interface is also handled as POST to pass optional parameters. artifacts/trunk@283 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r c2fc85e55f9f -r 9a29899b31e5 ChangeLog --- a/ChangeLog Wed Oct 21 11:06:23 2009 +0000 +++ b/ChangeLog Wed Nov 04 14:38:37 2009 +0000 @@ -1,8 +1,26 @@ +2009-11-04 Sascha L. Teichmann + + * artifacts/src/main/java/de/intevation/artifacts/Artifact.java: describe() now may + given an input XML document (which can be null to indicate that no input is given). + + * artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java: + Adjusted to implemented the Artifact interface. + + * artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java: Pass through + the optional XML input document to describe(). + + * artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java: + Implements the adjusted ArtifactDatabase interface. + + * artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java: + Now its also possible to send describe() as a POST request. The request body is handled as + XML. + 2009-10-21 Tim Englich - * src/main/java/de/intevation/artifactdatabase/Config.java (replaceConfigDir): - Applied patch from slt to set the Configuration Folder into the AbsoluteFileName issue59 - + * src/main/java/de/intevation/artifactdatabase/Config.java (replaceConfigDir): + Applied patch from slt to set the Configuration Folder into the AbsoluteFileName issue59 + 2009-10-07 Sascha L. Teichmann RELEASE 0.1 diff -r c2fc85e55f9f -r 9a29899b31e5 artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Wed Oct 21 11:06:23 2009 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Wed Nov 04 14:38:37 2009 +0000 @@ -278,14 +278,14 @@ persistentArtifact, CallContext.NOTHING, callMeta); try { - return artifact.describe(cc); + return artifact.describe(null, cc); } finally { cc.postCall(); } } - public Document describe(String identifier, CallMeta callMeta) + public Document describe(String identifier, Document data, CallMeta callMeta) throws ArtifactDatabaseException { // TODO: Handle background tasks @@ -299,7 +299,7 @@ artifact, CallContext.TOUCH, callMeta); try { - return artifact.getArtifact().describe(cc); + return artifact.getArtifact().describe(data, cc); } finally { cc.postCall(); diff -r c2fc85e55f9f -r 9a29899b31e5 artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java Wed Oct 21 11:06:23 2009 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java Wed Nov 04 14:38:37 2009 +0000 @@ -40,7 +40,7 @@ return hash; } - public Document describe(CallContext context) { + public Document describe(Document data, CallContext context) { if (logger.isDebugEnabled()) { logger.debug("DefaultArtifact.describe: " + identifier); } diff -r c2fc85e55f9f -r 9a29899b31e5 artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java Wed Oct 21 11:06:23 2009 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java Wed Nov 04 14:38:37 2009 +0000 @@ -42,8 +42,9 @@ public static final String NO_ARTIFACT_FOUND = "Artifact not found"; - public static final String ADVANCE = "advance"; - public static final String FEED = "feed"; + public static final String ADVANCE = "advance"; + public static final String FEED = "feed"; + public static final String DESCRIBE = "describe"; protected Representation innerGet() throws ResourceException @@ -62,7 +63,7 @@ try { return new DomRepresentation( MediaType.APPLICATION_XML, - db.describe(identifier, getCallMeta())); + db.describe(identifier, null, getCallMeta())); } catch (ArtifactDatabaseException adbe) { logger.warn(adbe.getLocalizedMessage(), adbe); @@ -88,6 +89,9 @@ else if (action.equals(ADVANCE)) { out = db.advance(identifier, source, getCallMeta()); } + else if (action.equals(DESCRIBE)) { + out = db.describe(identifier, source, getCallMeta()); + } else { throw new ArtifactDatabaseException(NO_SUCH_ACTION_MESSAGE); } diff -r c2fc85e55f9f -r 9a29899b31e5 artifacts/src/main/java/de/intevation/artifacts/Artifact.java --- a/artifacts/src/main/java/de/intevation/artifacts/Artifact.java Wed Oct 21 11:06:23 2009 +0000 +++ b/artifacts/src/main/java/de/intevation/artifacts/Artifact.java Wed Nov 04 14:38:37 2009 +0000 @@ -56,7 +56,7 @@ * @param context The global context of the runtime system. * @return An XML representation of the current state of the artifact. */ - Document describe(CallContext context); + Document describe(Document data, CallContext context); /** * Change the internal state of the artifact. diff -r c2fc85e55f9f -r 9a29899b31e5 artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java --- a/artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java Wed Oct 21 11:06:23 2009 +0000 +++ b/artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java Wed Nov 04 14:38:37 2009 +0000 @@ -27,7 +27,7 @@ Document createArtifactWithFactory(String factory, CallMeta callMeta) throws ArtifactDatabaseException; - Document describe(String artifact, CallMeta callMeta) + Document describe(String artifact, Document data, CallMeta callMeta) throws ArtifactDatabaseException; Document advance(String artifact, Document target, CallMeta callMeta)