sascha@15: 2009-09-07 Sascha L. Teichmann sascha@15: sascha@15: * artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: sascha@15: Implemented loading of artifacts from database. If the last access of an sascha@15: artifact is too long ago for its time to life, null is returned. sascha@15: sascha@15: * TODO: Added remark to implement a "killer" thread which periodically cleans the sascha@15: database from outdated artifacts and calls the endOfLife() method on those. sascha@15: sascha@14: 2009-09-07 Sascha L. Teichmann sascha@14: sascha@14: * artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java: sascha@14: Properties wrapper for SQL statements. The properties are looked up sascha@14: in resorces /sql/DRIVER.properties (DRIVER is the name of the db driver class, sascha@14: lowercased and '.' replaced by '-'. 'org.h2.Driver' turns to sascha@14: 'org-h2-driver.properties', e.g. sascha@14: sascha@14: * artifact-database/src/main/resources/sql/org-h2-driver.properties: sascha@14: SQL statements for H2 database. sascha@14: sascha@14: * artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: sascha@14: Artifacts are proxies/wrapped by an special Artifact implementation sascha@14: to bound db activities transparentely to the Artifact. XXX: It has sascha@14: to be evaluated if a more direct concept like extending the Artifact API sascha@14: to store itself would be more robust for future implementations. sascha@14: TODO: Loading Artifact from db is not implemented yet. sascha@14: sascha@13: 2009-09-06 Sascha L. Teichmann sascha@13: sascha@13: * artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: sascha@13: New. Used to wrap database presentations of artifacts into artifacts. sascha@13: sascha@13: * artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java: sascha@13: New. Implements a ArtifactDatabase backed by Backend. sascha@13: sascha@13: * artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java: sascha@13: Removed empty last line. sascha@13: sascha@13: * artifact-database/src/main/java/de/intevation/artifactdatabase/App.java: sascha@13: Wired together Backend, ArtifactDatabaseImpl and FactoryBootstrap. sascha@13: sascha@11: 2009-09-06 Sascha L. Teichmann sascha@11: sascha@11: * artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java: sascha@11: Typo in XPath expression. sascha@11: sascha@10: 2009-09-06 Sascha L. Teichmann sascha@10: sascha@10: * artifacts/src/main/java/de/intevation/artifacts/Artifact.java(setup): sascha@10: Added the setup() method to have symmetric counter part to endOfLife(). sascha@10: sascha@10: * artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java(timeToLiveUntouched): sascha@10: Added this method to let the factory decide how long an artifact should live in ms. sascha@10: This is not a part of the Artifact itself because this is only evaluated once when sascha@10: the artifact is created. sascha@10: sascha@10: * artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java: sascha@10: New. Simple base class implementation of the Artifact interface. sascha@10: sascha@10: * artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java: sascha@10: New. Simple base class implementation of the ArtifactFactory interface. When setup() sascha@10: on instances of this class is called, it pull ttl, name, description and sascha@10: the artifact class name from the node given. See artifactdb-example-conf.xml sascha@10: for examples. sascha@10: sascha@10: * artifact-database/pom.xml: Cleaned up XML. sascha@10: Introduced dependency to apache commons dbcp, used for pooling of the sascha@10: database connections to artifact db. sascha@10: Added parameters for the exec:exec goal to make the project sascha@10: startable without building packages. sascha@10: sascha@10: * artifact-database/doc/schema.sql: Removed AUTO_INCREMENT from primary key sascha@10: to avoid compatibility issues with other non-H2 databases (PostgreSQL, Oracle, ...) sascha@10: which have no or limited support for generated keys in the JDBC driver. Now sascha@10: using an explicit sequence. TTL ist now big int to bring the resolution to ms. sascha@10: sascha@10: * artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java: sascha@10: Refactored a bit to make the XPath access function usable on arbitrary XML sascha@10: documents and parts of. sascha@10: sascha@10: * artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java: sascha@10: New. Exposes DataSource from a apache dbcp connection pool configured by the sascha@10: global configuration file. See artifactdb-example-conf.xml for examples. sascha@10: TODO: Write some documentation about this. sascha@10: sascha@10: * artifact-database/doc/artifactdb-example-conf.xml: Adjusted to be a more realistic sascha@10: example config file. Added references to DefaultArtifact/DefaultArtifactFactory and sascha@10: demonstrate how to configure the connection pool. sascha@10: sascha@10: * TODO: Add remark to document the connection file. sascha@10: sascha@10: * artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java: sascha@10: Do not crash when config does not contain any factories. sascha@10: sascha@9: 2009-09-04 Sascha L. Teichmann tim@7: sascha@9: * artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java (getNodeXPath): sascha@9: New method to get a single node from configuration. tim@7: sascha@9: * artifacts/src/main/java/de/intevation/artifacts/Artifact.java (endOfLife): sascha@9: New method called when artifact is going to be removed from artifact data base. tim@6: sascha@9: 2009-09-04 Tim Englich sascha@9: sascha@9: * src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java (loa, sascha@9: * src/main/java/de/intevation/artifacts/ArtifactFactory.java (setup): sascha@9: New Parameter for Setop to put the ArtifactFactoryNode into the setup routine. sascha@9: sascha@9: 2009-09-04 Tim Englich sascha@9: sascha@9: * pom.xml: Edited sascha@9: Buildplugins for Maven-Compiler and Maven-Eclipse Plugin integrated. tim@6: sascha@5: 2009-09-04 Sascha L. Teichmann sascha@5: sascha@5: * artifact-database/doc/artifactdb-example-conf.xml: Example for artifact db sascha@5: configuration. sascha@5: sascha@5: * artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java: sascha@5: New. Default implementation of ArtifactContextFactory. Creates a DefaultArtifactContext. sascha@5: sascha@5: * artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java: sascha@5: New. Default implementation of ArtifactContext. sascha@5: sascha@5: * artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java: sascha@5: New. Class to bootstrap the context and the artifact factories. sascha@5: sascha@5: * artifact-database/src/main/java/de/intevation/artifactdatabase/App.java: Bootstrap sascha@5: factories. sascha@5: sascha@5: * artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java: New. sascha@5: Loads configuration as XML from a file. The file is specified by the system sascha@5: property "artifact.database.config" and defaults to "artifactdb-conf.xml". sascha@5: The configuration can be searched via XPath. sascha@5: sascha@5: * artifact-database/pom.xml: Made de.intevation.artifactdatabase.App the main sascha@5: class for start up. sascha@5: sascha@5: * TODO: Added remark to add logging to artifact database. sascha@5: sascha@4: 2009-09-04 Sascha L. Teichmann sascha@4: sascha@4: * artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java: sascha@4: New. Factory for a global context in the artifact data base. Useful to sascha@4: create shared ressources for artifacts like caches et al. sascha@4: sascha@4: * artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java, sascha@4: artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java, sascha@4: artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java, sascha@4: artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Uses the sascha@4: global context more consistent. sascha@4: sascha@4: * artifact-database/doc/schema.sql: Using BINARY instead of BLOB to sascha@4: avoid external files for each artifact blob. See H2 documentation sascha@4: for details. sascha@4: sascha@3: 2009-09-03 Sascha L. Teichmann sascha@3: sascha@3: * artifact-database/doc/schema.sql: Schema to store artifacts sascha@3: in H2 databases. sascha@3: sascha@3: * artifact-database/pom.xml: Added dependencies to H2 and sascha@3: restlet. sascha@3: sascha@3: * pom.xml: Added repository to fetch restlet. sascha@3: sascha@3: * README: Describe how to create a H2 database to store artifacts. sascha@3: TODO: Make it more general because description assumes usage of sascha@3: a unixoid system. sascha@3: sascha@2: 2009-09-03 Sascha L. Teichmann sascha@2: sascha@2: * artifact-database/**: created new sub project for the artefact sascha@2: database server. sascha@2: sascha@2: * pom.xml: Registered new sub project and made artifacts a sascha@2: sub project, too. sascha@2: sascha@2: * artifacts/pom.xml: Adjusted to make a artifacts a sub project. sascha@2: sascha@1: 2009-09-02 Sascha L. Teichmann sascha@1: sascha@1: * artifacts/src/main/java/de/intevation/artifacts/Artifact.java: sascha@1: Interface of the central component of the system. sascha@1: sascha@1: * artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java: sascha@1: Central place to store artifacts in. sascha@1: sascha@1: * artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java: sascha@1: Factory to build artifacts. Works together with ArtifactDatabase. sascha@1: sascha@1: * artifacts/pom.xml: Simple maven file to compile the project. sascha@1: sascha@0: 2009-09-01 Sascha L. Teichmann sascha@0: sascha@0: * README, Changelog, Changes, NEWS, TODO: New. Initial setup