Skip to content

Commit

Permalink
Release v2.4
Browse files Browse the repository at this point in the history
  • Loading branch information
jodastephen committed Jul 27, 2014
1 parent ab9166e commit 680f94d
Show file tree
Hide file tree
Showing 6 changed files with 194 additions and 18 deletions.
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -46,11 +46,11 @@ Various documentation is available:


### Releases
[Release 2.3](http://www.joda.org/joda-time/download.html) is the current latest release.
[Release 2.4](http://www.joda.org/joda-time/download.html) is the current latest release.
This release is considered stable and worthy of the 1.x tag.
It depends on JDK 1.5 or later.

Available in the [Maven Central repository](http://search.maven.org/#artifactdetails|joda-time|joda-time|2.3|jar)
Available in the [Maven Central repository](http://search.maven.org/#artifactdetails|joda-time|joda-time|2.4|jar)


### Related projects
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -9,7 +9,7 @@
<artifactId>joda-time</artifactId>
<packaging>jar</packaging>
<name>Joda-Time</name>
<version>2.4-SNAPSHOT</version>
<version>2.4</version>
<description>Date and time library to replace JDK date handling</description>
<url>http://www.joda.org/joda-time/</url>

Expand Down
20 changes: 10 additions & 10 deletions src/conf/MANIFEST.MF
Expand Up @@ -2,22 +2,22 @@ Package: org.joda.time
Extension-Name: joda-time
Specification-Title: Joda-Time
Specification-Vendor: Joda.org
Specification-Version: 2.3
Specification-Version: 2.4
Implementation-Vendor: Joda.org
Implementation-Title: org.joda.time
Implementation-Version: 2.3
Implementation-Version: 2.4
Implementation-Vendor-Id: org.joda
Bundle-ManifestVersion: 2
Bundle-Vendor: Joda.org
Bundle-Name: Joda-Time
Bundle-SymbolicName: joda-time
Bundle-Version: 2.3
Export-Package: org.joda.time;version=2.3,
org.joda.time.base;version=2.3,
org.joda.time.chrono;version=2.3,
org.joda.time.convert;version=2.3,
org.joda.time.field;version=2.3,
org.joda.time.format;version=2.3,
org.joda.time.tz;version=2.3
Bundle-Version: 2.4
Export-Package: org.joda.time;version=2.4,
org.joda.time.base;version=2.4,
org.joda.time.chrono;version=2.4,
org.joda.time.convert;version=2.4,
org.joda.time.field;version=2.4,
org.joda.time.format;version=2.4,
org.joda.time.tz;version=2.4
Bundle-License: Apache 2.0
Bundle-DocURL: http://www.joda.org/joda-time/
10 changes: 5 additions & 5 deletions src/site/xdoc/index.xml
Expand Up @@ -54,7 +54,7 @@ public boolean isJoinedInLastThreeMonths(<a href="apidocs/org/joda/time/DateTime
return last3Months.contains(datetimeJoined);
}
-->
Version 2.3 was released on 2013-08-16 -
Version 2.4 was released on 2014-07-27 -
<a href="download.html">Download now</a>
</p>
</section>
Expand Down Expand Up @@ -140,14 +140,14 @@ Various documentation is available:

<section name="Releases">
<p>
<a href="download.html">Release 2.3</a>
<a href="download.html">Release 2.4</a>
is the current latest release.
This release is an evolution of the 1.x codebase, not a major rewrite.
It is considered stable and worthy of the 2.x tag.
</p>
<p>
Version 2.3 is a bugfix release compatible with version 2.2.
See the <a href="upgradeto230.html">upgrade notes</a> for full details.
Version 2.4 is a bugfix release compatible with version 2.3.
See the <a href="upgradeto240.html">upgrade notes</a> for full details.
</p>
<p>
Version 2.x is almost completely source and binary compatible with version 1.x.
Expand All @@ -161,7 +161,7 @@ The main public API will remain backwards compatible for both source and binary
The version number will change to 3.0 to indicate a significant change in compatibility.
</p>
<p>
Available in <a href="http://search.maven.org/#artifactdetails|joda-time|joda-time|2.3|jar">Maven Central</a>.
Available in <a href="http://search.maven.org/#artifactdetails|joda-time|joda-time|2.4|jar">Maven Central</a>.
</p>

<p>
Expand Down
1 change: 1 addition & 0 deletions src/site/xdoc/installation.xml
Expand Up @@ -22,6 +22,7 @@ of the source code suitable for linking to the jar file in IDEs such as Eclipse.
<p>
The release notes for upgraders can be found here:
<ul>
<li><a href="upgradeto240.html">Version 2.4</a> - upgrade from Version 2.3</li>
<li><a href="upgradeto230.html">Version 2.3</a> - upgrade from Version 2.2</li>
<li><a href="upgradeto220.html">Version 2.2</a> - upgrade from Version 2.1</li>
<li><a href="upgradeto210.html">Version 2.1</a> - upgrade from Version 2.0</li>
Expand Down
175 changes: 175 additions & 0 deletions src/site/xdoc/upgradeto240.xml
@@ -0,0 +1,175 @@
<?xml version="1.0" encoding="ISO-8859-1"?>

<document>
<properties>
<title>Java date and time API - Upgrade from 2.2 to 2.3</title>
<author>Stephen Colebourne</author>
</properties>

<body>

<section name="Upgrade">
<p>
These are the release notes and advice for upgrading Joda-Time from version 2.3 to version 2.4.
<source>
Joda-Time version 2.4
---------------------

Joda-Time is a date and time handling library that seeks to replace the JDK
Date and Calendar classes.

This release contains enhancements, bug fixes and a time zone update.
The release runs on JDK 5 or later.

Joda-Time is licensed under the business-friendly Apache License Version 2.
This is the same license as all of Apache, plus other open source projects such as Spring.
The intent is to make the code available to the Java community with the minimum
of restrictions. If the license causes you problems please contact the mailing list.

** Please also check out our related projects **
** http://www.joda.org/joda-time/related.html **


Enhancements since 2.3
----------------------
- Duration.multipliedBy(), .dividedBy(), .negated()
Additional methods on Duration

- LocalDate.hashCode()
Remove unnecessary volatile on instance variable [#68]
LocalDate hash code meets criteria of the racy single-check idiom

- DateTimeParserBucket
Allow bucket to be re-used on a single thread [#111]
Potential for performance improvements due to lower garbage churn
Improvement only of interest to applications willing to write specialist code

- Support CharSequence throughout parsing
Ensure that CharSequence can be used in parsing [#111]
This can only be accessed by creating a mutable DateTimeParserBucket
The bucket is a low-level construct for advanced use cases
Potential for performance improvements due to lower garbage churn
No API change

- Support Appendable throughout printing
Ensure that Appendable can be used efficiently in printing [#120, #121, #122]
No API change

- Increased performance of chronology lookup [#126,#105]
No API change

- Increased performance of formatter lookup [#127,#129]
No API change

- Increased performance of symbols lookup [#143]
No API change


Compatibility with 2.3
----------------------
Build system - Yes

Binary compatible - Yes

Source compatible - Yes

Serialization compatible - Yes

Data compatible - Yes, except
- DateTimeZone data updated to version 2014e

Semantic compatible - Yes, except
- DateTimeField duration fields have been fixed
For example, yearOfEra() now has a range of eras() rather than null
The DurationField instances now compare using equals() correctly
- MutableDateTime.add(DateTimeFieldType,int), addDays(int) and friends [#77]
Adding zero will no longer change the offset during DST overlap in autumn/fall


Deprecations since 2.3
----------------------


Bug fixes since 2.3
-------------------
- DateTimeField.getDurationField() / DateTimeField.getRangeDurationField() [#92,#93,#95]
Previously some of the complex cases were wrong, notably around centuries and eras
For example, yearOfEra() returned a range of null when it should be eras()
A slew of tests were added and a variety of bugs fixed
This affects DateTimeField.getDurationField() and DateTimeField.getRangeDurationField()

- Fixed another edge case in conversion from Local to UTC [#76]
The DateTimeZone.getOffsetFromLocal() method was fixed to handle the last cutover
in DST history correctly.

- Period construction during DST overlap [#156]
When creating a period, if one end is within a DST overlap and one beyond the overlap
then the calculated period was incorrect.
The calculation has been changed no ensure no extra hour is added.

- DateTimeUtils.isContiguous(ReadablePartial) [#89]
The isContiguous() method could throw a NullPointerException when evaluating weird partials

- Period.normalizedStandard(PeriodType) [#79]
Fix handling of PeriodType when either years or months missing

- Partial.with(DateTimeFieldType,int) [#88]
Validation in this method was not as thorough as that in the constructor
This allowed invalid partials to be created

- MutableDateTime.add(DateTimeFieldType,int), addDays(int) and friends [#77]
Adding zero to a MutableDateTime used to change the offset during DST overlap in autumn/fall
This is now fixed to not change the offset

- DateTime/MutableDateTime constructors taking millis now validate [#100]
Previously, new DateTime(Long.MAX_VALUE) would be accepted, now it will be rejected
This ensures that the maximum/minimum year are respected

- Ensure isLeap() returns correct result for day fields [#110]
Day-of-month and day-of-year fields should report leap days

- Insist that year > weekyear when creating Partial [#96,#98]
As these compare equal code previously allowed either order

- Handle weird TimeZone implementations with null ID [#133]
Calling DateTimeZone.forTimeZone() would break if the ID was null

- Handle broken Android implementations better [#103]
Apparently some Android implementations throw ClassCastException when comparing different types
Thats dumb and wrong but the change to handle it is harmless

- Better concurrency in parsing [#101]

- Better Javadoc for parsing of numbers in format patterns [#60]

- Remove uncaughtException calls [#59]
Previously the code called ThreadGroup.uncaughtException() which was invalid

- Fix Javadoc for ReadableDuration [#137]

- Fix the links to the IANA time zone database [#83]

- Better Javadoc for thread saefty of DateTimeUtils [#67]

- Better Javadoc for DateTimeComparator [#73]

- Better Javadoc for DateTimeFormatter parsing [#78]

- Better Javadoc for DateTimeFormat fraction of second [#62]

- Better Javadoc for DateTime toString and parse [#142]

- Better Javadoc for formatters that only parse [#97]


Scala
--------
Joda-Time uses annotations from Joda-Convert.
In the Java programming language, this dependency is optional, however in Scala it is not.
Scala users must manually add the Joda-Convert v1.2 dependency.
</source>
</p>
</section>

</body>
</document>

0 comments on commit 680f94d

Please sign in to comment.