changeset 442:fc92e44a9a0e

Merged.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 17 Oct 2012 22:26:06 +0200
parents 822a0c13fb2e (diff) 423c6e6b0cac (current diff)
children f503374f516c
files
diffstat 6 files changed, 4406 insertions(+), 4351 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CHANGES	Wed Oct 17 22:26:06 2012 +0200
@@ -0,0 +1,261 @@
+2011-09-19     RELEASE 1.4
+
+    !! Release 1.4 is no longer API compatible with old versions of this module !!
+
+    NEW:
+
+        * Modified the signature of Artifact.setup() -> Artifact.setup(CallMeta).
+          The CallMeta is required for I18N support while setting up an
+          Artifact. !! THIS MODIFICATION BREAKS THE CURRENT API !!
+
+        * Modified the signature of Service.setup() -> Service.setup(GlobalContext).
+
+        * Introduced a LifetimeListener interface: applications can register
+          instances of this interface to execute tasks after the system goes and
+          and before the system goes down.
+
+        * Introduced a BackendListener interface: applications can register
+          instances of this interface to execute tasks after an event has been
+          fired. See the JavaDoc of BackendListener for detailed descriptions of
+          the events.
+
+        * Introduced "Hooks": Hooks can be used to execute tasks at a specific
+          point in time. In our cases, Hooks can be executed before/after feed()
+          and advance() operations.
+
+        * Introduced a GlobalContext interface for the global context object:
+          this interface describes two method to put new objects into this
+          context and a method to retrieve objects from this context.
+
+        * Introduced a CreationFilter: this filter might be used to create
+          Artifacts with restricted Outputs/Facets.
+
+        * Introduced a Message interface: Messages might be used by background
+          threads to provide information about the process (e.g. status reports).
+
+        * Improved ArtifactDatabaseImpl to support background messages.
+
+        * Improved the CallContext interface: added a method isInBackground()
+          that determines if the current Artifact has started a background
+          thread which is still processing.
+
+        * Improved the CallContext interface: added methods to add/retrieve
+          background messages.
+
+        * Improved the State interface: added a endOfLife() method that should
+          be called by owner Artifacts.
+
+        * Improved the interface of Facets: added a deepCopy() method to be able
+          to clone Facets.
+
+        * Improved the interface of Facets: added a toXML() method.
+
+        * Improved the ArtifactDatabase: added a method loadAllArtifacts(ArtifactLoadedCallback)
+          to load all Artifacts of an ArtifactCollection.
+
+        * Improved XMLUtils: added support for variables in XPath expression.
+
+        * Added a FileTools helper class that implements some convinience
+          functions to work with files.
+
+        * Some little improvements in ClientProtocolUtils.
+
+        * Bumped SLF4J up to 2.0.7.
+
+        * Bumped H2 up to 1.3.158.
+
+        * Bumped Apache DBCP up to 1.4.
+
+        * Bumped PostgreSQL driver up to 8.4-702.jdbc4.
+
+
+    FIXED:
+
+        * flys/issue20 (Versions-Clash bei slf4j verhindert Start des Artefakt-Servers.)
+
+
+
+2011-06-27     RELEASE 1.3
+
+    NEW:
+
+        * Bumped Restlet to version 2.0.7.
+
+        * Use a Jetty server by default to handle HTTP requests.
+
+        * Introduced a config option that allows to switch the HTTP server
+          manually.
+
+        * Introduced a config option that allows to limit the max number of
+          threads used by the Restlet server. Defaults to 1024.
+
+        * New REST interface to set the time-to-live of a Collection. This
+          operation takes a java native long value or one of the strings "INF" -
+          which means a Collection lives forever - or "DEFAULT" which means to
+          reset the time-to-live to the default value configured in the artifact
+          server.
+
+        * New REST interface to set the name of a Collection.
+
+        * Improved the ClientProtocolUtils to create documents for the operation
+          to set the Collection's time-to-live.
+
+        * The time-to-live of Collections is accessible in Collection objects.
+
+        * Introduced a "creation" timestamp for CollectionItems.
+
+        * Facets got a new property "index".
+
+
+    FIXED:
+
+        * A a new out() method is called that takes the "type" parameter specified in
+          the REST url to specify the concrete output type. This parameter has
+          not been used until now.
+
+        * flys/issue75 Fixed SQL syntax error in trigger creation.
+
+
+
+2011-05-13     RELEASE 1.2
+
+    NEW:
+
+        * Introduced "facets" as a new concept to select only parts/concrete
+          types of an Artifact's output. E.g. a computation might return data
+          that is used to draw two curves into a chart. With a "facet", just a
+          single curve might be selected to be drawn into the chart.
+
+        * New REST interfaces to set/get attributes of an ArtifactCollection.
+
+        * Artifacts that live in ArtifactCollections don't die (because of their
+          last_access time). A database trigger is used to update their
+          last_access time if their owner ArtifactCollection is updated.
+
+        * DatabaseCleaner removes outdated ArtifactCollections.
+
+        * XML documents stored aside users, collections and collection items are
+          compressed to reduce i/o costs.
+
+        * Introduced a listener mechanism that is called if a context is
+          created/closed. This listener might be implemented in concrete
+          artifact packages.
+
+        * Improvements in the ClientProtocolUtils: new functions to create
+          special xml documents
+
+
+    FIXED:
+
+        * flys/issue8 (Cleanup des DatabaseCleaner schlägt fehl)
+
+        * flys/issue9 (Fehler beim Laden von Artefakten - NO SUCH ARTIFACT obwohl Artefakt in DB vorhanden)
+
+
+2011-03-30     RELEASE 1.1
+
+2010-04-28     RELEASE 1.0
+
+    New:
+
+        * The path to database in the configuration can be relative to the
+          central configuration document using ${artifacts.config.dir} as
+          root.
+
+        * New interfaces to export and import artifacts:
+
+          HTTP GET  '/export/{uuid}'     returns an xml document representing
+                                         the state of an artifact
+          HTTP POST '/import'            takes an xml document that have
+                                         been created by /export before
+
+          The export mechanism uses a secret configured in the configuration
+          to sign export documents. An artifact import fails if the
+          signature of the xml document is not valid.
+
+        * The time to live of an artifact is queriable at the CallContext
+          object.
+
+
+    Added:
+
+        * JavaDoc documentation
+
+
+
+2010-03-08     RELEASE 0.5
+
+
+2010-01-27     RELEASE 0.4
+
+        New:
+
+		* Extended XML helper utilities a bit more
+                * Added a new interface describing services 
+                via XML documents via /services
+                
+
+2009-12-17      RELEASE 0.3
+
+	New:
+
+		* Extended XML helper utilities a bit
+		* Added a new general proxy artifact.
+		
+	FIXED:
+
+		* issue106: Konfiguration der GNV-Chart-Templates gehört nicht in das Artefakt-Framework
+
+2009-11-13      RELEASE 0.2
+
+	New:
+
+        * Configuration documents can be made relativ to
+        ${artifacts.config.dir}
+ 
+        * Splitting up configuration of artifacts in depence to the
+        product.
+
+        * Added a first HOWTO for setting up the environemt and the
+        artifact server
+
+2009-10-07     RELEASE 0.1
+
+	New:
+
+	* Two sub projects: 'artifacts' and 'artifact-database'
+	
+		- 'artifacts' is a set of generic interfaces modelling 
+		  the workflow to parameterize a process and producing
+		  outputs.
+
+		  An artifact is created via factories. It describes
+		  itself via 'describe', it is parameterized via
+		  'feed' and brought to new states with 'advance'.
+		  Once able to produce output 'out' returns the
+		  requested product.
+
+		- 'artifact-database' is the default implemention
+		  of the workflow described with 'artifact'.
+
+	* artifact-database persists artifacts with a H2-database
+	  [http://www.h2database.com] (default) or a
+	  PostgeSQL 8.3+ database [http://www.postgresql.org/] (optional)
+
+	* artifacts may spawn background threads to copy with long running
+	  processes. After finishing work they are able to re-synchronize
+	  themselves to the artifact database.
+
+	* artifact-database is accessible via an HTTP REST server
+	  implemented on top of the Restlet API http://www.restlet.org/
+	  It has to be started as a service. Default TCP port: 8181
+
+	  HTTP GET  '/factories'             returns list of available factories.
+	  HTTP GET  '/create'                creates new artifact.
+	  HTTP GET  '/artifact/{uuid}'       returns a description of an artifact.
+	  HTTP POST '/artifact/{uuid}'       modifies an artifact ('feed', 'advance')
+	  HTTP POST '/artifact/{uuid}/{out}' delivers output for an artifact.
+
+	* artifact-database is configured with as XML file named conf.xml
+	  (default placement in directory $HOME/.artitactdb, directory
+	  may be changed with system property "artifact.database.dir")
--- a/ChangeLog	Tue Oct 16 15:51:33 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4089 +0,0 @@
-2012-10-16	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/FacetActivity.java:
-	  Documentation of a somewhat important part.
-
-2012-10-08	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/ExtremeAccess.java,
-	  flys-artifacts/src/main/java/de/intevation/flys/artifacts/charts/TimeseriesStepChart.java,
-	  flys-artifacts/src/main/java/de/intevation/flys/utils/DoubleUtil.java:
-	  Doc.
-
-2012-10-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/FileTools.java:
-	  Made extracting of zip archives more robust, lose file handles in case
-	  of error and fix a bug when creating sub dirs.
-
-2012-09-30	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* pom.xml: Comment out build number plugin
-	* .hgignore: First hgignore.
-
-2012-09-29	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Check if roles from database is null. Fix for issue849.
-
-2012-09-26	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  New method addOutput to allow subclasses to add Output object manually.
-
-2012-09-17  Ingo Weinzierl <ingo@intevation.de>
-
-	Tagged RELEASE 2.9.1
-
-2012-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts/pom.xml, pom.xml: source 1.5 -> 1.6
-	  (@Override annotations for interface implementations is 1.6).
-
-2012-09-07	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Fix queries for finding a user.
-
-2012-09-07  Ingo Weinzierl <ingo@intevation.de>
-
-	Tagged RELEASE 2.9
-
-2012-08-30	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultSection.java:
-	  Use LinkedHashMap to keep insertion order of attributes.
-
-2012-08-27	Christian Lins	<christian.lins@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
-	  Fix for NPE on empty user database.
-
-2012-08-24	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FindUserResource.java:
-	  Add REST service to be able to find a user by its account name.
-
-2012-08-24	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	  Implement findUser method. The findUser method in ArtifactDatabase
-	  converts a User object into its XML representation.
-
-2012-08-24	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	  artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Implement method to find/get a user by its account name.
-
-2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Also add the account information when listing users.
-
-2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Add account information to createUser
-
-2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Read the account information from the database.
-
-2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/LazyBackendUser.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUser.java:
-	  Extend user class implementations to handle account information.
-
-2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/UserFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/User.java:
-	  Extend user interfaces to handle account information.
-
-2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Update sql user queries to add the account column.
-
-2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
-
-	* artifact-database/doc/schema-pg.sql,
-	  artifact-database/doc/schema-h2.sql:
-	  Add a account column to the users table.
-
-2012-07-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/FacetActivity.java:
-	  Refactored registry to use a Chain-of-responsibility pattern. This allows
-	  de-centralized facet activity treatment like in the facet producing states.
-
-2012-07-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/FacetActivity.java:
-	  Made Registry.getInstance() access static.
-
-2012-07-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/FacetActivity.java:
-	  New. Implementors of this interface can decide if a facet should be initially
-	  active or not. Contains a registry singleton.
-
-2012-07-27  Ingo Weinzierl <ingo@intevation.de>
-
-	Tagged trunk as '2.8.1'
-
-2012-07-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java:
-	  Added concat() to join two String arrays.
-
-2012-07-17	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  Doc fixes.
-
-2012-07-16  Ingo Weinzierl <ingo@intevation.de>
-
-	Tagged trunk as '2.8'
-
-2012-07-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java:
-	  Added concat() to join two String arrays.
-
-2012-07-17	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  Doc fixes.
-
-2012-07-16  Ingo Weinzierl <ingo@intevation.de>
-
-	Tagged trunk as '2.8'
-
-2012-07-15	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultSettings.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultSection.java,
-	  artifacts/src/main/java/de/intevation/artifacts/DataProvider.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java:
-	  Removed same package imports.
-
-2012-07-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java:
-	  Added contains(String needle, String [] haystack) method.
-
-2012-07-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/.settings/org.eclipse.jdt.core.prefs: Removed from
-	  version control (Eclipse configurations should not be in SVN!).
-
-2012-02-26	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/UserResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java:
-	  Cosmetics, doc.
-
-2012-06-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/**/*.java:
-	  Removed trailing whitespace.
-
-2012-06-05  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  Added some more debug output during the process of removing Artifacts
-	  and Collections with the DatabaseCleaner.
-
-2012-06-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Remove extra <map></map> from the XML generated by JSON lists containing only 
-	  objects.
-
-2012-05-27  Ingo Weinzierl <ingo@intevation.de>
-
-	Tagged trunk as '2.7'
-
-2012-05-18  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/DateUtils.java:
-	  New utility class that provides functions that helps working with dates.
-
-2012-05-15  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/model/KVP.java:
-	  New class to store generic keys and values.
-
-2012-05-07  Raimund Renkert <raimund.renkert@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Added method to create a document from string.
-
-2012-05-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  Defined and implemented a method getHelpText().
-
-2012-05-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XSLTransformer.java:
-	  Widen parameters to store more than strings.
-
-2012-04-27	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/JSON.java:
-	  Added toJSONString() method.
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Fixed building XML documents from JSON strings.
-	
-2012-04-25  Raimund Renkert <raimund.renkert@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/FileTools.java:
-	  Added method to extract zip archives to a specified directory.
-
-2012-04-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XSLTransformer.java:
-	  New. Added new XSLT processor similiar to old GNV one.
-
-2012-04-18	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/JSON.java:
-	  New. JSON parser from Artefact Server NG (which relies on JSON more heavily).
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Added method to convert JSON to XML. This is needed by the client which
-	  internally uses JSON to talk to the server which services only understands
-	  XML atm.
-	
-2012-04-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	Modified services so that they are now able to return more than just
-	XML documents. Needed if you want to return e.g. a PNG image from a service.
-
-	* artifacts/src/main/java/de/intevation/artifacts/Service.java:
-	  A service now returns a tuple (data, MIME type).
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Adjusted calls.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java:
-	  Returns a DefaultService.Output by default.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLService.java: New.
-	  Convenience sub class if DefaultService to produce XML documents. Old
-	  Services should derive from this class now to main compatibility.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java:
-	  Adjusted to handle the new Output tuples.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ByteArrayRepresentation.java:
-	  New. Wraps a byte array as a Restlet representation.
-
-2012-03-30  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
-	  Avoid adding duplicated facets into the output in addFacet().
-
-2012-02-10	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
-	  Pass context when asking facet for keys to write on 'blackboard'.
-
-2012-02-09  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java:
-	  Added a method setFacetDescription() which sets an alternative
-	  description for the facet. getFacetDescription() will now return the
-	  Facet's descritpion itself if no alternative description has been set;
-	  otherwise the alternative description.
-
-012-02-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java(join):
-	  Added static method to join strings with a separator.
-
-012-01-30	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java:
-	  Added Override annotations.
-
-2012-01-30  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java:
-	  Added a method that returns a StateData objects of a specific Artifact
-	  based on the Artifact's StateData's name.
-
-2012-01-30  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  Bugfix: search for StateData objects by name only the State has
-	  StateData objects set.
-
-2012-01-30  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Added methods to extract the default value for a min and max item.
-
-2012-01-18  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Added methods to retrieve the min and max values of a data item.
-
-2012-01-16	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/FileTools.java:
-	  Replaced legacy java.util.Stack with java.util.Deque.
-
-2012-01-16	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java,
-	  artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java,
-	  artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Cosmetics.
-
-2012-01-11	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java:
-	  Instance vars customValues and dataProviders are now of type Map 
-	  and not HashMap.
-
-2012-01-09  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  Added the owner Artifact as further parameter to initialize().
-
-2012-01-09  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/FileTools.java:
-	  Added new functions to copy files (copyFile()) and to copy directories
-	  (copyDirectory()).
-
-2012-01-09  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  Added an initialize() method which might be used to initialize the State
-	  based on model Artifact.
-
-2011-12-16	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java:
-	  (getDataProvider): Never return null.
-
-2011-12-16  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
-	  Added a new method setFacets(List<Facet>) to replace an existing list of
-	  Facets.
-
-2011-12-14  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Attribute.java:
-	  Added a setValue(Object) method and modified the signature of toXML()
-	  which now returns a Node.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultAttribute.java:
-	  New. A default implementation of Attribute.
-
-2011-12-14  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Settings.java:
-	  Added a removeSection(Section) method.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Section.java:
-	  Improved the interface to allow section having subsections. Therefore,
-	  addSubsection(Section), getSubsectionCount() and getSubsection(int) have
-	  been added. In addition, a getId() method has been added which is used
-	  in toXML() to create a new DOM Node. The Node name is the result of
-	  getId().
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultSettings.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultSection.java:
-	  Default implementations for Settings and Section.
-
-2011-12-14  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Settings.java:
-	  An interface that describes a flat API for specifying settings for
-	  something. A Settings object can store one or more Section instances and
-	  defines a toXML() operation that should append a XML representation of
-	  itself to a given parent Node.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Section.java:
-	  This interface is used to describe an API for storing and retrieving
-	  Attribute objects. Just as the Settings interface, it defines a toXML()
-	  operation that should append a XML representation of itself to a given
-	  parent Node.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Attribute.java:
-	  The interface for concrete attributes in a Section instance. An Attribute
-	  is the placed on the lowest level of the Settings hierachy and should be
-	  used to save concrete key value pairs. Even the Attribute defines the
-	  toXML() operation described above.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java:
-	  Added a getSettings() and setSettings(Settings) operation.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
-	  A DefaultOutput is now able to store a Settings instance. It implements
-	  getSettings() and setSettings(Settings) defined in the Output interface.
-
-2011-12-09	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
-	  (getDataProviderKeys): Added parameter artifact.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java:
-	  Pass artifact to changed getDataProviderKeys of Facet.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java:
-	  (getDataProvider): Never return null, empty list instead.
-
-2011-11-30	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java
-	  (getFacetDescription): New, access facets description.
-
-2011-11-30	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	Added convenienve bundle of artifact and facet that implements
-	DataProvider. This will help keeping things together in the upcoming
-	inter-facet pre-rendering communication ('blackboard') phase.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java:
-	  New class, keeping together an artifact and a facet (thus, should
-	  only have a short live span). Only implementation of the new
-	  DataProvider interface.
-
-2011-11-30	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	Extended CallContext to also act as a blackboard/service broker.
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java
-	  (getDataProvider,registerDataProvider): New functions to register/
-	  consume data providers.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java
-	  (getDataProvider,registerDataProvider): Implemented.
-
-2011-11-30	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	Added DataProvider interface that defines api for inter-facet
-	communication.
-
-	* artifacts/src/main/java/de/intevation/artifacts/DataProvider.java:
-	  New interface to prepare inter-facet pre-rendering communication
-	  phase ('blackboard').
-
-2011-11-30	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	Prepare inter-facet pre-rendering communication ('blackboard') phase.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java
-	  (getDataProviderKeys,provideBlackboardData): Extended interface to
-	  allow easy integration of blackboard mechanism (inter-facet
-	  pre-rendering communication).
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java
-	  (getDataProviderKeys,provideBlackboardData): Trivial implementation.
-	  The DefaultFacet will not talk to other facets during inter-facet
-	  pre-rendering ("blackboard") phase. Cosmetics, docs.
-
-2011-11-21  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Changed Ingo's last commit to a more conservative notation (no auto-boxing).
-	  Strangely the flys-client does not compile for me with the auto-boxed
-	  syntax with OpenJDK!
-
-2011-11-21  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Added a method that allows to specify if the document needs to be
-	  namespace aware or not while parsing from InputStream.
-
-2011-11-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  Enabled "post-describe" hooks for the Artifact's describe operation.
-
-2011-10-28	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	Let StateEngine compute a compatibiliy matrix based on given State
-	IDs.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java
-	  (getCompatibleFacets): New. Compute output/facet compatibility
-	  matrix based on given states.
-
-2011-10-21  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
-	  Bugfix: added missing bracket to an sql statement.
-
-2011-10-20	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java(getMasterArtifact):
-	  Limit result set to one row.
-
-2011-10-19	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	Fix accidentally corruptd key to sql statement.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Fix key.
-
-2011-10-19	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	Add backend and db functionality query artifact which is belongs to
-	a collection the longest (not neccessary the longest artifact itself).
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java
-	  (getCollectionsMasterArtifact): New. Access master artifact for
-	   given collection (masterartifact defined as artifact which belongs
-	   to the collection the longest).
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java
-	  (getCollectionsMasterArtifact): New (extended interface).
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java
-	 (getMasterArtifact): New, get UUID of oldest artifact which belongs to
-	 collection the longest.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added SQL query to get list of artifacts in collection sorted by the
-	  entry date.
-
-2011-10-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java(toUpperCase):
-	  Added static method to convert an array of string to their uppercase counterparts.
-	  
-2011-10-13	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	(newRemoveArtifactDocument): New, create a "remove artifact" document.
-	Cosmetics, docs.
-
-2011-10-13	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Fix SQL typo.
-
-2011-10-10	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java:
-	  Cosmetics, (shortened jdoc comments).
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Cosmetics, (shortened jdoc comments). Also, removed
-	  toString(Element), instead fixed toString(Node) - Node is
-	  superinterface of Element.
-
-2011-10-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	Fixed flys/issue255
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/db/DBConnection.java(getDataSource()):
-	  Serialized the loading of database drivers.
-
-2011-09-23	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	Fix debug helper toString(Node).
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  (toString(Node)): Fix issue with node from "wrong" document.
-
-2011-09-23	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	Added XMLUtils functions helping to debug parts of xml documents.
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  (toString(Node), toString(Element): New functions returning
-	  xml/string representations of parts of documents.
-
-2011-09-22  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Removed useless CollectionCallContext creation (was never used).
-
-2011-09-19  Ingo Weinzierl <ingo@intevation.de>
-
-	Tagged RELEASE 1.4
-
-	* Changes: Prepared changes for the release.
-
-2011-09-09  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Artifacts and Collections that started a background process might add
-	  Messages to a message board now. They (currently just implemented for
-	  the Artifact) can add new messages and receive a list of messages via
-	  the CallContext objects. If an Artifact or Collection instance is
-	  removed from background, all its messages are removed as well.
-
-	* artifacts/src/main/java/de/intevation/artifacts/Message.java: New. The
-	  message interface. Currently, there is just a single getText() method
-	  defined.
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java: Got
-	  two new methods to add new messages and retrieve a list of messages to
-	  the background messages.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionCallContext.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactCallContext.java:
-	  Implement the new methods to add/get messages defined in CallContext.
-	  The CollectionCallContext just defines the two methods without real
-	  implementation (stub).
-
-2011-09-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionCallContext.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactCallContext.java:
-	  The CallContext got a new method isInBackground() that determines, if
-	  the Artifact or Collection (currently not implemented) has started a
-	  background thread and is locked.
-
-2011-08-25  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/FileTools.java:
-	  New. A utility class for working with Files.
-
-2011-08-25	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java
-	  (outCollection): Called context listener too early before deferred out. This
-	  led to broken DB sessions.
-
-2011-08-25  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  Enhanced the State interface with a endOfLife() method; the default
-	  implementation in AbstractState is empty.
-
-2011-08-25	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
-
-	Minor cosmetics.
-
-	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
-	  Corrected signature in link in comment, whitespace.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
-	  Punctuation, whitespace in comment.
-
-2011-08-24	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Write filters to create document if they are given.
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/CreationFilter.java:
-	  New. Model for the creation filter.
-
-2011-08-24  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Renamed an attribute in the document to create new Artifacts.
-
-2011-08-24  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/MapXPathVariableResolver.java:
-	  New. An XPathVariableResolver instance that stores its variables in a
-	  Map.
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Added support for variables in xpath expressions. There is a new xpath()
-	  method that takes a Map<String,String> that stores the required
-	  variables.
-
-2011-08-22	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
-	  Added a deepCopy() method to make them cloneable (Not using java.lang.Cloneable for this).
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/data/DefaultStateData.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/data/StateData.java:
-	  Implement the changed interfaces.
-
-2011-08-22	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/pom.xml: Bumped PostgreSQL driver from 
-	  8.3-603.jdbc4 up to 8.4-702.jdbc4 (same as flys-backend).
-
-2011-08-10	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Extract the collection and artifact creation times when doing the initial
-	  scan, too.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Adjusted the SQL statements.
-
-2011-08-08	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
-	  Fixed H2 SQL to set TTL of collection.
-
-2011-08-02	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Swapped SQL parameter indices when fetching collection name.
-
-2011-08-02	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	  Change the ArtifactLoadedCallback interface to take the name of the
-	  collection, too.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Fetches the collection name, too.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Adjusted SQL statements.
-
-2011-08-02	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUser.java:
-	  Added constructor only with the identifier of the owner.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added dummy user to fresh created collection to have it accessible in the
-	  listeners.
-	
-2011-08-02	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  Generate kill events if and only if there were killed collections or artifacts.
-
-2011-08-02	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Return uuid in statements used by database cleaner, too.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/BackendListener.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultBackendListener.java:
-	  Two new methods to reports a list of external killed collections and artifacts.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Broadcast the lists of externally killed collections and artifacts to the listeners.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  Fire lists of deleted collections and artifacts to backend.
-
-2011-08-01	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Reorganized code a bit.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: Added some
-	  debug output. Handle forgotten store/create event source.
-
-2011-08-01	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Fixed NPE.
-
-2011-08-01	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  Made BackListeners loadable at boot time. To be configured with XPATH
-	  '/artifact-database/backend-listeners/listener'.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/BackendListener.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultBackendListener.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Wired listeners to backend.
-
-2011-08-01	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/BackendListener.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultBackendListener.java:
-	  Completed interface and the trival implementation.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Call the listeners for the new defined events.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/BackendListener.java:
-	  New. Interface to listener for backend events. TODO: Implement more
-	  events.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultBackendListener.java:
-	  New. Trivial implementation of BackendListener.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added list of backend listeners. TODO: Add them at boot time.
-
-2011-07-31	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/pom.xml: Bumped Apache DBCP up to 1.4
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/db/DBConnection.java:
-	  Use real pooling to void races. Maybe it needs more configuration options!?
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: Removed
-	  superfluous imports.
-
-2011-07-31	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Fixed broken SQL statement.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/db/DBConnection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: Added
-	  debug output.
-
-2011-07-31	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	Make artifact server bootable again.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  Fixed NPE.
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/db/SQL.java: Fixed NPE.
-	  Added some debug output.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: Fixed
-	  SQL key name. That was broken for long but not recognized.
-	
-2011-07-28	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/LRUCache.java:
-	  New. Simple LRU cache based on java.util.LinkedHashMap.
-
-2011-07-28	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	Refactorized the usage of dialect independent SQL to be reusable.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/db/SQL.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/db/DBConnection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/db/SQLExecutor.java:
-	  New. Generalized versions to make code reusable for datacage.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQLExecutor.java:
-	  Deleted.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConfig.java:
-	  New. Centralizes the SQL database configuration of the backend.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/h2/CollectionAccessUpdateTrigger.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  A lot of adjustment to make the new infrastructure work. Needs heavy testing!
-
-2011-07-27	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/LifetimeListener.java:
-	  New. Interface instances of are called when system is up and is going down.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  Load lifetime listeners from configuration. XPATH
-	  /artifact-database/lifetime-listeners/listeners/text()
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Call the listeners after start up and before shutdown.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
-	  Trigger the start of the artifact database explicitly when the boot process
-	  is finished.
-
-2011-07-27	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	  Added a method loadAllArtifacts() to load all artifacts which are in
-	  a collection and have an owner. The loaded artifacts are passed one by
-	  one to an instance of the interface ArtifactLoadedCallback.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Adjusted to implement the interface.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Load the artifacts from the SQL backend.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added statements to load all the artifacts.
-
-2011-07-26	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/pom.xml: Bumped H2 version up to latest stable 1.3.158
-
-2011-07-22	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java,
-	  artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java:
-	  Moved StringUtils to common package.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  Adjusted imports.
-
-	* artifacts-common/pom.xml, artifact-database/pom.xml: Moved dependency to Apache codec
-	  to other package.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
-	  Added Override annotations (forgot to commit last time).
-
-2011-07-21  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  New CREATE documents for Artifact creation might contain db-ids now.
-
-2011-07-21	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/Service.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java:
-	  Services now take GlobalContext on setup and process.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java:
-	  Adusted and added Override annotations.
-
-2011-07-21	Sascha L. Teichmann	<teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
-	  Made it more compatible with mixed namespaces and mixtures of namespaces
-	  and no namespaces.
-
-	* artifacts/pom.xml: Set Java compatibility to 1.5. Why isn't this inherited
-	  from main pom.xml? The artifact-database module uses 1.5 features but does
-	  not need any extra configuration.
-
-2011-07-20  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
-	  Added a parameter of type CallMeta to the signature of setup(). The
-	  CallMeta object is required for i18n initial things.
-
-	  !! NOTE: This modification breaks the current API !!
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
-	  Call Artifact.setup() with an instance of CallMeta.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  The createArtifact() method got a CallMeta instance which is necessary
-	  to call Artifact.setup().
-
-2011-07-19  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
-	  Added a method to add a list of Facets.
-
-2011-07-18  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
-	  A facet can write its internal representation to XML using a public
-	  method toXML(Document).
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
-	  Facets are appended using its toXML() method. Concrete facets can now
-	  change its xml representation.
-
-2011-07-14  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/Hook.java: The Hook's
-	  execute() method is called with a Document now.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  The hooks that are called after feed() and advance() are called with the
-	  documents which are returned by those operations.
-
-2011-07-14  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/GlobalContext.java: New.
-	  An interface for global context objects. It defines two basic operations
-	  to put objects into the context and to retrieve objects from context.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	  Added a method that returns an instance of an Artifact with one
-	  limitation: the internal state of this artifact is not persisted to
-	  database!
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Added a method that creates a document used to create new Artifacts with
-	  the UUID of another one.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java:
-	  Adapted method signatures to apply the new interface for global context
-	  objects.
-
-2011-07-13  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/Hook.java: New. A hook
-	  can be used to execute at a specific point in time. E.g. after an
-	  Artifact was fed or after an Artifact has advanced.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Call hooks after Artifact's feed() and advance() operations.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  Load hooks from configuration that match the XPath "/artifact-database/hooks/hook".
-
-2011-07-13	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	Fix for flys/issue20
-
-	* artifact-database/pom.xml: Bumped version of SLF4J up to 1.6.1
-
-2011-07-08  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
-	  An Output can have a type (string) declaration now that should make it
-	  easier to distinguish different Output types.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  Read the attribute "type" from OutputMode's configuration section.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
-	  Write the member variable "type" to an OutputMode.
-
-2011-06-28  Ingo Weinzierl <ingo@intevation.de>
-
-	Tagged RELEASE 1.3
-
-2011-06-27  Ingo Weinzierl <ingo@intevation.de>
-
-	* Changes: Prepared changes for the upcoming release.
-
-2011-06-27  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Declared toString(Document) method static.
-
-2011-06-22  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Added functions that generate documents to set the name and ttl of a
-	  collection and to delete an existing collection.
-
-2011-06-21  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Add the time-to-live of a collection to the document that is returned
-	  after the collection has been created.
-
-2011-06-21	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
-	  Added toString() method to help debugging.
-
-2011-06-21  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Put the time-to-live of a collection into the document with the list of
-	  user collections.
-
-2011-06-21  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java:
-	  The ArtifactCollection now knows its time-to-live. This values is
-	  retrievable via getTTL().
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java:
-	  Creating an ArtifactCollection requires the time-to-live of it.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Create new ArtifactCollections with their time-to-live.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Adapted SQL statements that retrieve collections. The TTL of the
-	  collection is fetched from database as well.
-
-2011-06-17  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
-	  Facets are able to fetch their necessary data from artifact now using a
-	  getData(Artifact, CallContext) method.
-
-2011-06-16  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
-	  Write index of a facet into the document.
-
-2011-06-16  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java:
-	  Extends Serializable.
-
-2011-06-15  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
-	  Added an index to a facet.
-
-2011-06-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Added static toString(Document) method which transform XML documents to Strings.
-	  Useful for debugging.
-
-2011-06-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  New methods to set the name of a collection.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
-	  Dispatch the "setname" action.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added sql statements to update the name of a collection specified by its
-	  gid.
-
-2011-06-07  Ingo Weinzierl <ingo@intevation.de>
-
-	  flys/issue50 (Markierung von "Master-Artefakten" ermöglichen)
-
-	* artifact-database/doc/schema-pg.sql,
-	  artifact-database/doc/schema-h2.sql: Added a column 'creation' to the
-	  collection_items table. This column is set to the current timestamp when a
-	  new row is inserted in this table. The master artifact of a collection
-	  is the artifact which collection item is the oldest collection item in
-	  the collection.
-	  Note: there might be older artifacts in the collection than the master
-	  artifact, but there will never be an older collection item than the first
-	  item when the collection was created.
-
-	  To update the db, use the following statements:
-
-	    ALTER TABLE collection_items ADD COLUMN creation TIMESTAMP;
-	    UPDATE collection_items SET creation = CURRENT_TIMESTAMP;
-	    ALTER TABLE collection_items ALTER COLUMN creation SET NOT NULL;
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Order the list of collection items based on their creation time.
-
-2011-06-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	  Added a setCollectionTTL() method that might be used to update the TTL
-	  of a collection. The new value needs to be from type long. There are two
-	  exceptions for the new values:
-	    1. the new value is "INF": this lets collections live forever.
-	    2. the new value is "DEFAULT": this sets the TTL of the collection to
-	       the configured default value.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added a method to update the TTL attribute of a collection.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
-	  Dispatch the "settimetolive" action.
-	  
-	* artifact-database/src/main/resources/sql/org-postgresql-driver.properties,
-	  artifact-database/src/main/resources/sql/org-h2-driver.properties: Added
-	  sql statements to update the TTL of a specific collection based on the
-	  UUID of the collection.
-
-2011-06-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java:
-	  Use generics more precisely
-
-2011-06-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	flys/issue75
-
-	* artifact-database/doc/schema-h2.sql: Fixed SQL syntax error in trigger creation.
-
-	* README: Adjusted to use new lib versions.
-
-2011-06-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  The incoming attribute document of the method to create the document to
-	  trigger the out() of a collection needs to have the root node
-	  art:attribute now.
-
-2011-05-31  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseOutResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionOutResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
-	  The 'type' part of the url is extracted and used while dispatching the
-	  call to the artifact database.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	  The deferred output got a new out() method that takes the 'type'
-	  parameter specified in the url part.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java,
-	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
-	  Artifacts and ArtifactCollections have two out() operations to support
-	  the output type parameter now. I did not remove the out() without the
-	  'type' parameter to keep compatible with older versions.
-
-2011-05-27  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  The setCollectionAttribute() method will now set the incoming document
-	  as new attribute for the collection. Before, we looked for a xpath
-	  expression that contained the attribute. In the current implementation,
-	  the incoming document IS the attribute.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
-	  Extract the new attribute for a collection and call the
-	  setCollectionAttribute() method of ArtifactDatabase with this document
-	  instead of calling it with the incoming request document.
-
-2011-05-27  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  New method that creates the document that is used to set an attribute of
-	  a collection.
-
-2011-04-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/JettyServer.java:
-	  Do not bind context to restlet app for security reasons.
-
-2011-04-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
-	  XMLUtils.xpathString() returns empty string not null.
-
-2011-04-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	flys/issue65: Added Jetty HTTP server as a replacement option to foster
-	better scalability. Needs testing.
-
-	* pom.xml: Added repository for Jetty.
-
-	* artifact-database/pom.xml:
-	  Added dependencies to Jetty (Licenses: Apache 2.0 or Eclipse).
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Pass restlet context to super constructor.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/JettyServer.java:
-	  New. Use embedded Jetty server to serve rest API.
-	  To enable it set "/artifact-database/rest-server/http-server/text()"
-	  in global config to "de.intevation.artifactdatabase.rest.JettyServer".
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
-	  Refactored a bit to be useful as a base class.
-	
-2011-04-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/HTTPServer.java:
-	  New. Interface to run an HTTP server. Enables the system to run on different
-	  HTTP servers.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
-	  Implements the new interface.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  Load and setup the HTTP server configured by the XPath 
-	  "/artifact-database/rest-server/http-server/text()" in the global config file.
-	  Defaults to "de.intevation.artifactdatabase.rest.Standalone" if not given.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java: 
-	  Boot with the HTTP server configured by FactoryBootstrap.
-
-2011-04-18	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
-	  With '/artifact-database/rest-server/max-threads/text()' in conf.xml
-	  you can set the number of threads used by the restlet server.
-	  Defaults to 1024 now. Another attempt/workaround to cope with flys/issue65.
-
-2011-05-17  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Bugfix: The output name and its concrete type are both written into the
-	  document that is used to trigger the OUT operation of a collection.
-
-2011-04-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/pom.xml: Bumped restlet to version 2.0.7 in hope
-	  to mitigate flys/issue65.
-
-2011-05-13  Ingo Weinzierl <ingo@intevation.de>
-
-	Tagged as RELEASE 1.2
-
-	* Changes, NEWS: Changes and news for release 1.2
-
-2011-05-12  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  The method that is used to create the request document for querying
-	  charts will now take a document which might contain parameters to adjust
-	  chart settings (e.g. chart height/width).
-
-2011-04-28  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/transition/Transition.java:
-	  Modified the isValid() method. The transition needs to know about the
-	  current artifact where its data is stored, the current state and maybe
-	  the target state to determine if it is allowed to step from the current
-	  state to a target state!
-	  NOTE: This breaks the current API!
-
-artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java
-
-2011-04-28  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  States have now a method getData(String) to retrieve just a single StateData object.
-
-2011-04-28  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Added a function that creates the document that is used to set the
-	  attribute of a CollectionItem (setCollectionItemAttribute() operation).
-
-2011-04-27  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Bugfix: Do not create empty XML documents and save those into database -
-	  exceptions while serialization/deserialization have been the result of
-	  this.
-
-2011-04-26  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  New methods for querying and updating attributes of collections.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
-	  Enabled the request dispatcher to handle requests specific to collection
-	  attributes and collection item attributes.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  New statements for querying and inserting attributes of collections.
-
-2011-04-26  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Changed the names of the method names that set and retrieve the
-	  attributes of collection items (e.g. getCollectionAttribute() ->
-	  getCollectionItemAttribute()).
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
-	  Modified method calls based on the changes above.
-
-2011-04-21  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
-	  Added a method to add further facets.
-
-2011-04-14  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Bugfix: removed method CallContext specific method calls.
-
-2011-04-14  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  Enhanced the bootstrap - the CallContext.Listener is initialized (if
-	  configured).
-
-2011-04-14  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
-	  Added a setup() method as in the other factories.
-
-2011-04-14	Sascha L. Teichmann	<sascha.teichmann@intevation.de>	
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Added instance variable to hold a call context listener.
-
-2011-04-14	Sascha L. Teichmann	<sascha.teichmann@intevation.de>	
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Call the postCall() methods of all CallContextes. Removed superfluous context
-	  paramter to AbstractCallContext constructors.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java:
-	  call ArtifactDatabaseImpl.initCallContext() in constructor and 
-	  ArtifactDatabaseImpl.closeCallContext() in postCall().
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionCallContext.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactCallContext.java:
-	  adjusted to guarantee that super.postCall() is called.
-
-2011-04-14	Sascha L. Teichmann	<sascha.teichmann@intevation.de>	
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
-	  Added a listener to be called if a call context was created and closed.
-	
-2011-04-14  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  Added a reference to an artifact to the parameterlist of describe().
-	  This is needed to retrieve other necessary information of an artifact.
-
-2011-04-13	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Internal granularity should be milliseconds and not microseconds.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
-	  Forget last commit.
-
-2011-04-13	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	Fix for flys/issue9
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Removed code that checks for outdated artifact in user land.
-	   
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Do the check in the database and take into account if artifact
-	  is in a collection. XXX: Maybe this needs some speedup!
-
-2011-04-13	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	Fix for flys/issue8 (part 3)
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  'NOT IN (NULL)' does not work. Used 'NOT IN (-666)' instead.
-
-2011-04-12  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Added a method that returns a document that is used to trigger the
-	  artifact's DESCRIBE operation.
-
-2011-04-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Added a method that creates documents used as input document for the
-	  Collection's out() operation.
-
-2011-04-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	Fix for flys/issue8 (part 2)
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  PostgreSQL does not like clauses like 'NOT IN ()' so write 
-	  'NOT IN (NULL)' in these cases.
-
-2011-04-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	Possible fix for flys/issue8
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java:
-	  (repeat) The term was repeated one time too often leading to invalid
-	  SQL statements in database cleaner. I really should start writing 
-	  unit tests.
-
-2011-04-06  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCollectionItem.java:
-	  Bugfix: Items are compressed in the Backend while adding an Artifact to
-	  a Collection. So this item needs to be decompressed when it is fetched
-	  from Backend again. This is done now!
-
-2011-04-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  The XML documents stored aside users, collections and collection items
-	  are now compressed/decompressed transparently, to reduce i/o costs
-	  as its already done with artifacts.
-	  
-	  !!! This breaks database content of release FLYS 2.2 but this is okay,
-	  !!! because 2.2 is not productive..
-
-2011-04-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Added a boolean flag to XML byte serialisation to compress/decompress, too.
-	  Defaults to false to keep compatibilty.
-
-2011-04-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* src/**/*.java: Removed trailing whitespace.
-
-2011-03-31	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  Removes outdated collections, too.
-
-	* src/main/resources/sql/org-h2-driver.properties,
-	  src/main/resources/sql/org-postgresql-driver.properties:
-	  Added SQL statements to figure out outdated collections.
-
-2011-03-31	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java:
-	  Added methods to repeat chars or strings.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  Filtering out locked artifact ids is now done on database level.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added $LOCKED_ID$ template for the prepared statements to figure
-	  out the locked ids.
-
-2011-03-31	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  The cleaner now fetches the explicit set of locked artifact ids from
-	  the artifact database. This is needed for the next step todo: Prevent
-	  locked artifact from beeing considered as outdated on database level.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java:
-	  Removed. Not needed any more.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Now provides a copy of the locked artifact ids.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Adjusted code to follow the new id locking semantics.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
-	  Removed needless import.
-
-2011-03-31	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/doc/schema-h2.sql, artifact-database/doc/schema-pg.sql:
-	  Added a trigger on artifacts. If an artifact is changed the last_access
-	  timestamp of the collections in which the artifact is in are updated, too.
-	  Needs testing!
-
-	  - In PostgreSQL it is done by a trigger written in plpgsql. So don't
-	    forget to add the language to the database!
-
-	  - In H2 it is done by a trigger written in Java, because H2 does not
-	    offer a script level trigger support.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/h2/CollectionAccessUpdateTrigger.java:
-	  The H2 trigger.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
-	  Added the statement which is executed if the trigger fires.
-
-2011-03-31  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Added an implementation of DeferredOutput for ArtifactCollections and
-	  implemented the out() operation of an ArtifactCollection.
-
-2011-03-30  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
-	  The output nodes written to DESCRIBE document have facet nodes now.
-
-2011-03-30  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java:
-	  New. A facet and its default implementation. A facet represents one
-	  piece of an concrete output. E.g. an output can be a chart, a facet can
-	  be a single curve in this chart.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java:
-	  Added methods to retrieve and set facets.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  Added code to parse facets in the inner of an output node of the
-	  transition configuration. The xpath to a facet relative to a state
-	  should look like this: state/outputmodes/outputmode/facets/facet.
-
-2011-03-30  Ingo Weinzierl <ingo@intevation.de>
-
-	Tagged as RELEASE 1.1
-
-2011-03-30  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  There is a new method that creates the document that is used to trigger
-	  the DESCRIBE operation of a collection.
-
-2011-03-25  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  The operation that adds an artifact to an artifact collection will
-	  return the DESCRIBE document of the artifact collection now.
-
-2011-03-24  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
-	  Made the document 'attribute' of the ArtifactCollection accessible via
-	  getter and setter methods.
-
-2011-03-24  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  The CREATE document for used for creating new ArtifactCollections will
-	  build an ArtifactCollection with an empty attribute - but it is no
-	  longer null (which broke the XML parser while fetching the
-	  ArtifactCollection from backend).
-
-2011-03-24  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Removed the inner CallContextImpl class. This class is split up into an
-	  abstract class AbstractCallContext and concrete classes for artifacts
-	  and collections. We need to do so, because the describe() of an
-	  ArtifactCollection needs the CallContext - but the former
-	  CallContextImpl was specific for artifacts.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionCallContext.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactCallContext.java:
-	  An abstract CallContext and two concrete implementations for Artifacts
-	  and ArtifactCollections.
-
-2011-03-24  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
-	  There is a describe() method for ArtifactCollections, now.
-
-2011-03-24  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added a method that retrieves an ArtifactCollection based on its GID.
-
-2011-03-24	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added a cast to uuid in collections.select.by.gid
-
-2011-03-24  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added new statement to retrieve a single collection by GID and repaired
-	  a statement in the postgres properties.
-
-2011-03-23  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Added a method that creates a document that is used to add an artifact
-	  to a collection.
-
-2011-03-23  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Bugfix: Repaired broken SQL statement.
-
-2011-03-23  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Bugfix: Repaired a broken XPath.
-
-2011-03-23  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
-	  Added a method to append an <outputmodes> section to a document that
-	  describes the output modes of a state.
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Added a method to retrieve a list of output modes from DESCRIBE
-	  document.
-
-2011-03-23  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java:
-	  The State interface defines a method to retrieve the state's output
-	  modes now.
-
-2011-03-22  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java:
-	  New. An interface and its default implementation to describe an output
-	  mode of a state. Currently, the information 'name', 'description' and
-	  'mime-type' are provided.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  The abstract state reads the output modes available for the state now.
-
-2011-03-21  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Changed the return type of a method, so that more nodes will be
-	  retrieved.
-
-2011-03-15	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	!!! THIS BREAKS THE GNV ARTIFACTS. !!! TODO: Adjust the imports there.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
-	  Deleted. The copies from the commons package are use now.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/**/*.java:
-	  Adjusted imports.
-
-2011-03-15	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/Config.java:
-	  New. Copy of Config in artifacts-database. Part of moving configuration to 
-	  the commons package. TODO: Remove XMLUtils and Config from artifact-database.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Trivial fix. Forgot to commit some time ago.
-
-2011-03-14  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  The describe() method of a state will now return an Element.
-
-2011-03-10  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  New method that creates the document for a ADVANCE operation.
-
-2011-03-10  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  New method that creates the document for a FEED operation.
-
-2011-03-10  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Bugfix: The ElementCreator's method addAttr() will no longer add the
-	  namespace to an attribute although the 'addPrefix' parameter was set to
-	  false.
-
-2011-03-09  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java:
-	  New method to determine if a state B is reachable from a state A.
-
-2011-03-09  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/data/DefaultStateData.java:
-	  Added a further constructor that takes even the value.
-
-2011-03-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/doc/schema-pg.sql, artifact-database/doc/schema-h2.sql: 
-	  Fixed broken schemas.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Insert collection attribute into database, too.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Adjusted SQL statements to insert attribute into collection table.
-
-2011-03-09  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Parse the collection attribute that is contained in the incoming
-	  document while creating a new collection and use this document as parameter
-	  for calling createCollection() of the Backend.
-
-2011-03-09  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Fixed a typo.
-
-2011-03-08  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	  New method describeCollection() that might be used to retrieve a list of
-	  items in the collection and the facets supported by those items.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
-	  Enabled the describeCollection() method with an action 'describe' equal
-	  to the implementation of describe of an artifact.
-
-2011-03-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  The cleaner job is scanning the artifact database for outdated artifacts.
-	  artifacts are aging independent from the collections they are in.
-	  So the cleaner wants to delete artifacts that are still in
-	  collections which violates a foreign key constraint and renders
-	  the cleaner inop because this condition remains.
-
-	  The fix prevents this behavior by only deleting artifacts that
-	  are not in a collection.
-
-2011-03-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Fixed issue with outdating artifact if it is removed from a collection.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Fixed statements.
-
-2011-03-08  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Implemented the setCollectionAttribute() and getCollectionAttribute()
-	  methods.
-
-2011-03-08  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Fixed some SQL statements that contained typos.
-
-2011-03-08  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Implemented removeCollectionArtifact() method.
-
-2011-03-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	  Modified the method signature of addCollectionArtifact(). This method
-	  got the incoming document as further parameter.
-	  Furthermore, listCollectionArtifacts() and addCollectionArtifact() are
-	  implemented now.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
-	  Adapted the method call of addCollectionArtifact().
-
-2011-03-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCollectionItem.java:
-	  Fixed broken constructor.
-
-2011-03-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/doc/schema-pg.sql,
-	  artifact-database/doc/schema-h2.sql: Renamed a SEQUENCE - schema
-	  definition and sql statements did not fit to each other.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Fixed wrong table names in sql statements.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Fixed SQL constants.
-
-2011-03-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/CollectionItem.java:
-	  New. An interface that wraps artifacts and its attributes in collections.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCollectionItem.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionItem.java:
-	  Moved. The CollectionItem has been moved to DefaultCollectionItem and
-	  implements the new interface CollectionItem.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  The listCollectionArtifacts() method instantiates DefaultCollectionItem
-	  objects now.
-
-2011-03-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionItem.java:
-	  Add missing class.
-
-2011-03-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added code to list the collection items in a collection.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added SQL statements to list the collection item 
-	  via a given collection uuid.
-
-2011-03-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Repaired the namespaces of attributes in the xml documents created in
-	  the collection context.
-
-2011-03-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionItem.java:
-	  New. Helper to be returned in Backend.listCollectionArtifacts()
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Copyright adjusted to 2010, 2011
-
-2011-03-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
-	  Adapted the sql statement to fetch all collections and all user
-	  collections from database (see rev1399 for more details).
-	  s/OUTER LEFT/LEFT OUTER/ solves the collection listing problem.
-
-2011-03-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added code to delete a collection item. Fixed typo in SQL lookup.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added SQL statements to removed an artifact from a collection given
-	  a collection id and an artifact id.
-
-2011-03-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added code to set the attribute of a collection item.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added SQL statements to set the attribute column of a collection item
-	  given a collection id and an artifact id.
-
-2011-03-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added code to get the attribute of a collection item.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added SQL statements to get the attribute column of a collection item
-	  given the collection and the artifact uuid.
-
-2011-03-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added new method isValidIdentifier() to check if identifier
-	  is valid. Its a wrapper around StringUtils.checkUUID() to
-	  make it more symmetric to newIdentifier() which wraps
-	  StringUtils.newUUID().
-
-2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  TODO: Parse incoming document for an initial attribute of a
-	  collection item.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added code to add a collection item to a collection.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added SQL statements to handle creation of collection items.
-
-2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added code to delete a collection.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added SQL statements to delete collections.
-
-2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQLExecutor.java:
-	  New. Helper class to simplify the database connection stuff like
-	  get a connection, prepare statements, commit, rollback in
-	  error cases and so on. This reduces the code repetition
-	  and complexity in the backend significantly.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Use the new helper. (Should really have done this before!)
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java:
-	  Removed empty line at end of file.
-
-2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Argh! s/OUTER LEFT/LEFT OUTER/ solves the collection listing problem.
-
-2011-03-04  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Added a method that creates the CREATE document for creating new
-	  artifact collections.
-
-2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/pom.xml: Lifted H2 to version 1.3.152.
-	  This hopefully eliminates the problem with the left outer join
-	  in listing of the user collections.
-
-2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added new statement to extract the creation time for a given collection.
-	  XXX: listing of collection does not. Need to look at that.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
-	  Repaired parameter propagation of creation times and collection names.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Adjusted the backend to propagate the creation time and the collection names.
-
-2011-03-04  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  The createCollection() method returns a document that will now contain
-	  the uuid of the created artifact collection.
-
-2011-03-04  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  If there is no creation time of a collection, we just add an empty
-	  string to the collection node in listCollections(). A
-	  NullPointerException is avoided!
-
-2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added SQL statements to list collections.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added code to make collections accessible.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Bind backend functionality to REST.
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Implemented the interface method addCollectionArtifact().
-
-2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/LazyBackendUser.java:
-	  New: Helper for lazy loading users.
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Introduced the ArtifactCollectionFactory as parameter of
-	  listCollections().
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Implemented the interface method listCollections().
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/doc/example-conf/conf.xml: Corrected the attribute
-	  name of the artifact collection in the example node for the artifact
-	  collection factory.
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Two things: the collection get names specified in the incoming document
-	  of the POST request, and the deleteCollection() interface method is now
-	  implemented.
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Bugfixes while collection creation: Create a Connection object before
-	  setting its attributes and corrected the order of the values inserted
-	  into the SQL statement.
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  The roles of users are stored into and loaded from database now.
-
-2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added SQL statements to create collections.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
-	  Added name to collection.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java:
-	  Adjusted factory api to cope with names.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Implemented create collection.
-
-	* database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Adjusted the backend call.
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Changed the method signature of createCollection(). The Backend needs
-	  the ArtifactCollectionFactory to create new instances of artifact
-	  collections.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Implemented the interface method createCollection().
-
-2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/UserFactory.java:
-	  Throw out useless stuff from interface.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java:
-	  Adjusted default implementation.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Use user factory to create new users.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Call the backend with the new semantic.
-
-2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added stubs for the collection handling.
-
-	* artifact-database/doc/schema-pg.sql, artifact-database/doc/schema-h2.sql:
-	  Added missing attribute column to the collection item table.
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/doc/example-conf/conf.xml: Added a node that
-	  configures a default artifact collection factory.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  The artifact collection factory (currently just a single one) is read
-	  from configuration and setup with its parameters.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Fetch the configured artifact collection factory from bootstrap.
-
-2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	  artifacts/src/main/java/de/intevation/artifacts/UserFactory.java:
-	  Propagate delete user errors correctly.
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/UserFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Adapted the signature of deleteUser(). These methods don't await a User
-	  object any longer but just its identifier.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Performance improvement: there is no need to fetch the user that we want
-	  to delete from database before deleting it. Now, we just call the
-	  deleteUser() method of the UserFactory with the identifier of the user.
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Implemented the deleteUser() interface method. This operation will now
-	  remove the specified user, its collections and the artifacts stored in
-	  these collections.
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Bugfix: Replaced wrong SQL statements with the correct ones.
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Implemented the listUsers() interface method. This operation will now
-	  return a list of users as document.
-
-2011-03-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Implemented the createUser() interface method. Calling this method will
-	  trigger the backend to create a new user described in the document given
-	  in the POST request.
-
-2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added code to load all users from database.
-
-2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added code to load user from database.
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Added method to reconstruct XML documents from byte arrays and input streams
-
-2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added code to delete a user, his/her collections and quarantee that
-	  the artifacts exclusivly owner by the user are going to be deleted
-	  from the artifact database.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Various SQL statements to cope with outdating artifacts and deleting
-	  users and collections.
-
-2011-03-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseOutResource.java:
-	  New. Abstract class that should be used as the base class for the
-	  artifact and collection out resource. The most stuff to handle the
-	  output is done in this class. Concrete subclasses are needed to call the
-	  correct methods in the artifact database.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionOutResource.java:
-	  New. The OUT Resource for collections. It implements the two abstract
-	  methods of BaseOutResource.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
-	  This class inherits from BaseOutResource now. The most code has been
-	  removed. Just the two abstract methods of BaseOutResource are
-	  implemented here.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Added the CollectionOutResource.
-
-2011-03-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
-	  New. A Rest resource that handles operations for a specific collection.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Added the CollectionResource.
-
-2011-03-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ListCollectionsResource.java:
-	  New. A Rest resource that lists all collections of a specific user.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Added the ListCollectionsResource.
-
-2011-03-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateCollectionResource.java:
-	  New. A Rest resource that might be used to create new collection that
-	  are owned by a specific user.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Added the CreateCollectionResource.
-
-2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
-	  artifacts/src/main/java/de/intevation/artifacts/UserFactory.java:
-	  Removed needless imports.
-
-2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Call database to create a new user.
-
-2011-03-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/UserResource.java:
-	  New. A Rest resource that handles actions for a specific user.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Added the UserResource.
-
-2011-03-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ListUsersResource.java:
-	  New. A Rest resource that lists all users provided by the artifact
-	  database.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Added the ListUsersResource.
-
-2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Added a convinience method to transform an document
-	  into a byte array. Useful for storing documents as blob database columns.
-
-2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java:
-	  Wired Backend with DefaultUserFactory via the singleton.
-
-2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Fixed typo in keys.
-
-	* artifacts/src/main/java/de/intevation/artifacts/UserFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java:
-	  Removed superfluous identifier in createUser().
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added stubs for handling of users.
-
-2011-03-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	  Removed duplicated method to list users.
-
-2011-03-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java:
-	  Added a new method getArtifactDatabase() that retrieves the artifact
-	  database which is used in all subclasses of this resource.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateUserResource.java:
-	  Use getArtifactDatabase() to retrieve the artifact database.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
-	  New. A resource that is used to create new users. The information about
-	  the user need to be included in the POST data of the request.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Added the CreateUserResource.
-
-2011-03-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/UserFactory.java: Added
-	  a setup method like the artifact factories have.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Added an import statement for the UserFactory that was missing here.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  The setup() method of the UserFactory is called after the concrete
-	  factory class has been instantiated.
-
-2011-03-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts/pom.xml: Bugfix: We are able to compile the artifacts package
-	  with local modifications again.
-
-2011-03-01  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Made it a singleton.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
-	  Use the singleton Backend.
-
-2011-03-01  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Setup the user factory.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  New method to retrieve the user factory.
-
-2011-03-01  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/doc/example-conf/conf.xml: Added a user-factory
-	  configuration.
-
-2011-03-01  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  Added the registration of the UserFactory to the bootstrap process.
-
-2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	  Added SQL statements to handle users in database.
-
-	* artifact-database/doc/schema-pg.sql,
-	  artifact-database/doc/schema-h2.sql: Added missing UNIQUE constraints.
-
-2011-03-01  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUser.java:
-	  Added a new constructor to create new DefaultUsers with an identifier, a
-	  name and a role.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java:
-	  New. A default implementation of a UserFactory that creates
-	  DefaultUsers.
-
-2011-03-01  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java:
-	  A default implementation of an ArtifactCollectionFactory.
-
-2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
-
-	* artifact-database/doc/schema-pg.sql,
-	  artifact-database/doc/schema-h2.sql: Extended db scheme to
-	  cope with collections, collection items and users.
-
-2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java:
-	  Typo fix.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java:
-	  Added method to figure out TTL of a collection.
-
-2011-03-01  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java:
-	  A default implementation of a ArtifactCollection.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUser.java:
-	  A default implementation of a User.
-
-2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
-	  Added creation time.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Typo fixes.
-
-2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	  Added external API for users and collections.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Trivial implementation.
-
-2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
-
-	* src/main/java/de/intevation/artifacts/UserFactory.java,
-	  src/main/java/de/intevation/artifacts/ArtifactCollection.java: Added
-	  missing call contexts to API.
-
-2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java:
-	  New: factory to create new collections.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
-	  New: Bundles artifacts to be owned by a user.
-
-	* artifacts/src/main/java/de/intevation/artifacts/UserFactory.java:
-	  New: Creates a new user.
-
-	* artifacts/src/main/java/de/intevation/artifacts/User.java:
-	  New: Model of a user.
-
-	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Typo fix.
-
-2011-02-18  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  Added XPath constants and some method that retrieve important nodes of the
-	  DESCRIBE document.
-
-2011-02-16  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/ArtifactNamespaceContext.java:
-	  New. Added the namespace context here to make it available in clients as
-	  well.
-	
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
-	  New. This class provides functions that help working with the artifact
-	  protocol. Currently, there is just a single function to create a new
-	  CREATE document.
-
-2011-02-10  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/resources/de/intevation/artifacts/common/Common.gwt.xml:
-	  A module description that is used by GWT.
-
-	* artifacts-common/pom.xml: The resulting jar archive of the 'package'
-	  target will now contain the compiled classes as well as the source files.
-	  Furthermore, the sources are compiled with Java-1.6. These two things are
-	  required for the jar to be included by GWT as module.
-
-2011-02-10  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/model/User.java,
-	  artifacts-common/src/main/java/de/intevation/artifacts/common/model/DefaultUser.java:
-	  The interface description and a default implementation of a user.
-
-2011-02-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java:
-	  Added a method to add new StateData objects to the State.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/data/StateData.java:
-	  Added a new method to the StateData interface to set the value of the
-	  object.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/data/DefaultStateData.java:
-	  New. A default implementation of the StateData.
-
-2011-02-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
-	  Added new methods to append the current state and the reachable states to
-	  a root node.
-
-2011-02-07  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java:
-	  There is a new method that returns a state based on its ID.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java:
-	  There is a new method that retrieves the reachable states of a specific
-	  state.
-
-2011-02-04  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
-	  New. This class provides functions that should help creating the artifact
-	  protocol documents of the services describe, feed, advance and out.
-
-2011-02-04  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  Implements the method setup() - the ID and the description of the state
-	  are extracted at this place.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java:
-	  Added a method to retrieve the states of a specified artifact.
-
-	* artifact-database/pom.xml: Added a dependency to the artifacts-common
-	  package.
-
-2011-02-04  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
-	  New. An abstract implementation of a State. Some basic getter and setter
-	  methods are implemented - setup() and describe() need to be implemented by
-	  concrete subclasses.
-
-2011-02-03  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java:
-	  Implementations to store the provided states and transitions of the
-	  artifact server. These engines should be filled at bootstrap.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/transition/Transition.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/data/StateData.java:
-	  Interface descriptions for states, transitions and user inserted data.
-
-2011-02-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
-	  Corrected the package definition.
-
-2011-02-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java,
-	  artifacts-common/pom.xml: New package. It will serve some classes and
-	  utilities that are used in the artifact-database package as well as in
-	  concrete artifact packages.
-
-	* pom.xml: Added the artifacts-common package to be able to build all
-	  packages using just the upper level pom file.
-
-2011-02-01  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/pom.xml: Upgraded Restlet from version 2.0-SNAPSHOT
-	  to the current stable version 2.0.4.
-
-	* pom.xml: The SCM plugin will not check for local changes any longer.
-	  Otherwise, we aren't able to build the project with outstanding
-	  modifications.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
-	  Set the max number of threads available for the REST server to 512. This
-	  is a _WORKAROUND_ for Restlet-2.0.4 which seems to have a bug while
-	  handling threads.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
-	  Renamed the packages of the Request and Response class that have been
-	  changed from Restlet 2.0-SNAPSHOT to 2.0.4.
-
-2010-11-02  Ingo Weinzierl <ingo@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java,
-	  artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
-	  artifacts/src/main/java/de/intevation/artifacts/Service.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
-	  artifacts/src/main/java/de/intevation/artifacts/CallMeta.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java,
-	  artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java,
-	  contrib/run.sh: Added a license header to each of these files.
-
-	* LGPL.txt: License file for the GNU LGPL v2.1
-
-2010-06-14  Ingo Weinzierl <ingo_weinzierl@web.de>
-
-	* artifacts/pom.xml,
-	  pom.xml: Write svn revision to MANIFEST files while creating jar archives.
-
-2010-04-28  Hans Plum <hans@intevation.de>
-
-	* Tagging Version 1.0:
-	Because of finishing all functional requirements, rename to 1.0
-	instead of 0.6
-
-2010-04-28  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	* Changes, NEWS, ChangeLog: Summarized activities.
-
-2010-04-27  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
-	  The path to database can be configured with a relative path now.
-
-2010-04-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
-	  Brought all line lengths of non Javadoc lines below 80.
-
-2010-03-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
-	  Sorted imports.
-
-2010-03-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
-	  TODO:
-	  Last bunch of javadoc. Possible TODO: check for typos and cross reference problems
-	  but the main work should be done with this commit.
-
-2010-03-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  More javadoc, some code formatting.
-
-2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	  Even more javadoc.
-
-2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java:
-	  More javadoc (fixes small glitches, too).
-
-2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Added javadoc to the REST package (complete). TODO: Add javadoc to the remaining classes
-	  of the 'artifactdatabase'.
-
-2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java:
-	  Added javadoc.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/package.html,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/package.html: New.
-	  Package descriptions.
-
-2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
-	  artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
-	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
-	  Removed trailing whitespace:
-	  find -name \*.java | xargs sed -i 's/[ \t]\+$//'
-
-2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
-	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
-	  Completed Javadoc of sub module 'artifacts'. TODO: add Javadoc to
-	  module 'artifact-database'
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java:
-	  Fixed vim modeline.
-
-2010-03-25  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java: Added a
-	  method 'getTimeToLive()' which retrieves the current artifact's time to 
-	  live. The ttl of an artifact is available where ever a CallContext object
-	  is existing.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added new field ttl of an artifact to an PersistentArtifact.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Implemented 'getTimeToLive()' in CallContextImpl.
-
-2010-03-22  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
-	  Install a SLF4JBridgeHandler after logging is configured. This handler is
-	  used to route incoming java.util.logging logs to SLF4J. In our case, we
-	  route this incoming log to our log4j logger.
-
-	* artifact-database/pom.xml: Added dependencies for SLF4J 1.5.11.
-
-2010-03-22  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	  Issue208 (Remove special data of an 'out'-target before exporting
-	  artifacts)
-
-	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Added a
-	  'cleanup(Object context)' method to the interface definition of artifacts.
-	  This method should be called before exporting an artifact and should
-	  remove data stored on an artifact (or its current state) which have been
-	  written by an 'out'.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
-	  Default implementation of cleanup method - nothing is done here yet.
-	  Override this method if an artifact needs to be cleaned before an export.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java:
-	  Call cleanup method on the proxied artifact if proxied is existing.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Call cleanup method before exporting an artifact as xml.
-
-2010-03-19  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	  Issue208 (Artifact gets a new identifier after being imported)
-
-	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Added a new
-	  method setIdentifier(String identifier).
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
-	  Default implementation of setIdentifier(String identifier) to give an 
-	  artifact a new identifier.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Set a new identifier on an artifact after deserializing it.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java:
-	  Set the identifier of the proxied artifact right after setting its own
-	  identifier.
-
-2010-03-19  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	  Issue208 (Artifact import)
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java:
-	  New server resource to import an artifact from an incoming xml document.
-	  The resource is available as /import and accepts xml documents send via
-	  HTTP POST.
-
-	* artifact-database/src/main/resources/sql/org-postgresql-driver.properties,
-	  artifact-database/src/main/resources/sql/org-h2-driver.properties: New sql
-	  statements to update an existing artifact.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  New method to import an artifact from an incoming xml document. The data
-	  contained in this document is decoded using the secret.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  New method to store an artifact into database or replace it if an artifact
-	  with the given id is already existing.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java:
-	  Removed method to convert a byte array into a string (this is done by
-	  Apache's Hex class in commons codec) and added a new method to convert a
-	  string into a byte array using Apache commons codec as well.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Register ImportResource to webserver.
-
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java:
-	  Converted the author javadocs.
-
-2010-03-16  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	  Issue208 (Artifact export)
-
-	* artifact-database/doc/example-conf/conf.xml: Added a section to configure
-	  a secret string used to identify artifact imports for security reason.
-	  Incoming artifact imports need to be identified with this secret, otherwise
-	  the import should be blocked.
-	  Xpath for this secret: '/artifact-database/export-secret/text()'
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  New attribute 'exportSecret' and some code to read the secret from
-	  configuration while application startup.
-
-	* artifact-database/pom.xml: Added Apache Commons Codec library used to
-	  encode/decode artifact data.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java:
-	  New utilities class for frequently used string operations.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Added some methods for exporting artifacts as xml documents. The data part
-	  is base64 encoded. A secret key is used while encoding this data to verify
-	  artifact imports, later.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	  Added an artifact loader interface used to deserialize artifacts. 
-	  getArtifact() implements such an ArtifactLoader to return
-	  PersistentArtifacts.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java:
-	  New. ServerResource to export artifacts (innerGet). This resource is
-	  available under "/export/{uuid}" via HTTP-GET request and returns an
-	  artifact specified by uuid as xml document.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Register ExportResource to webserver.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	  Added method to export artifacts.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
-	  Reset bootstrap after application startup.
-
-2010-03-11	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java,
-	  artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
-	  artifacts/src/main/java/de/intevation/artifacts/Service.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java,
-	  artifacts/src/main/java/de/intevation/artifacts/CallMeta.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java,
-	  artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java:
-	  Repaired the javadoc stuff.
-
-2010-02-21	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java,
-	  artifacts/src/main/java/de/intevation/artifacts/Service.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
-	  artifacts/src/main/java/de/intevation/artifacts/CallMeta.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
-	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java,
-	  artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java:
-	  find -name \*.java | \
-	  xargs sed -i \
-	  -e 's/@author[ ]\+\([^(<]\+\)[<(]\([^>)]\+\)[>)]/@author <a href="mailto:\2">\1<\/a>/g' \
-	  -e 's@[ ]\+</a>@</a>@g'
-
-	  Bring @author javadoc tags in form '@author <a href="john.doe@example.com">John Doe</a>'
-	  to make the sources to be able to be formatted with jalopy (http://jalopy.sourceforge.net).
-
-2010-02-05  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	  Issue170
-	
-	* artifact-database/pom.xml: Changed log4j version to 1.2.14 (later version
-	  causes errors and breaks while maven build process).
-
-2010-02-01  Tim Englich  <tim.englich@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java (innerPost): 
-	  Put the XML-Document which was send by the client to the 
-	  ArtifactDatabase.createArtifactWithFactory-Method.
-	  
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java (createArtifact),
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java (createArtifactWithFactory),
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java (setup),
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java (setup),
-	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java (createArtifactWithFactory),
-	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java (setup): 
-	  Changed Method signatures so that it is possible to put the Document
-	  which will be send during the create Step of an Artifact to the Setup-Routine
-	  of an Artifact.
-	  Now it is possible to send further Informations to the Artifact using the 
-	  XML-Document.
-	  This is nessesary for manipoulating the Artifact e.g. setting Parameters 
-	  which should only be displaied or e.g. put an Geometry-Object into the 
-	  Artifact which should limit the displayed results.
-
-2010-01-27  Hans Plum <hans@intevation.de>
-
-	RELEASE 0.4
-
-	* Changes, NEWS, ChangeLog: summarized activities.
-
-2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java:
-	  New REST wrapper to call the service. Bound under '/service/{service}' 
-	  where '{service}' is the name of the service as announced by '/services'.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Register new resource to web server.
-
-2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java:
-	  New. Serves a list of available services under '/services' as XML. Structure
-	  is much like '/factories' with 's/artifact/service/'.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	  Register new resource to web server.
-
-2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  Load service factories while bootstrapping the server.
-
-	* artifact-database/doc/example-conf/conf.xml: Added examples for trivial services.
-
-2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	  Forgot to throw exception if service is not available.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java:
-	  Fixed indention.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	  Implemented service factory loading trivial. TODO: Load
-	  them from the configuration.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Serve the services.
-
-2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java:
-	  Default implementation of a service. Useful as a base class.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java:
-	  Default implementation of a service factory. Modelled right after
-	  DefaultArtifactFactory. Useful as a base class.
-
-2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* 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-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
-	  Added method 'toStream()' to copy a document into an output stream.
-
-2010-01-15  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	  Added a method 'getInternalArtifactFactory' to get an ArtifactFactory by
-	  its name.
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java: Added
-	  'getDatabase' method to get access to the ArtifactDatabase from context.
-
-2010-01-12  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
-	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
-	  Create document namespace aware and adapted XPath expressions for this.
-
-2010-01-09  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
-	  Added	convenient method to add attributes to nodes. Attributes have no
-	  prefix as default.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
-	  Adapted xpath (added prefix) to find action and made the document which is
-	  created by this resource namespace aware.
-
-2009-12-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	RELEASE 0.3
-
-	* Changes, NEWS, ChangeLog: summarized activities.
-
-2009-12-16	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
-	  Added static method parseDocument(File) to load document from
-	  file.
-
-2009-12-15  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	  Issue106
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
-	  Removed path to chart template which doesn't belong here.
-
-2009-12-11	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java:
-	Removed needless import.
-
-2009-11-23  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
-	  Added path to chart template file and a new method to retrieve the
-	  configuration.
-
-2009-11-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
-	Added a context dictionary accessible through putContextValue(key, value)
-	and getContextValue(key). Purpose is make artifact calls stackable and
-	transfer information through the call level transparently.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	Adjusted default implementation of CallContext.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java:
-	New. A general proxy class for artifacts in artifact databases. This class uses 
-	the extended call context semantics.
-
-	The artifact calls (feed, describe, out, ...) are passed to a proxied artifact.
-	If the proxied artifact decides to be replaced by some other artifact it has to
-	to store a reference to the replacement artifact in the call context with
-	putContextValue(ProxyArtifact.REPLACE_PROXY, my_new_artifact). After the call
-	is finished the proxied object will change. This indirect callback mechanism is
-	used to minimize side effects.
-
-	The identifier() call is not forwarded to the proxied artifact to have a stable id.
-
-	Limitations: This mechanism does not let you build real matroska (multi level)
-	like artifact structures. This would only be possible if a kind of call context
-	stack is introduced.
-
-2009-11-13  Hans Plum <hans@intevation.de>
-
-	RELEASE 0.2
-
-	* Changes, NEWS summarized
-
-2009-11-11  Ingo Weinzierl <ingo.weinzierl@intevation.de>
-
-	* HOWTO: Added HOWTO describing the setup of the environment (apache, 
-	  tomcat, gnv).
-
-2009-11-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* 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  <tim.englich@intevation.de>
-
-	Issue 59: Make paths in configuration relativ
-
-	* 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	<sascha.teichmann@intevation.de>
-
-	RELEASE 0.1
-
-	* Changes, NEWS: Summaried changes.
-
-2009-10-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* Changelog -> ChangeLog: Renamed to make eclipse happy.
-
-2009-10-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java:
-	Initial instance variable with given languages in constructor.
-
-2009-10-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java:
-	Better implementation for fetching the preferred locale.
-
-2009-10-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallMeta.java:
-	Added method to fetch preferred locale.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java:
-	Trivial (and incorrect!) implementation.
-
-2009-10-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	Add i18n support via "Accept-Language" HTTP headers.
-
-	* artifact-database/pom.xml: Using restlet 2.0 snapshot. 
-	M3 does not implement the required API, M4 is not in maven repo yet.
-	TODO: Bring to M4 as soon it is released in maven repository.
-
-	* contrib/run.sh: Adjusted to use the snapshot.
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallMeta.java:
-	New. Meta information of a call, languages, e.g.
-
-	* artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java:
-	New. Model preferred languages.
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
-	Has now a reference to the meta information.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	describe, feed, advance and out call contexts are now enriched with 
-	external meta data.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	Additional debug output how long the cleaner slept between cleanups.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java:
-	New. Default implementation of PreferredLocale.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java:
-	New. Default implementation of CallMeta.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	Adjusted to take the additional meta information.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java:
-	Added a method to create a CallMeta object from web client information.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
-	Call the artifact database with the meta data from there base class BaseResoure.
-
-2009-10-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java,
-	artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java,
-	artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
-	Removed trailing whitespace.
-
-2009-10-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	Removed needless imports.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
-	Be more verbose on output on which host the REST server is bound.
-
-2009-09-30  Hans Plum <hans@intevation.de>
-
-	* artifact-database/doc/example-conf/conf.xml, README:
-	Fixed inconsistencies after changes in h2-configuraton.
-
-2009-09-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* pom.xml, artifacts/pom.xml, artifact-database/pom.xml: 
-	Set source encoding to UTF-8.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
-	If '/artifact-database/rest-server/listen/text()' is given in conf.xml
-	the value is used to bind REST server to that interface.
-
-	* artifact-database/doc/example-conf/conf.xml: Added 'listen' to
-	demo configuration.
-
-2009-09-24	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
-	Time delta calculation in SQL statement to figure out outdated artifacts
-	was broken.
-
-2009-09-24	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
-	Added debug output to make tracing of artifact lifecyle easier.
-
-2009-09-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/doc/schema-pg.sql, artifact-database/doc/schema-h2.sql:
-	Added column 'factory' to artifacts table to store the name of the
-	creating factory.
-
-	!!!
-	!!! THIS BREAKS OLD ARTIFACT DATABASES!
-	!!!
-	!!! To update old databases issue at database prompt:
-	!!!    ALTER TABLE artifacts ADD COLUMN factory VARCHAR(256) NOT NULL;
-	!!!
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
-	artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
-	Fixed issue in SQL statements for touching artifacts. Fill factory name
-	into artifact relation.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java:
-	To allow different serialization models each ArtifactFactory has 
-	serializer for the artifacts.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java:
-	Add method to return ArtifactSerializer.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java:
-	Uses Java standard object serialisation. 
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
-	Uses th DefaultArtifactSerializer as ArtifactSerializer
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	The serialisation method is select via the 'factory' column of the 'artifacts'
-	table.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	Adjusted to fit the new serialisation model.
-
-2009-09-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java:
-	New. Base class to log RuntimeExceptions to log4j error log.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
-	Adjusted to extend from BaseResource.
-
-2009-09-21	Tim Englich	<tim.englich@intevation.de>
-
-	* Added some IDE-specific files to the Ignorelist.
-
-2009-09-18	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/doc/schema.sql: removed.
-	* artifact-database/doc/schema-h2.sql: re-added here. It is H2 specific.
-
-	* artifact-database/doc/schema-pg.sql: New. Schema for PostgreSQL 8.3 +
-
-	* artifact-database/src/main/resources/sql/org-postgresql-driver.properties: New.
-	SQL statements for PostgreSQL.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
-	XPath expressions to access config were wrong. Added some debug logging.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	Added some debug logging.
-
-	* artifact-database/pom.xml: Added dependency to postgresql JDBC driver
-
-	* contrib/run.sh: Added postgresql JDBC to CLASSPATH.
-
-2009-09-16  Tim Englich  <tim.englich@intevation.de>
-
-	* src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java (represent) Edited: 
-	Switched from Get to Post communication.
-
-2009-09-16  Tim Englich  <tim.englich@intevation.de>
-
-	* src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java (feed) Edited:
-	Bug fixed: Now the method will call the feed Method of the used Artifact instead 
-	of the advance Method.
-
-2009-09-15	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
-	More warning log output in POST case.
-
-2009-09-15	Tim Englich	<tim.englich@intevation.de>
-
-	* src/main/java/de/intevation/artifactdatabase/Backend.java: 
-	Bug Fixed: Comparation for outdated Artifacts was Wrong.
-
-	* src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java (represent):
-	Warn-Logging Integrated for Exception analysys.
-
-2009-09-14	Tim Englich	<tim.englich@intevation.de>
-
-	* src/main/java/de/intevation/artifacts/ArtifactFactory.java Edited:
-	Make Objects Serializable 
-
-	* src/main/resources/sql/org-h2-driver.properties: 
-	Bug Fixed in SQL-Query
-
-2009-09-13	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	Refactored the persistent handling of the artifacts in the 
-	artifact database. When an artifact is called (describe, feed,
-	advance, out) a new CallContext is given instead of the
-	old Object context. CallContext.globalContext() returns the
-	old Object context now. CallContext.afterCall() may be
-	called from inside describe, feed, advance and out to tell
-	the artifact database what to do after the processing of
-	the specific call.
-	
-	The accepted values are:
-		- NOTHING    for doing nothing
-		- TOUCH      for just update the last access time
-		- STORE      for persisting the artifact.
-		- BACKGROUND to signal that the artifact has started
-		             a background operation.
-
-	After the background operation the artifact has to call
-	CallContext.fromBackground() to signal the artifact 
-	database that the artifact needs to be touched or stored.
-
-	!!! Without this call the artifact database assumes there
-	!!! is still some background operation on this artifact
-	!!! which prevents reclaiming resources
-
-	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
-	New. New API to cope with background processing.
-
-	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
-	Replaced old Object context with CallContext context.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
-	Adjusted.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	For a better encapsulation of the persistence operations of the
-	artifacts the database does not return artifacts any more. It delegates
-	the describe, feed, advance and out call to internal structures.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java:
-	New. Simplifies handling of error conditions inside of artifact database.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	Adjusted to new interface. Internally it handles the background API.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
-	Adjusted to new artifact database interface (which greatly simplifies things)
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	Artifacts in background are not removed from database any longer.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java: Little
-	re-wirering need for new cleanup.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: 
-	Simplified to do the SQL stuff only. The most infrastructure stuff is now done
-	in ArtifactDatabaseImpl.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java:
-	New. Helper base class to enable filtering of background artifacts by there
-	database id.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
-	Modified the INSERT statement to write the serialized artifact, too.
-
-2009-09-12	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java(out):
-	out() is now called with an java.io.Outputstream to place
-	the output.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java:
-	Adjusted.
-
-2009-09-11	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/doc/example-conf/conf.xml: Added
-	sleep time for cleanup thread.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
-	Start cleanup thread at startup.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	Make artifact restoring bit more robust, added ref to
-	cleanup thread to do an immediate cleanup when dead artifact
-	is found by lookup.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
-	New. The cleanup thread. It cleans up the artifact database
-	perodically and calls the endOfLife() methods of the dead
-	artifacts. Default cleanup interval is 5 minutes.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
-	Tuned SQL a bit to fetch only a 50 artifacts in search for
-	outdated artifacts to avoid too much memory consumption.
-
-	* contrib/run.sh: Little tweak to work with more than one
-	commons-pool version installed.
-
-	* TODO: Removed remarks about the now implemented killer 
-	thread and the moves XML stuff.
-
-	* README: Changed text how to create a H2 database from
-	command line only. XXX: This is still broken. The best
-	way to set up the database by now is to start the Console 
-	client, connect to the database, c&p the schema.sql 
-	into the SQL text area and execute it.
-
-2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
-	New. Handler for 'out'. Reachable via HTTP GET '/artifact/{uuid}/{type}'.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java:
-	New. Special representation for out. TODO: use streaming API.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
-	Regrouped imports.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java: Added
-	handler for 'out' to routing table.
-
-2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
-	Added handler for 'advance' and 'feed' to be called by HTTP POST '/artifact/{uuid}'.
-
-2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
-	Added handler for 'describe' to be fetched by HTTP GET '/artifact/{uuid}'.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	Add route to new describe handler.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: Fixed
-	problems with serialization of artifacts to backing database.
-
-2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
-	Added method to get strings from XML documents via XPath.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
-	Used XMLUtils to create new XML documents.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	Forgot to store backend in instance variable.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
-	Added static instance of this class.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
-	Forward call to ArtifactDatabase, do some error handling.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	Treat problems with database errors more gracefully.
-
-	* contrib/run.sh: Added dependencies to common-pool and common-dbcp.
-
-	* artifact-database/doc/data/create-artifact.xml: New. example data set to
-	create an artifact. Usage
-
-	$ curl --data-binary @doc/data/create-artifact.xml -D - http://localhost:8181/create
-
-2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java:
-	Removed needless import.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
-	Moved some XPath stuff from Config into XMLUtils.
-
-2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java(setup): Added
-	callback parameter in form of the creating factory.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
-	Adjusted to match new Artifact interface.
-	
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
-	Call artifact.setup() with this.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
-	Removed namespace stuff.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
-	Created namespace stuff, need for XPath for e.g.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java:
-	Use new namespace stuff.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java: 
-	Added author.
-
-2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
-	Added method newXPath() to create XPaths with namespace binding.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
-	Uses new method from XMLUtils.
-
-2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* trunk/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
-	trunk/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
-	Removed meta data from resources. They prevented serving the right results.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	Removed needless import.
-
-2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
-	New. Resource to create an artifact. Not working on artifact database yet.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	Attached create to web server.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java:
-	Added meta data to Get annotation.
-
-2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/pom.xml: Added dependency to restlet.ext.xml
-	for XML handling in representations.
-
-	* contrib/run.sh: Adjusted to fit new dependency.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
-	New. Handle some boiler plate XML stuff. Move more stuff of this kind
-	into this file.
-
-	* TODO: Added remark to move more XML stuff into XMLUtils.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
-	Tell at startup on which port we are listing.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java:
-	Representation to list the available factories.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	Attach new factory listing to web app.
-
-2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/doc/artifactdb-example-conf.xml: removed
-	* artifact-database/doc/example-conf/conf.xml: Re-added here.
-
-	The configuration is now found in a subdirectory set by the
-	system property 'artifact.database.dir'. If this property is
-	not set '~/.artitactdb' is used. This directory should contain
-	a file 'conf.xml' with the configuration details.
-	  If the artifact database is started as a standalone the config
-	directory is searched for 'log4j.properties' to configure the
-	logging.
-	  The H2 database is also search in this directory with the
-	name 'artifacts.db' if the connection url in config.xml is
-	not overwritten.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
-	Refactored a bit to follow the new configuration policy.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
-	Build default connection url as described.
-
-	* artifact-database/doc/example-conf/log4j.properties: New.
-	example logging config
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	Added some more logging infos.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
-	Load the log4j configuration at startup and starts a REST standalone web server.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest: New.
-	Package for REST binding.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
-	Convenience wrapper to start a standalone REST web server.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
-	Concrete REST application. TODO: attach restlets to interact with artifact database.
-
-	* contrib/run.sh: Little start script to launch artifact database for test
-	purpose from classes without the need to build packages. 
-	Background: The maven exec:exec goal does not work consistently for me (slt). 
-	At home it does, at work it doe not. Anyway. Usage:
-
-	$ ./contrib/run.sh \
-	      -Dartifact.database.dir=artifact-database/doc/example-conf/ \
-	      de.intevation.artifactdatabase.App
-
-2009-09-08	Tim Englich	<tim.englich@intevation.de>
-
-	* src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java : Edited
-	Constants for Namespace-URL and Namespace-Prefix added 
-
-2009-09-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
-	artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
-	Integrated log4j
-
-	* artifact-database/pom.xml: Added dependency to log4j
-
-	* TODO: Removed remark to integrate logging.
-
-2009-09-07  Tim Englich  <tim.englich@intevation.de>
-
-	* src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java: edited
-	Bug fixed in XPath Expression. Now the Nodes and not the Text of the Nodes will
-	be used instantiating the ArtifactFactory. 
-	
-2009-09-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	Implemented loading of artifacts from database. If the last access of an 
-	artifact is too long ago for its time to life, null is returned.
-
-	* TODO: Added remark to implement a "killer" thread which periodically cleans the
-	database from outdated artifacts and calls the endOfLife() method on those.
-
-2009-09-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java:
-	Properties wrapper for SQL statements. The properties are looked up
-	in resorces /sql/DRIVER.properties (DRIVER is the name of the db driver class,
-	lowercased and '.' replaced by '-'. 'org.h2.Driver' turns to
-	'org-h2-driver.properties', e.g.
-
-	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
-	SQL statements for H2 database.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	Artifacts are proxies/wrapped by an special Artifact implementation
-	to bound db activities transparentely to the Artifact. XXX: It has
-	to be evaluated if a more direct concept like extending the Artifact API
-	to store itself would be more robust for future implementations.
-	TODO: Loading Artifact from db is not implemented yet.
-
-2009-09-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
-	New. Used to wrap database presentations of artifacts into artifacts.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
-	New. Implements a ArtifactDatabase backed by Backend.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
-	Removed empty last line.
-	
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
-	Wired together Backend, ArtifactDatabaseImpl and FactoryBootstrap.
-
-2009-09-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
-	Typo in XPath expression.
-
-2009-09-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java(setup):
-	Added the setup() method to have symmetric counter part to endOfLife().
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java(timeToLiveUntouched):
-	Added this method to let the factory decide how long an artifact should live in ms.
-	This is not a part of the Artifact itself because this is only evaluated once when
-	the artifact is created.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
-	New. Simple base class implementation of the Artifact interface.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
-	New. Simple base class implementation of the ArtifactFactory interface. When setup()
-	on instances of this class is called, it pull ttl, name, description and
-	the artifact class name from the node given. See artifactdb-example-conf.xml
-	for examples.
-
-	* artifact-database/pom.xml: Cleaned up XML. 
-	Introduced dependency to apache commons dbcp, used for pooling of the 
-	database connections to artifact db. 
-	Added parameters for the exec:exec goal to make the project
-	startable without building packages.
-
-	* artifact-database/doc/schema.sql: Removed AUTO_INCREMENT from primary key
-	to avoid compatibility issues with other non-H2 databases (PostgreSQL, Oracle, ...)
-	which have no or limited support for generated keys in the JDBC driver. Now
-	using an explicit sequence. TTL ist now big int to bring the resolution to ms.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
-	Refactored a bit to make the XPath access function usable on arbitrary XML
-	documents and parts of.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
-	New. Exposes DataSource from a apache dbcp connection pool configured by the
-	global configuration file. See artifactdb-example-conf.xml for examples.
-	TODO: Write some documentation about this.
-
-	* artifact-database/doc/artifactdb-example-conf.xml: Adjusted to be a more realistic
-	example config file. Added references to DefaultArtifact/DefaultArtifactFactory and
-	demonstrate how to configure the connection pool.
-
-	* TODO: Add remark to document the connection file.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	Do not crash when config does not contain any factories.
-
-2009-09-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java (getNodeXPath):
-	New method to get a single node from configuration.
-
-	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java (endOfLife):
-	New method called when artifact is going to be removed from artifact data base.
-
-2009-09-04	Tim Englich	<tim.englich@intevation.de>
-
-	* src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java (loa,
-	* src/main/java/de/intevation/artifacts/ArtifactFactory.java (setup):
-	New Parameter for Setop to put the ArtifactFactoryNode into the setup routine.
-
-2009-09-04	Tim Englich	<tim.englich@intevation.de>
-
-	* pom.xml: Edited
-	Buildplugins for Maven-Compiler and Maven-Eclipse Plugin integrated.
-
-2009-09-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/doc/artifactdb-example-conf.xml: Example for artifact db
-	configuration.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java:
-	New. Default implementation of ArtifactContextFactory. Creates a DefaultArtifactContext.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java:
-	New. Default implementation of ArtifactContext.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
-	New. Class to bootstrap the context and the artifact factories.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java: Bootstrap
-	factories.
-
-	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java: New.
-	Loads configuration as XML from a file. The file is specified by the system
-	property "artifact.database.config" and defaults to "artifactdb-conf.xml".
-	The configuration can be searched via XPath.
-
-	* artifact-database/pom.xml: Made de.intevation.artifactdatabase.App the main
-	class for start up.
-
-	* TODO: Added remark to add logging to artifact database.
-
-2009-09-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java:
-	New. Factory for a global context in the artifact data base. Useful to
-	create shared ressources for artifacts like caches et al.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
-	artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
-	artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
-	artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Uses the
-	global context more consistent.
-
-	* artifact-database/doc/schema.sql: Using BINARY instead of BLOB to
-	avoid external files for each artifact blob. See H2 documentation
-	for details.
-
-2009-09-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/doc/schema.sql: Schema to store artifacts
-	in H2 databases.
-
-	* artifact-database/pom.xml: Added dependencies to H2 and
-	restlet.
-
-	* pom.xml: Added repository to fetch restlet.
-
-	* README: Describe how to create a H2 database to store artifacts.
-	TODO: Make it more general because description assumes usage of
-	a unixoid system.
-
-2009-09-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifact-database/**: created new sub project for the artefact 
-	database server.
-
-	* pom.xml: Registered new sub project and made artifacts a
-	sub project, too.
-
-	* artifacts/pom.xml: Adjusted to make a artifacts a sub project.
-
-2009-09-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
-	Interface of the central component of the system.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
-	Central place to store artifacts in.
-
-	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java:
-	Factory to build artifacts. Works together with ArtifactDatabase.
-
-	* artifacts/pom.xml: Simple maven file to compile the project.
-
-2009-09-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
-
-	* README, Changelog, Changes, NEWS, TODO: New. Initial setup
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ChangeLog-before-20121017	Wed Oct 17 22:26:06 2012 +0200
@@ -0,0 +1,4094 @@
+2012-10-17	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/FacetActivity.java:
+	  More documentation and debugging output.
+
+2012-10-16	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/FacetActivity.java:
+	  Documentation of a somewhat important part.
+
+2012-10-08	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/ExtremeAccess.java,
+	  flys-artifacts/src/main/java/de/intevation/flys/artifacts/charts/TimeseriesStepChart.java,
+	  flys-artifacts/src/main/java/de/intevation/flys/utils/DoubleUtil.java:
+	  Doc.
+
+2012-10-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/FileTools.java:
+	  Made extracting of zip archives more robust, lose file handles in case
+	  of error and fix a bug when creating sub dirs.
+
+2012-09-30	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* pom.xml: Comment out build number plugin
+	* .hgignore: First hgignore.
+
+2012-09-29	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Check if roles from database is null. Fix for issue849.
+
+2012-09-26	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  New method addOutput to allow subclasses to add Output object manually.
+
+2012-09-17  Ingo Weinzierl <ingo@intevation.de>
+
+	Tagged RELEASE 2.9.1
+
+2012-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts/pom.xml, pom.xml: source 1.5 -> 1.6
+	  (@Override annotations for interface implementations is 1.6).
+
+2012-09-07	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Fix queries for finding a user.
+
+2012-09-07  Ingo Weinzierl <ingo@intevation.de>
+
+	Tagged RELEASE 2.9
+
+2012-08-30	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultSection.java:
+	  Use LinkedHashMap to keep insertion order of attributes.
+
+2012-08-27	Christian Lins	<christian.lins@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
+	  Fix for NPE on empty user database.
+
+2012-08-24	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FindUserResource.java:
+	  Add REST service to be able to find a user by its account name.
+
+2012-08-24	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	  Implement findUser method. The findUser method in ArtifactDatabase
+	  converts a User object into its XML representation.
+
+2012-08-24	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	  artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Implement method to find/get a user by its account name.
+
+2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Also add the account information when listing users.
+
+2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Add account information to createUser
+
+2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Read the account information from the database.
+
+2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/LazyBackendUser.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUser.java:
+	  Extend user class implementations to handle account information.
+
+2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/UserFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/User.java:
+	  Extend user interfaces to handle account information.
+
+2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Update sql user queries to add the account column.
+
+2012-08-23	Björn Ricks	<bjoern.ricks@intevation.de>
+
+	* artifact-database/doc/schema-pg.sql,
+	  artifact-database/doc/schema-h2.sql:
+	  Add a account column to the users table.
+
+2012-07-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/FacetActivity.java:
+	  Refactored registry to use a Chain-of-responsibility pattern. This allows
+	  de-centralized facet activity treatment like in the facet producing states.
+
+2012-07-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/FacetActivity.java:
+	  Made Registry.getInstance() access static.
+
+2012-07-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/FacetActivity.java:
+	  New. Implementors of this interface can decide if a facet should be initially
+	  active or not. Contains a registry singleton.
+
+2012-07-27  Ingo Weinzierl <ingo@intevation.de>
+
+	Tagged trunk as '2.8.1'
+
+2012-07-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java:
+	  Added concat() to join two String arrays.
+
+2012-07-17	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  Doc fixes.
+
+2012-07-16  Ingo Weinzierl <ingo@intevation.de>
+
+	Tagged trunk as '2.8'
+
+2012-07-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java:
+	  Added concat() to join two String arrays.
+
+2012-07-17	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  Doc fixes.
+
+2012-07-16  Ingo Weinzierl <ingo@intevation.de>
+
+	Tagged trunk as '2.8'
+
+2012-07-15	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultSettings.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultSection.java,
+	  artifacts/src/main/java/de/intevation/artifacts/DataProvider.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java:
+	  Removed same package imports.
+
+2012-07-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java:
+	  Added contains(String needle, String [] haystack) method.
+
+2012-07-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/.settings/org.eclipse.jdt.core.prefs: Removed from
+	  version control (Eclipse configurations should not be in SVN!).
+
+2012-02-26	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/UserResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java:
+	  Cosmetics, doc.
+
+2012-06-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/**/*.java:
+	  Removed trailing whitespace.
+
+2012-06-05  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  Added some more debug output during the process of removing Artifacts
+	  and Collections with the DatabaseCleaner.
+
+2012-06-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Remove extra <map></map> from the XML generated by JSON lists containing only 
+	  objects.
+
+2012-05-27  Ingo Weinzierl <ingo@intevation.de>
+
+	Tagged trunk as '2.7'
+
+2012-05-18  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/DateUtils.java:
+	  New utility class that provides functions that helps working with dates.
+
+2012-05-15  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/model/KVP.java:
+	  New class to store generic keys and values.
+
+2012-05-07  Raimund Renkert <raimund.renkert@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Added method to create a document from string.
+
+2012-05-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  Defined and implemented a method getHelpText().
+
+2012-05-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XSLTransformer.java:
+	  Widen parameters to store more than strings.
+
+2012-04-27	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/JSON.java:
+	  Added toJSONString() method.
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Fixed building XML documents from JSON strings.
+	
+2012-04-25  Raimund Renkert <raimund.renkert@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/FileTools.java:
+	  Added method to extract zip archives to a specified directory.
+
+2012-04-19	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XSLTransformer.java:
+	  New. Added new XSLT processor similiar to old GNV one.
+
+2012-04-18	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/JSON.java:
+	  New. JSON parser from Artefact Server NG (which relies on JSON more heavily).
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Added method to convert JSON to XML. This is needed by the client which
+	  internally uses JSON to talk to the server which services only understands
+	  XML atm.
+	
+2012-04-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	Modified services so that they are now able to return more than just
+	XML documents. Needed if you want to return e.g. a PNG image from a service.
+
+	* artifacts/src/main/java/de/intevation/artifacts/Service.java:
+	  A service now returns a tuple (data, MIME type).
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Adjusted calls.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java:
+	  Returns a DefaultService.Output by default.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLService.java: New.
+	  Convenience sub class if DefaultService to produce XML documents. Old
+	  Services should derive from this class now to main compatibility.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java:
+	  Adjusted to handle the new Output tuples.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ByteArrayRepresentation.java:
+	  New. Wraps a byte array as a Restlet representation.
+
+2012-03-30  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
+	  Avoid adding duplicated facets into the output in addFacet().
+
+2012-02-10	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
+	  Pass context when asking facet for keys to write on 'blackboard'.
+
+2012-02-09  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java:
+	  Added a method setFacetDescription() which sets an alternative
+	  description for the facet. getFacetDescription() will now return the
+	  Facet's descritpion itself if no alternative description has been set;
+	  otherwise the alternative description.
+
+012-02-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java(join):
+	  Added static method to join strings with a separator.
+
+012-01-30	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java:
+	  Added Override annotations.
+
+2012-01-30  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java:
+	  Added a method that returns a StateData objects of a specific Artifact
+	  based on the Artifact's StateData's name.
+
+2012-01-30  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  Bugfix: search for StateData objects by name only the State has
+	  StateData objects set.
+
+2012-01-30  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Added methods to extract the default value for a min and max item.
+
+2012-01-18  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Added methods to retrieve the min and max values of a data item.
+
+2012-01-16	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/FileTools.java:
+	  Replaced legacy java.util.Stack with java.util.Deque.
+
+2012-01-16	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java,
+	  artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java,
+	  artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Cosmetics.
+
+2012-01-11	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java:
+	  Instance vars customValues and dataProviders are now of type Map 
+	  and not HashMap.
+
+2012-01-09  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  Added the owner Artifact as further parameter to initialize().
+
+2012-01-09  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/FileTools.java:
+	  Added new functions to copy files (copyFile()) and to copy directories
+	  (copyDirectory()).
+
+2012-01-09  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  Added an initialize() method which might be used to initialize the State
+	  based on model Artifact.
+
+2011-12-16	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java:
+	  (getDataProvider): Never return null.
+
+2011-12-16  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
+	  Added a new method setFacets(List<Facet>) to replace an existing list of
+	  Facets.
+
+2011-12-14  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Attribute.java:
+	  Added a setValue(Object) method and modified the signature of toXML()
+	  which now returns a Node.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultAttribute.java:
+	  New. A default implementation of Attribute.
+
+2011-12-14  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Settings.java:
+	  Added a removeSection(Section) method.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Section.java:
+	  Improved the interface to allow section having subsections. Therefore,
+	  addSubsection(Section), getSubsectionCount() and getSubsection(int) have
+	  been added. In addition, a getId() method has been added which is used
+	  in toXML() to create a new DOM Node. The Node name is the result of
+	  getId().
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultSettings.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultSection.java:
+	  Default implementations for Settings and Section.
+
+2011-12-14  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Settings.java:
+	  An interface that describes a flat API for specifying settings for
+	  something. A Settings object can store one or more Section instances and
+	  defines a toXML() operation that should append a XML representation of
+	  itself to a given parent Node.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Section.java:
+	  This interface is used to describe an API for storing and retrieving
+	  Attribute objects. Just as the Settings interface, it defines a toXML()
+	  operation that should append a XML representation of itself to a given
+	  parent Node.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Attribute.java:
+	  The interface for concrete attributes in a Section instance. An Attribute
+	  is the placed on the lowest level of the Settings hierachy and should be
+	  used to save concrete key value pairs. Even the Attribute defines the
+	  toXML() operation described above.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java:
+	  Added a getSettings() and setSettings(Settings) operation.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
+	  A DefaultOutput is now able to store a Settings instance. It implements
+	  getSettings() and setSettings(Settings) defined in the Output interface.
+
+2011-12-09	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
+	  (getDataProviderKeys): Added parameter artifact.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java:
+	  Pass artifact to changed getDataProviderKeys of Facet.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java:
+	  (getDataProvider): Never return null, empty list instead.
+
+2011-11-30	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java
+	  (getFacetDescription): New, access facets description.
+
+2011-11-30	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	Added convenienve bundle of artifact and facet that implements
+	DataProvider. This will help keeping things together in the upcoming
+	inter-facet pre-rendering communication ('blackboard') phase.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/ArtifactAndFacet.java:
+	  New class, keeping together an artifact and a facet (thus, should
+	  only have a short live span). Only implementation of the new
+	  DataProvider interface.
+
+2011-11-30	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	Extended CallContext to also act as a blackboard/service broker.
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java
+	  (getDataProvider,registerDataProvider): New functions to register/
+	  consume data providers.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java
+	  (getDataProvider,registerDataProvider): Implemented.
+
+2011-11-30	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	Added DataProvider interface that defines api for inter-facet
+	communication.
+
+	* artifacts/src/main/java/de/intevation/artifacts/DataProvider.java:
+	  New interface to prepare inter-facet pre-rendering communication
+	  phase ('blackboard').
+
+2011-11-30	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	Prepare inter-facet pre-rendering communication ('blackboard') phase.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java
+	  (getDataProviderKeys,provideBlackboardData): Extended interface to
+	  allow easy integration of blackboard mechanism (inter-facet
+	  pre-rendering communication).
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java
+	  (getDataProviderKeys,provideBlackboardData): Trivial implementation.
+	  The DefaultFacet will not talk to other facets during inter-facet
+	  pre-rendering ("blackboard") phase. Cosmetics, docs.
+
+2011-11-21  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Changed Ingo's last commit to a more conservative notation (no auto-boxing).
+	  Strangely the flys-client does not compile for me with the auto-boxed
+	  syntax with OpenJDK!
+
+2011-11-21  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Added a method that allows to specify if the document needs to be
+	  namespace aware or not while parsing from InputStream.
+
+2011-11-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  Enabled "post-describe" hooks for the Artifact's describe operation.
+
+2011-10-28	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	Let StateEngine compute a compatibiliy matrix based on given State
+	IDs.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java
+	  (getCompatibleFacets): New. Compute output/facet compatibility
+	  matrix based on given states.
+
+2011-10-21  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
+	  Bugfix: added missing bracket to an sql statement.
+
+2011-10-20	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java(getMasterArtifact):
+	  Limit result set to one row.
+
+2011-10-19	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	Fix accidentally corruptd key to sql statement.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Fix key.
+
+2011-10-19	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	Add backend and db functionality query artifact which is belongs to
+	a collection the longest (not neccessary the longest artifact itself).
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java
+	  (getCollectionsMasterArtifact): New. Access master artifact for
+	   given collection (masterartifact defined as artifact which belongs
+	   to the collection the longest).
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java
+	  (getCollectionsMasterArtifact): New (extended interface).
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java
+	 (getMasterArtifact): New, get UUID of oldest artifact which belongs to
+	 collection the longest.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added SQL query to get list of artifacts in collection sorted by the
+	  entry date.
+
+2011-10-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java(toUpperCase):
+	  Added static method to convert an array of string to their uppercase counterparts.
+	  
+2011-10-13	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	(newRemoveArtifactDocument): New, create a "remove artifact" document.
+	Cosmetics, docs.
+
+2011-10-13	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Fix SQL typo.
+
+2011-10-10	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java:
+	  Cosmetics, (shortened jdoc comments).
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Cosmetics, (shortened jdoc comments). Also, removed
+	  toString(Element), instead fixed toString(Node) - Node is
+	  superinterface of Element.
+
+2011-10-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	Fixed flys/issue255
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/db/DBConnection.java(getDataSource()):
+	  Serialized the loading of database drivers.
+
+2011-09-23	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	Fix debug helper toString(Node).
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  (toString(Node)): Fix issue with node from "wrong" document.
+
+2011-09-23	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	Added XMLUtils functions helping to debug parts of xml documents.
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  (toString(Node), toString(Element): New functions returning
+	  xml/string representations of parts of documents.
+
+2011-09-22  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Removed useless CollectionCallContext creation (was never used).
+
+2011-09-19  Ingo Weinzierl <ingo@intevation.de>
+
+	Tagged RELEASE 1.4
+
+	* Changes: Prepared changes for the release.
+
+2011-09-09  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Artifacts and Collections that started a background process might add
+	  Messages to a message board now. They (currently just implemented for
+	  the Artifact) can add new messages and receive a list of messages via
+	  the CallContext objects. If an Artifact or Collection instance is
+	  removed from background, all its messages are removed as well.
+
+	* artifacts/src/main/java/de/intevation/artifacts/Message.java: New. The
+	  message interface. Currently, there is just a single getText() method
+	  defined.
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java: Got
+	  two new methods to add new messages and retrieve a list of messages to
+	  the background messages.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionCallContext.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactCallContext.java:
+	  Implement the new methods to add/get messages defined in CallContext.
+	  The CollectionCallContext just defines the two methods without real
+	  implementation (stub).
+
+2011-09-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionCallContext.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactCallContext.java:
+	  The CallContext got a new method isInBackground() that determines, if
+	  the Artifact or Collection (currently not implemented) has started a
+	  background thread and is locked.
+
+2011-08-25  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/FileTools.java:
+	  New. A utility class for working with Files.
+
+2011-08-25	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java
+	  (outCollection): Called context listener too early before deferred out. This
+	  led to broken DB sessions.
+
+2011-08-25  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  Enhanced the State interface with a endOfLife() method; the default
+	  implementation in AbstractState is empty.
+
+2011-08-25	Felix Wolfsteller	<felix.wolfsteller@intevation.de>
+
+	Minor cosmetics.
+
+	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
+	  Corrected signature in link in comment, whitespace.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
+	  Punctuation, whitespace in comment.
+
+2011-08-24	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Write filters to create document if they are given.
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/CreationFilter.java:
+	  New. Model for the creation filter.
+
+2011-08-24  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Renamed an attribute in the document to create new Artifacts.
+
+2011-08-24  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/MapXPathVariableResolver.java:
+	  New. An XPathVariableResolver instance that stores its variables in a
+	  Map.
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Added support for variables in xpath expressions. There is a new xpath()
+	  method that takes a Map<String,String> that stores the required
+	  variables.
+
+2011-08-22	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
+	  Added a deepCopy() method to make them cloneable (Not using java.lang.Cloneable for this).
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/data/DefaultStateData.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/data/StateData.java:
+	  Implement the changed interfaces.
+
+2011-08-22	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/pom.xml: Bumped PostgreSQL driver from 
+	  8.3-603.jdbc4 up to 8.4-702.jdbc4 (same as flys-backend).
+
+2011-08-10	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Extract the collection and artifact creation times when doing the initial
+	  scan, too.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Adjusted the SQL statements.
+
+2011-08-08	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
+	  Fixed H2 SQL to set TTL of collection.
+
+2011-08-02	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Swapped SQL parameter indices when fetching collection name.
+
+2011-08-02	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	  Change the ArtifactLoadedCallback interface to take the name of the
+	  collection, too.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Fetches the collection name, too.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Adjusted SQL statements.
+
+2011-08-02	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUser.java:
+	  Added constructor only with the identifier of the owner.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added dummy user to fresh created collection to have it accessible in the
+	  listeners.
+	
+2011-08-02	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  Generate kill events if and only if there were killed collections or artifacts.
+
+2011-08-02	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Return uuid in statements used by database cleaner, too.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/BackendListener.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultBackendListener.java:
+	  Two new methods to reports a list of external killed collections and artifacts.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Broadcast the lists of externally killed collections and artifacts to the listeners.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  Fire lists of deleted collections and artifacts to backend.
+
+2011-08-01	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Reorganized code a bit.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: Added some
+	  debug output. Handle forgotten store/create event source.
+
+2011-08-01	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Fixed NPE.
+
+2011-08-01	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  Made BackListeners loadable at boot time. To be configured with XPATH
+	  '/artifact-database/backend-listeners/listener'.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/BackendListener.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultBackendListener.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Wired listeners to backend.
+
+2011-08-01	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/BackendListener.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultBackendListener.java:
+	  Completed interface and the trival implementation.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Call the listeners for the new defined events.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/BackendListener.java:
+	  New. Interface to listener for backend events. TODO: Implement more
+	  events.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultBackendListener.java:
+	  New. Trivial implementation of BackendListener.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added list of backend listeners. TODO: Add them at boot time.
+
+2011-07-31	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/pom.xml: Bumped Apache DBCP up to 1.4
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/db/DBConnection.java:
+	  Use real pooling to void races. Maybe it needs more configuration options!?
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: Removed
+	  superfluous imports.
+
+2011-07-31	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Fixed broken SQL statement.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/db/DBConnection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: Added
+	  debug output.
+
+2011-07-31	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	Make artifact server bootable again.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  Fixed NPE.
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/db/SQL.java: Fixed NPE.
+	  Added some debug output.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: Fixed
+	  SQL key name. That was broken for long but not recognized.
+	
+2011-07-28	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/LRUCache.java:
+	  New. Simple LRU cache based on java.util.LinkedHashMap.
+
+2011-07-28	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	Refactorized the usage of dialect independent SQL to be reusable.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/db/SQL.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/db/DBConnection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/db/SQLExecutor.java:
+	  New. Generalized versions to make code reusable for datacage.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQLExecutor.java:
+	  Deleted.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConfig.java:
+	  New. Centralizes the SQL database configuration of the backend.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/h2/CollectionAccessUpdateTrigger.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  A lot of adjustment to make the new infrastructure work. Needs heavy testing!
+
+2011-07-27	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/LifetimeListener.java:
+	  New. Interface instances of are called when system is up and is going down.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  Load lifetime listeners from configuration. XPATH
+	  /artifact-database/lifetime-listeners/listeners/text()
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Call the listeners after start up and before shutdown.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
+	  Trigger the start of the artifact database explicitly when the boot process
+	  is finished.
+
+2011-07-27	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	  Added a method loadAllArtifacts() to load all artifacts which are in
+	  a collection and have an owner. The loaded artifacts are passed one by
+	  one to an instance of the interface ArtifactLoadedCallback.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Adjusted to implement the interface.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Load the artifacts from the SQL backend.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added statements to load all the artifacts.
+
+2011-07-26	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/pom.xml: Bumped H2 version up to latest stable 1.3.158
+
+2011-07-22	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java,
+	  artifacts-common/src/main/java/de/intevation/artifacts/common/utils/StringUtils.java:
+	  Moved StringUtils to common package.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  Adjusted imports.
+
+	* artifacts-common/pom.xml, artifact-database/pom.xml: Moved dependency to Apache codec
+	  to other package.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
+	  Added Override annotations (forgot to commit last time).
+
+2011-07-21  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  New CREATE documents for Artifact creation might contain db-ids now.
+
+2011-07-21	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/Service.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java:
+	  Services now take GlobalContext on setup and process.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java:
+	  Adusted and added Override annotations.
+
+2011-07-21	Sascha L. Teichmann	<teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
+	  Made it more compatible with mixed namespaces and mixtures of namespaces
+	  and no namespaces.
+
+	* artifacts/pom.xml: Set Java compatibility to 1.5. Why isn't this inherited
+	  from main pom.xml? The artifact-database module uses 1.5 features but does
+	  not need any extra configuration.
+
+2011-07-20  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
+	  Added a parameter of type CallMeta to the signature of setup(). The
+	  CallMeta object is required for i18n initial things.
+
+	  !! NOTE: This modification breaks the current API !!
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
+	  Call Artifact.setup() with an instance of CallMeta.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  The createArtifact() method got a CallMeta instance which is necessary
+	  to call Artifact.setup().
+
+2011-07-19  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
+	  Added a method to add a list of Facets.
+
+2011-07-18  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
+	  A facet can write its internal representation to XML using a public
+	  method toXML(Document).
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
+	  Facets are appended using its toXML() method. Concrete facets can now
+	  change its xml representation.
+
+2011-07-14  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/Hook.java: The Hook's
+	  execute() method is called with a Document now.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  The hooks that are called after feed() and advance() are called with the
+	  documents which are returned by those operations.
+
+2011-07-14  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/GlobalContext.java: New.
+	  An interface for global context objects. It defines two basic operations
+	  to put objects into the context and to retrieve objects from context.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	  Added a method that returns an instance of an Artifact with one
+	  limitation: the internal state of this artifact is not persisted to
+	  database!
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Added a method that creates a document used to create new Artifacts with
+	  the UUID of another one.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java:
+	  Adapted method signatures to apply the new interface for global context
+	  objects.
+
+2011-07-13  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/Hook.java: New. A hook
+	  can be used to execute at a specific point in time. E.g. after an
+	  Artifact was fed or after an Artifact has advanced.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Call hooks after Artifact's feed() and advance() operations.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  Load hooks from configuration that match the XPath "/artifact-database/hooks/hook".
+
+2011-07-13	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	Fix for flys/issue20
+
+	* artifact-database/pom.xml: Bumped version of SLF4J up to 1.6.1
+
+2011-07-08  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
+	  An Output can have a type (string) declaration now that should make it
+	  easier to distinguish different Output types.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  Read the attribute "type" from OutputMode's configuration section.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
+	  Write the member variable "type" to an OutputMode.
+
+2011-06-28  Ingo Weinzierl <ingo@intevation.de>
+
+	Tagged RELEASE 1.3
+
+2011-06-27  Ingo Weinzierl <ingo@intevation.de>
+
+	* Changes: Prepared changes for the upcoming release.
+
+2011-06-27  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Declared toString(Document) method static.
+
+2011-06-22  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Added functions that generate documents to set the name and ttl of a
+	  collection and to delete an existing collection.
+
+2011-06-21  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Add the time-to-live of a collection to the document that is returned
+	  after the collection has been created.
+
+2011-06-21	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
+	  Added toString() method to help debugging.
+
+2011-06-21  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Put the time-to-live of a collection into the document with the list of
+	  user collections.
+
+2011-06-21  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java:
+	  The ArtifactCollection now knows its time-to-live. This values is
+	  retrievable via getTTL().
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java:
+	  Creating an ArtifactCollection requires the time-to-live of it.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Create new ArtifactCollections with their time-to-live.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Adapted SQL statements that retrieve collections. The TTL of the
+	  collection is fetched from database as well.
+
+2011-06-17  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
+	  Facets are able to fetch their necessary data from artifact now using a
+	  getData(Artifact, CallContext) method.
+
+2011-06-16  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
+	  Write index of a facet into the document.
+
+2011-06-16  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java:
+	  Extends Serializable.
+
+2011-06-15  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java:
+	  Added an index to a facet.
+
+2011-06-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Added static toString(Document) method which transform XML documents to Strings.
+	  Useful for debugging.
+
+2011-06-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  New methods to set the name of a collection.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
+	  Dispatch the "setname" action.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added sql statements to update the name of a collection specified by its
+	  gid.
+
+2011-06-07  Ingo Weinzierl <ingo@intevation.de>
+
+	  flys/issue50 (Markierung von "Master-Artefakten" ermöglichen)
+
+	* artifact-database/doc/schema-pg.sql,
+	  artifact-database/doc/schema-h2.sql: Added a column 'creation' to the
+	  collection_items table. This column is set to the current timestamp when a
+	  new row is inserted in this table. The master artifact of a collection
+	  is the artifact which collection item is the oldest collection item in
+	  the collection.
+	  Note: there might be older artifacts in the collection than the master
+	  artifact, but there will never be an older collection item than the first
+	  item when the collection was created.
+
+	  To update the db, use the following statements:
+
+	    ALTER TABLE collection_items ADD COLUMN creation TIMESTAMP;
+	    UPDATE collection_items SET creation = CURRENT_TIMESTAMP;
+	    ALTER TABLE collection_items ALTER COLUMN creation SET NOT NULL;
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Order the list of collection items based on their creation time.
+
+2011-06-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	  Added a setCollectionTTL() method that might be used to update the TTL
+	  of a collection. The new value needs to be from type long. There are two
+	  exceptions for the new values:
+	    1. the new value is "INF": this lets collections live forever.
+	    2. the new value is "DEFAULT": this sets the TTL of the collection to
+	       the configured default value.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added a method to update the TTL attribute of a collection.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
+	  Dispatch the "settimetolive" action.
+	  
+	* artifact-database/src/main/resources/sql/org-postgresql-driver.properties,
+	  artifact-database/src/main/resources/sql/org-h2-driver.properties: Added
+	  sql statements to update the TTL of a specific collection based on the
+	  UUID of the collection.
+
+2011-06-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java:
+	  Use generics more precisely
+
+2011-06-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	flys/issue75
+
+	* artifact-database/doc/schema-h2.sql: Fixed SQL syntax error in trigger creation.
+
+	* README: Adjusted to use new lib versions.
+
+2011-06-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  The incoming attribute document of the method to create the document to
+	  trigger the out() of a collection needs to have the root node
+	  art:attribute now.
+
+2011-05-31  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseOutResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionOutResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
+	  The 'type' part of the url is extracted and used while dispatching the
+	  call to the artifact database.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	  The deferred output got a new out() method that takes the 'type'
+	  parameter specified in the url part.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java,
+	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
+	  Artifacts and ArtifactCollections have two out() operations to support
+	  the output type parameter now. I did not remove the out() without the
+	  'type' parameter to keep compatible with older versions.
+
+2011-05-27  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  The setCollectionAttribute() method will now set the incoming document
+	  as new attribute for the collection. Before, we looked for a xpath
+	  expression that contained the attribute. In the current implementation,
+	  the incoming document IS the attribute.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
+	  Extract the new attribute for a collection and call the
+	  setCollectionAttribute() method of ArtifactDatabase with this document
+	  instead of calling it with the incoming request document.
+
+2011-05-27  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  New method that creates the document that is used to set an attribute of
+	  a collection.
+
+2011-04-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/JettyServer.java:
+	  Do not bind context to restlet app for security reasons.
+
+2011-04-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
+	  XMLUtils.xpathString() returns empty string not null.
+
+2011-04-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	flys/issue65: Added Jetty HTTP server as a replacement option to foster
+	better scalability. Needs testing.
+
+	* pom.xml: Added repository for Jetty.
+
+	* artifact-database/pom.xml:
+	  Added dependencies to Jetty (Licenses: Apache 2.0 or Eclipse).
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Pass restlet context to super constructor.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/JettyServer.java:
+	  New. Use embedded Jetty server to serve rest API.
+	  To enable it set "/artifact-database/rest-server/http-server/text()"
+	  in global config to "de.intevation.artifactdatabase.rest.JettyServer".
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
+	  Refactored a bit to be useful as a base class.
+	
+2011-04-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/HTTPServer.java:
+	  New. Interface to run an HTTP server. Enables the system to run on different
+	  HTTP servers.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
+	  Implements the new interface.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  Load and setup the HTTP server configured by the XPath 
+	  "/artifact-database/rest-server/http-server/text()" in the global config file.
+	  Defaults to "de.intevation.artifactdatabase.rest.Standalone" if not given.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java: 
+	  Boot with the HTTP server configured by FactoryBootstrap.
+
+2011-04-18	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
+	  With '/artifact-database/rest-server/max-threads/text()' in conf.xml
+	  you can set the number of threads used by the restlet server.
+	  Defaults to 1024 now. Another attempt/workaround to cope with flys/issue65.
+
+2011-05-17  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Bugfix: The output name and its concrete type are both written into the
+	  document that is used to trigger the OUT operation of a collection.
+
+2011-04-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/pom.xml: Bumped restlet to version 2.0.7 in hope
+	  to mitigate flys/issue65.
+
+2011-05-13  Ingo Weinzierl <ingo@intevation.de>
+
+	Tagged as RELEASE 1.2
+
+	* Changes, NEWS: Changes and news for release 1.2
+
+2011-05-12  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  The method that is used to create the request document for querying
+	  charts will now take a document which might contain parameters to adjust
+	  chart settings (e.g. chart height/width).
+
+2011-04-28  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/transition/Transition.java:
+	  Modified the isValid() method. The transition needs to know about the
+	  current artifact where its data is stored, the current state and maybe
+	  the target state to determine if it is allowed to step from the current
+	  state to a target state!
+	  NOTE: This breaks the current API!
+
+artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java
+
+2011-04-28  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  States have now a method getData(String) to retrieve just a single StateData object.
+
+2011-04-28  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Added a function that creates the document that is used to set the
+	  attribute of a CollectionItem (setCollectionItemAttribute() operation).
+
+2011-04-27  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Bugfix: Do not create empty XML documents and save those into database -
+	  exceptions while serialization/deserialization have been the result of
+	  this.
+
+2011-04-26  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  New methods for querying and updating attributes of collections.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
+	  Enabled the request dispatcher to handle requests specific to collection
+	  attributes and collection item attributes.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  New statements for querying and inserting attributes of collections.
+
+2011-04-26  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Changed the names of the method names that set and retrieve the
+	  attributes of collection items (e.g. getCollectionAttribute() ->
+	  getCollectionItemAttribute()).
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
+	  Modified method calls based on the changes above.
+
+2011-04-21  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
+	  Added a method to add further facets.
+
+2011-04-14  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Bugfix: removed method CallContext specific method calls.
+
+2011-04-14  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  Enhanced the bootstrap - the CallContext.Listener is initialized (if
+	  configured).
+
+2011-04-14  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
+	  Added a setup() method as in the other factories.
+
+2011-04-14	Sascha L. Teichmann	<sascha.teichmann@intevation.de>	
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Added instance variable to hold a call context listener.
+
+2011-04-14	Sascha L. Teichmann	<sascha.teichmann@intevation.de>	
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Call the postCall() methods of all CallContextes. Removed superfluous context
+	  paramter to AbstractCallContext constructors.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java:
+	  call ArtifactDatabaseImpl.initCallContext() in constructor and 
+	  ArtifactDatabaseImpl.closeCallContext() in postCall().
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionCallContext.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactCallContext.java:
+	  adjusted to guarantee that super.postCall() is called.
+
+2011-04-14	Sascha L. Teichmann	<sascha.teichmann@intevation.de>	
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
+	  Added a listener to be called if a call context was created and closed.
+	
+2011-04-14  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  Added a reference to an artifact to the parameterlist of describe().
+	  This is needed to retrieve other necessary information of an artifact.
+
+2011-04-13	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Internal granularity should be milliseconds and not microseconds.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
+	  Forget last commit.
+
+2011-04-13	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	Fix for flys/issue9
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Removed code that checks for outdated artifact in user land.
+	   
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Do the check in the database and take into account if artifact
+	  is in a collection. XXX: Maybe this needs some speedup!
+
+2011-04-13	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	Fix for flys/issue8 (part 3)
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  'NOT IN (NULL)' does not work. Used 'NOT IN (-666)' instead.
+
+2011-04-12  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Added a method that returns a document that is used to trigger the
+	  artifact's DESCRIBE operation.
+
+2011-04-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Added a method that creates documents used as input document for the
+	  Collection's out() operation.
+
+2011-04-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	Fix for flys/issue8 (part 2)
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  PostgreSQL does not like clauses like 'NOT IN ()' so write 
+	  'NOT IN (NULL)' in these cases.
+
+2011-04-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	Possible fix for flys/issue8
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java:
+	  (repeat) The term was repeated one time too often leading to invalid
+	  SQL statements in database cleaner. I really should start writing 
+	  unit tests.
+
+2011-04-06  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCollectionItem.java:
+	  Bugfix: Items are compressed in the Backend while adding an Artifact to
+	  a Collection. So this item needs to be decompressed when it is fetched
+	  from Backend again. This is done now!
+
+2011-04-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  The XML documents stored aside users, collections and collection items
+	  are now compressed/decompressed transparently, to reduce i/o costs
+	  as its already done with artifacts.
+	  
+	  !!! This breaks database content of release FLYS 2.2 but this is okay,
+	  !!! because 2.2 is not productive..
+
+2011-04-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Added a boolean flag to XML byte serialisation to compress/decompress, too.
+	  Defaults to false to keep compatibilty.
+
+2011-04-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* src/**/*.java: Removed trailing whitespace.
+
+2011-03-31	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  Removes outdated collections, too.
+
+	* src/main/resources/sql/org-h2-driver.properties,
+	  src/main/resources/sql/org-postgresql-driver.properties:
+	  Added SQL statements to figure out outdated collections.
+
+2011-03-31	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java:
+	  Added methods to repeat chars or strings.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  Filtering out locked artifact ids is now done on database level.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added $LOCKED_ID$ template for the prepared statements to figure
+	  out the locked ids.
+
+2011-03-31	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  The cleaner now fetches the explicit set of locked artifact ids from
+	  the artifact database. This is needed for the next step todo: Prevent
+	  locked artifact from beeing considered as outdated on database level.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java:
+	  Removed. Not needed any more.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Now provides a copy of the locked artifact ids.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Adjusted code to follow the new id locking semantics.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java:
+	  Removed needless import.
+
+2011-03-31	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/doc/schema-h2.sql, artifact-database/doc/schema-pg.sql:
+	  Added a trigger on artifacts. If an artifact is changed the last_access
+	  timestamp of the collections in which the artifact is in are updated, too.
+	  Needs testing!
+
+	  - In PostgreSQL it is done by a trigger written in plpgsql. So don't
+	    forget to add the language to the database!
+
+	  - In H2 it is done by a trigger written in Java, because H2 does not
+	    offer a script level trigger support.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/h2/CollectionAccessUpdateTrigger.java:
+	  The H2 trigger.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
+	  Added the statement which is executed if the trigger fires.
+
+2011-03-31  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Added an implementation of DeferredOutput for ArtifactCollections and
+	  implemented the out() operation of an ArtifactCollection.
+
+2011-03-30  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
+	  The output nodes written to DESCRIBE document have facet nodes now.
+
+2011-03-30  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultFacet.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/Facet.java:
+	  New. A facet and its default implementation. A facet represents one
+	  piece of an concrete output. E.g. an output can be a chart, a facet can
+	  be a single curve in this chart.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java:
+	  Added methods to retrieve and set facets.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  Added code to parse facets in the inner of an output node of the
+	  transition configuration. The xpath to a facet relative to a state
+	  should look like this: state/outputmodes/outputmode/facets/facet.
+
+2011-03-30  Ingo Weinzierl <ingo@intevation.de>
+
+	Tagged as RELEASE 1.1
+
+2011-03-30  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  There is a new method that creates the document that is used to trigger
+	  the DESCRIBE operation of a collection.
+
+2011-03-25  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  The operation that adds an artifact to an artifact collection will
+	  return the DESCRIBE document of the artifact collection now.
+
+2011-03-24  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
+	  Made the document 'attribute' of the ArtifactCollection accessible via
+	  getter and setter methods.
+
+2011-03-24  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  The CREATE document for used for creating new ArtifactCollections will
+	  build an ArtifactCollection with an empty attribute - but it is no
+	  longer null (which broke the XML parser while fetching the
+	  ArtifactCollection from backend).
+
+2011-03-24  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Removed the inner CallContextImpl class. This class is split up into an
+	  abstract class AbstractCallContext and concrete classes for artifacts
+	  and collections. We need to do so, because the describe() of an
+	  ArtifactCollection needs the CallContext - but the former
+	  CallContextImpl was specific for artifacts.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionCallContext.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactCallContext.java:
+	  An abstract CallContext and two concrete implementations for Artifacts
+	  and ArtifactCollections.
+
+2011-03-24  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
+	  There is a describe() method for ArtifactCollections, now.
+
+2011-03-24  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added a method that retrieves an ArtifactCollection based on its GID.
+
+2011-03-24	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added a cast to uuid in collections.select.by.gid
+
+2011-03-24  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added new statement to retrieve a single collection by GID and repaired
+	  a statement in the postgres properties.
+
+2011-03-23  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Added a method that creates a document that is used to add an artifact
+	  to a collection.
+
+2011-03-23  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Bugfix: Repaired broken SQL statement.
+
+2011-03-23  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Bugfix: Repaired a broken XPath.
+
+2011-03-23  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
+	  Added a method to append an <outputmodes> section to a document that
+	  describes the output modes of a state.
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Added a method to retrieve a list of output modes from DESCRIBE
+	  document.
+
+2011-03-23  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java:
+	  The State interface defines a method to retrieve the state's output
+	  modes now.
+
+2011-03-22  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/DefaultOutput.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/Output.java:
+	  New. An interface and its default implementation to describe an output
+	  mode of a state. Currently, the information 'name', 'description' and
+	  'mime-type' are provided.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  The abstract state reads the output modes available for the state now.
+
+2011-03-21  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Changed the return type of a method, so that more nodes will be
+	  retrieved.
+
+2011-03-15	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	!!! THIS BREAKS THE GNV ARTIFACTS. !!! TODO: Adjust the imports there.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
+	  Deleted. The copies from the commons package are use now.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/**/*.java:
+	  Adjusted imports.
+
+2011-03-15	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/Config.java:
+	  New. Copy of Config in artifacts-database. Part of moving configuration to 
+	  the commons package. TODO: Remove XMLUtils and Config from artifact-database.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Trivial fix. Forgot to commit some time ago.
+
+2011-03-14  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  The describe() method of a state will now return an Element.
+
+2011-03-10  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  New method that creates the document for a ADVANCE operation.
+
+2011-03-10  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  New method that creates the document for a FEED operation.
+
+2011-03-10  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Bugfix: The ElementCreator's method addAttr() will no longer add the
+	  namespace to an attribute although the 'addPrefix' parameter was set to
+	  false.
+
+2011-03-09  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java:
+	  New method to determine if a state B is reachable from a state A.
+
+2011-03-09  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/data/DefaultStateData.java:
+	  Added a further constructor that takes even the value.
+
+2011-03-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/doc/schema-pg.sql, artifact-database/doc/schema-h2.sql: 
+	  Fixed broken schemas.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Insert collection attribute into database, too.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Adjusted SQL statements to insert attribute into collection table.
+
+2011-03-09  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Parse the collection attribute that is contained in the incoming
+	  document while creating a new collection and use this document as parameter
+	  for calling createCollection() of the Backend.
+
+2011-03-09  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Fixed a typo.
+
+2011-03-08  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	  New method describeCollection() that might be used to retrieve a list of
+	  items in the collection and the facets supported by those items.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
+	  Enabled the describeCollection() method with an action 'describe' equal
+	  to the implementation of describe of an artifact.
+
+2011-03-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  The cleaner job is scanning the artifact database for outdated artifacts.
+	  artifacts are aging independent from the collections they are in.
+	  So the cleaner wants to delete artifacts that are still in
+	  collections which violates a foreign key constraint and renders
+	  the cleaner inop because this condition remains.
+
+	  The fix prevents this behavior by only deleting artifacts that
+	  are not in a collection.
+
+2011-03-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Fixed issue with outdating artifact if it is removed from a collection.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Fixed statements.
+
+2011-03-08  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Implemented the setCollectionAttribute() and getCollectionAttribute()
+	  methods.
+
+2011-03-08  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Fixed some SQL statements that contained typos.
+
+2011-03-08  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Implemented removeCollectionArtifact() method.
+
+2011-03-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	  Modified the method signature of addCollectionArtifact(). This method
+	  got the incoming document as further parameter.
+	  Furthermore, listCollectionArtifacts() and addCollectionArtifact() are
+	  implemented now.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
+	  Adapted the method call of addCollectionArtifact().
+
+2011-03-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCollectionItem.java:
+	  Fixed broken constructor.
+
+2011-03-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/doc/schema-pg.sql,
+	  artifact-database/doc/schema-h2.sql: Renamed a SEQUENCE - schema
+	  definition and sql statements did not fit to each other.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Fixed wrong table names in sql statements.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Fixed SQL constants.
+
+2011-03-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/CollectionItem.java:
+	  New. An interface that wraps artifacts and its attributes in collections.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCollectionItem.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionItem.java:
+	  Moved. The CollectionItem has been moved to DefaultCollectionItem and
+	  implements the new interface CollectionItem.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  The listCollectionArtifacts() method instantiates DefaultCollectionItem
+	  objects now.
+
+2011-03-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionItem.java:
+	  Add missing class.
+
+2011-03-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added code to list the collection items in a collection.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added SQL statements to list the collection item 
+	  via a given collection uuid.
+
+2011-03-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Repaired the namespaces of attributes in the xml documents created in
+	  the collection context.
+
+2011-03-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionItem.java:
+	  New. Helper to be returned in Backend.listCollectionArtifacts()
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Copyright adjusted to 2010, 2011
+
+2011-03-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
+	  Adapted the sql statement to fetch all collections and all user
+	  collections from database (see rev1399 for more details).
+	  s/OUTER LEFT/LEFT OUTER/ solves the collection listing problem.
+
+2011-03-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added code to delete a collection item. Fixed typo in SQL lookup.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added SQL statements to removed an artifact from a collection given
+	  a collection id and an artifact id.
+
+2011-03-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added code to set the attribute of a collection item.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added SQL statements to set the attribute column of a collection item
+	  given a collection id and an artifact id.
+
+2011-03-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added code to get the attribute of a collection item.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added SQL statements to get the attribute column of a collection item
+	  given the collection and the artifact uuid.
+
+2011-03-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added new method isValidIdentifier() to check if identifier
+	  is valid. Its a wrapper around StringUtils.checkUUID() to
+	  make it more symmetric to newIdentifier() which wraps
+	  StringUtils.newUUID().
+
+2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  TODO: Parse incoming document for an initial attribute of a
+	  collection item.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added code to add a collection item to a collection.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added SQL statements to handle creation of collection items.
+
+2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added code to delete a collection.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added SQL statements to delete collections.
+
+2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQLExecutor.java:
+	  New. Helper class to simplify the database connection stuff like
+	  get a connection, prepare statements, commit, rollback in
+	  error cases and so on. This reduces the code repetition
+	  and complexity in the backend significantly.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Use the new helper. (Should really have done this before!)
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java:
+	  Removed empty line at end of file.
+
+2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Argh! s/OUTER LEFT/LEFT OUTER/ solves the collection listing problem.
+
+2011-03-04  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Added a method that creates the CREATE document for creating new
+	  artifact collections.
+
+2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/pom.xml: Lifted H2 to version 1.3.152.
+	  This hopefully eliminates the problem with the left outer join
+	  in listing of the user collections.
+
+2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added new statement to extract the creation time for a given collection.
+	  XXX: listing of collection does not. Need to look at that.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
+	  Repaired parameter propagation of creation times and collection names.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Adjusted the backend to propagate the creation time and the collection names.
+
+2011-03-04  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  The createCollection() method returns a document that will now contain
+	  the uuid of the created artifact collection.
+
+2011-03-04  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  If there is no creation time of a collection, we just add an empty
+	  string to the collection node in listCollections(). A
+	  NullPointerException is avoided!
+
+2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added SQL statements to list collections.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added code to make collections accessible.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Bind backend functionality to REST.
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Implemented the interface method addCollectionArtifact().
+
+2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/LazyBackendUser.java:
+	  New: Helper for lazy loading users.
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Introduced the ArtifactCollectionFactory as parameter of
+	  listCollections().
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Implemented the interface method listCollections().
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/doc/example-conf/conf.xml: Corrected the attribute
+	  name of the artifact collection in the example node for the artifact
+	  collection factory.
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Two things: the collection get names specified in the incoming document
+	  of the POST request, and the deleteCollection() interface method is now
+	  implemented.
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Bugfixes while collection creation: Create a Connection object before
+	  setting its attributes and corrected the order of the values inserted
+	  into the SQL statement.
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  The roles of users are stored into and loaded from database now.
+
+2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added SQL statements to create collections.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
+	  Added name to collection.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java:
+	  Adjusted factory api to cope with names.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Implemented create collection.
+
+	* database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Adjusted the backend call.
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Changed the method signature of createCollection(). The Backend needs
+	  the ArtifactCollectionFactory to create new instances of artifact
+	  collections.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Implemented the interface method createCollection().
+
+2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/UserFactory.java:
+	  Throw out useless stuff from interface.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java:
+	  Adjusted default implementation.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Use user factory to create new users.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Call the backend with the new semantic.
+
+2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added stubs for the collection handling.
+
+	* artifact-database/doc/schema-pg.sql, artifact-database/doc/schema-h2.sql:
+	  Added missing attribute column to the collection item table.
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/doc/example-conf/conf.xml: Added a node that
+	  configures a default artifact collection factory.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  The artifact collection factory (currently just a single one) is read
+	  from configuration and setup with its parameters.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Fetch the configured artifact collection factory from bootstrap.
+
+2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	  artifacts/src/main/java/de/intevation/artifacts/UserFactory.java:
+	  Propagate delete user errors correctly.
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/UserFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Adapted the signature of deleteUser(). These methods don't await a User
+	  object any longer but just its identifier.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Performance improvement: there is no need to fetch the user that we want
+	  to delete from database before deleting it. Now, we just call the
+	  deleteUser() method of the UserFactory with the identifier of the user.
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Implemented the deleteUser() interface method. This operation will now
+	  remove the specified user, its collections and the artifacts stored in
+	  these collections.
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Bugfix: Replaced wrong SQL statements with the correct ones.
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Implemented the listUsers() interface method. This operation will now
+	  return a list of users as document.
+
+2011-03-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Implemented the createUser() interface method. Calling this method will
+	  trigger the backend to create a new user described in the document given
+	  in the POST request.
+
+2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added code to load all users from database.
+
+2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added code to load user from database.
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Added method to reconstruct XML documents from byte arrays and input streams
+
+2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added code to delete a user, his/her collections and quarantee that
+	  the artifacts exclusivly owner by the user are going to be deleted
+	  from the artifact database.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Various SQL statements to cope with outdating artifacts and deleting
+	  users and collections.
+
+2011-03-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseOutResource.java:
+	  New. Abstract class that should be used as the base class for the
+	  artifact and collection out resource. The most stuff to handle the
+	  output is done in this class. Concrete subclasses are needed to call the
+	  correct methods in the artifact database.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionOutResource.java:
+	  New. The OUT Resource for collections. It implements the two abstract
+	  methods of BaseOutResource.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
+	  This class inherits from BaseOutResource now. The most code has been
+	  removed. Just the two abstract methods of BaseOutResource are
+	  implemented here.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Added the CollectionOutResource.
+
+2011-03-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
+	  New. A Rest resource that handles operations for a specific collection.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Added the CollectionResource.
+
+2011-03-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ListCollectionsResource.java:
+	  New. A Rest resource that lists all collections of a specific user.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Added the ListCollectionsResource.
+
+2011-03-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateCollectionResource.java:
+	  New. A Rest resource that might be used to create new collection that
+	  are owned by a specific user.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Added the CreateCollectionResource.
+
+2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
+	  artifacts/src/main/java/de/intevation/artifacts/UserFactory.java:
+	  Removed needless imports.
+
+2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Call database to create a new user.
+
+2011-03-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/UserResource.java:
+	  New. A Rest resource that handles actions for a specific user.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Added the UserResource.
+
+2011-03-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ListUsersResource.java:
+	  New. A Rest resource that lists all users provided by the artifact
+	  database.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Added the ListUsersResource.
+
+2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Added a convinience method to transform an document
+	  into a byte array. Useful for storing documents as blob database columns.
+
+2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java:
+	  Wired Backend with DefaultUserFactory via the singleton.
+
+2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Fixed typo in keys.
+
+	* artifacts/src/main/java/de/intevation/artifacts/UserFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java:
+	  Removed superfluous identifier in createUser().
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added stubs for handling of users.
+
+2011-03-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	  Removed duplicated method to list users.
+
+2011-03-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java:
+	  Added a new method getArtifactDatabase() that retrieves the artifact
+	  database which is used in all subclasses of this resource.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateUserResource.java:
+	  Use getArtifactDatabase() to retrieve the artifact database.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
+	  New. A resource that is used to create new users. The information about
+	  the user need to be included in the POST data of the request.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Added the CreateUserResource.
+
+2011-03-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/UserFactory.java: Added
+	  a setup method like the artifact factories have.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Added an import statement for the UserFactory that was missing here.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  The setup() method of the UserFactory is called after the concrete
+	  factory class has been instantiated.
+
+2011-03-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts/pom.xml: Bugfix: We are able to compile the artifacts package
+	  with local modifications again.
+
+2011-03-01  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Made it a singleton.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
+	  Use the singleton Backend.
+
+2011-03-01  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Setup the user factory.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  New method to retrieve the user factory.
+
+2011-03-01  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/doc/example-conf/conf.xml: Added a user-factory
+	  configuration.
+
+2011-03-01  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  Added the registration of the UserFactory to the bootstrap process.
+
+2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	  Added SQL statements to handle users in database.
+
+	* artifact-database/doc/schema-pg.sql,
+	  artifact-database/doc/schema-h2.sql: Added missing UNIQUE constraints.
+
+2011-03-01  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUser.java:
+	  Added a new constructor to create new DefaultUsers with an identifier, a
+	  name and a role.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java:
+	  New. A default implementation of a UserFactory that creates
+	  DefaultUsers.
+
+2011-03-01  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java:
+	  A default implementation of an ArtifactCollectionFactory.
+
+2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
+
+	* artifact-database/doc/schema-pg.sql,
+	  artifact-database/doc/schema-h2.sql: Extended db scheme to
+	  cope with collections, collection items and users.
+
+2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java:
+	  Typo fix.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java:
+	  Added method to figure out TTL of a collection.
+
+2011-03-01  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java:
+	  A default implementation of a ArtifactCollection.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUser.java:
+	  A default implementation of a User.
+
+2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
+	  Added creation time.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Typo fixes.
+
+2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	  Added external API for users and collections.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Trivial implementation.
+
+2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
+
+	* src/main/java/de/intevation/artifacts/UserFactory.java,
+	  src/main/java/de/intevation/artifacts/ArtifactCollection.java: Added
+	  missing call contexts to API.
+
+2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java:
+	  New: factory to create new collections.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
+	  New: Bundles artifacts to be owned by a user.
+
+	* artifacts/src/main/java/de/intevation/artifacts/UserFactory.java:
+	  New: Creates a new user.
+
+	* artifacts/src/main/java/de/intevation/artifacts/User.java:
+	  New: Model of a user.
+
+	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Typo fix.
+
+2011-02-18  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  Added XPath constants and some method that retrieve important nodes of the
+	  DESCRIBE document.
+
+2011-02-16  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/ArtifactNamespaceContext.java:
+	  New. Added the namespace context here to make it available in clients as
+	  well.
+	
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
+	  New. This class provides functions that help working with the artifact
+	  protocol. Currently, there is just a single function to create a new
+	  CREATE document.
+
+2011-02-10  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/resources/de/intevation/artifacts/common/Common.gwt.xml:
+	  A module description that is used by GWT.
+
+	* artifacts-common/pom.xml: The resulting jar archive of the 'package'
+	  target will now contain the compiled classes as well as the source files.
+	  Furthermore, the sources are compiled with Java-1.6. These two things are
+	  required for the jar to be included by GWT as module.
+
+2011-02-10  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/model/User.java,
+	  artifacts-common/src/main/java/de/intevation/artifacts/common/model/DefaultUser.java:
+	  The interface description and a default implementation of a user.
+
+2011-02-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java:
+	  Added a method to add new StateData objects to the State.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/data/StateData.java:
+	  Added a new method to the StateData interface to set the value of the
+	  object.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/data/DefaultStateData.java:
+	  New. A default implementation of the StateData.
+
+2011-02-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
+	  Added new methods to append the current state and the reachable states to
+	  a root node.
+
+2011-02-07  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java:
+	  There is a new method that returns a state based on its ID.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java:
+	  There is a new method that retrieves the reachable states of a specific
+	  state.
+
+2011-02-04  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
+	  New. This class provides functions that should help creating the artifact
+	  protocol documents of the services describe, feed, advance and out.
+
+2011-02-04  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  Implements the method setup() - the ID and the description of the state
+	  are extracted at this place.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java:
+	  Added a method to retrieve the states of a specified artifact.
+
+	* artifact-database/pom.xml: Added a dependency to the artifacts-common
+	  package.
+
+2011-02-04  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
+	  New. An abstract implementation of a State. Some basic getter and setter
+	  methods are implemented - setup() and describe() need to be implemented by
+	  concrete subclasses.
+
+2011-02-03  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java:
+	  Implementations to store the provided states and transitions of the
+	  artifact server. These engines should be filled at bootstrap.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/transition/Transition.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/data/StateData.java:
+	  Interface descriptions for states, transitions and user inserted data.
+
+2011-02-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
+	  Corrected the package definition.
+
+2011-02-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java,
+	  artifacts-common/pom.xml: New package. It will serve some classes and
+	  utilities that are used in the artifact-database package as well as in
+	  concrete artifact packages.
+
+	* pom.xml: Added the artifacts-common package to be able to build all
+	  packages using just the upper level pom file.
+
+2011-02-01  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/pom.xml: Upgraded Restlet from version 2.0-SNAPSHOT
+	  to the current stable version 2.0.4.
+
+	* pom.xml: The SCM plugin will not check for local changes any longer.
+	  Otherwise, we aren't able to build the project with outstanding
+	  modifications.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
+	  Set the max number of threads available for the REST server to 512. This
+	  is a _WORKAROUND_ for Restlet-2.0.4 which seems to have a bug while
+	  handling threads.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
+	  Renamed the packages of the Request and Response class that have been
+	  changed from Restlet 2.0-SNAPSHOT to 2.0.4.
+
+2010-11-02  Ingo Weinzierl <ingo@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java,
+	  artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
+	  artifacts/src/main/java/de/intevation/artifacts/Service.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
+	  artifacts/src/main/java/de/intevation/artifacts/CallMeta.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java,
+	  artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java,
+	  contrib/run.sh: Added a license header to each of these files.
+
+	* LGPL.txt: License file for the GNU LGPL v2.1
+
+2010-06-14  Ingo Weinzierl <ingo_weinzierl@web.de>
+
+	* artifacts/pom.xml,
+	  pom.xml: Write svn revision to MANIFEST files while creating jar archives.
+
+2010-04-28  Hans Plum <hans@intevation.de>
+
+	* Tagging Version 1.0:
+	Because of finishing all functional requirements, rename to 1.0
+	instead of 0.6
+
+2010-04-28  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	* Changes, NEWS, ChangeLog: Summarized activities.
+
+2010-04-27  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
+	  The path to database can be configured with a relative path now.
+
+2010-04-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
+	  Brought all line lengths of non Javadoc lines below 80.
+
+2010-03-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
+	  Sorted imports.
+
+2010-03-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
+	  TODO:
+	  Last bunch of javadoc. Possible TODO: check for typos and cross reference problems
+	  but the main work should be done with this commit.
+
+2010-03-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  More javadoc, some code formatting.
+
+2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	  Even more javadoc.
+
+2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java:
+	  More javadoc (fixes small glitches, too).
+
+2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Added javadoc to the REST package (complete). TODO: Add javadoc to the remaining classes
+	  of the 'artifactdatabase'.
+
+2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java:
+	  Added javadoc.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/package.html,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/package.html: New.
+	  Package descriptions.
+
+2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
+	  artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
+	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
+	  Removed trailing whitespace:
+	  find -name \*.java | xargs sed -i 's/[ \t]\+$//'
+
+2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
+	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
+	  Completed Javadoc of sub module 'artifacts'. TODO: add Javadoc to
+	  module 'artifact-database'
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java:
+	  Fixed vim modeline.
+
+2010-03-25  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java: Added a
+	  method 'getTimeToLive()' which retrieves the current artifact's time to 
+	  live. The ttl of an artifact is available where ever a CallContext object
+	  is existing.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added new field ttl of an artifact to an PersistentArtifact.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Implemented 'getTimeToLive()' in CallContextImpl.
+
+2010-03-22  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
+	  Install a SLF4JBridgeHandler after logging is configured. This handler is
+	  used to route incoming java.util.logging logs to SLF4J. In our case, we
+	  route this incoming log to our log4j logger.
+
+	* artifact-database/pom.xml: Added dependencies for SLF4J 1.5.11.
+
+2010-03-22  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	  Issue208 (Remove special data of an 'out'-target before exporting
+	  artifacts)
+
+	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Added a
+	  'cleanup(Object context)' method to the interface definition of artifacts.
+	  This method should be called before exporting an artifact and should
+	  remove data stored on an artifact (or its current state) which have been
+	  written by an 'out'.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
+	  Default implementation of cleanup method - nothing is done here yet.
+	  Override this method if an artifact needs to be cleaned before an export.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java:
+	  Call cleanup method on the proxied artifact if proxied is existing.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Call cleanup method before exporting an artifact as xml.
+
+2010-03-19  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	  Issue208 (Artifact gets a new identifier after being imported)
+
+	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Added a new
+	  method setIdentifier(String identifier).
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
+	  Default implementation of setIdentifier(String identifier) to give an 
+	  artifact a new identifier.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Set a new identifier on an artifact after deserializing it.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java:
+	  Set the identifier of the proxied artifact right after setting its own
+	  identifier.
+
+2010-03-19  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	  Issue208 (Artifact import)
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java:
+	  New server resource to import an artifact from an incoming xml document.
+	  The resource is available as /import and accepts xml documents send via
+	  HTTP POST.
+
+	* artifact-database/src/main/resources/sql/org-postgresql-driver.properties,
+	  artifact-database/src/main/resources/sql/org-h2-driver.properties: New sql
+	  statements to update an existing artifact.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  New method to import an artifact from an incoming xml document. The data
+	  contained in this document is decoded using the secret.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  New method to store an artifact into database or replace it if an artifact
+	  with the given id is already existing.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java:
+	  Removed method to convert a byte array into a string (this is done by
+	  Apache's Hex class in commons codec) and added a new method to convert a
+	  string into a byte array using Apache commons codec as well.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Register ImportResource to webserver.
+
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java:
+	  Converted the author javadocs.
+
+2010-03-16  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	  Issue208 (Artifact export)
+
+	* artifact-database/doc/example-conf/conf.xml: Added a section to configure
+	  a secret string used to identify artifact imports for security reason.
+	  Incoming artifact imports need to be identified with this secret, otherwise
+	  the import should be blocked.
+	  Xpath for this secret: '/artifact-database/export-secret/text()'
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  New attribute 'exportSecret' and some code to read the secret from
+	  configuration while application startup.
+
+	* artifact-database/pom.xml: Added Apache Commons Codec library used to
+	  encode/decode artifact data.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java:
+	  New utilities class for frequently used string operations.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Added some methods for exporting artifacts as xml documents. The data part
+	  is base64 encoded. A secret key is used while encoding this data to verify
+	  artifact imports, later.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	  Added an artifact loader interface used to deserialize artifacts. 
+	  getArtifact() implements such an ArtifactLoader to return
+	  PersistentArtifacts.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java:
+	  New. ServerResource to export artifacts (innerGet). This resource is
+	  available under "/export/{uuid}" via HTTP-GET request and returns an
+	  artifact specified by uuid as xml document.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Register ExportResource to webserver.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	  Added method to export artifacts.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
+	  Reset bootstrap after application startup.
+
+2010-03-11	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java,
+	  artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
+	  artifacts/src/main/java/de/intevation/artifacts/Service.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java,
+	  artifacts/src/main/java/de/intevation/artifacts/CallMeta.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java,
+	  artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java:
+	  Repaired the javadoc stuff.
+
+2010-02-21	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java,
+	  artifacts/src/main/java/de/intevation/artifacts/Service.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
+	  artifacts/src/main/java/de/intevation/artifacts/CallMeta.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
+	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java,
+	  artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java:
+	  find -name \*.java | \
+	  xargs sed -i \
+	  -e 's/@author[ ]\+\([^(<]\+\)[<(]\([^>)]\+\)[>)]/@author <a href="mailto:\2">\1<\/a>/g' \
+	  -e 's@[ ]\+</a>@</a>@g'
+
+	  Bring @author javadoc tags in form '@author <a href="john.doe@example.com">John Doe</a>'
+	  to make the sources to be able to be formatted with jalopy (http://jalopy.sourceforge.net).
+
+2010-02-05  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	  Issue170
+	
+	* artifact-database/pom.xml: Changed log4j version to 1.2.14 (later version
+	  causes errors and breaks while maven build process).
+
+2010-02-01  Tim Englich  <tim.englich@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java (innerPost): 
+	  Put the XML-Document which was send by the client to the 
+	  ArtifactDatabase.createArtifactWithFactory-Method.
+	  
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java (createArtifact),
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java (createArtifactWithFactory),
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java (setup),
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java (setup),
+	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java (createArtifactWithFactory),
+	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java (setup): 
+	  Changed Method signatures so that it is possible to put the Document
+	  which will be send during the create Step of an Artifact to the Setup-Routine
+	  of an Artifact.
+	  Now it is possible to send further Informations to the Artifact using the 
+	  XML-Document.
+	  This is nessesary for manipoulating the Artifact e.g. setting Parameters 
+	  which should only be displaied or e.g. put an Geometry-Object into the 
+	  Artifact which should limit the displayed results.
+
+2010-01-27  Hans Plum <hans@intevation.de>
+
+	RELEASE 0.4
+
+	* Changes, NEWS, ChangeLog: summarized activities.
+
+2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java:
+	  New REST wrapper to call the service. Bound under '/service/{service}' 
+	  where '{service}' is the name of the service as announced by '/services'.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Register new resource to web server.
+
+2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java:
+	  New. Serves a list of available services under '/services' as XML. Structure
+	  is much like '/factories' with 's/artifact/service/'.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	  Register new resource to web server.
+
+2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  Load service factories while bootstrapping the server.
+
+	* artifact-database/doc/example-conf/conf.xml: Added examples for trivial services.
+
+2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	  Forgot to throw exception if service is not available.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java:
+	  Fixed indention.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	  Implemented service factory loading trivial. TODO: Load
+	  them from the configuration.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Serve the services.
+
+2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java:
+	  Default implementation of a service. Useful as a base class.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java:
+	  Default implementation of a service factory. Modelled right after
+	  DefaultArtifactFactory. Useful as a base class.
+
+2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* 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-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
+	  Added method 'toStream()' to copy a document into an output stream.
+
+2010-01-15  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	  Added a method 'getInternalArtifactFactory' to get an ArtifactFactory by
+	  its name.
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java: Added
+	  'getDatabase' method to get access to the ArtifactDatabase from context.
+
+2010-01-12  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
+	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
+	  Create document namespace aware and adapted XPath expressions for this.
+
+2010-01-09  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
+	  Added	convenient method to add attributes to nodes. Attributes have no
+	  prefix as default.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
+	  Adapted xpath (added prefix) to find action and made the document which is
+	  created by this resource namespace aware.
+
+2009-12-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	RELEASE 0.3
+
+	* Changes, NEWS, ChangeLog: summarized activities.
+
+2009-12-16	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
+	  Added static method parseDocument(File) to load document from
+	  file.
+
+2009-12-15  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	  Issue106
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
+	  Removed path to chart template which doesn't belong here.
+
+2009-12-11	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java:
+	Removed needless import.
+
+2009-11-23  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
+	  Added path to chart template file and a new method to retrieve the
+	  configuration.
+
+2009-11-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
+	Added a context dictionary accessible through putContextValue(key, value)
+	and getContextValue(key). Purpose is make artifact calls stackable and
+	transfer information through the call level transparently.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	Adjusted default implementation of CallContext.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java:
+	New. A general proxy class for artifacts in artifact databases. This class uses 
+	the extended call context semantics.
+
+	The artifact calls (feed, describe, out, ...) are passed to a proxied artifact.
+	If the proxied artifact decides to be replaced by some other artifact it has to
+	to store a reference to the replacement artifact in the call context with
+	putContextValue(ProxyArtifact.REPLACE_PROXY, my_new_artifact). After the call
+	is finished the proxied object will change. This indirect callback mechanism is
+	used to minimize side effects.
+
+	The identifier() call is not forwarded to the proxied artifact to have a stable id.
+
+	Limitations: This mechanism does not let you build real matroska (multi level)
+	like artifact structures. This would only be possible if a kind of call context
+	stack is introduced.
+
+2009-11-13  Hans Plum <hans@intevation.de>
+
+	RELEASE 0.2
+
+	* Changes, NEWS summarized
+
+2009-11-11  Ingo Weinzierl <ingo.weinzierl@intevation.de>
+
+	* HOWTO: Added HOWTO describing the setup of the environment (apache, 
+	  tomcat, gnv).
+
+2009-11-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* 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  <tim.englich@intevation.de>
+
+	Issue 59: Make paths in configuration relativ
+
+	* 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	<sascha.teichmann@intevation.de>
+
+	RELEASE 0.1
+
+	* Changes, NEWS: Summaried changes.
+
+2009-10-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* Changelog -> ChangeLog: Renamed to make eclipse happy.
+
+2009-10-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java:
+	Initial instance variable with given languages in constructor.
+
+2009-10-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java:
+	Better implementation for fetching the preferred locale.
+
+2009-10-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallMeta.java:
+	Added method to fetch preferred locale.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java:
+	Trivial (and incorrect!) implementation.
+
+2009-10-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	Add i18n support via "Accept-Language" HTTP headers.
+
+	* artifact-database/pom.xml: Using restlet 2.0 snapshot. 
+	M3 does not implement the required API, M4 is not in maven repo yet.
+	TODO: Bring to M4 as soon it is released in maven repository.
+
+	* contrib/run.sh: Adjusted to use the snapshot.
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallMeta.java:
+	New. Meta information of a call, languages, e.g.
+
+	* artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java:
+	New. Model preferred languages.
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
+	Has now a reference to the meta information.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	describe, feed, advance and out call contexts are now enriched with 
+	external meta data.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	Additional debug output how long the cleaner slept between cleanups.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java:
+	New. Default implementation of PreferredLocale.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java:
+	New. Default implementation of CallMeta.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	Adjusted to take the additional meta information.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java:
+	Added a method to create a CallMeta object from web client information.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
+	Call the artifact database with the meta data from there base class BaseResoure.
+
+2009-10-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java,
+	artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java,
+	artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
+	Removed trailing whitespace.
+
+2009-10-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	Removed needless imports.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
+	Be more verbose on output on which host the REST server is bound.
+
+2009-09-30  Hans Plum <hans@intevation.de>
+
+	* artifact-database/doc/example-conf/conf.xml, README:
+	Fixed inconsistencies after changes in h2-configuraton.
+
+2009-09-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* pom.xml, artifacts/pom.xml, artifact-database/pom.xml: 
+	Set source encoding to UTF-8.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
+	If '/artifact-database/rest-server/listen/text()' is given in conf.xml
+	the value is used to bind REST server to that interface.
+
+	* artifact-database/doc/example-conf/conf.xml: Added 'listen' to
+	demo configuration.
+
+2009-09-24	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
+	Time delta calculation in SQL statement to figure out outdated artifacts
+	was broken.
+
+2009-09-24	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
+	Added debug output to make tracing of artifact lifecyle easier.
+
+2009-09-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/doc/schema-pg.sql, artifact-database/doc/schema-h2.sql:
+	Added column 'factory' to artifacts table to store the name of the
+	creating factory.
+
+	!!!
+	!!! THIS BREAKS OLD ARTIFACT DATABASES!
+	!!!
+	!!! To update old databases issue at database prompt:
+	!!!    ALTER TABLE artifacts ADD COLUMN factory VARCHAR(256) NOT NULL;
+	!!!
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
+	artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
+	Fixed issue in SQL statements for touching artifacts. Fill factory name
+	into artifact relation.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java:
+	To allow different serialization models each ArtifactFactory has 
+	serializer for the artifacts.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java:
+	Add method to return ArtifactSerializer.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java:
+	Uses Java standard object serialisation. 
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
+	Uses th DefaultArtifactSerializer as ArtifactSerializer
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	The serialisation method is select via the 'factory' column of the 'artifacts'
+	table.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	Adjusted to fit the new serialisation model.
+
+2009-09-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java:
+	New. Base class to log RuntimeExceptions to log4j error log.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
+	Adjusted to extend from BaseResource.
+
+2009-09-21	Tim Englich	<tim.englich@intevation.de>
+
+	* Added some IDE-specific files to the Ignorelist.
+
+2009-09-18	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/doc/schema.sql: removed.
+	* artifact-database/doc/schema-h2.sql: re-added here. It is H2 specific.
+
+	* artifact-database/doc/schema-pg.sql: New. Schema for PostgreSQL 8.3 +
+
+	* artifact-database/src/main/resources/sql/org-postgresql-driver.properties: New.
+	SQL statements for PostgreSQL.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
+	XPath expressions to access config were wrong. Added some debug logging.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	Added some debug logging.
+
+	* artifact-database/pom.xml: Added dependency to postgresql JDBC driver
+
+	* contrib/run.sh: Added postgresql JDBC to CLASSPATH.
+
+2009-09-16  Tim Englich  <tim.englich@intevation.de>
+
+	* src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java (represent) Edited: 
+	Switched from Get to Post communication.
+
+2009-09-16  Tim Englich  <tim.englich@intevation.de>
+
+	* src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java (feed) Edited:
+	Bug fixed: Now the method will call the feed Method of the used Artifact instead 
+	of the advance Method.
+
+2009-09-15	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
+	More warning log output in POST case.
+
+2009-09-15	Tim Englich	<tim.englich@intevation.de>
+
+	* src/main/java/de/intevation/artifactdatabase/Backend.java: 
+	Bug Fixed: Comparation for outdated Artifacts was Wrong.
+
+	* src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java (represent):
+	Warn-Logging Integrated for Exception analysys.
+
+2009-09-14	Tim Englich	<tim.englich@intevation.de>
+
+	* src/main/java/de/intevation/artifacts/ArtifactFactory.java Edited:
+	Make Objects Serializable 
+
+	* src/main/resources/sql/org-h2-driver.properties: 
+	Bug Fixed in SQL-Query
+
+2009-09-13	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	Refactored the persistent handling of the artifacts in the 
+	artifact database. When an artifact is called (describe, feed,
+	advance, out) a new CallContext is given instead of the
+	old Object context. CallContext.globalContext() returns the
+	old Object context now. CallContext.afterCall() may be
+	called from inside describe, feed, advance and out to tell
+	the artifact database what to do after the processing of
+	the specific call.
+	
+	The accepted values are:
+		- NOTHING    for doing nothing
+		- TOUCH      for just update the last access time
+		- STORE      for persisting the artifact.
+		- BACKGROUND to signal that the artifact has started
+		             a background operation.
+
+	After the background operation the artifact has to call
+	CallContext.fromBackground() to signal the artifact 
+	database that the artifact needs to be touched or stored.
+
+	!!! Without this call the artifact database assumes there
+	!!! is still some background operation on this artifact
+	!!! which prevents reclaiming resources
+
+	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
+	New. New API to cope with background processing.
+
+	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
+	Replaced old Object context with CallContext context.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
+	Adjusted.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	For a better encapsulation of the persistence operations of the
+	artifacts the database does not return artifacts any more. It delegates
+	the describe, feed, advance and out call to internal structures.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java:
+	New. Simplifies handling of error conditions inside of artifact database.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	Adjusted to new interface. Internally it handles the background API.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
+	Adjusted to new artifact database interface (which greatly simplifies things)
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	Artifacts in background are not removed from database any longer.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java: Little
+	re-wirering need for new cleanup.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: 
+	Simplified to do the SQL stuff only. The most infrastructure stuff is now done
+	in ArtifactDatabaseImpl.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java:
+	New. Helper base class to enable filtering of background artifacts by there
+	database id.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
+	Modified the INSERT statement to write the serialized artifact, too.
+
+2009-09-12	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java(out):
+	out() is now called with an java.io.Outputstream to place
+	the output.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java:
+	Adjusted.
+
+2009-09-11	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/doc/example-conf/conf.xml: Added
+	sleep time for cleanup thread.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
+	Start cleanup thread at startup.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	Make artifact restoring bit more robust, added ref to
+	cleanup thread to do an immediate cleanup when dead artifact
+	is found by lookup.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
+	New. The cleanup thread. It cleans up the artifact database
+	perodically and calls the endOfLife() methods of the dead
+	artifacts. Default cleanup interval is 5 minutes.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
+	Tuned SQL a bit to fetch only a 50 artifacts in search for
+	outdated artifacts to avoid too much memory consumption.
+
+	* contrib/run.sh: Little tweak to work with more than one
+	commons-pool version installed.
+
+	* TODO: Removed remarks about the now implemented killer 
+	thread and the moves XML stuff.
+
+	* README: Changed text how to create a H2 database from
+	command line only. XXX: This is still broken. The best
+	way to set up the database by now is to start the Console 
+	client, connect to the database, c&p the schema.sql 
+	into the SQL text area and execute it.
+
+2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
+	New. Handler for 'out'. Reachable via HTTP GET '/artifact/{uuid}/{type}'.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java:
+	New. Special representation for out. TODO: use streaming API.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
+	Regrouped imports.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java: Added
+	handler for 'out' to routing table.
+
+2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
+	Added handler for 'advance' and 'feed' to be called by HTTP POST '/artifact/{uuid}'.
+
+2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
+	Added handler for 'describe' to be fetched by HTTP GET '/artifact/{uuid}'.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	Add route to new describe handler.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: Fixed
+	problems with serialization of artifacts to backing database.
+
+2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
+	Added method to get strings from XML documents via XPath.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
+	Used XMLUtils to create new XML documents.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	Forgot to store backend in instance variable.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
+	Added static instance of this class.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
+	Forward call to ArtifactDatabase, do some error handling.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	Treat problems with database errors more gracefully.
+
+	* contrib/run.sh: Added dependencies to common-pool and common-dbcp.
+
+	* artifact-database/doc/data/create-artifact.xml: New. example data set to
+	create an artifact. Usage
+
+	$ curl --data-binary @doc/data/create-artifact.xml -D - http://localhost:8181/create
+
+2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java:
+	Removed needless import.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
+	Moved some XPath stuff from Config into XMLUtils.
+
+2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java(setup): Added
+	callback parameter in form of the creating factory.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
+	Adjusted to match new Artifact interface.
+	
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
+	Call artifact.setup() with this.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
+	Removed namespace stuff.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
+	Created namespace stuff, need for XPath for e.g.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java:
+	Use new namespace stuff.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java: 
+	Added author.
+
+2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
+	Added method newXPath() to create XPaths with namespace binding.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
+	Uses new method from XMLUtils.
+
+2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* trunk/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
+	trunk/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
+	Removed meta data from resources. They prevented serving the right results.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	Removed needless import.
+
+2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
+	New. Resource to create an artifact. Not working on artifact database yet.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	Attached create to web server.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java:
+	Added meta data to Get annotation.
+
+2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/pom.xml: Added dependency to restlet.ext.xml
+	for XML handling in representations.
+
+	* contrib/run.sh: Adjusted to fit new dependency.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
+	New. Handle some boiler plate XML stuff. Move more stuff of this kind
+	into this file.
+
+	* TODO: Added remark to move more XML stuff into XMLUtils.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
+	Tell at startup on which port we are listing.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java:
+	Representation to list the available factories.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	Attach new factory listing to web app.
+
+2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/doc/artifactdb-example-conf.xml: removed
+	* artifact-database/doc/example-conf/conf.xml: Re-added here.
+
+	The configuration is now found in a subdirectory set by the
+	system property 'artifact.database.dir'. If this property is
+	not set '~/.artitactdb' is used. This directory should contain
+	a file 'conf.xml' with the configuration details.
+	  If the artifact database is started as a standalone the config
+	directory is searched for 'log4j.properties' to configure the
+	logging.
+	  The H2 database is also search in this directory with the
+	name 'artifacts.db' if the connection url in config.xml is
+	not overwritten.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
+	Refactored a bit to follow the new configuration policy.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
+	Build default connection url as described.
+
+	* artifact-database/doc/example-conf/log4j.properties: New.
+	example logging config
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	Added some more logging infos.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
+	Load the log4j configuration at startup and starts a REST standalone web server.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest: New.
+	Package for REST binding.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
+	Convenience wrapper to start a standalone REST web server.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
+	Concrete REST application. TODO: attach restlets to interact with artifact database.
+
+	* contrib/run.sh: Little start script to launch artifact database for test
+	purpose from classes without the need to build packages. 
+	Background: The maven exec:exec goal does not work consistently for me (slt). 
+	At home it does, at work it doe not. Anyway. Usage:
+
+	$ ./contrib/run.sh \
+	      -Dartifact.database.dir=artifact-database/doc/example-conf/ \
+	      de.intevation.artifactdatabase.App
+
+2009-09-08	Tim Englich	<tim.englich@intevation.de>
+
+	* src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java : Edited
+	Constants for Namespace-URL and Namespace-Prefix added 
+
+2009-09-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
+	artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
+	Integrated log4j
+
+	* artifact-database/pom.xml: Added dependency to log4j
+
+	* TODO: Removed remark to integrate logging.
+
+2009-09-07  Tim Englich  <tim.englich@intevation.de>
+
+	* src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java: edited
+	Bug fixed in XPath Expression. Now the Nodes and not the Text of the Nodes will
+	be used instantiating the ArtifactFactory. 
+	
+2009-09-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	Implemented loading of artifacts from database. If the last access of an 
+	artifact is too long ago for its time to life, null is returned.
+
+	* TODO: Added remark to implement a "killer" thread which periodically cleans the
+	database from outdated artifacts and calls the endOfLife() method on those.
+
+2009-09-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java:
+	Properties wrapper for SQL statements. The properties are looked up
+	in resorces /sql/DRIVER.properties (DRIVER is the name of the db driver class,
+	lowercased and '.' replaced by '-'. 'org.h2.Driver' turns to
+	'org-h2-driver.properties', e.g.
+
+	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
+	SQL statements for H2 database.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	Artifacts are proxies/wrapped by an special Artifact implementation
+	to bound db activities transparentely to the Artifact. XXX: It has
+	to be evaluated if a more direct concept like extending the Artifact API
+	to store itself would be more robust for future implementations.
+	TODO: Loading Artifact from db is not implemented yet.
+
+2009-09-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
+	New. Used to wrap database presentations of artifacts into artifacts.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
+	New. Implements a ArtifactDatabase backed by Backend.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
+	Removed empty last line.
+	
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
+	Wired together Backend, ArtifactDatabaseImpl and FactoryBootstrap.
+
+2009-09-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
+	Typo in XPath expression.
+
+2009-09-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java(setup):
+	Added the setup() method to have symmetric counter part to endOfLife().
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java(timeToLiveUntouched):
+	Added this method to let the factory decide how long an artifact should live in ms.
+	This is not a part of the Artifact itself because this is only evaluated once when
+	the artifact is created.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
+	New. Simple base class implementation of the Artifact interface.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
+	New. Simple base class implementation of the ArtifactFactory interface. When setup()
+	on instances of this class is called, it pull ttl, name, description and
+	the artifact class name from the node given. See artifactdb-example-conf.xml
+	for examples.
+
+	* artifact-database/pom.xml: Cleaned up XML. 
+	Introduced dependency to apache commons dbcp, used for pooling of the 
+	database connections to artifact db. 
+	Added parameters for the exec:exec goal to make the project
+	startable without building packages.
+
+	* artifact-database/doc/schema.sql: Removed AUTO_INCREMENT from primary key
+	to avoid compatibility issues with other non-H2 databases (PostgreSQL, Oracle, ...)
+	which have no or limited support for generated keys in the JDBC driver. Now
+	using an explicit sequence. TTL ist now big int to bring the resolution to ms.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
+	Refactored a bit to make the XPath access function usable on arbitrary XML
+	documents and parts of.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
+	New. Exposes DataSource from a apache dbcp connection pool configured by the
+	global configuration file. See artifactdb-example-conf.xml for examples.
+	TODO: Write some documentation about this.
+
+	* artifact-database/doc/artifactdb-example-conf.xml: Adjusted to be a more realistic
+	example config file. Added references to DefaultArtifact/DefaultArtifactFactory and
+	demonstrate how to configure the connection pool.
+
+	* TODO: Add remark to document the connection file.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	Do not crash when config does not contain any factories.
+
+2009-09-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java (getNodeXPath):
+	New method to get a single node from configuration.
+
+	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java (endOfLife):
+	New method called when artifact is going to be removed from artifact data base.
+
+2009-09-04	Tim Englich	<tim.englich@intevation.de>
+
+	* src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java (loa,
+	* src/main/java/de/intevation/artifacts/ArtifactFactory.java (setup):
+	New Parameter for Setop to put the ArtifactFactoryNode into the setup routine.
+
+2009-09-04	Tim Englich	<tim.englich@intevation.de>
+
+	* pom.xml: Edited
+	Buildplugins for Maven-Compiler and Maven-Eclipse Plugin integrated.
+
+2009-09-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/doc/artifactdb-example-conf.xml: Example for artifact db
+	configuration.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java:
+	New. Default implementation of ArtifactContextFactory. Creates a DefaultArtifactContext.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java:
+	New. Default implementation of ArtifactContext.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
+	New. Class to bootstrap the context and the artifact factories.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java: Bootstrap
+	factories.
+
+	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java: New.
+	Loads configuration as XML from a file. The file is specified by the system
+	property "artifact.database.config" and defaults to "artifactdb-conf.xml".
+	The configuration can be searched via XPath.
+
+	* artifact-database/pom.xml: Made de.intevation.artifactdatabase.App the main
+	class for start up.
+
+	* TODO: Added remark to add logging to artifact database.
+
+2009-09-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java:
+	New. Factory for a global context in the artifact data base. Useful to
+	create shared ressources for artifacts like caches et al.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
+	artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
+	artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
+	artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Uses the
+	global context more consistent.
+
+	* artifact-database/doc/schema.sql: Using BINARY instead of BLOB to
+	avoid external files for each artifact blob. See H2 documentation
+	for details.
+
+2009-09-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/doc/schema.sql: Schema to store artifacts
+	in H2 databases.
+
+	* artifact-database/pom.xml: Added dependencies to H2 and
+	restlet.
+
+	* pom.xml: Added repository to fetch restlet.
+
+	* README: Describe how to create a H2 database to store artifacts.
+	TODO: Make it more general because description assumes usage of
+	a unixoid system.
+
+2009-09-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/**: created new sub project for the artefact 
+	database server.
+
+	* pom.xml: Registered new sub project and made artifacts a
+	sub project, too.
+
+	* artifacts/pom.xml: Adjusted to make a artifacts a sub project.
+
+2009-09-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
+	Interface of the central component of the system.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
+	Central place to store artifacts in.
+
+	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java:
+	Factory to build artifacts. Works together with ArtifactDatabase.
+
+	* artifacts/pom.xml: Simple maven file to compile the project.
+
+2009-09-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* README, Changelog, Changes, NEWS, TODO: New. Initial setup
--- a/Changes	Tue Oct 16 15:51:33 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,261 +0,0 @@
-2011-09-19     RELEASE 1.4
-
-    !! Release 1.4 is no longer API compatible with old versions of this module !!
-
-    NEW:
-
-        * Modified the signature of Artifact.setup() -> Artifact.setup(CallMeta).
-          The CallMeta is required for I18N support while setting up an
-          Artifact. !! THIS MODIFICATION BREAKS THE CURRENT API !!
-
-        * Modified the signature of Service.setup() -> Service.setup(GlobalContext).
-
-        * Introduced a LifetimeListener interface: applications can register
-          instances of this interface to execute tasks after the system goes and
-          and before the system goes down.
-
-        * Introduced a BackendListener interface: applications can register
-          instances of this interface to execute tasks after an event has been
-          fired. See the JavaDoc of BackendListener for detailed descriptions of
-          the events.
-
-        * Introduced "Hooks": Hooks can be used to execute tasks at a specific
-          point in time. In our cases, Hooks can be executed before/after feed()
-          and advance() operations.
-
-        * Introduced a GlobalContext interface for the global context object:
-          this interface describes two method to put new objects into this
-          context and a method to retrieve objects from this context.
-
-        * Introduced a CreationFilter: this filter might be used to create
-          Artifacts with restricted Outputs/Facets.
-
-        * Introduced a Message interface: Messages might be used by background
-          threads to provide information about the process (e.g. status reports).
-
-        * Improved ArtifactDatabaseImpl to support background messages.
-
-        * Improved the CallContext interface: added a method isInBackground()
-          that determines if the current Artifact has started a background
-          thread which is still processing.
-
-        * Improved the CallContext interface: added methods to add/retrieve
-          background messages.
-
-        * Improved the State interface: added a endOfLife() method that should
-          be called by owner Artifacts.
-
-        * Improved the interface of Facets: added a deepCopy() method to be able
-          to clone Facets.
-
-        * Improved the interface of Facets: added a toXML() method.
-
-        * Improved the ArtifactDatabase: added a method loadAllArtifacts(ArtifactLoadedCallback)
-          to load all Artifacts of an ArtifactCollection.
-
-        * Improved XMLUtils: added support for variables in XPath expression.
-
-        * Added a FileTools helper class that implements some convinience
-          functions to work with files.
-
-        * Some little improvements in ClientProtocolUtils.
-
-        * Bumped SLF4J up to 2.0.7.
-
-        * Bumped H2 up to 1.3.158.
-
-        * Bumped Apache DBCP up to 1.4.
-
-        * Bumped PostgreSQL driver up to 8.4-702.jdbc4.
-
-
-    FIXED:
-
-        * flys/issue20 (Versions-Clash bei slf4j verhindert Start des Artefakt-Servers.)
-
-
-
-2011-06-27     RELEASE 1.3
-
-    NEW:
-
-        * Bumped Restlet to version 2.0.7.
-
-        * Use a Jetty server by default to handle HTTP requests.
-
-        * Introduced a config option that allows to switch the HTTP server
-          manually.
-
-        * Introduced a config option that allows to limit the max number of
-          threads used by the Restlet server. Defaults to 1024.
-
-        * New REST interface to set the time-to-live of a Collection. This
-          operation takes a java native long value or one of the strings "INF" -
-          which means a Collection lives forever - or "DEFAULT" which means to
-          reset the time-to-live to the default value configured in the artifact
-          server.
-
-        * New REST interface to set the name of a Collection.
-
-        * Improved the ClientProtocolUtils to create documents for the operation
-          to set the Collection's time-to-live.
-
-        * The time-to-live of Collections is accessible in Collection objects.
-
-        * Introduced a "creation" timestamp for CollectionItems.
-
-        * Facets got a new property "index".
-
-
-    FIXED:
-
-        * A a new out() method is called that takes the "type" parameter specified in
-          the REST url to specify the concrete output type. This parameter has
-          not been used until now.
-
-        * flys/issue75 Fixed SQL syntax error in trigger creation.
-
-
-
-2011-05-13     RELEASE 1.2
-
-    NEW:
-
-        * Introduced "facets" as a new concept to select only parts/concrete
-          types of an Artifact's output. E.g. a computation might return data
-          that is used to draw two curves into a chart. With a "facet", just a
-          single curve might be selected to be drawn into the chart.
-
-        * New REST interfaces to set/get attributes of an ArtifactCollection.
-
-        * Artifacts that live in ArtifactCollections don't die (because of their
-          last_access time). A database trigger is used to update their
-          last_access time if their owner ArtifactCollection is updated.
-
-        * DatabaseCleaner removes outdated ArtifactCollections.
-
-        * XML documents stored aside users, collections and collection items are
-          compressed to reduce i/o costs.
-
-        * Introduced a listener mechanism that is called if a context is
-          created/closed. This listener might be implemented in concrete
-          artifact packages.
-
-        * Improvements in the ClientProtocolUtils: new functions to create
-          special xml documents
-
-
-    FIXED:
-
-        * flys/issue8 (Cleanup des DatabaseCleaner schlägt fehl)
-
-        * flys/issue9 (Fehler beim Laden von Artefakten - NO SUCH ARTIFACT obwohl Artefakt in DB vorhanden)
-
-
-2011-03-30     RELEASE 1.1
-
-2010-04-28     RELEASE 1.0
-
-    New:
-
-        * The path to database in the configuration can be relative to the
-          central configuration document using ${artifacts.config.dir} as
-          root.
-
-        * New interfaces to export and import artifacts:
-
-          HTTP GET  '/export/{uuid}'     returns an xml document representing
-                                         the state of an artifact
-          HTTP POST '/import'            takes an xml document that have
-                                         been created by /export before
-
-          The export mechanism uses a secret configured in the configuration
-          to sign export documents. An artifact import fails if the
-          signature of the xml document is not valid.
-
-        * The time to live of an artifact is queriable at the CallContext
-          object.
-
-
-    Added:
-
-        * JavaDoc documentation
-
-
-
-2010-03-08     RELEASE 0.5
-
-
-2010-01-27     RELEASE 0.4
-
-        New:
-
-		* Extended XML helper utilities a bit more
-                * Added a new interface describing services 
-                via XML documents via /services
-                
-
-2009-12-17      RELEASE 0.3
-
-	New:
-
-		* Extended XML helper utilities a bit
-		* Added a new general proxy artifact.
-		
-	FIXED:
-
-		* issue106: Konfiguration der GNV-Chart-Templates gehört nicht in das Artefakt-Framework
-
-2009-11-13      RELEASE 0.2
-
-	New:
-
-        * Configuration documents can be made relativ to
-        ${artifacts.config.dir}
- 
-        * Splitting up configuration of artifacts in depence to the
-        product.
-
-        * Added a first HOWTO for setting up the environemt and the
-        artifact server
-
-2009-10-07     RELEASE 0.1
-
-	New:
-
-	* Two sub projects: 'artifacts' and 'artifact-database'
-	
-		- 'artifacts' is a set of generic interfaces modelling 
-		  the workflow to parameterize a process and producing
-		  outputs.
-
-		  An artifact is created via factories. It describes
-		  itself via 'describe', it is parameterized via
-		  'feed' and brought to new states with 'advance'.
-		  Once able to produce output 'out' returns the
-		  requested product.
-
-		- 'artifact-database' is the default implemention
-		  of the workflow described with 'artifact'.
-
-	* artifact-database persists artifacts with a H2-database
-	  [http://www.h2database.com] (default) or a
-	  PostgeSQL 8.3+ database [http://www.postgresql.org/] (optional)
-
-	* artifacts may spawn background threads to copy with long running
-	  processes. After finishing work they are able to re-synchronize
-	  themselves to the artifact database.
-
-	* artifact-database is accessible via an HTTP REST server
-	  implemented on top of the Restlet API http://www.restlet.org/
-	  It has to be started as a service. Default TCP port: 8181
-
-	  HTTP GET  '/factories'             returns list of available factories.
-	  HTTP GET  '/create'                creates new artifact.
-	  HTTP GET  '/artifact/{uuid}'       returns a description of an artifact.
-	  HTTP POST '/artifact/{uuid}'       modifies an artifact ('feed', 'advance')
-	  HTTP POST '/artifact/{uuid}/{out}' delivers output for an artifact.
-
-	* artifact-database is configured with as XML file named conf.xml
-	  (default placement in directory $HOME/.artitactdb, directory
-	  may be changed with system property "artifact.database.dir")
--- a/artifact-database/src/main/java/de/intevation/artifactdatabase/state/FacetActivity.java	Tue Oct 16 15:51:33 2012 +0200
+++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/state/FacetActivity.java	Wed Oct 17 22:26:06 2012 +0200
@@ -7,8 +7,16 @@
 import java.util.List;
 import java.util.Map;
 
+import org.apache.log4j.Logger;
 
-/** Magical system. */
+
+/**
+ * System used in practice used by AttributeWriter in flys-artifacts to decide
+ * whether a facet is initially active.
+ * Provides a singleton Registry into which FacetActivities can be registered
+ * under a key (in practice the artifacts name.  This Registry is queried for
+ * new Facets in order to find whether they are active or inactive.
+ */
 public interface FacetActivity
 {
     /** Static 'activity' that lets all facets be active. */
@@ -41,9 +49,13 @@
      * decide whether or not a facet should be (initially) active. */
     public static final class Registry {
 
+        /** The logger for this class. */
+        private static Logger logger = Logger.getLogger(Registry.class);
+
         /** Singleton instance. */
         private static final Registry INSTANCE = new Registry();
 
+        /** Map of keys (artifact names) to the activities. */
         private Map<String, List<FacetActivity>> activities;
 
         /** Private singleton constructor for the Facet-Activity-Registry. */
@@ -65,11 +77,18 @@
         ) {
             List<FacetActivity> activityList = activities.get(key);
             if (activityList == null) {
+                logger.debug("FacetActivity.Registry: No activity "
+                             "registered for " + key);
                 return true;
             }
+            if (activityList.size() != 1) {
+                logger.warn("FacetActivity.Registry: More than one "
+                            "FacetActivity registered for " + key);
+            }
             for (FacetActivity activity: activityList) {
                 Boolean isActive =
                     activity.isInitialActive(artifact, facet, output);
+                // Nice. Only, in practice they never return NULL.
                 if (isActive != null) {
                     return isActive;
                 }
@@ -77,6 +96,8 @@
             return true;
         }
 
+
+        /** Add a FacetActivity under given key (usually artifacts name). */
         public synchronized void register(String key, FacetActivity activity) {
             List<FacetActivity> activityList = activities.get(key);
             if (activityList == null) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/README	Wed Oct 17 22:26:06 2012 +0200
@@ -0,0 +1,29 @@
+run.sh:
+
+From ChangeLog, 
+2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* artifact-database/doc/artifactdb-example-conf.xml: removed
+	* artifact-database/doc/example-conf/conf.xml: Re-added here.
+
+	The configuration is now found in a subdirectory set by the
+	system property 'artifact.database.dir'. If this property is
+	not set '~/.artitactdb' is used. This directory should contain
+	a file 'conf.xml' with the configuration details.
+	  If the artifact database is started as a standalone the config
+	directory is searched for 'log4j.properties' to configure the
+	logging.
+	  The H2 database is also search in this directory with the
+	name 'artifacts.db' if the connection url in config.xml is
+	not overwritten.
+
+        [...]
+
+	* contrib/run.sh: Little start script to launch artifact database for test
+	purpose from classes without the need to build packages. 
+	Background: The maven exec:exec goal does not work consistently for me (slt). 
+	At home it does, at work it doe not. Anyway. Usage:
+
+	$ ./contrib/run.sh \
+	      -Dartifact.database.dir=artifact-database/doc/example-conf/ \
+	      de.intevation.artifactdatabase.App

http://dive4elements.wald.intevation.org