Mercurial > dive4elements > river
view flys-artifacts/ChangeLog @ 374:91fbaa2744bf
Added caching support for the wst value tables.
flys-artifacts/trunk@1783 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sun, 01 May 2011 10:58:38 +0000 |
parents | 7f7d6037d242 |
children | 60f63539d004 |
line wrap: on
line source
2011-05-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Use the cache for the wst value table if configured. * doc/conf/cache.xml: Choose a more precise name for the wst value table cache. 2011-04-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml: Added dependency to Ehcache. Apache 2.0 license. * doc/conf/conf.xml: Added configuration of ehcache. * doc/conf/cache.xml: New. Cache configurations. * src/main/java/de/intevation/flys/artifacts/cache/CacheFactory.java: New. Factory to access caches. 2011-04-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Forgot to add. * src/main/java/de/intevation/flys/artifacts/services/meta/Builder.java: New. Given a database connection and a XML template it generates an output with meta data about the database. * src/main/java/de/intevation/flys/artifacts/services/meta/CompiledStatement.java: New. Holds prepared statements optimized to be run in the stack of contextes. * src/main/java/de/intevation/flys/artifacts/services/meta/StackFrames.java: New. Model to hold a hierarchical scope of variables. * src/main/java/de/intevation/flys/artifacts/services/meta/ResultData.java: New. Stores data set fetched from a sql select to be iterated in a context. * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java, src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Removed superfluous imports. 2011-04-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/conf.xml: Added meta data service. * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: Stub for the meta data service. * src/main/resources/metadata/template.xml: Initial template for the meta data service. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Bugfix: Now, curves for Q values are drawn into a longitudinal section chart as well. Therefore, it was necessary to change the datastructure of the inner class ThemeList that stores all themes included in a chart in an ordered list (stored in a java.util.Vector now). 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: New. An abstract base class for ChartGenerators that create XY charts. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Sourced the generate() method out to the XYChartGenerator. * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: Implemented the methods to add W and Q facets to the chart. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Improved the calculation of the step with for ranges. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Added a method that returns the number of elements stored in the data pool. 2011-04-29 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Added a get() method which takes destination array as an argument. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: Changed the data structure to store w, q and kms values from List<Double> to TDoubleArrayList which stores native double values instead of big Double values. * pom.xml: Added the GNU Trove dependency. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/OutGenerator.java: Added the name a the requested facet to doOut(). Concrete generators should just create output for this facet now. * src/main/java/de/intevation/flys/exports/ChartGenerator.java, src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: Adapted the method signature of doOut(). * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Adapted the method call of OutGenerator.doOut(). 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * doc/conf/themes.xml: Added mappings for the facets longitudinal.section.w and longitudinal.section.q. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Added some methods to retrieve necessary information for computing the data of a waterlevel. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added methods to compute and retrieve the data of a waterlevel computation. 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WQKms.java: New. This model class represents a pool of data triples that consist of W, Q and Kms information. This class might be used to compute data for creating longitudinal section curves (which are based on those W, Q and Kms values). 2011-04-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Bugfix: Removed endless loop and a bug while iterating over Hibernate results. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java: New. An OutGenerator that creates longitudinal section curves. NOTE: This is just the stub - the out creation needs to be implemented! * doc/conf/conf.xml: Added the LongitudinalSectionGenerator. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * doc/conf/conf.xml: Bugfix: Added missing <output-generators> section. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WaterlevelState.java: New. This state should be reached if the 'calc.surface.curve' calculation method has been chosen. * doc/conf/artifacts/winfo.xml: Modified a transition and added the WaterlevelState. This state is reached if the 'calc.surface.curve' calculation method has been chosen. It currently has 1 output - a longitudinal section that is not implemented yet! 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/transitions/ValueCompareTransition.java: New. This transition is valid if the a data object of the current artifact equals/notequals a configured value in the transition model. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Bugfixes: - Adapted the parameters of the isStateReachable() call - added the artifact and the current state. - Append the outputs of a current state if the state is filled with valid data. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/transitions/DefaultTransition.java: Added the missing init() method that has been introduced in the interface some commits ealier. * src/main/java/de/intevation/flys/artifacts/transitions/TransitionFactory.java: Call init() after a Transition has been created. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/AttributeWriter.java: Bugfix: Introduced a <art:outputs> node in the attribute document of a Collection that contains further <art:output> nodes - instead of having multiple <art:output> nodes at toplevel of the document. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Adapted the XPath to retrieve the outputs in the attribute document of a Collection. 2011-04-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * contrib/visualize-transitions.xsl: Added to create a Graphviz digraph out of the config.xml. Usage: $ xsltproc --stringparam base-dir ../doc/conf/ \ contrib/visualize-transitions.xsl \ doc/conf/conf.xml > transitions.dot $ dot -Tsvg -o transitions.svg transitions.dot 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: If no data has been inserted so far, an IllegalArgumentException is thrown. 2011-04-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java:: A lot of new methods to retrieve the theme of a facet - used while creating the output of a facet/artifact. If a facet has no theme yet, it is initialized. 2011-04-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/AttributeParser.java, src/main/java/de/intevation/flys/collections/OutputParser.java: Removed useless imports. 2011-04-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartGenerator.java: New. An abstract OutGenerator that might be used to create chart output. Some basic things that are equal in all charts should be done here! * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: This OutGenerator no longer implements the OutGenerator directly, but it extends the ChartGenerator now. 2011-04-27 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Restructured the out() operation of a collection: Now, we collect a list of artifacts/facets and use this for the OutGenerator. Its doOut() method gets the attribute of an artifact - the position and the active state is managed by the Collection itself. 2011-04-26 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/ManagedFacet.java: New. a specialized facet that stores information about its position and its state (active/inactive) in an output of a collection. * src/main/java/de/intevation/flys/collections/AttributeParser.java: New. This parser takes the attributes (XML) of a collection and extracts the contained outputs with its facets. The result is a Map<String, Output>. * src/main/java/de/intevation/flys/collections/OutputParser.java: New. This parser is used to query the artifact's DESCRIBE and to extract the supported outputs. The result is a Map<String, Output>. * src/main/java/de/intevation/flys/collections/AttributeWriter.java: New. This writer merges the outputs contained in an attribute of a collection with the outputs of a collection's artifacts. * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: The attributes of a collection are written into its DESCRIBE document now. The OutputParser and AttributeParser are used to read the supported attributes by the collection and its artifacts - the AttributeWriter is used to merge both attributes and create a final attribute document. 2011-04-26 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java, src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: The facet-2-theme mappings are initialized at startup and stored in the FLYSContext. * src/main/java/de/intevation/flys/themes/ThemeFactory.java: Added a function that retrieves a theme from FLYSContext based on its name. 2011-04-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Corrected a silly c&p mistake. 2011-04-22 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java: Implementation of the "Ruecksprungkorrektur" to be done in "W fuer angepassten Abflusslaengschnitt". All tests show the expected results. In some corner cases the algorithm described in the "Anwenderhandbuch" chapter 3.3.4.3 "Korrektur" has some definition shortcomings: a - What should happend when you cannot find point 2 because you cannot step back one quarter from point 3 because there is no data there any more (river too short in this direction)? The implemented algorithm raises point 3' only to an according factor. E.g. If you can step back the whole quarter distance the elevation is the full quarter. If you can step back only the half of the quarter the elevation is only an eighth. b - If the water heights between point 2 and 3 are constant then the algorithm will produce a spline interpolation that lowers those values. Is this intended? For real data the back jumps are expected to be more in the middle of the distance ranges so the corner cases are maybe not so important. * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: Removed superfluous import. 2011-04-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/themes/ThemeFactory.java: Removed debug code that has been commited by accident. 2011-04-21 Ingo Weinzierl <ingo@intevation.de> * doc/conf/themes.xml: New. A first small theme configuration. * doc/conf/conf.xml: Added a link to the theme configuration. * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: Defined a key that is used to store a themes map in the FLYSContext. * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: The theme configuration is read at startup and the themes are stores in the FLYSContext. 2011-04-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/themes/Theme.java, src/main/java/de/intevation/flys/themes/DefaultTheme.java: New. The interface and its default implementation that represents themes used to style charts and maps. * src/main/java/de/intevation/flys/themes/ThemeField.java, src/main/java/de/intevation/flys/themes/DefaultThemeField.java: New. The interface and its default implementation that represents fields in themes. A theme might be "Lines" and one of its field might be "Color" or "Size". * src/main/java/de/intevation/flys/themes/ThemeFactory.java: A factory that creates new themes based on a theme configuration. 2011-04-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Implementation of "Abflusskurve/Abflusstafel" calculation. Added method interpolateWQ() which takes an km and results in a tuple of two double arrays containing the w/q values interpolated between the surrounding w/q values of the table. w values are interpolated linear, q values with a cubic spline. Drawing w over q gives you the discharge table at the given km. !!! This code needs testing !!! 2011-04-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml: Added dependency to Apache Commons Math 2.2 (Apache License 2.0) 2011-04-20 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Fix problem when sorting by q (copied w instead of q). 2011-04-20 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Fixed broken HQL statement. 2011-04-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: add a method interpolateW() which takes an array of q values and returns an equal sized array of w values. This is essentially the "Wasserstand/Wasserspiegellagen" calculation of desktop FLYS. If you want to do a calculation with given w values you have to convert the w values with DischargeTables.getQForW() first. !!! This code needs heavy testing !!! 2011-04-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: We need a getQForW() method and not getWForQ() because when doing a "Wasserstand/Wasserspiegellagen" calculation with given w values these values need to be translated to q values with the master discharge table. 2011-04-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Sorting of q values was done wrong. 2011-04-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: Ordered the list of annotations returned by this factory based on its range. 2011-04-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/MainValuesService.java: New. This service returns an XML document that includes the main values of a gauge based on a river name, a start and an end point. * doc/conf/conf.xml: Registered the MainValuesService. 2011-04-19 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/MainValuesFactory.java: A factory that provides methods to return MainValues. 2011-04-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Added static method getWForQ() to interpolate a w value for a given q value based on a given discharge table. 2011-04-19 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Added convenience constructors/methods to ease the access to the master discharge table of a gauge. 2011-04-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Moved the query complexity into view 'wst_value_table' and used this instead. 2011-04-18 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: Fetches w/q value tables from the backend. TODO: Move this to the backend and use a view. 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Changed the error key that is thrown if no input data was found so that the key is usable for GWT's i18n mechanism. 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: The inserted river is validated now (overrides validate() of DefaultState). 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: The inserted calculation method is validated now (overrides validate() of DefaultState). 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The input data of feed() are validated using the DefaultStates validate() method. * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: New method validate() that needs to be overidden by concrete subclasses. It should return true, if the data of the State is fine, otherwise it should raise an exception. NOTE: The exceptions are not translated in the server but in the client! * src/main/java/de/intevation/flys/artifacts/states/RangeState.java: New. This abstract class exists to provide some methods for handling ranges. Currently, there is a method that validates a given range based on min/max values. * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java, src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Implemented input data validation for ranges. NOTE: The input validation of concrete values has not been implemented yet! 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Removed debug code that has been commited by accident :-/ 2011-04-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The getGauge() method returns the first gauge based on the given start and end point of the river. * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Fixed potential bugs: if no gauge could be determined, the default values for W and Q are the minimum and maximum double values. 2011-04-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: Fills the DESCRIBE with default values for W and Q. 2011-04-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/WstFactory.java: New. Returns Wst object - based on a river. 2011-04-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Now provides some methods that return some basic objects inserted while parameterization: River, Gauge and so on. 2011-04-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java, src/main/java/de/intevation/flys/artifacts/services/RiverService.java: Bugfix: Repaired broken imports of the SessionHolder. 2011-04-15 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java: Moved this class to flys-backend. * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java, src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java, src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java, src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java, src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java: Adapted imports of the SessionHolder. 2011-04-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * trunk/src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java, trunk/src/main/java/de/intevation/flys/artifacts/services/RiverService.java: Acquire/release sessions in services to avoid db connection leaks. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Changed some method signatures - added a reference to the owner Artifact. * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: Modified method signatures based on the changes in DefaultState. * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: Added default values to the dynamic part of DESCRIBE. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: Added a function that returns a River object based on a given river name. 2011-04-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java, src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java, src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java, src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: Static methods are using the SessionHolder, too. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java: Added the setup() method that has been added to the interface description in the last commits. * doc/conf/conf.xml: Registered the SessionCallContextListener as CallContext.Listener. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java: Bugfix: Call correct method to retrieve an instance of SessionFactoryProvider. 2011-04-14 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java: New. Contains thread local session holder for hibernate sessions. * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: Uses session from SessionHolder. * src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java: Interacts with SessionHolder now. * src/main/java/de/intevation/flys/exports/ChartExportHelper.java: Removed superfluous import. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java: Implementation of a CallContext.Listener to open/close Hibernate Sessions for each request. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Some modifications related to the last commit - modification of the describe() signature of a State. 2011-04-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/GaugeSelect.java: Removed. We do not need a state to select a gauge - the selection takes place by choosing a start and an end point. 2011-04-13 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: Bugfix: added missing label node to root node and a namespace to the data node. 2011-04-12 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The name of the artifact 'winfo' is written into the DESCRIBE document now. We need this to have a proper way to distinguish between different artifacts in the UI. 2011-04-12 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Bugfix: States are filled with data before they describe themself. 2011-04-11 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/AnnotationsFactory.java: New. A factory that returns the annotations of a specific river. * src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java: New. This service provides a document that contains information about distances of a river. * doc/conf/conf.xml: Registered the DistanceInfoService. 2011-04-06 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: This collection overrides the out() operation now. The incoming request document is read and the related OutGenerator is used to create the output. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed the code to create discharge curves. It has moved to the DischargeCurveGenerator which now does this work. 2011-04-06 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/OutGenerator.java: The generate() method throws an IOException now. * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java: New. This OutGenerator creates discharge curves. 2011-04-06 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Changed the visibility of the getData() method. It's now public, because the OutGenerator needs an artifact's data. 2011-04-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/**/*.java: Removed trailing whitespace. 2011-04-03 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Make project compilable again by commenting out a not existing XMLDebug reference. 2011-03-31 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: Added code to parse the configured OutGenerators and to save them (in a map) in the FLYSContext. * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: Added a key that is used to save the OutGenerators Map in the context. 2011-03-31 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/OutGenerator.java: New. This interface is used to generator different types of output. ArtifactCollections will make use of this interface to create a collected output of all its artifacts. 2011-03-30 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Removed the Backend from FLYSArtifactCollection - used ArtifactDatabase operations instead. * TODO: Removed 'remove Backend reference' TODO. 2011-03-30 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Enhanced the configuration of the discharge curve output mode. This output now provides three facets - W, Q and the curve itself. 2011-03-30 Ingo Weinzierl <ingo@intevation.de> Tagged RELEASE 0.1 2011-03-30 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Renamed an output mode in the WINFO artifact configuration. 2011-03-29 Ingo Weinzierl <ingo@intevation.de> * src/main/resources/messages_de_DE.properties, src/main/resources/messages_de.properties: Changed a german string. 2011-03-29 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: Modified the available calculation modes and its order in the DESCRIBE document. * src/main/resources/messages.properties, src/main/resources/messages_de_DE.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Adapted the names of calculation modes. 2011-03-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Added the hash code of an artifact to the artifact part of the collection's DESCRIBE document. 2011-03-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Changed the background color of discharge curves to white. 2011-03-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Cache the scale, too. Otherwise two calls to getValues() with different arguments will result in the same output. 2011-03-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Introduced a 'scale' parameter in the getValues() method. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Filled the out() operation with code that draws a discharge table of one or more gauges specified by the given range in entered in a previous state. 2011-03-28 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/exports/ChartExportHelper.java: New. A helper class to exports charts. * pom.xml: Added dependencies to iText, Batik and JFreeChart. 2011-03-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/importer/PegelGltParser.java: Fixed swap of operands. 2011-03-28 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/GaugesFactory.java: New. Load gauges for a river and filter them for given ranges. 2011-03-25 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: Store data in a double [][] instead of interleaved double [] to be compatible with org.jfree.data.xy.DefaultXYDataset. 2011-03-25 Ingo Weinzierl <ingo@intevation.de> * TODO: Removed 'i18n' and 'step-back' TODOs and added an issue to remove the Backend reference from FLYSArtifactCollection. 2011-03-25 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: Added missing artifact namespace of an attribute in the DESCRIBE document. 2011-03-24 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java: New. This ArtifactCollection overrides the DefaultArtifactCollection to implement FLYS specific describe() and out() operations. * doc/conf/conf.xml: Use the FLYSArtifactCollection instead of the DefaultArtifactCollection for this application. 2011-03-24 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: New. Fetches values of discharge tables in form of packed w/q double arrays for given gauges. * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: Removed needless import. 2011-03-24 Ingo Weinzierl <ingo@intevation.de> * src/main/resources/messages_de_DE.properties: Added a german resource bundle to avoid exceptions in the flys artifacts. Sometimes, the Resources class is not able to find a 'de_DE' bundle and throws an exception. This is really strange, because it should use the 'de' bundle in that case, but it doesn't. 2011-03-23 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Added some code to append the output modes of previous states to the DESCRIBE document. TODO: Determine if the current state is already filled with data and append its output modes as well! 2011-03-22 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Enhanced the location_distance state with an output mode 'discharge_table'. 2011-03-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Write human readable strings as label attribute into the DESCRIBE output. Those labels are used to be displayed in the GUI. 2011-03-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: Added some further calculation types. * src/main/resources/messages.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n strings for the calculation types 2011-03-21 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Implemented the step-back part of the advance() operation. 2011-03-21 Ingo Weinzierl <ingo@intevation.de> * src/main/resources/messages_de.properties: Fixed a german umlaut. 2011-03-18 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Added new states for entering a location/distance and w/q. * src/main/resources/messages.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: New string for the location/distance and w/q input states. 2011-03-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/WQSelect.java: New. A state for the W/Q input of the WINFO parameterization. 2011-03-18 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Append an attribute 'uiprovider' to the dynamic UI node. * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: New. A state for the location/distance selection of the WINFO parameterization. 2011-03-17 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Added a new method getUIProvider() that might be overriden by concreted subclasses that should be rendered with a specific UIProvider. 2011-03-17 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The static UI part is created by the previous states now. This makes it possible to group the data objects (which is necessary to group the objects in the ui). * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Added a describeStatic() method that creates a node that contains the data of that state. 2011-03-17 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/RiverService.java: Removed TODO: the document contains the rivers provided by the backend now. 2011-03-17 Sascha L. Teichmann <sascha.teichmann@intevation.de> * pom.xml: Added dependency to flys backend. * src/main/java/de/intevation/flys/artifacts/model/River.java: Removed. We are using the backend model now. * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: Fetches the rivers from the backend. * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: Import fixes. 2011-03-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * doc/conf/conf.xml: Added section for database backend configuration. 2011-03-15 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: Fixed build error coming from different import of XMLUtils. 2011-03-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: Appended the missing label node that contains the human readable name of the data item. 2011-03-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java, src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: I18N of strings for the DESCRIBE document. * src/main/resources/messages.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: I18N strings for the calculcation mode state. 2011-03-14 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Modified the winfo states. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Adapted the artifact regarding the changes of the last commit. The states describe() method creates the dynamic UI node - the artifact needs to apply this node. * src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: New. The state for choosing the calculation mode. * src/main/resources/messages.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Added i18n strings for the calculation mode state. 2011-03-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: New. This is the base state for the FLYS application. It provides a method that creates the dynamic ui node for the DESCRIBE. * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, src/main/java/de/intevation/flys/artifacts/states/GaugeSelect.java: Both classes extend the abstract base class DefaultState. 2011-03-14 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/resources/Resources.java: New. This class retrieves the i18n strings from a ResourceBundle. * src/main/resources/messages.properties, src/main/resources/messages_en.properties, src/main/resources/messages_de.properties: Resource files for german and english translation. 2011-03-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Appended the data that have been inserted in former states into the static node of the DESCRIBE. 2011-03-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: The operations feed() and advance() return the description of the artifact using the describe() operation. This avoids additional server round trips in the client - the clients gets to know about the new state of the artifact immediately. 2011-03-10 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Implemented a part (step forward) of the advance operation. * TODO: Implement Step-Back in advance operation. 2011-03-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Implemented the abstract method getName(). It returns the constant 'winfo' string. * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: Implemented the feed action. The data of an incoming feed() operation is stored in StateData objects that are saved in a map in the artifact. NOTE: There is no input validation and no i18n of error messages (see TODO). 2011-03-09 Ingo Weinzierl <ingo@intevation.de> * TODO: This file contains some open points that need to be done. 2011-03-09 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java: New. This artifact serves as the default artifact for the FLYS application. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: This artifact now inherits from FLYSArtifact. Furthermore, there is one big change: we don't store the State objects itself in the artifact, but just the identifier of those. This makes the artifact smaller and more compatible agains previous versions of the software. 2011-03-08 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/services/RiverService.java: New. This service will retrieve a list of provided rivers. * doc/conf/conf.xml: Added a configuration for the RiverService. 2011-03-07 Ingo Weinzierl <ingo@intevation.de> * doc/conf/conf.xml: Added a section user-factory and collection-factory in the factories part of the configuration. 2011-03-01 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: Replaced the 'special' attribute from DESCRIBE with a 'uiprovider' attribute. 2011-02-08 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The RiverSelect state is called to create the UI part of the describe document. * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java: Implemented the dynamic UI part of describe(). The static part is not inserted into the describe document at the moment. We need a reference to the previous states for this. 2011-02-08 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java, src/main/java/de/intevation/flys/artifacts/model/River.java: New. A model class that represents a river and its factory to create concrete river instances. NOTE: Currently, this is just a mockup. The factory just returns two static rivers "Mosel" and "Saar" without a connection to a backend. 2011-02-07 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/StateFactory.java: The input data of a state is initialized with empty StateData objects after the State has been created. * doc/conf/artifacts/winfo.xml: Renamed the input data nodes of the states which now fits better to the class name of the implementation. 2011-02-07 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: The describe document returned by this artifact now contains the current state and the reachable states. 2011-02-07 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: The transitions are put into the TransitionEngine with the ID of the state - not longer with the artifact name. On this way, we are able to fetch just the transitions for a specific state, instead of all the transitions of an artifact. 2011-02-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Describe() returns the artifact's uuid and hash value. The whole implementation of describe() is still outstanding. 2011-02-04 Ingo Weinzierl <ingo@intevation.de> * doc/conf/artifacts/winfo.xml: Removed useless config stuff. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: Removed useless methods, and improved the init process - the first state is set as the current state for this artifact. * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, src/main/java/de/intevation/flys/artifacts/states/GaugeSelect.java: New. The states are used in the first two steps of the WINFOArtifact. Currently, they just implement stubs of the necessary methods setup() and describe(). 2011-02-04 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/State.java, src/main/java/de/intevation/flys/artifacts/transitions/TransitionEngine.java, src/main/java/de/intevation/flys/artifacts/transitions/Transition.java: Removed. These classes are placed in the artifact-database now. * src/main/java/de/intevation/flys/artifacts/transitions/DefaultTransition.java, src/main/java/de/intevation/flys/artifacts/transitions/TransitionFactory.java: Adapted imports of Transition. * src/main/java/de/intevation/flys/artifacts/states/StateFactory.java: New. This factory should be used to create concrete State objects. * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: Added a constant key to store the StateEngine in the context. * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: New method that initializes the states at application start. 2011-02-03 Ingo Weinzierl <ingo@intevation.de> * src/main/java/de/intevation/flys/artifacts/states/State.java: New. The interface description of a state. * src/main/java/de/intevation/flys/artifacts/transitions/Transition.java, src/main/java/de/intevation/flys/artifacts/transitions/DefaultTransition.java: New. The interface description and a default implementation of a transition. * src/main/java/de/intevation/flys/artifacts/transitions/TransitionEngine.java: New. The TransitionEngine stores all transitions for each artifact and should be used to determine, if an artifact can advance from one state to another. * src/main/java/de/intevation/flys/artifacts/transitions/TransitionFactory.java: New. Transitions should be created by using this class. * src/main/java/de/intevation/flys/artifacts/context/FLYSContext.java: New. The Flys context. It currently defines keys to store important components in the context. * src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java: New. The context factory initializes the basic components of the application. Currently, the TransitionEngine is created and all artifacts with its transitions are read from the global configuration and stored in the FLYSContext. * pom.xml: Added a dependency to the 'artifacts-common' package. * doc/conf/artifacts/winfo.xml: Corrected the classname of the DefaultTransition. * doc/conf/conf.xml: Added FLYSContextFactory as context-factory. 2011-02-02 Ingo Weinzierl <ingo@intevation.de> * doc/conf/conf.xml: An initial configuration file for the FLYS artifact server. * doc/conf/artifacts/winfo.xml: An initial transition configuration of an WINFO artifact. * src/main/java/de/intevation/flys/artifacts/WINFOArtifact.java: A stub of an artifact for a WINFO parameterization. * pom.xml: Set the source code version to 1.5. 2011-02-01 Sascha L. Teichmann <sascha.teichmann@intevation.de> * src/**, pom.xml: Added initial maven project. * ChangeLog: new.