Mercurial > dive4elements > framework
diff ChangeLog @ 52:9293af6b0a0f
Renamed Changelog to ChangeLog to make eclipse happy.
artifacts/trunk@197 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 06 Oct 2009 14:51:28 +0000 |
parents | |
children | fecd142b6856 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ChangeLog Tue Oct 06 14:51:28 2009 +0000 @@ -0,0 +1,749 @@ +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