This is an automated email from the ASF dual-hosted git repository. desruisseaux pushed a commit to branch geoapi-4.0 in repository https://gitbox.apache.org/repos/asf/sis.git
commit 0083d298c7e906d5843482087a227d9b827db21b Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Sat Dec 10 15:03:17 2022 +0100 Set Java version requirement to Java 11 and update documentation. There is no code change in this commit. https://issues.apache.org/jira/browse/SIS-561 --- README | 2 +- application/sis-javafx/src/main/artifact/README | 2 +- .../src/main/java/org/apache/sis/feature/AbstractFeature.java | 2 +- .../src/test/java/org/apache/sis/feature/FeatureTestCase.java | 6 +++--- .../main/java/org/apache/sis/internal/xml/StreamWriterDelegate.java | 2 +- .../src/main/java/org/apache/sis/xml/MarshalContext.java | 2 +- core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java | 4 ++-- .../java/org/apache/sis/referencing/AbstractIdentifiedObject.java | 2 +- .../src/main/java/org/apache/sis/referencing/datum/formulas.html | 2 +- .../org/apache/sis/referencing/operation/transform/formulas.html | 2 +- .../java/org/apache/sis/parameter/DefaultParameterValueTest.java | 4 +--- .../sis/referencing/operation/transform/CoordinateDomain.java | 2 +- .../src/main/java/org/apache/sis/internal/util/Numerics.java | 2 +- core/sis-utility/src/main/java/org/apache/sis/setup/OptionKey.java | 2 +- .../src/main/java/org/apache/sis/util/CharSequences.java | 4 ++-- core/sis-utility/src/main/java/org/apache/sis/util/Locales.java | 2 +- .../java/org/apache/sis/util/collection/BackingStoreException.java | 2 +- .../src/main/java/org/apache/sis/util/collection/IntegerList.java | 6 +++--- pom.xml | 6 +++--- src/main/javadoc/overview.html | 2 +- .../org/apache/sis/internal/storage/xml/stream/FormattedWriter.java | 6 +++--- 21 files changed, 31 insertions(+), 33 deletions(-) diff --git a/README b/README index 28c8905911..d617b55a6d 100644 --- a/README +++ b/README @@ -24,7 +24,7 @@ project logo are trademarks of The Apache Software Foundation. Getting Started =============== -Running the library part of Apache SIS requires Java 8 or higher. +Running the library part of Apache SIS requires Java 11 or higher. Running the JavaFX application part requires Java 16 or higher. Building SIS requires Java 17 or higher together with Maven 3 <https://maven.apache.org/> build system. diff --git a/application/sis-javafx/src/main/artifact/README b/application/sis-javafx/src/main/artifact/README index e6f159db15..d51feb0e69 100644 --- a/application/sis-javafx/src/main/artifact/README +++ b/application/sis-javafx/src/main/artifact/README @@ -14,7 +14,7 @@ Installation ============ For developing applications using the SIS library or for using on command-line, -the only requirement is Java 8 or later. For launching the desktop application, +the only requirement is Java 11 or later. For launching the desktop application, requirements are Java 16 or later and JavaFX 13 or later. 1) Unzip `apache-sis-1.4-bin.zip` in any directory. diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java index 1698f837e0..d126ecdd4d 100644 --- a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java +++ b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java @@ -325,7 +325,7 @@ public abstract class AbstractFeature implements Feature, Serializable { * In the case of multi-valued properties (“max. occurs” > 1), the collection returned by this method may * or may not be modifiable, at implementation choice. Generally the caller cannot add new elements into the * returned collection anyway since {@code Collection<?>} does not allow such operations, and more specific - * casts (e.g. {@code Collection<String>} cannot be checked at runtime (at least as of Java 8). + * casts (e.g. {@code Collection<String>} cannot be checked at runtime. * If a type-safe modifiable collection is desired, the following approach can be used instead: * * {@preformat java diff --git a/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureTestCase.java b/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureTestCase.java index dbed0b40c6..32cd40a4ff 100644 --- a/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureTestCase.java +++ b/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureTestCase.java @@ -352,9 +352,9 @@ public abstract strictfp class FeatureTestCase extends TestCase { Collections.singletonMap(DefaultFeatureType.NAME_KEY, "City"), false, null, DefaultAttributeTypeTest.universities())); /* - * The value below is an instance of Collection<String>. But as of Java 8, the <String> parameterized type - * cannot be verified at runtime. The best check we can have is Collection<?>, which does not allow addition - * of new values. + * The value below is an instance of Collection<String>. + * But the <String> parameterized type cannot be verified at runtime. + * The best check we can have is Collection<?>, which does not allow addition of new values. */ Collection<?> values = (Collection<?>) feature.getPropertyValue("universities"); assertTrue("isEmpty", values.isEmpty()); diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/xml/StreamWriterDelegate.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/xml/StreamWriterDelegate.java index 454c602786..1ce56e5d66 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/xml/StreamWriterDelegate.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/xml/StreamWriterDelegate.java @@ -27,7 +27,7 @@ import org.apache.sis.util.Workaround; * By default each method does nothing but call the corresponding method on the wrapped instance. * * <p>This class is the complement of {@link javax.xml.stream.util.StreamReaderDelegate} provided - * in standard JDK. For an unknown reason, JDK 8 does not provide a {@code StreamWriterDelegate}.</p> + * in standard JDK. For an unknown reason, Java 8 does not provide a {@code StreamWriterDelegate}.</p> * * @author Martin Desruisseaux (Geomatys) * @version 1.0 diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/MarshalContext.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/MarshalContext.java index 2e6b7b48be..123c1b509a 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/xml/MarshalContext.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/MarshalContext.java @@ -69,7 +69,7 @@ public abstract class MarshalContext { * to use the UTC timezone as the default value, but some flexibility is allowed. * * <div class="warning"><b>Upcoming API change — Java time API</b>: - * return type may be changed to {@link java.time.ZoneId} when Apache SIS will target Java 8. + * return type may be changed to {@link java.time.ZoneId} in a future version. * This change may be applied in synchronization with GeoAPI 4.0. * </div> * diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java index 9cda8ea15e..31ec54506d 100644 --- a/core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java @@ -522,7 +522,7 @@ public final class XML extends Static { } } /* - * STAX results are not handled by JAXB as of JDK 8. We have to handle those cases ourselves. + * STAX results are not handled by JAXB. We have to handle those cases ourselves. * This workaround should be removed if a future JDK version handles those cases. */ if (output instanceof StAXResult) { @@ -650,7 +650,7 @@ public final class XML extends Static { final Unmarshaller unmarshaller = pool.acquireUnmarshaller(properties); final Object object; /* - * STAX sources are not handled by javax.xml.bind.helpers.AbstractUnmarshallerImpl implementation as of JDK 8. + * STAX sources are not handled by javax.xml.bind.helpers.AbstractUnmarshallerImpl implementation. * We have to handle those cases ourselves. This workaround should be removed if a future JDK version handles * those cases. */ diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java index 0b9b14578f..40bac3475c 100644 --- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java +++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java @@ -1023,7 +1023,7 @@ public class AbstractIdentifiedObject extends FormattableObject implements Ident * <h4>Why there is no <code>setNames(…)</code> method</h4> * Some JAXB implementations never invoke setter method for collections. Instead, they invoke the getter and * add directly the identifiers in the returned collection. Whether JAXB will perform or not a final call to - * {@code setNames(…)} is JAXB-implementation dependent (JDK7 does but JDK6 and JDK8 early access do not). + * {@code setNames(…)} is JAXB-implementation dependent (JDK7 does but JDK6 and JDK8 do not). * It seems a more portable approach (at least for JAXB reference implementations) to design our class * without setter method, in order to have the same behavior on all supported JDK versions. * diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/formulas.html b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/formulas.html index 2fa9484ff0..6e3b04419e 100644 --- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/formulas.html +++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/formulas.html @@ -29,7 +29,7 @@ <div>This file contains formulas written in MathML for inclusion in the Javadoc of some classes in the <code>org.apache.sis.referencing.datum</code> package. Those formulas are provided in separated files for easier edition and for avoiding <code>javac</code> or - <code>javadoc</code> “<cite>unknown HTML tag</cite>” errors with JDK 8. + <code>javadoc</code> “<cite>unknown HTML tag</cite>” errors. Fragment of this files are inserted in the Javadoc by the following tag: <blockquote><pre>{@include formulas.html#<var>title</var>}</pre></blockquote> diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/formulas.html b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/formulas.html index dd13387c09..124f9177c0 100644 --- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/formulas.html +++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/formulas.html @@ -29,7 +29,7 @@ <div>This file contains formulas written in MathML for inclusion in the Javadoc of some classes in the <code>org.apache.sis.referencing.operation.transform</code> package. Those formulas are provided in separated files for easier edition and for avoiding <code>javac</code> or - <code>javadoc</code> “<cite>unknown HTML tag</cite>” errors with JDK 8. + <code>javadoc</code> “<cite>unknown HTML tag</cite>” errors. Fragment of this files are inserted in the Javadoc by the following tag: <blockquote><pre>{@include formulas.html#<var>title</var>}</pre></blockquote> diff --git a/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueTest.java b/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueTest.java index 78ab185b4d..4118ad1104 100644 --- a/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueTest.java +++ b/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterValueTest.java @@ -491,9 +491,7 @@ public final strictfp class DefaultParameterValueTest extends TestCase { * Tests the creation of many parameters for integer and floating point values. * Some on those values are cached (e.g. 0, 90, 360) because frequently used. * It should be transparent to the user. - * Test also unit conversions (degrees to radians in this case). - * - * @todo Tests parallel instantiation on JDK8. + * Tests also unit conversions (degrees to radians in this case). */ @Test @DependsOnMethod({"testBoundedInteger", "testBoundedDouble"}) diff --git a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/CoordinateDomain.java b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/CoordinateDomain.java index 076aff8721..914ed1d699 100644 --- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/CoordinateDomain.java +++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/CoordinateDomain.java @@ -39,7 +39,7 @@ import org.apache.sis.referencing.datum.GeodeticDatumMock; public strictfp class CoordinateDomain { /* * Note: this class is not declared as an enum yet because moving ARTICLE_CIRCLE and HEIGHT constants - * after the enum declarations causes an "illegal forward reference" compiler error with JDK 8. + * after the enum declarations causes an "illegal forward reference" compiler error. */ diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/util/Numerics.java b/core/sis-utility/src/main/java/org/apache/sis/internal/util/Numerics.java index 673ec3ec4a..63df579148 100644 --- a/core/sis-utility/src/main/java/org/apache/sis/internal/util/Numerics.java +++ b/core/sis-utility/src/main/java/org/apache/sis/internal/util/Numerics.java @@ -45,7 +45,7 @@ import static java.lang.Math.ulp; */ public final class Numerics extends Static { /** - * Some frequently used {@link Double} values. As of Java 8, those values do not + * Some frequently used {@link Double} values. As of Java 11, those values do not * seem to be cached by {@link Double#valueOf(double)} like JDK does for integers. */ private static final Map<Object,Object> CACHE = new HashMap<>(32); diff --git a/core/sis-utility/src/main/java/org/apache/sis/setup/OptionKey.java b/core/sis-utility/src/main/java/org/apache/sis/setup/OptionKey.java index 061a790e1a..6554d6bd86 100644 --- a/core/sis-utility/src/main/java/org/apache/sis/setup/OptionKey.java +++ b/core/sis-utility/src/main/java/org/apache/sis/setup/OptionKey.java @@ -97,7 +97,7 @@ public class OptionKey<T> implements Serializable { * That default is often, but not necessarily, the {@linkplain TimeZone#getDefault() platform default}. * * <div class="warning"><b>Upcoming API change — Java time API</b>: - * the type may be changed to {@link java.time.ZoneId} when Apache SIS will target Java 8. + * the type may be changed to {@link java.time.ZoneId} in a future version. * This change may be applied in synchronization with GeoAPI 4.0. * </div> * diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java b/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java index 16faea7be2..53d2d655cb 100644 --- a/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java +++ b/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java @@ -691,9 +691,9 @@ search: for (; fromIndex <= toIndex; fromIndex++) { * </ul> * * <div class="note"><b>Performance note:</b> - * Prior JDK8 this method was usually cheap because all string instances created by + * Prior Java 8 this method was usually cheap because all string instances created by * {@link String#substring(int,int)} shared the same {@code char[]} internal array. - * However, since JDK8, the new {@code String} implementation copies the data in new arrays. + * However, since Java 8, the new {@code String} implementation copies the data in new arrays. * Consequently, it is better to use index rather than this method for splitting large {@code String}s. * However, this method still useful for other {@link CharSequence} implementations providing an efficient * {@code subSequence(int,int)} method.</div> diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java b/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java index d4c4b549dd..2a1187fc21 100644 --- a/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java +++ b/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java @@ -98,7 +98,7 @@ public final class Locales extends Static { * to {@code String} instances. * * <div class="note"><b>Implementation note:</b> - * Oracle JDK8 implementation computes the 3-letters codes on-the-fly instead of holding references + * OpenJDK 8 implementation computes the 3-letters codes on-the-fly instead of holding references * to pre-existing strings. If we were holding string references here, we would prevent the garbage * collector to collect the strings for all languages and countries. This would probably be a waste * of resources.</div> diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/collection/BackingStoreException.java b/core/sis-utility/src/main/java/org/apache/sis/util/collection/BackingStoreException.java index a57b3d3472..41747868f1 100644 --- a/core/sis-utility/src/main/java/org/apache/sis/util/collection/BackingStoreException.java +++ b/core/sis-utility/src/main/java/org/apache/sis/util/collection/BackingStoreException.java @@ -43,7 +43,7 @@ import org.apache.sis.util.Exceptions; * } * * <h2>Relationship with {@code java.io.UncheckedIOException}</h2> - * JDK8 provides a {@link java.io.UncheckedIOException} which partially overlaps + * Java 8 provides a {@link java.io.UncheckedIOException} which partially overlaps * the purpose of this {@code BackingStoreException}. While Apache SIS still uses * {@code BackingStoreException} as a general mechanism for any kind of checked exceptions, * client code would be well advised to catch both kind of exceptions for robustness. diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/collection/IntegerList.java b/core/sis-utility/src/main/java/org/apache/sis/util/collection/IntegerList.java index d073336935..ced2161d52 100644 --- a/core/sis-utility/src/main/java/org/apache/sis/util/collection/IntegerList.java +++ b/core/sis-utility/src/main/java/org/apache/sis/util/collection/IntegerList.java @@ -451,7 +451,7 @@ public class IntegerList extends AbstractList<Integer> implements RandomAccess, * * @return iterator over the integer values in this list. * - * @since 0.8-jdk8 + * @since 1.0 */ @Override public PrimitiveIterator.OfInt iterator() { @@ -464,7 +464,7 @@ public class IntegerList extends AbstractList<Integer> implements RandomAccess, * * @return spliterator over the integer values in this list. * - * @since 0.8-jdk8 + * @since 1.0 */ @Override public Spliterator.OfInt spliterator() { @@ -482,7 +482,7 @@ public class IntegerList extends AbstractList<Integer> implements RandomAccess, * @param parallel {@code true} for a parallel stream, or {@code false} for a sequential stream. * @return a stream of values in this list as primitive types. * - * @since 0.8-jdk8 + * @since 1.0 */ public IntStream stream(boolean parallel) { return StreamSupport.intStream(spliterator(), parallel); diff --git a/pom.xml b/pom.xml index b44f90992d..f5e7421ed3 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ Maven project configuration file http://maven.apache.org/ - Apache SIS build requires Java 11 or higher, but compiled files can be executed on Java 8. + Apache SIS build requires Java 17 or higher, but compiled files can be executed on Java 11. Setting the SIS_DATA environment variable before build is optional but recommended. Build development snapshot: mvn clean install @@ -553,8 +553,8 @@ <website.locale>en</website.locale> <!-- Following properties are branch-specific --> - <maven.compiler.source>8</maven.compiler.source> - <maven.compiler.target>8</maven.compiler.target> + <maven.compiler.source>11</maven.compiler.source> + <maven.compiler.target>11</maven.compiler.target> <sis.plugin.version>${project.version}</sis.plugin.version> <sis.non-free.version>1.3</sis.non-free.version> <!-- Used only if "non-free" profile is activated. --> <javafx.version>19</javafx.version> <!-- Used only if "javafx" profile is activated. --> diff --git a/src/main/javadoc/overview.html b/src/main/javadoc/overview.html index 06cf5f69de..0d97dabd0c 100644 --- a/src/main/javadoc/overview.html +++ b/src/main/javadoc/overview.html @@ -28,7 +28,7 @@ Overview of <a href="http://sis.apache.org">Apache SIS™ (Spatial Information System)</a>. <h1>Requirements</h1> - <p>SIS requires Java 8 Standard Edition.</p> + <p>SIS requires Java 11 Standard Edition.</p> <h1>Classes naming</h1> <p>Implementations of <a href="http://www.geoapi.org/">GeoAPI interfaces</a> usually (but not always) diff --git a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/xml/stream/FormattedWriter.java b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/xml/stream/FormattedWriter.java index ca816cb671..64dd34e31f 100644 --- a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/xml/stream/FormattedWriter.java +++ b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/xml/stream/FormattedWriter.java @@ -29,9 +29,9 @@ import org.apache.sis.internal.xml.StreamWriterDelegate; * an alternative approach would have been to provide {@code startIdentation()} and {@code endIndentation()} * convenience methods in {@link StaxStreamWriter}, and let subclasses perform their own formatting. It would * reduce the need to try to guess some formatting aspects (e.g. whether to format on a single line or not). - * However, that approach does not integrate very well with JAXB; the {@code Marshaller.JAXB_FORMATTED_OUTPUT} - * property seems to be ignored when marshalling a fragment using {@code XMLStreamWriter}. Even if that property - * was supported, there is no standard way as of JDK8 to tell to JAXB to begin the indentation at some level + * However, that approach does not integrate very well with JAXB. The {@code Marshaller.JAXB_FORMATTED_OUTPUT} + * property seems to be ignored when marshalling a fragment using {@code XMLStreamWriter}. + * Even if that property was supported, we found no way to tell to JAXB to begin the indentation at some level * (for taking in account the indentation of the elements containing the fragment to marshal with JAXB).</div> * * @author Martin Desruisseaux (Geomatys)