You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2018/02/26 05:47:10 UTC
groovy git commit: tidy up some @since version numbers
Repository: groovy
Updated Branches:
refs/heads/GROOVY_2_5_X fdcbd0078 -> 8f75f97fe
tidy up some @since version numbers
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/8f75f97f
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/8f75f97f
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/8f75f97f
Branch: refs/heads/GROOVY_2_5_X
Commit: 8f75f97fe16a7c2469d6417585e0c93721f328bc
Parents: fdcbd00
Author: paulk <pa...@asert.com.au>
Authored: Mon Feb 26 15:46:58 2018 +1000
Committer: paulk <pa...@asert.com.au>
Committed: Mon Feb 26 15:46:58 2018 +1000
----------------------------------------------------------------------
src/main/groovy/groovy/lang/IntRange.java | 2 +-
src/main/groovy/groovy/lang/NumberRange.java | 2 +-
src/main/groovy/groovy/transform/ImmutableBase.java | 4 +---
src/main/groovy/groovy/transform/ImmutableOptions.java | 6 +-----
src/main/groovy/groovy/transform/KnownImmutable.java | 2 +-
src/main/groovy/groovy/transform/MapConstructor.java | 2 --
src/main/groovy/groovy/transform/NamedDelegate.java | 7 +++++++
src/main/groovy/groovy/transform/NamedParam.java | 7 +++++++
src/main/groovy/groovy/transform/NamedParams.java | 5 +++++
src/main/groovy/groovy/transform/PropertyOptions.java | 2 +-
src/main/groovy/groovy/transform/Sortable.java | 4 +---
src/main/groovy/groovy/transform/ToString.java | 2 +-
src/main/groovy/groovy/transform/TupleConstructor.java | 4 ++++
.../groovy/groovy/transform/VisibilityOptions.java | 2 +-
src/main/groovy/groovy/transform/builder/Builder.java | 4 ++++
.../options/LegacyHashMapPropertyHandler.java | 13 +++++++++++++
.../groovy/groovy/transform/options/Visibility.java | 5 +++++
.../codehaus/groovy/runtime/DefaultGroovyMethods.java | 4 ++--
.../codehaus/groovy/runtime/EncodingGroovyMethods.java | 10 +++++-----
.../main/java/groovy/json/DefaultJsonGenerator.java | 4 ++--
.../src/main/java/groovy/json/JsonBuilder.java | 4 ++--
.../src/main/java/groovy/json/JsonGenerator.java | 6 +++---
.../main/java/groovy/json/StreamingJsonBuilder.java | 4 ++--
23 files changed, 70 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/lang/IntRange.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/IntRange.java b/src/main/groovy/groovy/lang/IntRange.java
index 1ca3820..9377098 100644
--- a/src/main/groovy/groovy/lang/IntRange.java
+++ b/src/main/groovy/groovy/lang/IntRange.java
@@ -194,7 +194,7 @@ public class IntRange extends AbstractList<Integer> implements Range<Integer> {
*
* @param stepSize the desired step size
* @return a new NumberRange
- * @since 2.5
+ * @since 2.5.0
*/
public <T extends Number & Comparable> NumberRange by(T stepSize) {
return new NumberRange(NumberRange.comparableNumber((Number)from), NumberRange.comparableNumber((Number)to), stepSize, inclusive);
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/lang/NumberRange.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/NumberRange.java b/src/main/groovy/groovy/lang/NumberRange.java
index 92c6195..52ef856 100644
--- a/src/main/groovy/groovy/lang/NumberRange.java
+++ b/src/main/groovy/groovy/lang/NumberRange.java
@@ -47,7 +47,7 @@ import static org.codehaus.groovy.runtime.dgmimpl.NumberNumberPlus.plus;
* 0..3 is deemed to be equal to 0.0..3.0 but they have different hashCode values,
* so storing a value using one of these ranges couldn't be retrieved using the other.
*
- * @since 2.5
+ * @since 2.5.0
*/
public class NumberRange extends AbstractList<Comparable> implements Range<Comparable> {
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/ImmutableBase.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/ImmutableBase.java b/src/main/groovy/groovy/transform/ImmutableBase.java
index 21156b5..1ca32fc 100644
--- a/src/main/groovy/groovy/transform/ImmutableBase.java
+++ b/src/main/groovy/groovy/transform/ImmutableBase.java
@@ -43,7 +43,7 @@ import java.lang.annotation.Target;
* @see MapConstructor
* @see TupleConstructor
* @see PropertyOptions
- * @since 2.5
+ * @since 2.5.0
*/
@java.lang.annotation.Documented
@Retention(RetentionPolicy.SOURCE)
@@ -72,8 +72,6 @@ public @interface ImmutableBase {
*
* If a method called {@code copyWith} that takes a single parameter already
* exists in the class, then this setting is ignored, and no method is generated.
- *
- * @since 2.2.0
*/
boolean copyWith() default false;
}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/ImmutableOptions.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/ImmutableOptions.java b/src/main/groovy/groovy/transform/ImmutableOptions.java
index 6c1c200..6daf63e 100644
--- a/src/main/groovy/groovy/transform/ImmutableOptions.java
+++ b/src/main/groovy/groovy/transform/ImmutableOptions.java
@@ -31,7 +31,7 @@ import java.lang.annotation.Target;
*
* @see Immutable
* @see ImmutablePropertyHandler
- * @since 2.5
+ * @since 2.5.0
*/
@java.lang.annotation.Documented
@Retention(RetentionPolicy.SOURCE)
@@ -55,8 +55,6 @@ public @interface ImmutableOptions {
* final String street
* }
* </pre>
- *
- * @since 1.8.7
*/
Class[] knownImmutableClasses() default {};
@@ -73,8 +71,6 @@ public @interface ImmutableOptions {
* }
* ...
* </pre>
- *
- * @since 2.1.0
*/
String[] knownImmutables() default {};
}
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/KnownImmutable.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/KnownImmutable.java b/src/main/groovy/groovy/transform/KnownImmutable.java
index c7a349d..05b80c7 100644
--- a/src/main/groovy/groovy/transform/KnownImmutable.java
+++ b/src/main/groovy/groovy/transform/KnownImmutable.java
@@ -30,7 +30,7 @@ import java.lang.annotation.Target;
* to list your class as one of the known immutable classes.
*
* @see Immutable
- * @since 2.5
+ * @since 2.5.0
*/
@java.lang.annotation.Documented
@Retention(RetentionPolicy.RUNTIME)
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/MapConstructor.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/MapConstructor.java b/src/main/groovy/groovy/transform/MapConstructor.java
index 8c13284..7401d36 100644
--- a/src/main/groovy/groovy/transform/MapConstructor.java
+++ b/src/main/groovy/groovy/transform/MapConstructor.java
@@ -194,8 +194,6 @@ public @interface MapConstructor {
/**
* If specified, must match the "id" attribute in a VisibilityOptions annotation to enable a custom visibility.
- *
- * @since 2.5.0
*/
String visibilityId() default Undefined.STRING;
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/NamedDelegate.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/NamedDelegate.java b/src/main/groovy/groovy/transform/NamedDelegate.java
index baf54ff..e9a4489 100644
--- a/src/main/groovy/groovy/transform/NamedDelegate.java
+++ b/src/main/groovy/groovy/transform/NamedDelegate.java
@@ -23,6 +23,13 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+/**
+ * Marker interface used to indicate that the property names of the annotated parameter
+ * represent valid key names when using named arguments and that the property types
+ * are applicable for type checking purposes.
+ *
+ * @since 2.5.0
+ */
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.PARAMETER)
public @interface NamedDelegate {
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/NamedParam.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/NamedParam.java b/src/main/groovy/groovy/transform/NamedParam.java
index 661397e..78d98d8 100644
--- a/src/main/groovy/groovy/transform/NamedParam.java
+++ b/src/main/groovy/groovy/transform/NamedParam.java
@@ -23,6 +23,13 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+/**
+ * Marker interface used to indicate that the name of the annotated parameter
+ * (or specified optional name) is a valid key name when using named arguments
+ * and that the parameter type is applicable for type checking purposes.
+ *
+ * @since 2.5.0
+ */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
public @interface NamedParam {
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/NamedParams.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/NamedParams.java b/src/main/groovy/groovy/transform/NamedParams.java
index 646b66d..e61d9b4 100644
--- a/src/main/groovy/groovy/transform/NamedParams.java
+++ b/src/main/groovy/groovy/transform/NamedParams.java
@@ -23,6 +23,11 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+/**
+ * Collector annotation for {@link NamedParam}.
+ *
+ * @since 2.5.0
+ */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
public @interface NamedParams {
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/PropertyOptions.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/PropertyOptions.java b/src/main/groovy/groovy/transform/PropertyOptions.java
index 12069c5..02bbe81 100644
--- a/src/main/groovy/groovy/transform/PropertyOptions.java
+++ b/src/main/groovy/groovy/transform/PropertyOptions.java
@@ -33,7 +33,7 @@ import java.lang.annotation.Target;
* @see ImmutableBase
* @see MapConstructor
* @see TupleConstructor
- * @since 2.5
+ * @since 2.5.0
*/
@java.lang.annotation.Documented
@Retention(RetentionPolicy.SOURCE)
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/Sortable.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/Sortable.java b/src/main/groovy/groovy/transform/Sortable.java
index b235bfa..060aeb0 100644
--- a/src/main/groovy/groovy/transform/Sortable.java
+++ b/src/main/groovy/groovy/transform/Sortable.java
@@ -149,9 +149,6 @@ import java.lang.annotation.Target;
* assert leaderBoard.points == [80, 50, 30]
*
* </pre>
- *
- * @author Andres Almiray
- * @author Paul King
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@@ -173,6 +170,7 @@ public @interface Sortable {
/**
* Set to true so that comparator uses reversed natural order.
+ *
* @since 2.5.0
*/
boolean reversed() default false;
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/ToString.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/ToString.java b/src/main/groovy/groovy/transform/ToString.java
index 4807924..9a9335f 100644
--- a/src/main/groovy/groovy/transform/ToString.java
+++ b/src/main/groovy/groovy/transform/ToString.java
@@ -334,7 +334,7 @@ public @interface ToString {
* JavaBean properties come after any Groovy properties but before any fields for a given class
* (unless 'includes' is used to determine the order).
*
- * @since 2.5
+ * @since 2.5.0
*/
boolean allProperties() default true;
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/TupleConstructor.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/TupleConstructor.java b/src/main/groovy/groovy/transform/TupleConstructor.java
index 651f2ca..770ae9b 100644
--- a/src/main/groovy/groovy/transform/TupleConstructor.java
+++ b/src/main/groovy/groovy/transform/TupleConstructor.java
@@ -290,6 +290,8 @@ public @interface TupleConstructor {
* Only the constructor containing all arguments will be provided.
* In particular, a no-arg constructor won't be provided and since this is currently
* used by Groovy when using named-arguments, the named-argument style won't be available.
+ *
+ * @since 2.5.0
*/
boolean defaults() default true;
@@ -298,6 +300,8 @@ public @interface TupleConstructor {
* By setting {@code useSetters=true} then a writable property will be set using its setter.
* If turning on this flag we recommend that setters that might be called are
* made null-safe wrt the parameter.
+ *
+ * @since 2.5.0
*/
boolean useSetters() default false;
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/VisibilityOptions.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/VisibilityOptions.java b/src/main/groovy/groovy/transform/VisibilityOptions.java
index be1f112..314fd26 100644
--- a/src/main/groovy/groovy/transform/VisibilityOptions.java
+++ b/src/main/groovy/groovy/transform/VisibilityOptions.java
@@ -28,7 +28,7 @@ import java.lang.annotation.Target;
/**
* Marker annotation used in the context of AST transformations to provide a custom visibility.
*
- * @since 2.5
+ * @since 2.5.0
*/
@java.lang.annotation.Documented
@Retention(RetentionPolicy.SOURCE)
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/builder/Builder.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/builder/Builder.java b/src/main/groovy/groovy/transform/builder/Builder.java
index 93b6090..4389dc4 100644
--- a/src/main/groovy/groovy/transform/builder/Builder.java
+++ b/src/main/groovy/groovy/transform/builder/Builder.java
@@ -131,11 +131,15 @@ public @interface Builder {
* By setting {@code useSetters=true} then a writable property will be set using its setter.
* If turning on this flag we recommend that setters that might be called are
* made null-safe wrt the parameter.
+ *
+ * @since 2.5.0
*/
boolean useSetters() default false;
/**
* Generate builder methods for properties from super classes.
+ *
+ * @since 2.5.0
*/
boolean includeSuperProperties() default false;
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/options/LegacyHashMapPropertyHandler.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/options/LegacyHashMapPropertyHandler.java b/src/main/groovy/groovy/transform/options/LegacyHashMapPropertyHandler.java
index ac3c364..64f3ebf 100644
--- a/src/main/groovy/groovy/transform/options/LegacyHashMapPropertyHandler.java
+++ b/src/main/groovy/groovy/transform/options/LegacyHashMapPropertyHandler.java
@@ -44,6 +44,19 @@ import static org.codehaus.groovy.ast.tools.GeneralUtils.isOneX;
import static org.codehaus.groovy.ast.tools.GeneralUtils.isTrueX;
import static org.codehaus.groovy.ast.tools.GeneralUtils.varX;
+/**
+ * The {@code @Immutable} transformation in earlier versions of Groovy tried to be smart
+ * in the case of an immutable class with a single HashMap property, the supplied Map constructor
+ * tried to be compatible with both expected tuple behavior and expected named-argument behavior
+ * by peeking into the supplied map and guessing as to which approach might be applicable.
+ * Recent versions of Groovy now allow both {@code @TupleConstructor} and {@code @MapConstructor}
+ * annotations to co-exist which provide's a more flexible solution to this problem. While more
+ * flexible, the new approach isn't fully compatible with the previous approach. If for some
+ * reason you need the old behavior, you can try this property handler. Some features of the
+ * new approach won't be available to you.
+ *
+ * @since 2.5.0
+ */
public class LegacyHashMapPropertyHandler extends ImmutablePropertyHandler {
private static final ClassNode HMAP_TYPE = makeWithoutCaching(HashMap.class, false);
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/groovy/groovy/transform/options/Visibility.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/transform/options/Visibility.java b/src/main/groovy/groovy/transform/options/Visibility.java
index d95c338..667707a 100644
--- a/src/main/groovy/groovy/transform/options/Visibility.java
+++ b/src/main/groovy/groovy/transform/options/Visibility.java
@@ -20,6 +20,11 @@ package groovy.transform.options;
import java.lang.reflect.Modifier;
+/**
+ * Indicates the visibility of a node.
+ *
+ * @since 2.5.0
+ */
public enum Visibility {
PUBLIC(Modifier.PUBLIC),
PROTECTED(Modifier.PROTECTED),
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index ef517b4..c3f0550 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -4955,7 +4955,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
* @param self a Map to be modified
* @param condition a 1 or 2 arg Closure condition applying on the entries
* @return <tt>true</tt> if this map changed as a result of the call
- * @since 2.5
+ * @since 2.5.0
*/
public static <K, V> boolean retainAll(Map<K, V> self, @ClosureParams(MapEntryOrKeyValue.class) Closure condition) {
Iterator<Map.Entry<K, V>> iter = self.entrySet().iterator();
@@ -5018,7 +5018,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
* @param self a Map to be modified
* @param condition a 1 or 2 arg Closure condition applying on the entries
* @return <tt>true</tt> if this map changed as a result of the call
- * @since 2.5
+ * @since 2.5.0
*/
public static <K, V> boolean removeAll(Map<K, V> self, @ClosureParams(MapEntryOrKeyValue.class) Closure condition) {
Iterator<Map.Entry<K, V>> iter = self.entrySet().iterator();
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
index 44a312a..fdfc3a5 100644
--- a/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
@@ -169,7 +169,7 @@ public class EncodingGroovyMethods {
* @param data Byte array to be encoded
* @return object which will write the Base64 URL and Filename Safe encoding of the byte array
* @see org.codehaus.groovy.runtime.EncodingGroovyMethods#encodeBase64Url(Byte[], boolean)
- * @since 2.5
+ * @since 2.5.0
*/
public static Writable encodeBase64Url(Byte[] data) {
return encodeBase64Url(data, false);
@@ -184,7 +184,7 @@ public class EncodingGroovyMethods {
* @param data Byte array to be encoded
* @param pad whether or not the encoded data should be padded
* @return object which will write the Base64 URL and Filename Safe encoding of the byte array
- * @since 2.5
+ * @since 2.5.0
*/
public static Writable encodeBase64Url(Byte[] data, boolean pad) {
return encodeBase64Url(DefaultTypeTransformation.convertToByteArray(data), pad);
@@ -203,7 +203,7 @@ public class EncodingGroovyMethods {
* @param data Byte array to be encoded
* @return object which will write the Base64 URL and Filename Safe encoding of the byte array
* @see org.codehaus.groovy.runtime.EncodingGroovyMethods#encodeBase64Url(byte[], boolean)
- * @since 2.5
+ * @since 2.5.0
*/
public static Writable encodeBase64Url(final byte[] data) {
return encodeBase64Url(data, false);
@@ -218,7 +218,7 @@ public class EncodingGroovyMethods {
* @param data Byte array to be encoded
* @param pad whether or not the encoded data should be padded
* @return object which will write the Base64 URL and Filename Safe encoding of the byte array
- * @since 2.5
+ * @since 2.5.0
*/
public static Writable encodeBase64Url(final byte[] data, final boolean pad) {
return encodeBase64(data, false, true, pad);
@@ -240,7 +240,7 @@ public class EncodingGroovyMethods {
*
* @param value the string to be decoded
* @return the decoded bytes as an array
- * @since 2.5
+ * @since 2.5.0
*/
public static byte[] decodeBase64Url(String value) {
return decodeBase64(value, true);
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/subprojects/groovy-json/src/main/java/groovy/json/DefaultJsonGenerator.java
----------------------------------------------------------------------
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/DefaultJsonGenerator.java b/subprojects/groovy-json/src/main/java/groovy/json/DefaultJsonGenerator.java
index a3e54f8..6510d4d 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/DefaultJsonGenerator.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/DefaultJsonGenerator.java
@@ -59,7 +59,7 @@ import static groovy.json.JsonOutput.OPEN_BRACKET;
* methods.
*
* @see JsonGenerator.Options#build()
- * @since 2.5
+ * @since 2.5.0
*/
public class DefaultJsonGenerator implements JsonGenerator {
@@ -444,7 +444,7 @@ public class DefaultJsonGenerator implements JsonGenerator {
/**
* A converter that handles converting a given type using a closure.
*
- * @since 2.5
+ * @since 2.5.0
*/
protected static class ClosureConverter implements Converter {
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java
----------------------------------------------------------------------
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java
index be9d842..939570e 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonBuilder.java
@@ -85,7 +85,7 @@ public class JsonBuilder extends GroovyObjectSupport implements Writable {
* Instantiates a JSON builder with a configured generator.
*
* @param generator used to generate the output
- * @since 2.5
+ * @since 2.5.0
*/
public JsonBuilder(JsonGenerator generator) {
this.generator = generator;
@@ -107,7 +107,7 @@ public class JsonBuilder extends GroovyObjectSupport implements Writable {
*
* @param content a pre-existing data structure
* @param generator used to generate the output
- * @since 2.5
+ * @since 2.5.0
*/
public JsonBuilder(Object content, JsonGenerator generator) {
this.content = content;
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/subprojects/groovy-json/src/main/java/groovy/json/JsonGenerator.java
----------------------------------------------------------------------
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/JsonGenerator.java b/subprojects/groovy-json/src/main/java/groovy/json/JsonGenerator.java
index c5b13a3..f6b27f1 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/JsonGenerator.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/JsonGenerator.java
@@ -36,7 +36,7 @@ import java.util.TimeZone;
* The {@link Options} builder can be used to configure an instance of a JsonGenerator.
*
* @see Options#build()
- * @since 2.5
+ * @since 2.5.0
*/
public interface JsonGenerator {
@@ -69,7 +69,7 @@ public interface JsonGenerator {
/**
* Handles converting a given type.
*
- * @since 2.5
+ * @since 2.5.0
*/
interface Converter {
@@ -115,7 +115,7 @@ public interface JsonGenerator {
* assert generator.toJson(input) == '{"lastUpdated":"2014"}'
* </code></pre>
*
- * @since 2.5
+ * @since 2.5.0
*/
class Options {
http://git-wip-us.apache.org/repos/asf/groovy/blob/8f75f97f/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java
----------------------------------------------------------------------
diff --git a/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java b/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java
index c0d5d2c..727cd28 100644
--- a/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java
+++ b/subprojects/groovy-json/src/main/java/groovy/json/StreamingJsonBuilder.java
@@ -98,7 +98,7 @@ public class StreamingJsonBuilder extends GroovyObjectSupport {
*
* @param writer A writer to which Json will be written
* @param generator used to generate the output
- * @since 2.5
+ * @since 2.5.0
*/
public StreamingJsonBuilder(Writer writer, JsonGenerator generator) {
this.writer = writer;
@@ -124,7 +124,7 @@ public class StreamingJsonBuilder extends GroovyObjectSupport {
* @param content a pre-existing data structure, default to null
* @param generator used to generate the output
* @throws IOException
- * @since 2.5
+ * @since 2.5.0
*/
public StreamingJsonBuilder(Writer writer, Object content, JsonGenerator generator) throws IOException {
this.writer = writer;