Skip to content

Releases: averbraeck/djutils

djutils v2.3.0

02 Nov 08:45
Compare
Choose a tag to compare

The following issues have been handled in this version:

  • Issue #48. Update djutils to Java-17
  • Issue #49. Update Javadoc to be compliant with Java-17
  • Issue #50. Update Locale tester for Java 17 (repaired for implementation differences in Java releases)
  • Issue #51. Find new way to test terminating program without setSecurityManager in Java-17
  • Dependency on djutils-base 2.3.0 (Java-17)
  • Dependency on djunits 5.2.0 (Java-17)

Please note that djutils needs Java-17 from version 2.3.0 onward.

djutils v2.2.3

28 Oct 00:51
Compare
Choose a tag to compare

The following issues have been handled in this version:

  • Issue #13. CliUtil default decimal values and Locale
  • Issue #14. Add a project djutils-eval for expression evaluation
  • Issue #15. Polygon2d.contains() returns false for a clearly true result
  • Issue #16. Methods getName() and getDescription() in class ObjectDescriptor should be public
  • Issue #18. Rename toExcel() methods as toTsv() in djutils-draw
  • Issue #19. Move toPlot() method from various djutils-draw classes into utility class
  • Issue #23. Improve documentation for Ray and OrientedPoint
  • Issue #25. Throw.whenNull() without "may not be null"
  • Issue #30. PolyLine.getLocation(..) not intuitive
  • Issue #37. Remove maven-changes-plugin from pom file and site.xml
  • Issue #38. Documentation Project.projectOrthogonalFractional NaN/null
  • Issue #39. Cannot happen handling in djutils-draw
  • Issue #40. Bounds should only be concerned with other Bounds in their methods
  • Issue #41. Remove OrientedPoint2d
  • Issue #42. Extend DirectedPoint3d into OrientedPoint3d
  • Issue #46. Remove {@inheritDoc} from overridden methods

djutils v2.2.2

24 Aug 12:47
Compare
Choose a tag to compare

The following issues have been handled in this version:

  • Issue #32. The readthedocs pipeline has been improved for proper documentation creation.
  • Issue #33. The generation of the site and api information has been updated to the latest version.
  • Issue #34. Generation of documentation on djutils.org has been updated
  • Issue #35. Generation of documentation from djutils-base integrated into djutils documentation
  • Issue #36. Maven site generation has been updated to version 2.0.0 and modernized.
  • Furthermore, all maven plugins and libraries have been updated to the latest versions.

djutils v2.2.1

27 Apr 12:37
Compare
Choose a tag to compare

In this version, the following updates have been made:

  • Issue #27. Eval > RetrieveValue > Eval nested dependency not supported bug djutils-eval enhancement
  • Issue #28. Allow @, # and _ in variable or function name djutils-eval enhancement
  • Issue #29. Allow non DoubleScalar and non Boolean retrieve values djutils-eval
  • Issue #31. Update libraries to latest version (fewer bugs and vulnerabilities) enhancement
  • Dependency on djutils-base updated to v2.2.1
  • Dependency on djunits updated to v5.1.3

djutils v2.2.0

17 Sep 19:54
Compare
Choose a tag to compare

The djutils 2.2.0 project has three major changes:

  1. The module djutils-base (aka djutils) has been split off into a separate project to avoid circular dependencies (issue #24).
  2. A module called djutils-eval has been added. This module can evaluate textual expressions including stored variables. It is fully integrated with djunits, and it can make calculations on quantities, where units are converted and checked. Example expressions are 3[kg.ms-2], PI()*AVOGADRO(), 12 [ms-1] / 123[/s], 12>4?TRUE():(9+5), and 5*2[s]/5[s].
  3. The unit tests have been upgraded from JUnit 4 to JUnit 5.

The following issues have been addressed:

  • Issue #11. Constructing a Bezier of two points and epsilon fails. The method PolyLine2d Bezier.bezier(double epsilon, final Point2d... points) crashes when it tries to compute the first t value to put the points in the NavigableMap. When only two points are given, the value of t is effectively computed as 0/0; resulting in NaN. It is likely that this also goes wrong in the PolyLine3d version. This was fixed. The test coverage of 3D bezier construction with epsilon was also improved / added.
  • Issue #17. Update unit tests from JUnit 4 to JUnit 5. Update unit tests from JUnit 4 to JUnit 5. All unit tests have been adapted and upgraded to the JUnit 5 framework. Code with the ExitHelper class and tests to check the System.out and System.err output have been upgraded to use the system-lambda package from https://github.com/stefanbirkner/system-lambda/
  • Issue #24. Separate djutils-base (aka djutils) into a separate project. Break the circular dependency between djunits and djutils. the djutils module has been placed in a separate project djutils-base. As a result, djunits can be made dependent on djutils-base, breaking the circular dependency. This allows full usage of the classes and data structures of djutils-base in djunits (such as Throw, Try, UrlResource, CategoryLogger, and immutable collections), and it allows the latest version of djunits to be used in turn in several of the djutils modules in this project.

djutils v2.1.9

30 Apr 11:20
Compare
Choose a tag to compare

In this version of djutils, two additions were made in djutils-base:

  • Issue #10 : Addition of a NumberParser class. Locale-dependent parsing can be quite difficult. The classes provided in Java are very strict, which means that an extra space or plus at the start of the parsed String already leads to a partially parsed String or to an exception. The new NumberParser class in djutils-base tries to address this issue. and provides many options to parse Strings to numbers (int, long, float, and double). It allows for the use of different Locales, and it can parse in a strict manner (only allowing the exact format that the Locale prescribes) or in a lenient manner (allowing for leading plus sign for the number and leading plus sign for the exponent, and allowing for the wrong case of the exponent character). Both strict and lenient parsing ignores leading and trailing whitespace. The parser also allows for trailing characters (such as units) and keeps a pointer where the first trailing character begins.
  • Addition of Mutable Primitives. Mutable Primitives These classes augment the Java primitive wrappers with mutable variants. Sometimes, we want to return one or more primitive values after a method call in addition to the return value itself. As an example, consider a parser that returns the parsed value, but also an index for the character where the parsing stopped. Often, 'ugly' constructs are used, such as providing a new int[1] {} to the method, or an AtomicInteger. Both can be written. Instead of these solutions, djutils-base contains the classes MutableInt, MutableLong, MutableFloat, MutableDouble, MutableShort, MutableByte, and MutableBoolean.

Note that the interpretation of a strictly formatted number string (related to Issue #10) can differ per Java version (!). Jdk11 uses the CLDR version 33 (see https://cldr.unicode.org/index/downloads/cldr-33) and Jdk17 uses the CLDR version 35.1 (see https://cldr.unicode.org/index/downloads/cldr-35). In the Unit tests, this means that, for instance, both the French and the Arabic NumberFormat test are different and version-dependent.

djutils v2.1.8

18 Mar 18:58
Compare
Choose a tag to compare

pom file has only one test-resources entry. Originally, test-resources contained both /src/main/resources and /src/test/resources, to make the resources also available to the unit tests. The latest version of Eclipse, however, cannot deal with two locations. Since we already copy the resources with Maven, having both locations is not needed.

Dependency on djunits has been updated to v5.0.2.

CLI test that failed on 100.0erg/g for an AbsorbedDose has been repaired by adding a space between the value and the unit. An issue in djunits should resolve this issue.

djutils v2.1.7

29 Jan 15:40
Compare
Choose a tag to compare

djutils-data project
In djutils v2.1.7, Issue #8 has been resolved. This issue was about merging the updates that were made to data tables in the opentrafficsim project into djutils-data. Design choices are extensively described in the comments for Issue #8.

Main changes:

  • Class names changed to, e.g., Column, ListTable, Row and Table
  • Updated CsvData and TsvData, JsonData, XmlData and changed class names to camel case
  • Column now checks for correct unit and does autoboxing
  • An extra interface for the Serializers has been added for types that do not need to be specified further, nor need a unit. To avoid having to implement IllegalOperationException, the djunits versions of the TextSerializer are taken as the basis, and an extra interface with a convenience deserialize(text) method is added. This interface is called SpecificTextSerializer. All primitive serializers and the StringSerializer implement the SpecificTextSerializer.
  • null values are allowed in (de)serialization to denote empty column
  • Implemented code for Scalar columns with a different unit
  • Javadoc updated
  • Unit tests extended to 96% test coverage
  • Documentation for djutils-data project updated

djutils project
One addition has been made to the djutils project:

  • CompressedFileWriter class moved from ots to djutils-base; code has been further streamlined
  • unit tests were added for CompressedFileWriter

djutils v2.1.6

28 Jan 00:53
Compare
Choose a tag to compare

Updates in djutils (base) project:

Addressed Issue #7

  • removed testSucceed() method in Try class for for unit tests
  • improved testFail() method in Try class for unit tests
  • improved javadoc for Try class
  • improved unit tests for Try class

Solved an issue with the DecoderDumperTest unit test; the test was dependent on a 'null' configuration of the CategoryLogger, which meant that if another unit test had used the CategoryLogger, the DecoderDumperTest unit test would fail. DecoderDumperTest is not not dependent on the CategoryLogger anymore.

djutils v2.1.5

17 Jan 23:39
Compare
Choose a tag to compare

Updates in djutils-stats project:

Addressed Issue #5.

  • The Tally, Counter, WeightedTally and TimestampWeightedTally classes have reporting methods to a String. When iterating over multiple statistics to make a table, the reportHeader() and reportFooter() methods were not accessible because there is no instance yet on which to call the header or footer method. This problem has been solved by making these methods static.

Addressed Issue #6.

  • In the TimestampWeightedTally.reportLine() method the header did not match with the content. This has been repaired.