Skip to content

Commit 680f94d

Browse files
committed
Release v2.4
1 parent ab9166e commit 680f94d

File tree

6 files changed

+194
-18
lines changed

6 files changed

+194
-18
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ Various documentation is available:
4646

4747

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

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

5555

5656
### Related projects

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<artifactId>joda-time</artifactId>
1010
<packaging>jar</packaging>
1111
<name>Joda-Time</name>
12-
<version>2.4-SNAPSHOT</version>
12+
<version>2.4</version>
1313
<description>Date and time library to replace JDK date handling</description>
1414
<url>http://www.joda.org/joda-time/</url>
1515

src/conf/MANIFEST.MF

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@ Package: org.joda.time
22
Extension-Name: joda-time
33
Specification-Title: Joda-Time
44
Specification-Vendor: Joda.org
5-
Specification-Version: 2.3
5+
Specification-Version: 2.4
66
Implementation-Vendor: Joda.org
77
Implementation-Title: org.joda.time
8-
Implementation-Version: 2.3
8+
Implementation-Version: 2.4
99
Implementation-Vendor-Id: org.joda
1010
Bundle-ManifestVersion: 2
1111
Bundle-Vendor: Joda.org
1212
Bundle-Name: Joda-Time
1313
Bundle-SymbolicName: joda-time
14-
Bundle-Version: 2.3
15-
Export-Package: org.joda.time;version=2.3,
16-
org.joda.time.base;version=2.3,
17-
org.joda.time.chrono;version=2.3,
18-
org.joda.time.convert;version=2.3,
19-
org.joda.time.field;version=2.3,
20-
org.joda.time.format;version=2.3,
21-
org.joda.time.tz;version=2.3
14+
Bundle-Version: 2.4
15+
Export-Package: org.joda.time;version=2.4,
16+
org.joda.time.base;version=2.4,
17+
org.joda.time.chrono;version=2.4,
18+
org.joda.time.convert;version=2.4,
19+
org.joda.time.field;version=2.4,
20+
org.joda.time.format;version=2.4,
21+
org.joda.time.tz;version=2.4
2222
Bundle-License: Apache 2.0
2323
Bundle-DocURL: http://www.joda.org/joda-time/

src/site/xdoc/index.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public boolean isJoinedInLastThreeMonths(<a href="apidocs/org/joda/time/DateTime
5454
return last3Months.contains(datetimeJoined);
5555
}
5656
-->
57-
Version 2.3 was released on 2013-08-16 -
57+
Version 2.4 was released on 2014-07-27 -
5858
<a href="download.html">Download now</a>
5959
</p>
6060
</section>
@@ -140,14 +140,14 @@ Various documentation is available:
140140

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

167167
<p>

src/site/xdoc/installation.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ of the source code suitable for linking to the jar file in IDEs such as Eclipse.
2222
<p>
2323
The release notes for upgraders can be found here:
2424
<ul>
25+
<li><a href="upgradeto240.html">Version 2.4</a> - upgrade from Version 2.3</li>
2526
<li><a href="upgradeto230.html">Version 2.3</a> - upgrade from Version 2.2</li>
2627
<li><a href="upgradeto220.html">Version 2.2</a> - upgrade from Version 2.1</li>
2728
<li><a href="upgradeto210.html">Version 2.1</a> - upgrade from Version 2.0</li>

src/site/xdoc/upgradeto240.xml

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
<?xml version="1.0" encoding="ISO-8859-1"?>
2+
3+
<document>
4+
<properties>
5+
<title>Java date and time API - Upgrade from 2.2 to 2.3</title>
6+
<author>Stephen Colebourne</author>
7+
</properties>
8+
9+
<body>
10+
11+
<section name="Upgrade">
12+
<p>
13+
These are the release notes and advice for upgrading Joda-Time from version 2.3 to version 2.4.
14+
<source>
15+
Joda-Time version 2.4
16+
---------------------
17+
18+
Joda-Time is a date and time handling library that seeks to replace the JDK
19+
Date and Calendar classes.
20+
21+
This release contains enhancements, bug fixes and a time zone update.
22+
The release runs on JDK 5 or later.
23+
24+
Joda-Time is licensed under the business-friendly Apache License Version 2.
25+
This is the same license as all of Apache, plus other open source projects such as Spring.
26+
The intent is to make the code available to the Java community with the minimum
27+
of restrictions. If the license causes you problems please contact the mailing list.
28+
29+
** Please also check out our related projects **
30+
** http://www.joda.org/joda-time/related.html **
31+
32+
33+
Enhancements since 2.3
34+
----------------------
35+
- Duration.multipliedBy(), .dividedBy(), .negated()
36+
Additional methods on Duration
37+
38+
- LocalDate.hashCode()
39+
Remove unnecessary volatile on instance variable [#68]
40+
LocalDate hash code meets criteria of the racy single-check idiom
41+
42+
- DateTimeParserBucket
43+
Allow bucket to be re-used on a single thread [#111]
44+
Potential for performance improvements due to lower garbage churn
45+
Improvement only of interest to applications willing to write specialist code
46+
47+
- Support CharSequence throughout parsing
48+
Ensure that CharSequence can be used in parsing [#111]
49+
This can only be accessed by creating a mutable DateTimeParserBucket
50+
The bucket is a low-level construct for advanced use cases
51+
Potential for performance improvements due to lower garbage churn
52+
No API change
53+
54+
- Support Appendable throughout printing
55+
Ensure that Appendable can be used efficiently in printing [#120, #121, #122]
56+
No API change
57+
58+
- Increased performance of chronology lookup [#126,#105]
59+
No API change
60+
61+
- Increased performance of formatter lookup [#127,#129]
62+
No API change
63+
64+
- Increased performance of symbols lookup [#143]
65+
No API change
66+
67+
68+
Compatibility with 2.3
69+
----------------------
70+
Build system - Yes
71+
72+
Binary compatible - Yes
73+
74+
Source compatible - Yes
75+
76+
Serialization compatible - Yes
77+
78+
Data compatible - Yes, except
79+
- DateTimeZone data updated to version 2014e
80+
81+
Semantic compatible - Yes, except
82+
- DateTimeField duration fields have been fixed
83+
For example, yearOfEra() now has a range of eras() rather than null
84+
The DurationField instances now compare using equals() correctly
85+
- MutableDateTime.add(DateTimeFieldType,int), addDays(int) and friends [#77]
86+
Adding zero will no longer change the offset during DST overlap in autumn/fall
87+
88+
89+
Deprecations since 2.3
90+
----------------------
91+
92+
93+
Bug fixes since 2.3
94+
-------------------
95+
- DateTimeField.getDurationField() / DateTimeField.getRangeDurationField() [#92,#93,#95]
96+
Previously some of the complex cases were wrong, notably around centuries and eras
97+
For example, yearOfEra() returned a range of null when it should be eras()
98+
A slew of tests were added and a variety of bugs fixed
99+
This affects DateTimeField.getDurationField() and DateTimeField.getRangeDurationField()
100+
101+
- Fixed another edge case in conversion from Local to UTC [#76]
102+
The DateTimeZone.getOffsetFromLocal() method was fixed to handle the last cutover
103+
in DST history correctly.
104+
105+
- Period construction during DST overlap [#156]
106+
When creating a period, if one end is within a DST overlap and one beyond the overlap
107+
then the calculated period was incorrect.
108+
The calculation has been changed no ensure no extra hour is added.
109+
110+
- DateTimeUtils.isContiguous(ReadablePartial) [#89]
111+
The isContiguous() method could throw a NullPointerException when evaluating weird partials
112+
113+
- Period.normalizedStandard(PeriodType) [#79]
114+
Fix handling of PeriodType when either years or months missing
115+
116+
- Partial.with(DateTimeFieldType,int) [#88]
117+
Validation in this method was not as thorough as that in the constructor
118+
This allowed invalid partials to be created
119+
120+
- MutableDateTime.add(DateTimeFieldType,int), addDays(int) and friends [#77]
121+
Adding zero to a MutableDateTime used to change the offset during DST overlap in autumn/fall
122+
This is now fixed to not change the offset
123+
124+
- DateTime/MutableDateTime constructors taking millis now validate [#100]
125+
Previously, new DateTime(Long.MAX_VALUE) would be accepted, now it will be rejected
126+
This ensures that the maximum/minimum year are respected
127+
128+
- Ensure isLeap() returns correct result for day fields [#110]
129+
Day-of-month and day-of-year fields should report leap days
130+
131+
- Insist that year > weekyear when creating Partial [#96,#98]
132+
As these compare equal code previously allowed either order
133+
134+
- Handle weird TimeZone implementations with null ID [#133]
135+
Calling DateTimeZone.forTimeZone() would break if the ID was null
136+
137+
- Handle broken Android implementations better [#103]
138+
Apparently some Android implementations throw ClassCastException when comparing different types
139+
Thats dumb and wrong but the change to handle it is harmless
140+
141+
- Better concurrency in parsing [#101]
142+
143+
- Better Javadoc for parsing of numbers in format patterns [#60]
144+
145+
- Remove uncaughtException calls [#59]
146+
Previously the code called ThreadGroup.uncaughtException() which was invalid
147+
148+
- Fix Javadoc for ReadableDuration [#137]
149+
150+
- Fix the links to the IANA time zone database [#83]
151+
152+
- Better Javadoc for thread saefty of DateTimeUtils [#67]
153+
154+
- Better Javadoc for DateTimeComparator [#73]
155+
156+
- Better Javadoc for DateTimeFormatter parsing [#78]
157+
158+
- Better Javadoc for DateTimeFormat fraction of second [#62]
159+
160+
- Better Javadoc for DateTime toString and parse [#142]
161+
162+
- Better Javadoc for formatters that only parse [#97]
163+
164+
165+
Scala
166+
--------
167+
Joda-Time uses annotations from Joda-Convert.
168+
In the Java programming language, this dependency is optional, however in Scala it is not.
169+
Scala users must manually add the Joda-Convert v1.2 dependency.
170+
</source>
171+
</p>
172+
</section>
173+
174+
</body>
175+
</document>

0 commit comments

Comments
 (0)