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