# HG changeset patch # User Sascha L. Teichmann # Date 1264153698 0 # Node ID 5418144048227da6fc0afb331df212987a4dc5db # Parent ed03cc0e58002c491af400a23e09f65a02470396 Added interfaces for XML processing services. TODO: Implement them! artifacts/trunk@593 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r ed03cc0e5800 -r 541814404822 ChangeLog --- a/ChangeLog Sun Jan 17 14:00:06 2010 +0000 +++ b/ChangeLog Fri Jan 22 09:48:18 2010 +0000 @@ -1,4 +1,21 @@ -2010-01-177 Sascha L. Teichmann +2010-01-17 Sascha L. Teichmann + + * artifacts/src/main/java/de/intevation/artifacts/Service.java: New. + Interface to describe a service. It takes XML documents and produces + XML documents. + + * artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java: + Factory to create services. Setup at startup. + + * artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java: + Added methods to describe the available services and call them. + + * artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java: + Implemented new ArtifactDatabase interface trivial. TODO: + Setting it up from configuration, do the processing, register + urls in REST server and so on. + +2010-01-17 Sascha L. Teichmann * artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java: Added method 'toStream()' to copy a document into an output stream. diff -r ed03cc0e5800 -r 541814404822 artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Sun Jan 17 14:00:06 2010 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java Fri Jan 22 09:48:18 2010 +0000 @@ -382,5 +382,13 @@ return new DeferredOutputImpl(artifact, format, callMeta); } + + public String [][] serviceNamesAndDescriptions() { + throw new IllegalArgumentException("Describing services is not implemented yet"); + } + + public Document process(String service, Document input, CallMeta callMeta) { + throw new IllegalArgumentException("Service processing is not implemented yet"); + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: diff -r ed03cc0e5800 -r 541814404822 artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java --- a/artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java Sun Jan 17 14:00:06 2010 +0000 +++ b/artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java Fri Jan 22 09:48:18 2010 +0000 @@ -41,5 +41,9 @@ DeferredOutput out(String artifact, Document format, CallMeta callMeta) throws ArtifactDatabaseException; + String [][] serviceNamesAndDescriptions(); + + Document process(String service, Document input, CallMeta callMeta); + } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: diff -r ed03cc0e5800 -r 541814404822 artifacts/src/main/java/de/intevation/artifacts/Service.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/artifacts/src/main/java/de/intevation/artifacts/Service.java Fri Jan 22 09:48:18 2010 +0000 @@ -0,0 +1,15 @@ +package de.intevation.artifacts; + +import java.io.Serializable; + +import org.w3c.dom.Document; + +/** + * @author Sascha L. Teichmann (sascha.teichmann@intevation.de) + */ +public interface Service +extends Serializable +{ + Document process(Document data, Object globalContext, CallMeta callMeta); +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r ed03cc0e5800 -r 541814404822 artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java Fri Jan 22 09:48:18 2010 +0000 @@ -0,0 +1,21 @@ +package de.intevation.artifacts; + +import java.io.Serializable; + +import org.w3c.dom.Document; +import org.w3c.dom.Node; +/** + * @author Sascha L. Teichmann (sascha.teichmann@intevation.de) + */ +public interface ServiceFactory +extends Serializable +{ + String getName(); + + String getDescription(); + + Service createService(Object globalContext); + + void setup(Document config, Node factoryNode); +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :