sascha@195: 2011-03-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@195: 
sascha@195: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties
sascha@195: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@195: 	  The cleaner job is scanning the artifact database for outdated artifacts.
sascha@195: 	  artifacts are aging independent from the collections they are in.
sascha@195: 	  So the cleaner wants to delete artifacts that are still in
sascha@195: 	  collections which violates a foreign key constraint and renders
sascha@195: 	  the cleaner inop because this condition remains.
sascha@195: 
sascha@195: 	  The fix prevents this behavior by only deleting artifacts that
sascha@195: 	  are not in a collection.
sascha@195: 
sascha@193: 2011-03-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@193: 
sascha@193: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@193: 	  Fixed issue with outdating artifact if it is removed from a collection.
sascha@193: 
sascha@193: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@193: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@193: 	  Fixed statements.
sascha@193: 
ingo@192: 2011-03-08  Ingo Weinzierl <ingo@intevation.de>
ingo@192: 
ingo@192: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@192: 	  Implemented the setCollectionAttribute() and getCollectionAttribute()
ingo@192: 	  methods.
ingo@192: 
ingo@191: 2011-03-08  Ingo Weinzierl <ingo@intevation.de>
ingo@191: 
ingo@191: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
ingo@191: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
ingo@191: 	  Fixed some SQL statements that contained typos.
ingo@191: 
ingo@190: 2011-03-08  Ingo Weinzierl <ingo@intevation.de>
ingo@190: 
ingo@190: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@190: 	  Implemented removeCollectionArtifact() method.
ingo@190: 
ingo@189: 2011-03-07  Ingo Weinzierl <ingo@intevation.de>
ingo@189: 
ingo@189: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
ingo@189: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
ingo@189: 	  Modified the method signature of addCollectionArtifact(). This method
ingo@189: 	  got the incoming document as further parameter.
ingo@189: 	  Furthermore, listCollectionArtifacts() and addCollectionArtifact() are
ingo@189: 	  implemented now.
ingo@189: 
ingo@189: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
ingo@189: 	  Adapted the method call of addCollectionArtifact().
ingo@189: 
ingo@188: 2011-03-07  Ingo Weinzierl <ingo@intevation.de>
ingo@188: 
ingo@188: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCollectionItem.java:
ingo@188: 	  Fixed broken constructor.
ingo@188: 
ingo@187: 2011-03-07  Ingo Weinzierl <ingo@intevation.de>
ingo@187: 
ingo@187: 	* artifact-database/doc/schema-pg.sql,
ingo@187: 	  artifact-database/doc/schema-h2.sql: Renamed a SEQUENCE - schema
ingo@187: 	  definition and sql statements did not fit to each other.
ingo@187: 
ingo@187: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
ingo@187: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
ingo@187: 	  Fixed wrong table names in sql statements.
ingo@187: 
ingo@187: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
ingo@187: 	  Fixed SQL constants.
ingo@187: 
ingo@186: 2011-03-07  Ingo Weinzierl <ingo@intevation.de>
ingo@186: 
ingo@186: 	* artifacts/src/main/java/de/intevation/artifacts/CollectionItem.java:
ingo@186: 	  New. An interface that wraps artifacts and its attributes in collections.
ingo@186: 
ingo@186: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCollectionItem.java,
ingo@186: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionItem.java:
ingo@186: 	  Moved. The CollectionItem has been moved to DefaultCollectionItem and
ingo@186: 	  implements the new interface CollectionItem.
ingo@186: 
ingo@186: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
ingo@186: 	  The listCollectionArtifacts() method instantiates DefaultCollectionItem
ingo@186: 	  objects now.
ingo@186: 
sascha@185: 2011-03-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@185: 
sascha@185: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionItem.java:
sascha@185: 	  Add missing class.
sascha@185: 
sascha@184: 2011-03-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@184: 
sascha@184: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@184: 	  Added code to list the collection items in a collection.
sascha@184: 
sascha@184: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@184: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@184: 	  Added SQL statements to list the collection item 
sascha@184: 	  via a given collection uuid.
sascha@184: 
ingo@183: 2011-03-07  Ingo Weinzierl <ingo@intevation.de>
ingo@183: 
ingo@183: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@183: 	  Repaired the namespaces of attributes in the xml documents created in
ingo@183: 	  the collection context.
ingo@183: 
sascha@182: 2011-03-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@182: 
sascha@182: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/CollectionItem.java:
sascha@182: 	  New. Helper to be returned in Backend.listCollectionArtifacts()
sascha@182: 
sascha@182: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@182: 	  Copyright adjusted to 2010, 2011
sascha@182: 
ingo@181: 2011-03-07  Ingo Weinzierl <ingo@intevation.de>
ingo@181: 
ingo@181: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
ingo@181: 	  Adapted the sql statement to fetch all collections and all user
ingo@181: 	  collections from database (see rev1399 for more details).
ingo@181: 	  s/OUTER LEFT/LEFT OUTER/ solves the collection listing problem.
ingo@181: 
sascha@180: 2011-03-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@180: 
sascha@180: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@180: 	  Added code to delete a collection item. Fixed typo in SQL lookup.
sascha@180: 
sascha@180: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@180: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@180: 	  Added SQL statements to removed an artifact from a collection given
sascha@180: 	  a collection id and an artifact id.
sascha@180: 
sascha@179: 2011-03-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@179: 
sascha@179: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@179: 	  Added code to set the attribute of a collection item.
sascha@179: 
sascha@179: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@179: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@179: 	  Added SQL statements to set the attribute column of a collection item
sascha@179: 	  given a collection id and an artifact id.
sascha@179: 
sascha@178: 2011-03-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@178: 
sascha@178: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@178: 	  Added code to get the attribute of a collection item.
sascha@178: 
sascha@178: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@178: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@178: 	  Added SQL statements to get the attribute column of a collection item
sascha@178: 	  given the collection and the artifact uuid.
sascha@178: 
sascha@177: 2011-03-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@177: 
sascha@177: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@177: 	  Added new method isValidIdentifier() to check if identifier
sascha@177: 	  is valid. Its a wrapper around StringUtils.checkUUID() to
sascha@177: 	  make it more symmetric to newIdentifier() which wraps
sascha@177: 	  StringUtils.newUUID().
sascha@177: 
sascha@176: 2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@176: 
sascha@176: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@179: 	  TODO: Parse incoming document for an initial attribute of a
sascha@176: 	  collection item.
sascha@176: 
sascha@176: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@176: 	  Added code to add a collection item to a collection.
sascha@176: 
sascha@176: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@176: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@176: 	  Added SQL statements to handle creation of collection items.
sascha@176: 
sascha@175: 2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@175: 
sascha@175: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@175: 	  Added code to delete a collection.
sascha@175: 
sascha@175: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@175: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@175: 	  Added SQL statements to delete collections.
sascha@175: 
sascha@174: 2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@174: 
sascha@174: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQLExecutor.java:
sascha@174: 	  New. Helper class to simplify the database connection stuff like
sascha@174: 	  get a connection, prepare statements, commit, rollback in
sascha@174: 	  error cases and so on. This reduces the code repetition
sascha@174: 	  and complexity in the backend significantly.
sascha@174: 
sascha@174: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@174: 	  Use the new helper. (Should really have done this before!)
sascha@174: 
sascha@174: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java:
sascha@174: 	  Removed empty line at end of file.
sascha@174: 
sascha@173: 2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@173: 
sascha@173: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@173: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@173: 	  Argh! s/OUTER LEFT/LEFT OUTER/ solves the collection listing problem.
sascha@173: 
ingo@172: 2011-03-04  Ingo Weinzierl <ingo@intevation.de>
ingo@172: 
ingo@172: 	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
ingo@172: 	  Added a method that creates the CREATE document for creating new
ingo@172: 	  artifact collections.
ingo@172: 
sascha@171: 2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@171: 
sascha@171: 	* artifact-database/pom.xml: Lifted H2 to version 1.3.152.
sascha@171: 	  This hopefully eliminates the problem with the left outer join
sascha@171: 	  in listing of the user collections.
sascha@171: 
sascha@170: 2011-03-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@170: 
sascha@170: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@170: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@170: 	  Added new statement to extract the creation time for a given collection.
sascha@170: 	  XXX: listing of collection does not. Need to look at that.
sascha@170: 
sascha@170: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
sascha@170: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java,
sascha@170: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java
sascha@170: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
sascha@170: 	  Repaired parameter propagation of creation times and collection names.
sascha@170: 
sascha@170: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@170: 	  Adjusted the backend to propagate the creation time and the collection names.
sascha@170: 
ingo@169: 2011-03-04  Ingo Weinzierl <ingo@intevation.de>
ingo@169: 
ingo@169: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@169: 	  The createCollection() method returns a document that will now contain
ingo@169: 	  the uuid of the created artifact collection.
ingo@169: 
ingo@168: 2011-03-04  Ingo Weinzierl <ingo@intevation.de>
ingo@168: 
ingo@168: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@168: 	  If there is no creation time of a collection, we just add an empty
ingo@168: 	  string to the collection node in listCollections(). A
ingo@168: 	  NullPointerException is avoided!
ingo@168: 
sascha@167: 2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@167: 
sascha@167: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@167: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@167: 	  Added SQL statements to list collections.
sascha@167: 
sascha@167: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@167: 	  Added code to make collections accessible.
sascha@167: 
sascha@167: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@167: 	  Bind backend functionality to REST.
sascha@167: 
ingo@166: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@166: 
ingo@166: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@166: 	  Implemented the interface method addCollectionArtifact().
ingo@166: 
sascha@165: 2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@165: 
sascha@165: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/LazyBackendUser.java:
sascha@165: 	  New: Helper for lazy loading users.
sascha@165: 
ingo@164: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@164: 
ingo@164: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
ingo@164: 	  Introduced the ArtifactCollectionFactory as parameter of
ingo@164: 	  listCollections().
ingo@164: 
ingo@164: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@164: 	  Implemented the interface method listCollections().
ingo@164: 
ingo@163: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@163: 
ingo@163: 	* artifact-database/doc/example-conf/conf.xml: Corrected the attribute
ingo@163: 	  name of the artifact collection in the example node for the artifact
ingo@163: 	  collection factory.
ingo@163: 
ingo@162: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@162: 
ingo@162: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@162: 	  Two things: the collection get names specified in the incoming document
ingo@162: 	  of the POST request, and the deleteCollection() interface method is now
ingo@162: 	  implemented.
ingo@162: 
ingo@161: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@161: 
ingo@161: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
ingo@161: 	  Bugfixes while collection creation: Create a Connection object before
ingo@161: 	  setting its attributes and corrected the order of the values inserted
ingo@161: 	  into the SQL statement.
ingo@161: 
ingo@160: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@160: 
ingo@160: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@160: 	  The roles of users are stored into and loaded from database now.
ingo@160: 
sascha@159: 2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@159: 
sascha@159: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@159: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@159: 	  Added SQL statements to create collections.
sascha@159: 
sascha@159: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java,
sascha@159: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
sascha@159: 	  Added name to collection.
sascha@159: 
sascha@159: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java,
sascha@159: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java:
sascha@159: 	  Adjusted factory api to cope with names.
sascha@159: 
sascha@159: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@159: 	  Implemented create collection.
sascha@159: 
sascha@159: 	* database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@159: 	  Adjusted the backend call.
sascha@159: 
ingo@158: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@158: 
ingo@158: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
ingo@158: 	  Changed the method signature of createCollection(). The Backend needs
ingo@158: 	  the ArtifactCollectionFactory to create new instances of artifact
ingo@158: 	  collections.
ingo@158: 
ingo@158: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@158: 	  Implemented the interface method createCollection().
ingo@158: 
sascha@157: 2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@157: 
sascha@157: 	* artifacts/src/main/java/de/intevation/artifacts/UserFactory.java:
sascha@157: 	  Throw out useless stuff from interface.
sascha@157: 
sascha@157: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java:
sascha@157: 	  Adjusted default implementation.
sascha@157: 
sascha@157: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@157: 	  Use user factory to create new users.
sascha@157: 
sascha@157: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@157: 	  Call the backend with the new semantic.
sascha@157: 
sascha@156: 2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@156: 
sascha@156: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@156: 	  Added stubs for the collection handling.
sascha@156: 
sascha@156: 	* artifact-database/doc/schema-pg.sql, artifact-database/doc/schema-h2.sql:
sascha@156: 	  Added missing attribute column to the collection item table.
sascha@156: 
ingo@155: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@155: 
ingo@155: 	* artifact-database/doc/example-conf/conf.xml: Added a node that
ingo@155: 	  configures a default artifact collection factory.
ingo@155: 
ingo@155: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
ingo@155: 	  The artifact collection factory (currently just a single one) is read
ingo@155: 	  from configuration and setup with its parameters.
ingo@155: 
ingo@155: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@155: 	  Fetch the configured artifact collection factory from bootstrap.
ingo@155: 
sascha@154: 2011-03-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@154: 
sascha@154: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
sascha@154: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java,
sascha@154: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
sascha@154: 	  artifacts/src/main/java/de/intevation/artifacts/UserFactory.java:
sascha@154: 	  Propagate delete user errors correctly.
sascha@154: 
ingo@153: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@153: 
ingo@153: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java,
ingo@153: 	  artifacts/src/main/java/de/intevation/artifacts/UserFactory.java,
ingo@153: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
ingo@153: 	  Adapted the signature of deleteUser(). These methods don't await a User
ingo@153: 	  object any longer but just its identifier.
ingo@153: 
ingo@153: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@153: 	  Performance improvement: there is no need to fetch the user that we want
ingo@153: 	  to delete from database before deleting it. Now, we just call the
ingo@153: 	  deleteUser() method of the UserFactory with the identifier of the user.
ingo@153: 
ingo@152: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@152: 
ingo@152: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@152: 	  Implemented the deleteUser() interface method. This operation will now
ingo@152: 	  remove the specified user, its collections and the artifacts stored in
ingo@152: 	  these collections.
ingo@152: 
ingo@151: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@151: 
ingo@151: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
ingo@151: 	  Bugfix: Replaced wrong SQL statements with the correct ones.
ingo@151: 
ingo@150: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@150: 
ingo@150: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@150: 	  Implemented the listUsers() interface method. This operation will now
ingo@150: 	  return a list of users as document.
ingo@150: 
ingo@149: 2011-03-03  Ingo Weinzierl <ingo@intevation.de>
ingo@149: 
ingo@149: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@149: 	  Implemented the createUser() interface method. Calling this method will
ingo@149: 	  trigger the backend to create a new user described in the document given
ingo@149: 	  in the POST request.
ingo@149: 
sascha@148: 2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@148: 
sascha@148: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@148: 	  Added code to load all users from database.
sascha@148: 
sascha@147: 2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@147: 
sascha@147: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@147: 	  Added code to load user from database.
sascha@147: 
sascha@147: 	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
sascha@147: 	  Added method to reconstruct XML documents from byte arrays and input streams
sascha@147: 
sascha@144: 2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@144: 
sascha@144: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@144: 	  Added code to delete a user, his/her collections and quarantee that
sascha@144: 	  the artifacts exclusivly owner by the user are going to be deleted
sascha@144: 	  from the artifact database.
sascha@144: 
sascha@144: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@144: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@144: 	  Various SQL statements to cope with outdating artifacts and deleting
sascha@144: 	  users and collections.
sascha@144: 
ingo@143: 2011-03-02  Ingo Weinzierl <ingo@intevation.de>
ingo@143: 
ingo@143: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseOutResource.java:
ingo@143: 	  New. Abstract class that should be used as the base class for the
ingo@143: 	  artifact and collection out resource. The most stuff to handle the
ingo@143: 	  output is done in this class. Concrete subclasses are needed to call the
ingo@143: 	  correct methods in the artifact database.
ingo@143: 
ingo@143: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionOutResource.java:
ingo@143: 	  New. The OUT Resource for collections. It implements the two abstract
ingo@143: 	  methods of BaseOutResource.
ingo@143: 
ingo@143: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
ingo@143: 	  This class inherits from BaseOutResource now. The most code has been
ingo@143: 	  removed. Just the two abstract methods of BaseOutResource are
ingo@143: 	  implemented here.
ingo@143: 
ingo@143: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
ingo@143: 	  Added the CollectionOutResource.
ingo@143: 
ingo@142: 2011-03-02  Ingo Weinzierl <ingo@intevation.de>
ingo@142: 
ingo@142: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CollectionResource.java:
ingo@142: 	  New. A Rest resource that handles operations for a specific collection.
ingo@142: 
ingo@142: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
ingo@142: 	  Added the CollectionResource.
ingo@142: 
ingo@141: 2011-03-02  Ingo Weinzierl <ingo@intevation.de>
ingo@141: 
ingo@141: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ListCollectionsResource.java:
ingo@141: 	  New. A Rest resource that lists all collections of a specific user.
ingo@141: 
ingo@141: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
ingo@141: 	  Added the ListCollectionsResource.
ingo@141: 
ingo@140: 2011-03-02  Ingo Weinzierl <ingo@intevation.de>
ingo@140: 
ingo@140: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateCollectionResource.java:
ingo@140: 	  New. A Rest resource that might be used to create new collection that
ingo@140: 	  are owned by a specific user.
ingo@140: 
ingo@140: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
ingo@140: 	  Added the CreateCollectionResource.
ingo@140: 
sascha@139: 2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@139: 
sascha@139: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
sascha@139: 	  artifacts/src/main/java/de/intevation/artifacts/UserFactory.java:
sascha@139: 	  Removed needless imports.
sascha@139: 
sascha@138: 2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@138: 
sascha@138: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@138: 	  Call database to create a new user.
sascha@138: 
ingo@137: 2011-03-02  Ingo Weinzierl <ingo@intevation.de>
ingo@137: 
ingo@137: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/UserResource.java:
ingo@137: 	  New. A Rest resource that handles actions for a specific user.
ingo@137: 
ingo@137: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
ingo@137: 	  Added the UserResource.
ingo@137: 
ingo@136: 2011-03-02  Ingo Weinzierl <ingo@intevation.de>
ingo@136: 
ingo@136: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ListUsersResource.java:
ingo@136: 	  New. A Rest resource that lists all users provided by the artifact
ingo@136: 	  database.
ingo@136: 
ingo@136: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
ingo@136: 	  Added the ListUsersResource.
ingo@136: 
sascha@135: 2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@135: 
sascha@135: 	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
sascha@135: 	  Added a convinience method to transform an document
sascha@135: 	  into a byte array. Useful for storing documents as blob database columns.
sascha@135: 
sascha@134: 2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@134: 
sascha@134: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java:
sascha@134: 	  Wired Backend with DefaultUserFactory via the singleton.
sascha@134: 
sascha@133: 2011-03-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@133: 
sascha@133: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@133: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@133: 	  Fixed typo in keys.
sascha@133: 
sascha@133: 	* artifacts/src/main/java/de/intevation/artifacts/UserFactory.java,
sascha@133: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java:
sascha@133: 	  Removed superfluous identifier in createUser().
sascha@133: 
sascha@133: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@133: 	  Added stubs for handling of users.
sascha@133: 
ingo@132: 2011-03-02  Ingo Weinzierl <ingo@intevation.de>
ingo@132: 
ingo@132: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
ingo@132: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
ingo@132: 	  Removed duplicated method to list users.
ingo@132: 
ingo@131: 2011-03-02  Ingo Weinzierl <ingo@intevation.de>
ingo@131: 
ingo@131: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java:
ingo@131: 	  Added a new method getArtifactDatabase() that retrieves the artifact
ingo@131: 	  database which is used in all subclasses of this resource.
ingo@131: 
ingo@131: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateUserResource.java:
ingo@131: 	  Use getArtifactDatabase() to retrieve the artifact database.
ingo@131: 
ingo@131: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
ingo@131: 	  New. A resource that is used to create new users. The information about
ingo@131: 	  the user need to be included in the POST data of the request.
ingo@131: 
ingo@131: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
ingo@131: 	  Added the CreateUserResource.
ingo@131: 
ingo@130: 2011-03-02  Ingo Weinzierl <ingo@intevation.de>
ingo@130: 
ingo@130: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java,
ingo@130: 	  artifacts/src/main/java/de/intevation/artifacts/UserFactory.java: Added
ingo@130: 	  a setup method like the artifact factories have.
ingo@130: 
ingo@130: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@130: 	  Added an import statement for the UserFactory that was missing here.
ingo@130: 
ingo@130: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
ingo@130: 	  The setup() method of the UserFactory is called after the concrete
ingo@130: 	  factory class has been instantiated.
ingo@130: 
ingo@129: 2011-03-02  Ingo Weinzierl <ingo@intevation.de>
ingo@129: 
ingo@129: 	* artifacts/pom.xml: Bugfix: We are able to compile the artifacts package
ingo@129: 	  with local modifications again.
ingo@129: 
ingo@128: 2011-03-01  Ingo Weinzierl <ingo@intevation.de>
ingo@128: 
ingo@128: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
ingo@128: 	  Made it a singleton.
ingo@128: 
ingo@128: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
ingo@128: 	  Use the singleton Backend.
ingo@128: 
ingo@127: 2011-03-01  Ingo Weinzierl <ingo@intevation.de>
ingo@127: 
ingo@127: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@127: 	  Setup the user factory.
ingo@127: 
ingo@127: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
ingo@127: 	  New method to retrieve the user factory.
ingo@127: 
ingo@126: 2011-03-01  Ingo Weinzierl <ingo@intevation.de>
ingo@126: 
ingo@126: 	* artifact-database/doc/example-conf/conf.xml: Added a user-factory
ingo@126: 	  configuration.
ingo@126: 
ingo@125: 2011-03-01  Ingo Weinzierl <ingo@intevation.de>
ingo@125: 
ingo@125: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
ingo@125: 	  Added the registration of the UserFactory to the bootstrap process.
ingo@125: 
sascha@124: 2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
sascha@124: 
sascha@124: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@124: 	  artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@124: 	  Added SQL statements to handle users in database.
sascha@124: 
sascha@124: 	* artifact-database/doc/schema-pg.sql,
sascha@124: 	  artifact-database/doc/schema-h2.sql: Added missing UNIQUE constraints.
sascha@124: 
ingo@123: 2011-03-01  Ingo Weinzierl <ingo@intevation.de>
ingo@123: 
ingo@123: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUser.java:
ingo@123: 	  Added a new constructor to create new DefaultUsers with an identifier, a
ingo@123: 	  name and a role.
ingo@123: 
ingo@123: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUserFactory.java:
ingo@123: 	  New. A default implementation of a UserFactory that creates
ingo@123: 	  DefaultUsers.
ingo@123: 
ingo@122: 2011-03-01  Ingo Weinzierl <ingo@intevation.de>
ingo@122: 
ingo@122: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollectionFactory.java:
ingo@122: 	  A default implementation of an ArtifactCollectionFactory.
ingo@122: 
sascha@121: 2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
sascha@121: 
sascha@121: 	* artifact-database/doc/schema-pg.sql,
sascha@121: 	  artifact-database/doc/schema-h2.sql: Extended db scheme to
sascha@121: 	  cope with collections, collection items and users.
sascha@121: 
sascha@120: 2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
sascha@120: 
sascha@120: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java:
sascha@120: 	  Typo fix.
sascha@120: 
sascha@120: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java:
sascha@120: 	  Added method to figure out TTL of a collection.
sascha@120: 
ingo@119: 2011-03-01  Ingo Weinzierl <ingo@intevation.de>
ingo@119: 
ingo@119: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactCollection.java:
ingo@119: 	  A default implementation of a ArtifactCollection.
ingo@119: 
ingo@119: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultUser.java:
ingo@119: 	  A default implementation of a User.
ingo@119: 
sascha@118: 2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
sascha@118: 
sascha@118: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
sascha@118: 	  Added creation time.
sascha@118: 
sascha@118: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@118: 	  Typo fixes.
sascha@118: 
sascha@117: 2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
sascha@117: 
sascha@117: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
sascha@117: 	  Added external API for users and collections.
sascha@117: 
sascha@117: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@117: 	  Trivial implementation.
sascha@117: 
sascha@117: 2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
sascha@117: 
sascha@117: 	* src/main/java/de/intevation/artifacts/UserFactory.java,
sascha@117: 	  src/main/java/de/intevation/artifacts/ArtifactCollection.java: Added
sascha@117: 	  missing call contexts to API.
sascha@117: 
sascha@115: 2011-03-01	Sascha L. Teichmann <sascha.teichmann@intevation.de>
sascha@115: 
sascha@115: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollectionFactory.java:
sascha@115: 	  New: factory to create new collections.
sascha@115: 
sascha@115: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactCollection.java:
sascha@115: 	  New: Bundles artifacts to be owned by a user.
sascha@115: 
sascha@115: 	* artifacts/src/main/java/de/intevation/artifacts/UserFactory.java:
sascha@115: 	  New: Creates a new user.
sascha@115: 
sascha@115: 	* artifacts/src/main/java/de/intevation/artifacts/User.java:
sascha@115: 	  New: Model of a user.
sascha@115: 
sascha@115: 	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Typo fix.
sascha@115: 
ingo@114: 2011-02-18  Ingo Weinzierl <ingo@intevation.de>
ingo@114: 
ingo@114: 	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
ingo@114: 	  Added XPath constants and some method that retrieve important nodes of the
ingo@114: 	  DESCRIBE document.
ingo@114: 
ingo@113: 2011-02-16  Ingo Weinzierl <ingo@intevation.de>
ingo@113: 
ingo@113: 	* artifacts-common/src/main/java/de/intevation/artifacts/common/ArtifactNamespaceContext.java:
ingo@113: 	  New. Added the namespace context here to make it available in clients as
ingo@113: 	  well.
ingo@113: 	
ingo@113: 	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/ClientProtocolUtils.java:
ingo@113: 	  New. This class provides functions that help working with the artifact
ingo@113: 	  protocol. Currently, there is just a single function to create a new
ingo@113: 	  CREATE document.
ingo@113: 
ingo@112: 2011-02-10  Ingo Weinzierl <ingo@intevation.de>
ingo@112: 
ingo@112: 	* artifacts-common/src/main/resources/de/intevation/artifacts/common/Common.gwt.xml:
ingo@112: 	  A module description that is used by GWT.
ingo@112: 
ingo@112: 	* artifacts-common/pom.xml: The resulting jar archive of the 'package'
ingo@112: 	  target will now contain the compiled classes as well as the source files.
ingo@112: 	  Furthermore, the sources are compiled with Java-1.6. These two things are
ingo@112: 	  required for the jar to be included by GWT as module.
ingo@112: 
ingo@111: 2011-02-10  Ingo Weinzierl <ingo@intevation.de>
ingo@111: 
ingo@111: 	* artifacts-common/src/main/java/de/intevation/artifacts/common/model/User.java,
ingo@111: 	  artifacts-common/src/main/java/de/intevation/artifacts/common/model/DefaultUser.java:
ingo@111: 	  The interface description and a default implementation of a user.
ingo@111: 
ingo@110: 2011-02-07  Ingo Weinzierl <ingo@intevation.de>
ingo@110: 
ingo@110: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java:
ingo@110: 	  Added a method to add new StateData objects to the State.
ingo@110: 
ingo@110: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/data/StateData.java:
ingo@110: 	  Added a new method to the StateData interface to set the value of the
ingo@110: 	  object.
ingo@110: 
ingo@110: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/data/DefaultStateData.java:
ingo@110: 	  New. A default implementation of the StateData.
ingo@110: 
ingo@109: 2011-02-07  Ingo Weinzierl <ingo@intevation.de>
ingo@109: 
ingo@109: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
ingo@109: 	  Added new methods to append the current state and the reachable states to
ingo@109: 	  a root node.
ingo@109: 
ingo@108: 2011-02-07  Ingo Weinzierl <ingo@intevation.de>
ingo@108: 
ingo@108: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java:
ingo@108: 	  There is a new method that returns a state based on its ID.
ingo@108: 
ingo@108: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java:
ingo@108: 	  There is a new method that retrieves the reachable states of a specific
ingo@108: 	  state.
ingo@108: 
ingo@107: 2011-02-04  Ingo Weinzierl <ingo@intevation.de>
ingo@107: 
ingo@107: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProtocolUtils.java:
ingo@107: 	  New. This class provides functions that should help creating the artifact
ingo@107: 	  protocol documents of the services describe, feed, advance and out.
ingo@107: 
ingo@106: 2011-02-04  Ingo Weinzierl <ingo@intevation.de>
ingo@106: 
ingo@106: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
ingo@106: 	  Implements the method setup() - the ID and the description of the state
ingo@106: 	  are extracted at this place.
ingo@106: 
ingo@106: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java:
ingo@106: 	  Added a method to retrieve the states of a specified artifact.
ingo@106: 
ingo@106: 	* artifact-database/pom.xml: Added a dependency to the artifacts-common
ingo@106: 	  package.
ingo@106: 
ingo@105: 2011-02-04  Ingo Weinzierl <ingo@intevation.de>
ingo@105: 
ingo@105: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/AbstractState.java:
ingo@105: 	  New. An abstract implementation of a State. Some basic getter and setter
ingo@105: 	  methods are implemented - setup() and describe() need to be implemented by
ingo@105: 	  concrete subclasses.
ingo@105: 
ingo@104: 2011-02-03  Ingo Weinzierl <ingo@intevation.de>
ingo@104: 
ingo@104: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/StateEngine.java,
ingo@104: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/transition/TransitionEngine.java:
ingo@104: 	  Implementations to store the provided states and transitions of the
ingo@104: 	  artifact server. These engines should be filled at bootstrap.
ingo@104: 
ingo@104: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/state/State.java,
ingo@104: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/transition/Transition.java,
ingo@104: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/data/StateData.java:
ingo@104: 	  Interface descriptions for states, transitions and user inserted data.
ingo@104: 
ingo@103: 2011-02-02  Ingo Weinzierl <ingo@intevation.de>
ingo@103: 
ingo@103: 	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java:
ingo@103: 	  Corrected the package definition.
ingo@103: 
ingo@102: 2011-02-02  Ingo Weinzierl <ingo@intevation.de>
ingo@102: 
ingo@102: 	* artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java,
ingo@102: 	  artifacts-common/pom.xml: New package. It will serve some classes and
ingo@102: 	  utilities that are used in the artifact-database package as well as in
ingo@102: 	  concrete artifact packages.
ingo@102: 
ingo@102: 	* pom.xml: Added the artifacts-common package to be able to build all
ingo@102: 	  packages using just the upper level pom file.
ingo@102: 
ingo@101: 2011-02-01  Ingo Weinzierl <ingo@intevation.de>
ingo@101: 
ingo@101: 	* artifact-database/pom.xml: Upgraded Restlet from version 2.0-SNAPSHOT
ingo@101: 	  to the current stable version 2.0.4.
ingo@101: 
ingo@101: 	* pom.xml: The SCM plugin will not check for local changes any longer.
ingo@101: 	  Otherwise, we aren't able to build the project with outstanding
ingo@101: 	  modifications.
ingo@101: 
ingo@101: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
ingo@101: 	  Set the max number of threads available for the REST server to 512. This
ingo@101: 	  is a _WORKAROUND_ for Restlet-2.0.4 which seems to have a bug while
ingo@101: 	  handling threads.
ingo@101: 
ingo@101: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java,
ingo@101: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
ingo@101: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
ingo@101: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java,
ingo@101: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
ingo@101: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
ingo@101: 	  Renamed the packages of the Request and Response class that have been
ingo@101: 	  changed from Restlet 2.0-SNAPSHOT to 2.0.4.
ingo@101: 
ingo@100: 2010-11-02  Ingo Weinzierl <ingo@intevation.de>
ingo@100: 
ingo@100: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java,
ingo@100: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java,
ingo@100: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java,
ingo@100: 	  artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
ingo@100: 	  artifacts/src/main/java/de/intevation/artifacts/Service.java,
ingo@100: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java,
ingo@100: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
ingo@100: 	  artifacts/src/main/java/de/intevation/artifacts/CallMeta.java,
ingo@100: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
ingo@100: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java,
ingo@100: 	  artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java,
ingo@100: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
ingo@100: 	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java,
ingo@100: 	  artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java,
ingo@100: 	  contrib/run.sh: Added a license header to each of these files.
ingo@100: 
ingo@100: 	* LGPL.txt: License file for the GNU LGPL v2.1
ingo@100: 
ingo@99: 2010-06-14  Ingo Weinzierl <ingo_weinzierl@web.de>
ingo@99: 
ingo@99: 	* artifacts/pom.xml,
ingo@99: 	  pom.xml: Write svn revision to MANIFEST files while creating jar archives.
ingo@99: 
hans@97: 2010-04-28  Hans Plum <hans@intevation.de>
hans@97: 
hans@98: 	* Tagging Version 1.0:
hans@98: 	Because of finishing all functional requirements, rename to 1.0
hans@98: 	instead of 0.6
hans@97: 
ingo@96: 2010-04-28  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@96: 
ingo@96: 	* Changes, NEWS, ChangeLog: Summarized activities.
ingo@96: 
ingo@95: 2010-04-27  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@95: 
ingo@95: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
ingo@95: 	  The path to database can be configured with a relative path now.
ingo@95: 
sascha@94: 2010-04-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@94: 
sascha@94: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
sascha@94: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
sascha@94: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
sascha@94: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
sascha@94: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
sascha@94: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
sascha@94: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
sascha@94: 	  Brought all line lengths of non Javadoc lines below 80.
sascha@94: 
sascha@93: 2010-03-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@93: 
sascha@93: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java,
sascha@93: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java,
sascha@93: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
sascha@93: 	  Sorted imports.
sascha@93: 
sascha@91: 2010-03-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@91: 
sascha@92: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
sascha@92: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
sascha@92: 	  TODO:
sascha@92: 	  Last bunch of javadoc. Possible TODO: check for typos and cross reference problems
sascha@92: 	  but the main work should be done with this commit.
sascha@92: 
sascha@92: 2010-03-28	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@92: 
sascha@92: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
sascha@92: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
sascha@92: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
sascha@92: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
sascha@92: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
sascha@92: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
sascha@92: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
sascha@92: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
sascha@92: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
sascha@92: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
sascha@92: 	  More javadoc, some code formatting.
sascha@91: 
sascha@90: 2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@90: 
sascha@90: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
sascha@90: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java,
sascha@90: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java,
sascha@90: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java,
sascha@90: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
sascha@90: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
sascha@90: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java,
sascha@90: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
sascha@90: 	  Even more javadoc.
sascha@90: 
sascha@89: 2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@89: 
sascha@89: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java,
sascha@89: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java:
sascha@89: 	  More javadoc (fixes small glitches, too).
sascha@89: 
sascha@88: 2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@88: 
sascha@88: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
sascha@88: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java,
sascha@88: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
sascha@88: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
sascha@88: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
sascha@88: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
sascha@88: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java,
sascha@88: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
sascha@88: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
sascha@88: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java,
sascha@88: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
sascha@88: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
sascha@88: 	  Added javadoc to the REST package (complete). TODO: Add javadoc to the remaining classes
sascha@88: 	  of the 'artifactdatabase'.
sascha@88: 
sascha@87: 2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@87: 
sascha@87: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
sascha@87: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
sascha@87: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
sascha@87: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java,
sascha@87: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
sascha@87: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java,
sascha@87: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
sascha@87: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java:
sascha@87: 	  Added javadoc.
sascha@87: 
sascha@87: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/package.html,
sascha@87: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/package.html: New.
sascha@87: 	  Package descriptions.
sascha@88: 
sascha@86: 2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@86: 
sascha@86: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
sascha@86: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
sascha@86: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
sascha@86: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
sascha@86: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
sascha@86: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
sascha@86: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
sascha@86: 	  artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
sascha@86: 	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
sascha@86: 	  Removed trailing whitespace:
sascha@86: 	  find -name \*.java | xargs sed -i 's/[ \t]\+$//'
sascha@86: 
sascha@85: 2010-03-26	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@85: 
sascha@85: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
sascha@85: 	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
sascha@85: 	  Completed Javadoc of sub module 'artifacts'. TODO: add Javadoc to
sascha@85: 	  module 'artifact-database'
sascha@85: 
sascha@85: 	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
sascha@85: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java,
sascha@85: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
sascha@85: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java,
sascha@85: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
sascha@85: 	  artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java:
sascha@85: 	  Fixed vim modeline.
sascha@85: 
ingo@84: 2010-03-25  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@84: 
ingo@84: 	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java: Added a
ingo@84: 	  method 'getTimeToLive()' which retrieves the current artifact's time to 
ingo@84: 	  live. The ttl of an artifact is available where ever a CallContext object
ingo@84: 	  is existing.
ingo@84: 
ingo@84: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
ingo@84: 	  Added new field ttl of an artifact to an PersistentArtifact.
ingo@84: 
ingo@84: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@84: 	  Implemented 'getTimeToLive()' in CallContextImpl.
ingo@84: 
ingo@83: 2010-03-22  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@83: 
ingo@83: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
ingo@83: 	  Install a SLF4JBridgeHandler after logging is configured. This handler is
ingo@83: 	  used to route incoming java.util.logging logs to SLF4J. In our case, we
ingo@83: 	  route this incoming log to our log4j logger.
ingo@83: 
ingo@83: 	* artifact-database/pom.xml: Added dependencies for SLF4J 1.5.11.
ingo@83: 
ingo@82: 2010-03-22  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@82: 
ingo@82: 	  Issue208 (Remove special data of an 'out'-target before exporting
ingo@82: 	  artifacts)
ingo@82: 
ingo@82: 	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Added a
ingo@82: 	  'cleanup(Object context)' method to the interface definition of artifacts.
ingo@82: 	  This method should be called before exporting an artifact and should
ingo@82: 	  remove data stored on an artifact (or its current state) which have been
ingo@82: 	  written by an 'out'.
ingo@82: 
ingo@82: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
ingo@82: 	  Default implementation of cleanup method - nothing is done here yet.
ingo@82: 	  Override this method if an artifact needs to be cleaned before an export.
ingo@82: 
ingo@82: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java:
ingo@82: 	  Call cleanup method on the proxied artifact if proxied is existing.
ingo@82: 
ingo@82: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@82: 	  Call cleanup method before exporting an artifact as xml.
ingo@82: 
ingo@81: 2010-03-19  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@81: 
ingo@81: 	  Issue208 (Artifact gets a new identifier after being imported)
ingo@81: 
ingo@81: 	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Added a new
ingo@81: 	  method setIdentifier(String identifier).
ingo@81: 
ingo@81: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
ingo@81: 	  Default implementation of setIdentifier(String identifier) to give an 
ingo@81: 	  artifact a new identifier.
ingo@81: 
ingo@81: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@81: 	  Set a new identifier on an artifact after deserializing it.
ingo@81: 
ingo@81: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java:
ingo@81: 	  Set the identifier of the proxied artifact right after setting its own
ingo@81: 	  identifier.
ingo@81: 
ingo@80: 2010-03-19  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@80: 
ingo@80: 	  Issue208 (Artifact import)
ingo@80: 
ingo@80: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ImportResource.java:
ingo@80: 	  New server resource to import an artifact from an incoming xml document.
ingo@80: 	  The resource is available as /import and accepts xml documents send via
ingo@80: 	  HTTP POST.
ingo@80: 
ingo@80: 	* artifact-database/src/main/resources/sql/org-postgresql-driver.properties,
ingo@80: 	  artifact-database/src/main/resources/sql/org-h2-driver.properties: New sql
ingo@80: 	  statements to update an existing artifact.
ingo@80: 
ingo@80: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@80: 	  New method to import an artifact from an incoming xml document. The data
ingo@80: 	  contained in this document is decoded using the secret.
ingo@80: 
ingo@80: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
ingo@80: 	  New method to store an artifact into database or replace it if an artifact
ingo@80: 	  with the given id is already existing.
ingo@80: 
ingo@80: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java:
ingo@80: 	  Removed method to convert a byte array into a string (this is done by
ingo@80: 	  Apache's Hex class in commons codec) and added a new method to convert a
ingo@80: 	  string into a byte array using Apache commons codec as well.
ingo@80: 
ingo@80: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
ingo@80: 	  Register ImportResource to webserver.
ingo@80: 
ingo@80: 
ingo@80: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java,
ingo@80: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
ingo@80: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
ingo@80: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java:
ingo@80: 	  Converted the author javadocs.
ingo@80: 
ingo@79: 2010-03-16  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@79: 
ingo@80: 	  Issue208 (Artifact export)
ingo@79: 
ingo@79: 	* artifact-database/doc/example-conf/conf.xml: Added a section to configure
ingo@79: 	  a secret string used to identify artifact imports for security reason.
ingo@79: 	  Incoming artifact imports need to be identified with this secret, otherwise
ingo@79: 	  the import should be blocked.
ingo@79: 	  Xpath for this secret: '/artifact-database/export-secret/text()'
ingo@79: 
ingo@79: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
ingo@79: 	  New attribute 'exportSecret' and some code to read the secret from
ingo@79: 	  configuration while application startup.
ingo@79: 
ingo@79: 	* artifact-database/pom.xml: Added Apache Commons Codec library used to
ingo@79: 	  encode/decode artifact data.
ingo@79: 
ingo@79: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/StringUtils.java:
ingo@79: 	  New utilities class for frequently used string operations.
ingo@79: 
ingo@79: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@79: 	  Added some methods for exporting artifacts as xml documents. The data part
ingo@79: 	  is base64 encoded. A secret key is used while encoding this data to verify
ingo@79: 	  artifact imports, later.
ingo@79: 
ingo@79: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
ingo@79: 	  Added an artifact loader interface used to deserialize artifacts. 
ingo@79: 	  getArtifact() implements such an ArtifactLoader to return
ingo@79: 	  PersistentArtifacts.
ingo@79: 
ingo@79: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ExportResource.java:
ingo@79: 	  New. ServerResource to export artifacts (innerGet). This resource is
ingo@79: 	  available under "/export/{uuid}" via HTTP-GET request and returns an
ingo@79: 	  artifact specified by uuid as xml document.
ingo@79: 
ingo@79: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
ingo@79: 	  Register ExportResource to webserver.
ingo@79: 
ingo@79: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
ingo@79: 	  Added method to export artifacts.
ingo@79: 
ingo@79: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
ingo@79: 	  Reset bootstrap after application startup.
ingo@79: 
sascha@78: 2010-03-11	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@78: 
sascha@78: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java,
sascha@78: 	  artifacts/src/main/java/de/intevation/artifacts/CallContext.java,
sascha@78: 	  artifacts/src/main/java/de/intevation/artifacts/Service.java,
sascha@78: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java,
sascha@78: 	  artifacts/src/main/java/de/intevation/artifacts/CallMeta.java,
sascha@78: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
sascha@78: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java,
sascha@78: 	  artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java,
sascha@78: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
sascha@78: 	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java,
sascha@78: 	  artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java:
sascha@78: 	  Repaired the javadoc stuff.
sascha@78: 
sascha@77: 2010-02-21	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@77: 
sascha@77: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java,
sascha@77: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java,
sascha@77: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java,
sascha@77: 	  artifacts/src/main/java/de/intevation/artifacts/Service.java,
sascha@77: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java,
sascha@77: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
sascha@77: 	  artifacts/src/main/java/de/intevation/artifacts/CallMeta.java,
sascha@77: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
sascha@77: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java,
sascha@77: 	  artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java,
sascha@77: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
sascha@77: 	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java,
sascha@77: 	  artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java:
sascha@77: 	  find -name \*.java | \
sascha@77: 	  xargs sed -i \
sascha@77: 	  -e 's/@author[ ]\+\([^(<]\+\)[<(]\([^>)]\+\)[>)]/@author <a href="mailto:\2">\1<\/a>/g' \
sascha@77: 	  -e 's@[ ]\+</a>@</a>@g'
sascha@77: 
sascha@77: 	  Bring @author javadoc tags in form '@author <a href="john.doe@example.com">John Doe</a>'
sascha@77: 	  to make the sources to be able to be formatted with jalopy (http://jalopy.sourceforge.net).
sascha@77: 
ingo@76: 2010-02-05  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@76: 
ingo@76: 	  Issue170
ingo@76: 	
ingo@76: 	* artifact-database/pom.xml: Changed log4j version to 1.2.14 (later version
ingo@76: 	  causes errors and breaks while maven build process).
ingo@76: 
tim@75: 2010-02-01  Tim Englich  <tim.englich@intevation.de>
tim@75: 
tim@75: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java (innerPost): 
tim@75: 	  Put the XML-Document which was send by the client to the 
tim@75: 	  ArtifactDatabase.createArtifactWithFactory-Method.
tim@75: 	  
tim@75: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java (createArtifact),
tim@75: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java (createArtifactWithFactory),
tim@75: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java (setup),
tim@75: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java (setup),
tim@75: 	  artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java (createArtifactWithFactory),
tim@75: 	  artifacts/src/main/java/de/intevation/artifacts/Artifact.java (setup): 
tim@75: 	  Changed Method signatures so that it is possible to put the Document
tim@75: 	  which will be send during the create Step of an Artifact to the Setup-Routine
tim@75: 	  of an Artifact.
tim@75: 	  Now it is possible to send further Informations to the Artifact using the 
tim@75: 	  XML-Document.
tim@75: 	  This is nessesary for manipoulating the Artifact e.g. setting Parameters 
tim@75: 	  which should only be displaied or e.g. put an Geometry-Object into the 
tim@75: 	  Artifact which should limit the displayed results.
tim@75: 
hans@74: 2010-01-27  Hans Plum <hans@intevation.de>
hans@74: 
hans@74: 	RELEASE 0.4
hans@74: 
hans@74: 	* Changes, NEWS, ChangeLog: summarized activities.
hans@74: 
sascha@73: 2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@73: 
sascha@73: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServiceResource.java:
sascha@73: 	  New REST wrapper to call the service. Bound under '/service/{service}' 
sascha@73: 	  where '{service}' is the name of the service as announced by '/services'.
sascha@73: 
sascha@73: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
sascha@73: 	  Register new resource to web server.
sascha@73: 
sascha@72: 2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@72: 
sascha@72: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ServicesResource.java:
sascha@72: 	  New. Serves a list of available services under '/services' as XML. Structure
sascha@72: 	  is much like '/factories' with 's/artifact/service/'.
sascha@72: 
sascha@72: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
sascha@72: 	  Register new resource to web server.
sascha@72: 
sascha@71: 2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@71: 
sascha@71: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
sascha@71: 	  Load service factories while bootstrapping the server.
sascha@71: 
sascha@71: 	* artifact-database/doc/example-conf/conf.xml: Added examples for trivial services.
sascha@71: 
sascha@70: 2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@70: 
sascha@70: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
sascha@70: 	  Forgot to throw exception if service is not available.
sascha@70: 
sascha@70: 	* artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java:
sascha@70: 	  Fixed indention.
sascha@70: 
sascha@70: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
sascha@70: 	  Implemented service factory loading trivial. TODO: Load
sascha@70: 	  them from the configuration.
sascha@70: 
sascha@70: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@70: 	  Serve the services.
sascha@70: 
sascha@70: 2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@69: 
sascha@69: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultService.java:
sascha@69: 	  Default implementation of a service. Useful as a base class.
sascha@69: 
sascha@69: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultServiceFactory.java:
sascha@69: 	  Default implementation of a service factory. Modelled right after
sascha@69: 	  DefaultArtifactFactory. Useful as a base class.
sascha@69: 
sascha@70: 2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@68: 
sascha@68: 	* artifacts/src/main/java/de/intevation/artifacts/Service.java: New.
sascha@68: 	  Interface to describe a service. It takes XML documents and produces
sascha@68: 	  XML documents.
sascha@68: 
sascha@68: 	* artifacts/src/main/java/de/intevation/artifacts/ServiceFactory.java:
sascha@68: 	  Factory to create services. Setup at startup.
sascha@68: 
sascha@68: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
sascha@68: 	  Added methods to describe the available services and call them.
sascha@68: 
sascha@68: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@68: 	  Implemented new ArtifactDatabase interface trivial. TODO:
sascha@68: 	  Setting it up from configuration, do the processing, register
sascha@68: 	  urls in REST server and so on.
sascha@68: 
sascha@70: 2010-01-22	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@67: 
sascha@67: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
sascha@67: 	  Added method 'toStream()' to copy a document into an output stream.
sascha@67: 
ingo@66: 2010-01-15  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@66: 
ingo@66: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
ingo@66: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
ingo@66: 	  Added a method 'getInternalArtifactFactory' to get an ArtifactFactory by
ingo@66: 	  its name.
ingo@66: 
ingo@66: 	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java: Added
ingo@66: 	  'getDatabase' method to get access to the ArtifactDatabase from context.
ingo@66: 
ingo@65: 2010-01-12  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@65: 
ingo@65: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java,
ingo@65: 	  artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
ingo@65: 	  Create document namespace aware and adapted XPath expressions for this.
ingo@65: 
ingo@64: 2010-01-09  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@64: 
ingo@64: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
ingo@64: 	  Added	convenient method to add attributes to nodes. Attributes have no
ingo@64: 	  prefix as default.
ingo@64: 
ingo@64: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
ingo@64: 	  Adapted xpath (added prefix) to find action and made the document which is
ingo@64: 	  created by this resource namespace aware.
ingo@64: 
sascha@63: 2009-12-17	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@63: 
sascha@63: 	RELEASE 0.3
sascha@63: 
sascha@63: 	* Changes, NEWS, ChangeLog: summarized activities.
sascha@63: 
sascha@62: 2009-12-16	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@62: 
sascha@62: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
sascha@62: 	  Added static method parseDocument(File) to load document from
sascha@62: 	  file.
sascha@62: 
ingo@61: 2009-12-15  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@61: 
ingo@61: 	  Issue106
ingo@61: 
ingo@61: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
ingo@61: 	  Removed path to chart template which doesn't belong here.
ingo@61: 
sascha@60: 2009-12-11	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@60: 
sascha@60: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java:
sascha@60: 	Removed needless import.
sascha@60: 
ingo@59: 2009-11-23  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@59: 
ingo@59: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
ingo@59: 	  Added path to chart template file and a new method to retrieve the
ingo@59: 	  configuration.
ingo@59: 
sascha@58: 2009-11-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@58: 
sascha@58: 	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
sascha@58: 	Added a context dictionary accessible through putContextValue(key, value)
sascha@58: 	and getContextValue(key). Purpose is make artifact calls stackable and
sascha@58: 	transfer information through the call level transparently.
sascha@58: 
sascha@58: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@58: 	Adjusted default implementation of CallContext.
sascha@58: 
sascha@58: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ProxyArtifact.java:
sascha@58: 	New. A general proxy class for artifacts in artifact databases. This class uses 
sascha@58: 	the extended call context semantics.
sascha@58: 
sascha@58: 	The artifact calls (feed, describe, out, ...) are passed to a proxied artifact.
sascha@58: 	If the proxied artifact decides to be replaced by some other artifact it has to
sascha@58: 	to store a reference to the replacement artifact in the call context with
sascha@58: 	putContextValue(ProxyArtifact.REPLACE_PROXY, my_new_artifact). After the call
sascha@58: 	is finished the proxied object will change. This indirect callback mechanism is
sascha@58: 	used to minimize side effects.
sascha@58: 
sascha@58: 	The identifier() call is not forwarded to the proxied artifact to have a stable id.
sascha@58: 
sascha@58: 	Limitations: This mechanism does not let you build real matroska (multi level)
sascha@58: 	like artifact structures. This would only be possible if a kind of call context
sascha@58: 	stack is introduced.
sascha@58: 
hans@57: 2009-11-13  Hans Plum <hans@intevation.de>
hans@57: 
hans@57: 	RELEASE 0.2
hans@57: 
hans@57: 	* Changes, NEWS summarized
hans@57: 
ingo@56: 2009-11-11  Ingo Weinzierl <ingo.weinzierl@intevation.de>
ingo@56: 
ingo@56: 	* HOWTO: Added HOWTO describing the setup of the environment (apache, 
ingo@56: 	  tomcat, gnv).
ingo@56: 
sascha@55: 2009-11-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@55: 
sascha@55: 	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java: describe() now may
sascha@55: 	given an input XML document (which can be null to indicate that no input is given).
sascha@55: 
sascha@55: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
sascha@55: 	Adjusted to implemented the Artifact interface.
sascha@55: 
sascha@55: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java: Pass through
sascha@55: 	the optional XML input document to describe().
sascha@55: 
sascha@55: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@55: 	Implements the adjusted ArtifactDatabase interface.
sascha@55: 
sascha@55: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
sascha@55: 	Now its also possible to send describe() as a POST request. The request body is handled as
sascha@55: 	XML.
sascha@55: 
tim@54: 2009-10-21  Tim Englich  <tim.englich@intevation.de>
tim@54: 
hans@57: 	Issue 59: Make paths in configuration relativ
hans@57: 
sascha@55: 	* src/main/java/de/intevation/artifactdatabase/Config.java (replaceConfigDir): 
sascha@55: 	Applied patch from slt to set the Configuration Folder into the AbsoluteFileName issue59
sascha@55: 
sascha@53: 2009-10-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@53: 
sascha@53: 	RELEASE 0.1
sascha@53: 
sascha@53: 	* Changes, NEWS: Summaried changes.
sascha@53: 
sascha@52: 2009-10-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* Changelog -> ChangeLog: Renamed to make eclipse happy.
sascha@52: 
sascha@52: 2009-10-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java:
sascha@52: 	Initial instance variable with given languages in constructor.
sascha@52: 
sascha@52: 2009-10-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java:
sascha@52: 	Better implementation for fetching the preferred locale.
sascha@52: 
sascha@52: 2009-10-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/CallMeta.java:
sascha@52: 	Added method to fetch preferred locale.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java:
sascha@52: 	Trivial (and incorrect!) implementation.
sascha@52: 
sascha@52: 2009-10-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	Add i18n support via "Accept-Language" HTTP headers.
sascha@52: 
sascha@52: 	* artifact-database/pom.xml: Using restlet 2.0 snapshot. 
sascha@52: 	M3 does not implement the required API, M4 is not in maven repo yet.
sascha@52: 	TODO: Bring to M4 as soon it is released in maven repository.
sascha@52: 
sascha@52: 	* contrib/run.sh: Adjusted to use the snapshot.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/CallMeta.java:
sascha@52: 	New. Meta information of a call, languages, e.g.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/PreferredLocale.java:
sascha@52: 	New. Model preferred languages.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
sascha@52: 	Has now a reference to the meta information.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
sascha@52: 	describe, feed, advance and out call contexts are now enriched with 
sascha@52: 	external meta data.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
sascha@52: 	Additional debug output how long the cleaner slept between cleanups.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultPreferredLocale.java:
sascha@52: 	New. Default implementation of PreferredLocale.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultCallMeta.java:
sascha@52: 	New. Default implementation of CallMeta.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@52: 	Adjusted to take the additional meta information.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java:
sascha@52: 	Added a method to create a CallMeta object from web client information.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
sascha@52: 	Call the artifact database with the meta data from there base class BaseResoure.
sascha@52: 
sascha@52: 2009-10-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java,
sascha@52: 	artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java,
sascha@52: 	artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
sascha@52: 	Removed trailing whitespace.
sascha@52: 
sascha@52: 2009-10-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@52: 	Removed needless imports.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
sascha@52: 	Be more verbose on output on which host the REST server is bound.
sascha@52: 
sascha@52: 2009-09-30  Hans Plum <hans@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/doc/example-conf/conf.xml, README:
sascha@52: 	Fixed inconsistencies after changes in h2-configuraton.
sascha@52: 
sascha@52: 2009-09-29	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* pom.xml, artifacts/pom.xml, artifact-database/pom.xml: 
sascha@52: 	Set source encoding to UTF-8.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
sascha@52: 	If '/artifact-database/rest-server/listen/text()' is given in conf.xml
sascha@52: 	the value is used to bind REST server to that interface.
sascha@52: 
sascha@52: 	* artifact-database/doc/example-conf/conf.xml: Added 'listen' to
sascha@52: 	demo configuration.
sascha@52: 
sascha@52: 2009-09-24	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
sascha@52: 	Time delta calculation in SQL statement to figure out outdated artifacts
sascha@52: 	was broken.
sascha@52: 
sascha@52: 2009-09-24	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
sascha@52: 	Added debug output to make tracing of artifact lifecyle easier.
sascha@52: 
sascha@52: 2009-09-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/doc/schema-pg.sql, artifact-database/doc/schema-h2.sql:
sascha@52: 	Added column 'factory' to artifacts table to store the name of the
sascha@52: 	creating factory.
sascha@52: 
sascha@52: 	!!!
sascha@52: 	!!! THIS BREAKS OLD ARTIFACT DATABASES!
sascha@52: 	!!!
sascha@52: 	!!! To update old databases issue at database prompt:
sascha@52: 	!!!    ALTER TABLE artifacts ADD COLUMN factory VARCHAR(256) NOT NULL;
sascha@52: 	!!!
sascha@52: 
sascha@52: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties,
sascha@52: 	artifact-database/src/main/resources/sql/org-postgresql-driver.properties:
sascha@52: 	Fixed issue in SQL statements for touching artifacts. Fill factory name
sascha@52: 	into artifact relation.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactSerializer.java:
sascha@52: 	To allow different serialization models each ArtifactFactory has 
sascha@52: 	serializer for the artifacts.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java:
sascha@52: 	Add method to return ArtifactSerializer.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactSerializer.java:
sascha@52: 	Uses Java standard object serialisation. 
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
sascha@52: 	Uses th DefaultArtifactSerializer as ArtifactSerializer
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@52: 	The serialisation method is select via the 'factory' column of the 'artifacts'
sascha@52: 	table.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/App.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
sascha@52: 	Adjusted to fit the new serialisation model.
sascha@52: 
sascha@52: 2009-09-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/BaseResource.java:
sascha@52: 	New. Base class to log RuntimeExceptions to log4j error log.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
sascha@52: 	Adjusted to extend from BaseResource.
sascha@52: 
sascha@52: 2009-09-21	Tim Englich	<tim.englich@intevation.de>
sascha@52: 
sascha@52: 	* Added some IDE-specific files to the Ignorelist.
sascha@52: 
sascha@52: 2009-09-18	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/doc/schema.sql: removed.
sascha@52: 	* artifact-database/doc/schema-h2.sql: re-added here. It is H2 specific.
sascha@52: 
sascha@52: 	* artifact-database/doc/schema-pg.sql: New. Schema for PostgreSQL 8.3 +
sascha@52: 
sascha@52: 	* artifact-database/src/main/resources/sql/org-postgresql-driver.properties: New.
sascha@52: 	SQL statements for PostgreSQL.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
sascha@52: 	XPath expressions to access config were wrong. Added some debug logging.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@52: 	Added some debug logging.
sascha@52: 
sascha@52: 	* artifact-database/pom.xml: Added dependency to postgresql JDBC driver
sascha@52: 
sascha@52: 	* contrib/run.sh: Added postgresql JDBC to CLASSPATH.
sascha@52: 
sascha@52: 2009-09-16  Tim Englich  <tim.englich@intevation.de>
sascha@52: 
sascha@52: 	* src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java (represent) Edited: 
sascha@52: 	Switched from Get to Post communication.
sascha@52: 
sascha@52: 2009-09-16  Tim Englich  <tim.englich@intevation.de>
sascha@52: 
sascha@52: 	* src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java (feed) Edited:
sascha@52: 	Bug fixed: Now the method will call the feed Method of the used Artifact instead 
sascha@52: 	of the advance Method.
sascha@52: 
sascha@52: 2009-09-15	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
sascha@52: 	More warning log output in POST case.
sascha@52: 
sascha@52: 2009-09-15	Tim Englich	<tim.englich@intevation.de>
sascha@52: 
sascha@52: 	* src/main/java/de/intevation/artifactdatabase/Backend.java: 
sascha@52: 	Bug Fixed: Comparation for outdated Artifacts was Wrong.
sascha@52: 
sascha@52: 	* src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java (represent):
sascha@52: 	Warn-Logging Integrated for Exception analysys.
sascha@52: 
sascha@52: 2009-09-14	Tim Englich	<tim.englich@intevation.de>
sascha@52: 
sascha@52: 	* src/main/java/de/intevation/artifacts/ArtifactFactory.java Edited:
sascha@52: 	Make Objects Serializable 
sascha@52: 
sascha@52: 	* src/main/resources/sql/org-h2-driver.properties: 
sascha@52: 	Bug Fixed in SQL-Query
sascha@52: 
sascha@52: 2009-09-13	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	Refactored the persistent handling of the artifacts in the 
sascha@52: 	artifact database. When an artifact is called (describe, feed,
sascha@52: 	advance, out) a new CallContext is given instead of the
sascha@52: 	old Object context. CallContext.globalContext() returns the
sascha@52: 	old Object context now. CallContext.afterCall() may be
sascha@52: 	called from inside describe, feed, advance and out to tell
sascha@52: 	the artifact database what to do after the processing of
sascha@52: 	the specific call.
sascha@52: 	
sascha@52: 	The accepted values are:
sascha@52: 		- NOTHING    for doing nothing
sascha@52: 		- TOUCH      for just update the last access time
sascha@52: 		- STORE      for persisting the artifact.
sascha@52: 		- BACKGROUND to signal that the artifact has started
sascha@52: 		             a background operation.
sascha@52: 
sascha@52: 	After the background operation the artifact has to call
sascha@52: 	CallContext.fromBackground() to signal the artifact 
sascha@52: 	database that the artifact needs to be touched or stored.
sascha@52: 
sascha@52: 	!!! Without this call the artifact database assumes there
sascha@52: 	!!! is still some background operation on this artifact
sascha@52: 	!!! which prevents reclaiming resources
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/CallContext.java:
sascha@52: 	New. New API to cope with background processing.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
sascha@52: 	Replaced old Object context with CallContext context.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
sascha@52: 	Adjusted.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
sascha@52: 	For a better encapsulation of the persistence operations of the
sascha@52: 	artifacts the database does not return artifacts any more. It delegates
sascha@52: 	the describe, feed, advance and out call to internal structures.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabaseException.java:
sascha@52: 	New. Simplifies handling of error conditions inside of artifact database.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@52: 	Adjusted to new interface. Internally it handles the background API.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
sascha@52: 	Adjusted to new artifact database interface (which greatly simplifies things)
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
sascha@52: 	Artifacts in background are not removed from database any longer.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java: Little
sascha@52: 	re-wirering need for new cleanup.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: 
sascha@52: 	Simplified to do the SQL stuff only. The most infrastructure stuff is now done
sascha@52: 	in ArtifactDatabaseImpl.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Id.java:
sascha@52: 	New. Helper base class to enable filtering of background artifacts by there
sascha@52: 	database id.
sascha@52: 
sascha@52: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
sascha@52: 	Modified the INSERT statement to write the serialized artifact, too.
sascha@52: 
sascha@52: 2009-09-12	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java(out):
sascha@52: 	out() is now called with an java.io.Outputstream to place
sascha@52: 	the output.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java:
sascha@52: 	Adjusted.
sascha@52: 
sascha@52: 2009-09-11	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/doc/example-conf/conf.xml: Added
sascha@52: 	sleep time for cleanup thread.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
sascha@52: 	Start cleanup thread at startup.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@52: 	Make artifact restoring bit more robust, added ref to
sascha@52: 	cleanup thread to do an immediate cleanup when dead artifact
sascha@52: 	is found by lookup.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DatabaseCleaner.java:
sascha@52: 	New. The cleanup thread. It cleans up the artifact database
sascha@52: 	perodically and calls the endOfLife() methods of the dead
sascha@52: 	artifacts. Default cleanup interval is 5 minutes.
sascha@52: 
sascha@52: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
sascha@52: 	Tuned SQL a bit to fetch only a 50 artifacts in search for
sascha@52: 	outdated artifacts to avoid too much memory consumption.
sascha@52: 
sascha@52: 	* contrib/run.sh: Little tweak to work with more than one
sascha@52: 	commons-pool version installed.
sascha@52: 
sascha@52: 	* TODO: Removed remarks about the now implemented killer 
sascha@52: 	thread and the moves XML stuff.
sascha@52: 
sascha@52: 	* README: Changed text how to create a H2 database from
sascha@52: 	command line only. XXX: This is still broken. The best
sascha@52: 	way to set up the database by now is to start the Console 
sascha@52: 	client, connect to the database, c&p the schema.sql 
sascha@52: 	into the SQL text area and execute it.
sascha@52: 
sascha@52: 2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactOutResource.java:
sascha@52: 	New. Handler for 'out'. Reachable via HTTP GET '/artifact/{uuid}/{type}'.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/OutRepresentation.java:
sascha@52: 	New. Special representation for out. TODO: use streaming API.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
sascha@52: 	Regrouped imports.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java: Added
sascha@52: 	handler for 'out' to routing table.
sascha@52: 
sascha@52: 2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
sascha@52: 	Added handler for 'advance' and 'feed' to be called by HTTP POST '/artifact/{uuid}'.
sascha@52: 
sascha@52: 2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java:
sascha@52: 	Added handler for 'describe' to be fetched by HTTP GET '/artifact/{uuid}'.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
sascha@52: 	Add route to new describe handler.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java: Fixed
sascha@52: 	problems with serialization of artifacts to backing database.
sascha@52: 
sascha@52: 2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
sascha@52: 	Added method to get strings from XML documents via XPath.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
sascha@52: 	Used XMLUtils to create new XML documents.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@52: 	Forgot to store backend in instance variable.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
sascha@52: 	Added static instance of this class.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
sascha@52: 	Forward call to ArtifactDatabase, do some error handling.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@52: 	Treat problems with database errors more gracefully.
sascha@52: 
sascha@52: 	* contrib/run.sh: Added dependencies to common-pool and common-dbcp.
sascha@52: 
sascha@52: 	* artifact-database/doc/data/create-artifact.xml: New. example data set to
sascha@52: 	create an artifact. Usage
sascha@52: 
sascha@52: 	$ curl --data-binary @doc/data/create-artifact.xml -D - http://localhost:8181/create
sascha@52: 
sascha@52: 2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java:
sascha@52: 	Removed needless import.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
sascha@52: 	Moved some XPath stuff from Config into XMLUtils.
sascha@52: 
sascha@52: 2009-09-10	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java(setup): Added
sascha@52: 	callback parameter in form of the creating factory.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
sascha@52: 	Adjusted to match new Artifact interface.
sascha@52: 	
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
sascha@52: 	Call artifact.setup() with this.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
sascha@52: 	Removed namespace stuff.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactNamespaceContext.java:
sascha@52: 	Created namespace stuff, need for XPath for e.g.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java:
sascha@52: 	Use new namespace stuff.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java: 
sascha@52: 	Added author.
sascha@52: 
sascha@52: 2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
sascha@52: 	Added method newXPath() to create XPaths with namespace binding.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
sascha@52: 	Uses new method from XMLUtils.
sascha@52: 
sascha@52: 2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* trunk/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java,
sascha@52: 	trunk/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
sascha@52: 	Removed meta data from resources. They prevented serving the right results.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@52: 	Removed needless import.
sascha@52: 
sascha@52: 2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/CreateResource.java:
sascha@52: 	New. Resource to create an artifact. Not working on artifact database yet.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
sascha@52: 	Attached create to web server.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java:
sascha@52: 	Added meta data to Get annotation.
sascha@52: 
sascha@52: 2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/pom.xml: Added dependency to restlet.ext.xml
sascha@52: 	for XML handling in representations.
sascha@52: 
sascha@52: 	* contrib/run.sh: Adjusted to fit new dependency.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java:
sascha@52: 	New. Handle some boiler plate XML stuff. Move more stuff of this kind
sascha@52: 	into this file.
sascha@52: 
sascha@52: 	* TODO: Added remark to move more XML stuff into XMLUtils.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
sascha@52: 	Tell at startup on which port we are listing.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java:
sascha@52: 	Representation to list the available factories.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
sascha@52: 	Attach new factory listing to web app.
sascha@52: 
sascha@52: 2009-09-09	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/doc/artifactdb-example-conf.xml: removed
sascha@52: 	* artifact-database/doc/example-conf/conf.xml: Re-added here.
sascha@52: 
sascha@52: 	The configuration is now found in a subdirectory set by the
sascha@52: 	system property 'artifact.database.dir'. If this property is
sascha@52: 	not set '~/.artitactdb' is used. This directory should contain
sascha@52: 	a file 'conf.xml' with the configuration details.
sascha@52: 	  If the artifact database is started as a standalone the config
sascha@52: 	directory is searched for 'log4j.properties' to configure the
sascha@52: 	logging.
sascha@52: 	  The H2 database is also search in this directory with the
sascha@52: 	name 'artifacts.db' if the connection url in config.xml is
sascha@52: 	not overwritten.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
sascha@52: 	Refactored a bit to follow the new configuration policy.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
sascha@52: 	Build default connection url as described.
sascha@52: 
sascha@52: 	* artifact-database/doc/example-conf/log4j.properties: New.
sascha@52: 	example logging config
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
sascha@52: 	Added some more logging infos.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
sascha@52: 	Load the log4j configuration at startup and starts a REST standalone web server.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest: New.
sascha@52: 	Package for REST binding.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java:
sascha@52: 	Convenience wrapper to start a standalone REST web server.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/rest/RestApp.java:
sascha@52: 	Concrete REST application. TODO: attach restlets to interact with artifact database.
sascha@52: 
sascha@52: 	* contrib/run.sh: Little start script to launch artifact database for test
sascha@52: 	purpose from classes without the need to build packages. 
sascha@52: 	Background: The maven exec:exec goal does not work consistently for me (slt). 
sascha@52: 	At home it does, at work it doe not. Anyway. Usage:
sascha@52: 
sascha@52: 	$ ./contrib/run.sh \
sascha@52: 	      -Dartifact.database.dir=artifact-database/doc/example-conf/ \
sascha@52: 	      de.intevation.artifactdatabase.App
sascha@52: 
sascha@52: 2009-09-08	Tim Englich	<tim.englich@intevation.de>
sascha@52: 
sascha@52: 	* src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java : Edited
sascha@52: 	Constants for Namespace-URL and Namespace-Prefix added 
sascha@52: 
sascha@52: 2009-09-08	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java,
sascha@52: 	artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
sascha@52: 	Integrated log4j
sascha@52: 
sascha@52: 	* artifact-database/pom.xml: Added dependency to log4j
sascha@52: 
sascha@52: 	* TODO: Removed remark to integrate logging.
sascha@52: 
sascha@52: 2009-09-07  Tim Englich  <tim.englich@intevation.de>
sascha@52: 
sascha@52: 	* src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java: edited
sascha@52: 	Bug fixed in XPath Expression. Now the Nodes and not the Text of the Nodes will
sascha@52: 	be used instantiating the ArtifactFactory. 
sascha@52: 	
sascha@52: 2009-09-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@52: 	Implemented loading of artifacts from database. If the last access of an 
sascha@52: 	artifact is too long ago for its time to life, null is returned.
sascha@52: 
sascha@52: 	* TODO: Added remark to implement a "killer" thread which periodically cleans the
sascha@52: 	database from outdated artifacts and calls the endOfLife() method on those.
sascha@52: 
sascha@52: 2009-09-07	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/SQL.java:
sascha@52: 	Properties wrapper for SQL statements. The properties are looked up
sascha@52: 	in resorces /sql/DRIVER.properties (DRIVER is the name of the db driver class,
sascha@52: 	lowercased and '.' replaced by '-'. 'org.h2.Driver' turns to
sascha@52: 	'org-h2-driver.properties', e.g.
sascha@52: 
sascha@52: 	* artifact-database/src/main/resources/sql/org-h2-driver.properties:
sascha@52: 	SQL statements for H2 database.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@52: 	Artifacts are proxies/wrapped by an special Artifact implementation
sascha@52: 	to bound db activities transparentely to the Artifact. XXX: It has
sascha@52: 	to be evaluated if a more direct concept like extending the Artifact API
sascha@52: 	to store itself would be more robust for future implementations.
sascha@52: 	TODO: Loading Artifact from db is not implemented yet.
sascha@52: 
sascha@52: 2009-09-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java:
sascha@52: 	New. Used to wrap database presentations of artifacts into artifacts.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java:
sascha@52: 	New. Implements a ArtifactDatabase backed by Backend.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
sascha@52: 	Removed empty last line.
sascha@52: 	
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java:
sascha@52: 	Wired together Backend, ArtifactDatabaseImpl and FactoryBootstrap.
sascha@52: 
sascha@52: 2009-09-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
sascha@52: 	Typo in XPath expression.
sascha@52: 
sascha@52: 2009-09-06	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java(setup):
sascha@52: 	Added the setup() method to have symmetric counter part to endOfLife().
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java(timeToLiveUntouched):
sascha@52: 	Added this method to let the factory decide how long an artifact should live in ms.
sascha@52: 	This is not a part of the Artifact itself because this is only evaluated once when
sascha@52: 	the artifact is created.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifact.java:
sascha@52: 	New. Simple base class implementation of the Artifact interface.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactFactory.java:
sascha@52: 	New. Simple base class implementation of the ArtifactFactory interface. When setup()
sascha@52: 	on instances of this class is called, it pull ttl, name, description and
sascha@52: 	the artifact class name from the node given. See artifactdb-example-conf.xml
sascha@52: 	for examples.
sascha@52: 
sascha@52: 	* artifact-database/pom.xml: Cleaned up XML. 
sascha@52: 	Introduced dependency to apache commons dbcp, used for pooling of the 
sascha@52: 	database connections to artifact db. 
sascha@52: 	Added parameters for the exec:exec goal to make the project
sascha@52: 	startable without building packages.
sascha@52: 
sascha@52: 	* artifact-database/doc/schema.sql: Removed AUTO_INCREMENT from primary key
sascha@52: 	to avoid compatibility issues with other non-H2 databases (PostgreSQL, Oracle, ...)
sascha@52: 	which have no or limited support for generated keys in the JDBC driver. Now
sascha@52: 	using an explicit sequence. TTL ist now big int to bring the resolution to ms.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java:
sascha@52: 	Refactored a bit to make the XPath access function usable on arbitrary XML
sascha@52: 	documents and parts of.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DBConnection.java:
sascha@52: 	New. Exposes DataSource from a apache dbcp connection pool configured by the
sascha@52: 	global configuration file. See artifactdb-example-conf.xml for examples.
sascha@52: 	TODO: Write some documentation about this.
sascha@52: 
sascha@52: 	* artifact-database/doc/artifactdb-example-conf.xml: Adjusted to be a more realistic
sascha@52: 	example config file. Added references to DefaultArtifact/DefaultArtifactFactory and
sascha@52: 	demonstrate how to configure the connection pool.
sascha@52: 
sascha@52: 	* TODO: Add remark to document the connection file.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
sascha@52: 	Do not crash when config does not contain any factories.
sascha@52: 
sascha@52: 2009-09-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java (getNodeXPath):
sascha@52: 	New method to get a single node from configuration.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java (endOfLife):
sascha@52: 	New method called when artifact is going to be removed from artifact data base.
sascha@52: 
sascha@52: 2009-09-04	Tim Englich	<tim.englich@intevation.de>
sascha@52: 
sascha@52: 	* src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java (loa,
sascha@52: 	* src/main/java/de/intevation/artifacts/ArtifactFactory.java (setup):
sascha@52: 	New Parameter for Setop to put the ArtifactFactoryNode into the setup routine.
sascha@52: 
sascha@52: 2009-09-04	Tim Englich	<tim.englich@intevation.de>
sascha@52: 
sascha@52: 	* pom.xml: Edited
sascha@52: 	Buildplugins for Maven-Compiler and Maven-Eclipse Plugin integrated.
sascha@52: 
sascha@52: 2009-09-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/doc/artifactdb-example-conf.xml: Example for artifact db
sascha@52: 	configuration.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContextFactory.java:
sascha@52: 	New. Default implementation of ArtifactContextFactory. Creates a DefaultArtifactContext.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/DefaultArtifactContext.java:
sascha@52: 	New. Default implementation of ArtifactContext.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/FactoryBootstrap.java:
sascha@52: 	New. Class to bootstrap the context and the artifact factories.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/App.java: Bootstrap
sascha@52: 	factories.
sascha@52: 
sascha@52: 	* artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java: New.
sascha@52: 	Loads configuration as XML from a file. The file is specified by the system
sascha@52: 	property "artifact.database.config" and defaults to "artifactdb-conf.xml".
sascha@52: 	The configuration can be searched via XPath.
sascha@52: 
sascha@52: 	* artifact-database/pom.xml: Made de.intevation.artifactdatabase.App the main
sascha@52: 	class for start up.
sascha@52: 
sascha@52: 	* TODO: Added remark to add logging to artifact database.
sascha@52: 
sascha@52: 2009-09-04	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java:
sascha@52: 	New. Factory for a global context in the artifact data base. Useful to
sascha@52: 	create shared ressources for artifacts like caches et al.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java,
sascha@52: 	artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java,
sascha@52: 	artifacts/src/main/java/de/intevation/artifacts/ArtifactContextFactory.java,
sascha@52: 	artifacts/src/main/java/de/intevation/artifacts/Artifact.java: Uses the
sascha@52: 	global context more consistent.
sascha@52: 
sascha@52: 	* artifact-database/doc/schema.sql: Using BINARY instead of BLOB to
sascha@52: 	avoid external files for each artifact blob. See H2 documentation
sascha@52: 	for details.
sascha@52: 
sascha@52: 2009-09-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/doc/schema.sql: Schema to store artifacts
sascha@52: 	in H2 databases.
sascha@52: 
sascha@52: 	* artifact-database/pom.xml: Added dependencies to H2 and
sascha@52: 	restlet.
sascha@52: 
sascha@52: 	* pom.xml: Added repository to fetch restlet.
sascha@52: 
sascha@52: 	* README: Describe how to create a H2 database to store artifacts.
sascha@52: 	TODO: Make it more general because description assumes usage of
sascha@52: 	a unixoid system.
sascha@52: 
sascha@52: 2009-09-03	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifact-database/**: created new sub project for the artefact 
sascha@52: 	database server.
sascha@52: 
sascha@52: 	* pom.xml: Registered new sub project and made artifacts a
sascha@52: 	sub project, too.
sascha@52: 
sascha@52: 	* artifacts/pom.xml: Adjusted to make a artifacts a sub project.
sascha@52: 
sascha@52: 2009-09-02	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/Artifact.java:
sascha@52: 	Interface of the central component of the system.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactDatabase.java:
sascha@52: 	Central place to store artifacts in.
sascha@52: 
sascha@52: 	* artifacts/src/main/java/de/intevation/artifacts/ArtifactFactory.java:
sascha@52: 	Factory to build artifacts. Works together with ArtifactDatabase.
sascha@52: 
sascha@52: 	* artifacts/pom.xml: Simple maven file to compile the project.
sascha@52: 
sascha@52: 2009-09-01	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
sascha@52: 
sascha@52: 	* README, Changelog, Changes, NEWS, TODO: New. Initial setup