You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,18 @@
1
+
# Release 4.0 (May 26, 2018)
2
+
3
+
This release ends support for Java 8 and 9. Java 10 is now required, which is why this release has a major version bump despite the fact that the only code changes are on the testing side. Read on...
4
+
5
+
* Tweaked the JUnit tests after discovering that they fail with Java 9 and 10. [Java 8 introduced a floating point bug](https://bugs.openjdk.java.net/browse/JDK-8039915) which was fixed in Java 9, but the tests were only ever run on Java 8, so I was unaware that different JREs were giving different results for floating point calculations. Although the tests were using an epsilon for floating-point comparisons, it wasn't large enough to account for the floating point change introduced in Java 9, so the tests failed.
6
+
* Upgraded Mockito to prevent "[Illegal reflective access](https://github.com/mockito/mockito/issues/1295)" when building on Java 9 and 10.
7
+
8
+
The reasons for ending support for Java 8 and 9 are:
9
+
10
+
1. Due to floating point differences, keeping the JUnit tests working from Java 8 to 10 would have required allowing a greater margin of error in calculations
11
+
2. The status of the JUnit tests on Java 9 is unknowable because Oracle ended support for Java 9. They pulled the SDK from their site, so I can't install it to test.
12
+
13
+
If you build this project from source, and you use my [https://github.com/kloverde/BuildScripts](BuildScripts) project to do it, you'll need to pull the latest version. I had to remove findbugs from BuildScripts because it's incompatible with Java 10 - plus, [the project is dead](https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2016-November/004321.html).
14
+
15
+
1
16
# Release 3.0.1 (April 22, 2018)
2
17
3
18
Only the README has been updated. The README incorrectly stated that the Latitude/Longitude classes are mutable. They are not - this was a relic of prior behavior in v1.3 and earlier.
Copy file name to clipboardExpand all lines: README.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,16 @@
1
-
GeographicCoordinate 3.0.1
2
-
==========================
1
+
GeographicCoordinate 4.0
2
+
========================
3
3
4
4
See LICENSE for this software's licensing terms.
5
5
6
6
GeographicCoordinate is a Java library for representing latitude, longitude and cardinal points of the compass, and calculating distance and bearing between points.
7
7
8
+
Starting with v4.0, Java 10 or later is required. See the v4.0 release notes in CHANGELOG.MD for an explanation of why this is so. For lower JRE versions, use a release prior to v4.0. There are no API or runtime differences between the last 3.x release and 4.0.
9
+
8
10
9
11
## Features
10
12
11
-
* Unlike using floating-point primitives to represent latitude and longitude, GeographicCoordinate enforces automatic range checking: objects can never have invalid values.
13
+
* Unlike using floating-point primitives to represent latitude and longitude, GeographicCoordinate uses objects that enforce automatic range checking; there's no possibility of having an object with an invalid value.
12
14
* Coordinates can be initialized in floating-point form or as degrees, minutes and seconds
13
15
* Calculates the distance between two points, or the total travel distance between an unlimited number of points (using the Haversine formula). Supports a wide array of units of distance.
14
16
* Calculates initial bearing and back azimuth
@@ -37,7 +39,7 @@ Use this software at your own risk.
37
39
You only need to bother with these if you want to build using the same setup I used (see included project and build files).
0 commit comments