Modified: sis/branches/JDK9/core/sis-referencing/src/test/java/org/apache/sis/referencing/report/CoordinateReferenceSystems.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-referencing/src/test/java/org/apache/sis/referencing/report/CoordinateReferenceSystems.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-referencing/src/test/java/org/apache/sis/referencing/report/CoordinateReferenceSystems.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-referencing/src/test/java/org/apache/sis/referencing/report/CoordinateReferenceSystems.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -143,6 +143,7 @@ public final strictfp class CoordinateRe rd("Deutsches Haupthoehennetz 1912", "Deutsches Haupthoehennetz"); rd("Deutsches Haupthoehennetz 1985", "Deutsches Haupthoehennetz"); rd("Deutsches Haupthoehennetz 1992", "Deutsches Haupthoehennetz"); + rd("Deutsches Haupthoehennetz 2016", "Deutsches Haupthoehennetz"); rd("Douala 1948", "Douala"); rd("Dunedin 1958", "Dunedin"); rd("Dunedin-Bluff 1960", "Dunedin"); @@ -159,6 +160,15 @@ public final strictfp class CoordinateRe rd("European Datum 1950(1977)", "European Datum"); rd("European Datum 1979", "European Datum"); rd("European Datum 1987", "European Datum"); + rd("European Terrestrial Reference Frame 1989", "European Terrestrial Reference Frame"); + rd("European Terrestrial Reference Frame 1990", "European Terrestrial Reference Frame"); + rd("European Terrestrial Reference Frame 1991", "European Terrestrial Reference Frame"); + rd("European Terrestrial Reference Frame 1992", "European Terrestrial Reference Frame"); + rd("European Terrestrial Reference Frame 1993", "European Terrestrial Reference Frame"); + rd("European Terrestrial Reference Frame 1994", "European Terrestrial Reference Frame"); + rd("European Terrestrial Reference Frame 1996", "European Terrestrial Reference Frame"); + rd("European Terrestrial Reference Frame 1997", "European Terrestrial Reference Frame"); + rd("European Terrestrial Reference Frame 2000", "European Terrestrial Reference Frame"); rd("European Vertical Reference Frame 2000", "European Vertical Reference Frame"); rd("European Vertical Reference Frame 2007", "European Vertical Reference Frame"); rd("Fahud Height Datum", "Fahud"); @@ -220,8 +230,11 @@ public final strictfp class CoordinateRe rd("International Terrestrial Reference Frame 2000", "International Terrestrial Reference Frame"); rd("International Terrestrial Reference Frame 2005", "International Terrestrial Reference Frame"); rd("International Terrestrial Reference Frame 2008", "International Terrestrial Reference Frame"); + rd("International Terrestrial Reference Frame 2014", "International Terrestrial Reference Frame"); rd("Islands Net 1993", "Islands Net"); rd("Islands Net 2004", "Islands Net"); + rd("Israeli Geodetic Datum 2005", "Israeli Geodetic Datum"); + rd("Israeli Geodetic Datum 2005(2012)", "Israeli Geodetic Datum"); rd("Jamaica 1875", "Jamaica"); rd("Jamaica 1969", "Jamaica"); rd("Jamaica 2001", "Jamaica"); @@ -294,16 +307,24 @@ public final strictfp class CoordinateRe rd("NAD83 (National Spatial Reference System 2011)", "North American Datum 1983 — National Spatial Reference System 2011"); rd("NAD83 (National Spatial Reference System MA11)", "North American Datum 1983 — National Spatial Reference System MA11 / PA11"); rd("NAD83 (National Spatial Reference System PA11)", "North American Datum 1983 — National Spatial Reference System MA11 / PA11"); + rd("New Zealand Vertical Datum 2009", "New Zealand Vertical Datum"); + rd("New Zealand Vertical Datum 2016", "New Zealand Vertical Datum"); rd("Norway Normal Null 1954", "Norway Normal Null"); rd("Norway Normal Null 2000", "Norway Normal Null"); + rd("Ordnance Datum Newlyn (Offshore)", "Ordnance Datum Newlyn"); rd("Ordnance Datum Newlyn (Orkney Isles)", "Ordnance Datum Newlyn"); rd("OSGB 1936", "OSGB"); rd("OSGB 1970 (SN)", "OSGB"); rd("Padang 1884 (Jakarta)", "Padang 1884"); + rd("Parametry Zemli 1990", "Parametry Zemli 1990"); + rd("Parametry Zemli 1990.02", "Parametry Zemli 1990"); + rd("Parametry Zemli 1990.11", "Parametry Zemli 1990"); rd("PDO Height Datum 1993", "PDO Survey / Height Datum 1993"); rd("PDO Survey Datum 1993", "PDO Survey / Height Datum 1993"); rd("Pitcairn 1967", "Pitcairn"); rd("Pitcairn 2006", "Pitcairn"); + rd("Port Moresby 1996", "Port Moresby"); + rd("Port Moresby 2008", "Port Moresby"); rd("Porto Santo 1936", "Porto Santo"); rd("Porto Santo 1995", "Porto Santo"); rd("Posiciones Geodésicas Argentinas 1994", "Posiciones Geodésicas Argentinas"); @@ -423,10 +444,10 @@ public final strictfp class CoordinateRe " tm", // "ETRS89 / TM35FIN(E,N)" — we want to not interleave them between "TM35" and "TM36". " dktm", // "ETRS89 / DKTM1 + DVR90 height" "-gk", // "ETRS89 / ETRS-GK19FIN" -// " philippines zone ", // "Luzon 1911 / Philippines zone IV" -// " california zone ", // "NAD27 / California zone V" -// " ngo zone ", // "NGO 1948 (Oslo) / NGO zone I" -// " lambert zone ", // "NTF (Paris) / Lambert zone II + NGF IGN69 height" + " philippines zone ", // "Luzon 1911 / Philippines zone IV" + " california zone ", // "NAD27 / California zone V" + " ngo zone ", // "NGO 1948 (Oslo) / NGO zone I" + " lambert zone ", // "NTF (Paris) / Lambert zone II + NGF IGN69 height" "fiji 1956 / utm zone " // Two zones: 60S and 1S with 60 before 1. }; @@ -459,7 +480,7 @@ public final strictfp class CoordinateRe properties.setProperty("PRODUCT.URL", "http://sis.apache.org"); properties.setProperty("JAVADOC.GEOAPI", "http://www.geoapi.org/snapshot/javadoc"); properties.setProperty("FACTORY.NAME", "EPSG"); - properties.setProperty("FACTORY.VERSION", "9.0"); + properties.setProperty("FACTORY.VERSION", "9.1"); properties.setProperty("FACTORY.VERSION.SUFFIX", ", together with other sources"); properties.setProperty("PRODUCT.VERSION.SUFFIX", " (provided that <a href=\"http://sis.apache.org/epsg.html\">a connection to an EPSG database exists</a>)"); properties.setProperty("DESCRIPTION", "<p><b>Notation:</b></p>\n" + @@ -469,7 +490,7 @@ public final strictfp class CoordinateRe " <li>The <del>codes with a strike</del> (${PERCENT.DEPRECATED} of them) identify deprecated CRS." + " In some cases, the remarks column indicates the replacement.</li>\n" + "</ul>"); - factory = org.apache.sis.referencing.CRS.getAuthorityFactory(null); + factory = CRS.getAuthorityFactory(null); add(factory); }
Modified: sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/DateAdapter.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/DateAdapter.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/DateAdapter.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/DateAdapter.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -26,7 +26,7 @@ import org.apache.sis.internal.jaxb.XmlU /** * JAXB adapter wrapping the date value (as milliseconds elapsed since January 1st, 1970) in a - * {@link XMLGregorianCalendar} for the {@code xsd:date} type. Hours, minutes and seconds are + * {@link XMLGregorianCalendar} for the {@code xs:date} type. Hours, minutes and seconds are * discarded. * * <p>Using this adapter is equivalent to apply the following annotation on a {@code Date} field:</p> @@ -81,7 +81,7 @@ public final class DateAdapter extends X final Context context = Context.current(); try { final XMLGregorianCalendar gc = XmlUtilities.toXML(context, value); - XmlUtilities.trimTime(gc, true); // Type is xsd:date without time. + XmlUtilities.trimTime(gc, true); // Type is xs:date without time. return gc; } catch (DatatypeConfigurationException e) { Context.warningOccured(context, XmlAdapter.class, "marshal", e, true); Modified: sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -58,7 +58,7 @@ import org.apache.sis.measure.Units; * <gml:semiMajorAxis uom="urn:ogc:def:uom:EPSG::9001">6378137</gml:semiMajorAxis> * } * - * Both have a value of type {@code xsd:double} and a {@code uom} attribute (without namespace) + * Both have a value of type {@code xs:double} and a {@code uom} attribute (without namespace) * of type {@code gml:UomIdentifier}. Those two informations are represented by this class. * * @author Cédric Briançon (Geomatys) Modified: sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/UniversalTimeAdapter.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/UniversalTimeAdapter.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/UniversalTimeAdapter.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gml/UniversalTimeAdapter.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -32,7 +32,7 @@ import static org.apache.sis.internal.ja /** * JAXB adapter wrapping the date value (as milliseconds elapsed since January 1st, 1970) in a - * {@link XMLGregorianCalendar} for the {@code xsd:dateTime} type with the timezone forced to UTC. + * {@link XMLGregorianCalendar} for the {@code xs:dateTime} type with the timezone forced to UTC. * The milliseconds are omitted if not different than zero. * * @author Martin Desruisseaux (Geomatys) Modified: sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gmx/Anchor.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gmx/Anchor.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gmx/Anchor.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gmx/Anchor.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -21,6 +21,7 @@ import java.util.Locale; import java.util.Objects; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlValue; +import javax.xml.bind.annotation.XmlRootElement; import org.opengis.util.InternationalString; import org.apache.sis.xml.XLink; @@ -36,11 +37,13 @@ import org.apache.sis.xml.XLink; * * @author Guilhem Legal (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.3 + * @author Cullen Rombach (Image Matters) + * @version 0.8 * @since 0.3 * @module */ @XmlType(name = "Anchor_Type") +@XmlRootElement(name = "Anchor") public final class Anchor extends XLink implements InternationalString { /** * Defined as a matter of principle (this class is not expected to be serialized). Modified: sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/system/Modules.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/system/Modules.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/system/Modules.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/system/Modules.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -60,6 +60,11 @@ public final class Modules { /** * The {@value} module name. */ + public static final String FEATURE = "org.apache.sis.feature"; + + /** + * The {@value} module name. + */ public static final String STORAGE = "org.apache.sis.storage"; /** Modified: sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/util/Utilities.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/util/Utilities.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/util/Utilities.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/internal/util/Utilities.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -46,14 +46,14 @@ public final class Utilities extends Sta * * <div class="section">Relationship with {@code gml:id}</div> * This method may be invoked for building {@code gml:id} values. Strictly speaking this is not appropriate - * since the {@code xsd:ID} type defines valid identifiers as containing only letters, digits, underscores, + * since the {@code xs:ID} type defines valid identifiers as containing only letters, digits, underscores, * hyphens, and periods. This differ from Unicode identifier in two ways: * * <ul> * <li>Unicode identifiers accept Japanese or Chinese ideograms for instance, which are considered as letters.</li> * <li>Unicode identifiers do not accept the {@code '-'} and {@code ':'} characters. However this restriction * fits well our need, since those characters are typical values for the {@code separator} argument.</li> - * <li>Note that {@code '_'} is valid both in {@code xsd:ID} and Unicode identifier.</li> + * <li>Note that {@code '_'} is valid both in {@code xs:ID} and Unicode identifier.</li> * </ul> * * @param appendTo the buffer where to append the valid characters. Modified: sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/measure/UnitRegistry.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/measure/UnitRegistry.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/measure/UnitRegistry.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/measure/UnitRegistry.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -121,22 +121,34 @@ final class UnitRegistry implements Syst */ static <Q extends Quantity<Q>> SystemUnit<Q> init(final SystemUnit<Q> unit) { assert !Units.initialized : unit; // This assertion happens during Units initialization, but it is okay. - boolean existed; - existed = HARD_CODED.put(unit.dimension, unit) != null; - existed |= HARD_CODED.put(unit.quantity, unit) != null; - existed |= HARD_CODED.put(unit.getSymbol(), unit) != null; + int existed; + existed = (HARD_CODED.put(unit.dimension, unit) == null) ? 0 : 1; + existed |= (HARD_CODED.put(unit.quantity, unit) == null) ? 0 : 2; + existed |= (HARD_CODED.put(unit.getSymbol(), unit) == null) ? 0 : 4; if (unit.epsg != 0) { - existed |= HARD_CODED.put(unit.epsg, unit) != null; + existed |= (HARD_CODED.put(unit.epsg, unit) == null) ? 0 : 8; } /* * Key collision on dimension and quantity tolerated for dimensionless units only, with an * an exception for "candela" because "lumen" is candela divided by a dimensionless unit. + * Another exception is "Hz" because it come after rad/s, which has the same dimension. */ - assert !existed || unit.dimension.isDimensionless() || "cd".equals(unit.getSymbol()) : unit; + assert filter(existed, unit) == 0 : unit; return unit; } /** + * Clears the {@code existed} bits for the cases where we allow dimension or quantity type collisions. + * This method is invoked for assertions only. + */ + private static int filter(int existed, final SystemUnit<?> unit) { + final String s = unit.getSymbol(); + if (unit.dimension.isDimensionless()) existed &= ~(1 | 2); // Accepts dimension and quantity collisions. + if (s.equals("cd") || s.equals("Hz")) existed &= ~(1 ); // Accepts dimension collisions only; + return s.isEmpty() ? 0 : existed; + } + + /** * Invoked by {@link Units} static class initializer for registering SI conventional units. * This method shall be invoked in a single thread by the {@code Units} class initializer only. */ Modified: sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/measure/Units.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/measure/Units.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/measure/Units.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/measure/Units.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -371,7 +371,7 @@ public final class Units extends Static * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25"> * <tr><td>SI angle units:</td> <td style="word-spacing:1em">{@link #MICRORADIAN}, <u><b>{@code RADIAN}</b></u>.</td></tr> * <tr><td>In other systems:</td> <td style="word-spacing:1em">{@link #DEGREE}, {@link #ARC_MINUTE}, {@link #ARC_SECOND}, {@link #GRAD}.</td></tr> - * <tr><td>Derived units:</td> <td style="word-spacing:1em">{@link #STERADIAN}.</td></tr> + * <tr><td>Derived units:</td> <td style="word-spacing:1em">{@link #STERADIAN}, {@link #RADIANS_PER_SECOND}.</td></tr> * </table></div> * * @since 0.8 @@ -582,6 +582,19 @@ public final class Units extends Static public static final Unit<Frequency> HERTZ; /** + * The unit for angular velocity (rad/s). + * The identifier is EPSG:1035. + * + * <div class="note"><p class="simpleTagLabel" style="margin-bottom:0">Related units:</p> + * <table class="compact" summary="Related units" style="margin-left:30px; line-height:1.25"> + * <tr><td>Components:</td> <td style="word-spacing:0.5em">{@link #RADIAN} ∕ {@link #SECOND}</td></tr> + * </table></div> + * + * @since 0.8 + */ + public static final Unit<AngularVelocity> RADIANS_PER_SECOND; + + /** * The SI derived unit for speed (m/s). * The unlocalized name is “metres per second” and the identifier is EPSG:1026. * @@ -1020,10 +1033,9 @@ public final class Units extends Static * Salinity measured using PSS-78. While this is a dimensionless measurement, the {@code "psu"} symbol * is sometime added to PSS-78 measurement. However this is officially discouraged. * - * <p>If we make this field public in a future SIS version, we should consider introducing a - * {@code Salinity} quantity type.</p> + * @since 0.8 */ - static final Unit<Dimensionless> PSU; + public static final Unit<Salinity> PSU; /** * Sigma-level, used in oceanography. This is a way to measure a depth as a fraction of the sea floor depth. @@ -1069,6 +1081,7 @@ public final class Units extends Static final UnitDimension temperature = new UnitDimension('Θ'); final UnitDimension amount = new UnitDimension('N'); final UnitDimension luminous = new UnitDimension('J'); + final UnitDimension frequency = time.pow(-1); final UnitDimension area = length.pow(2); final UnitDimension speed = length.divide(time); final UnitDimension force = mass.multiply(speed).divide(time); @@ -1143,11 +1156,19 @@ public final class Units extends Static WEEK = add(s, LinearConverter.scale( 7*24*60*60, 1), "wk", OTHER, (short) 0); TROPICAL_YEAR = add(s, LinearConverter.scale(31556925445.0, 1000), "a", OTHER, (short) 1029); /* - * All Unit<Speed>. - */ + * All Unit<Speed>, Unit<AngularVelocity> and Unit<ScaleRateOfChange>. + * The 'unityPerSecond' unit is not added to the registry because it is specific to the EPSG database, + * has no clear symbol and is easy to confuse with Hertz. We create that unit only for allowing us to + * create the "ppm/a" units. + */ + final SystemUnit<ScaleRateOfChange> unityPerSecond; + unityPerSecond = new SystemUnit<>(ScaleRateOfChange.class, frequency, null, OTHER, (short) 1036, null); + unityPerSecond.related(1); mps.related(1); METRES_PER_SECOND = mps; - KILOMETRES_PER_HOUR = add(mps, LinearConverter.scale(10, 36), "km∕h", ACCEPTED, (short) 0); + KILOMETRES_PER_HOUR = add(mps, LinearConverter.scale(10, 36), "km∕h", ACCEPTED, (short) 0); + RADIANS_PER_SECOND = add(AngularVelocity.class, null, frequency, "rad∕s", SI, (short) 1035); + add(unityPerSecond, LinearConverter.scale(1, 31556925445E6), "ppm∕a", OTHER, (short) 1030); /* * All Unit<Pressure>. */ @@ -1177,8 +1198,9 @@ public final class Units extends Static GRAM = add(kg, milli, "g", (byte) (ACCEPTED | PREFIXABLE), (short) 0); /* * Force, energy, electricity, magnetism and other units. + * Frequency must be defined after angular velocities. */ - HERTZ = add(Frequency.class, Scalar.Frequency::new, time.pow(-1), "Hz", (byte) (SI | PREFIXABLE), (short) 0); + HERTZ = add(Frequency.class, Scalar.Frequency::new, frequency, "Hz", (byte) (SI | PREFIXABLE), (short) 0); NEWTON = add(Force.class, Scalar.Force::new, force, "N", (byte) (SI | PREFIXABLE), (short) 0); JOULE = add(Energy.class, Scalar.Energy::new, energy, "J", (byte) (SI | PREFIXABLE), (short) 0); WATT = add(Power.class, Scalar.Power::new, power, "W", (byte) (SI | PREFIXABLE), (short) 0); @@ -1201,7 +1223,7 @@ public final class Units extends Static */ PERCENT = add(one, centi, "%", OTHER, (short) 0); PPM = add(one, micro, "ppm", OTHER, (short) 9202); - PSU = add(Dimensionless.class, Scalar.Dimensionless::new, dimensionless, "psu", OTHER, (short) 0); + PSU = add(Salinity.class, null, dimensionless, "psu", OTHER, (short) 0); SIGMA = add(Dimensionless.class, Scalar.Dimensionless::new, dimensionless, "sigma", OTHER, (short) 0); PIXEL = add(Dimensionless.class, Scalar.Dimensionless::new, dimensionless, "px", OTHER, (short) 0); UNITY = UnitRegistry.init(one); // Must be last in order to take precedence over all other units associated to UnitDimension.NONE. Modified: sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -46,7 +46,8 @@ import static org.apache.sis.util.collec * } * * @author Martin Desruisseaux (IRD, Geomatys) - * @version 0.4 + * @author Cullen Rombach (Image Matters) + * @version 0.8 * @since 0.3 * @module */ @@ -275,11 +276,11 @@ filter: for (final Locale locale : local return unique(new Locale.Builder().setLanguageTag(code).build()); } /* - * Old syntax (e.g. "en_US"). Split in (language, country, variant) components, + * Old syntax (e.g. "en_US" or "eng; USA"). Split in (language, country, variant) components, * then convert the 3-letters codes to the 2-letters ones. */ String language, country = "", variant = ""; - if (p1 < 0) { + if (p1 < 0 && (p1 = code.indexOf(';', fromIndex)) < 0) { p1 = code.length(); } else { final int s = p1 + 1; Modified: sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -53,7 +53,8 @@ import org.apache.sis.internal.util.Abst * </ul> * * @author Martin Desruisseaux (Geomatys) - * @version 0.5 + * @author Cullen Rombach (Image Matters) + * @version 0.8 * * @see DefaultRecordType * @see DefaultRecordSchema @@ -96,6 +97,65 @@ public class DefaultRecord implements Re } /** + * Creates a new record initialized to a shallow copy of the given record. + * The members contained in the given record are <strong>not</strong> recursively copied. + * + * @param record the record to copy (can not be null). + * + * @since 0.8 + */ + @SuppressWarnings("SuspiciousSystemArraycopy") + public DefaultRecord(final Record record) { + this(record.getRecordType()); + if (record instanceof DefaultRecord) { + final Object source = ((DefaultRecord) record).values; + System.arraycopy(source, 0, values, 0, Array.getLength(source)); + } else { + for (final Map.Entry<MemberName,Integer> entry : definition.memberIndices().entrySet()) { + final MemberName name = entry.getKey(); + final Object value = record.locate(name); + if (value != null) { + final int index = entry.getValue(); + final Class<?> valueClass = definition.getValueClass(index); + if (valueClass != null && !valueClass.isInstance(value)) { + throw new ClassCastException(Errors.format(Errors.Keys.IllegalPropertyValueClass_3, + name, valueClass, value.getClass())); + } + Array.set(values, index, value); + } + } + } + } + + /** + * Returns a SIS implementation with the name and members of the given arbitrary implementation. + * This method performs the first applicable action in the following choices: + * + * <ul> + * <li>If the given object is {@code null}, then this method returns {@code null}.</li> + * <li>Otherwise if the given object is already an instance of {@code DefaultRecord}, + * then it is returned unchanged.</li> + * <li>Otherwise a new {@code DefaultRecord} instance is created using the + * {@linkplain #DefaultRecord(Record) copy constructor} and returned. + * Note that this is a shallow copy operation, since the members contained + * in the given object are not recursively copied.</li> + * </ul> + * + * @param other The object to get as a SIS implementation, or {@code null} if none. + * @return A SIS implementation containing the members of the given object + * (may be the given object itself), or {@code null} if the argument was {@code null}. + * + * @since 0.8 + */ + public static DefaultRecord castOrCopy(final Record other) { + if (other == null || other instanceof DefaultRecord) { + return (DefaultRecord) other; + } else { + return new DefaultRecord(other); + } + } + + /** * Returns the type definition of this record. * * @return the type definition of this record. Modified: sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -446,6 +446,7 @@ public class DefaultRecordType extends R /** * Empty constructor only used by JAXB. */ + @SuppressWarnings("unused") private DefaultRecordType() { typeName = null; container = null; Modified: sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/java/org/apache/sis/xml/Namespaces.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -189,7 +189,7 @@ public final class Namespaces extends St private static final Map<String,String> SPECIFIC_URLS; static { final Map<String,String> p = new HashMap<>(40); - p.put(XMLConstants.W3C_XML_SCHEMA_NS_URI, "xsd"); + p.put(XMLConstants.W3C_XML_SCHEMA_NS_URI, "xsd"); // TODO: should be "xs". p.put(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, "xsi"); p.put("http://www.w3.org/2004/02/skos/core#", "skos"); p.put("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf"); Modified: sis/branches/JDK9/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames.properties URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames.properties?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames.properties [ISO-8859-1] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames.properties [ISO-8859-1] Mon Aug 21 01:03:12 2017 @@ -45,6 +45,7 @@ psu=practical salinity unit pt=point px=pixel rad=radian +rad\u2215s=radians per second s=second S=siemens sr=steradian Modified: sis/branches/JDK9/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames_fr.properties URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames_fr.properties?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames_fr.properties [ISO-8859-1] (original) +++ sis/branches/JDK9/core/sis-utility/src/main/resources/org/apache/sis/measure/UnitNames_fr.properties [ISO-8859-1] Mon Aug 21 01:03:12 2017 @@ -24,6 +24,7 @@ mm=millimètre ms=milliseconde nm=nanomètre ppm=parties par million +rad\u2215s=radians par seconde s=seconde sr=stéradian unity=unité Modified: sis/branches/JDK9/core/sis-utility/src/test/java/org/apache/sis/measure/ConventionalUnitTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/test/java/org/apache/sis/measure/ConventionalUnitTest.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/test/java/org/apache/sis/measure/ConventionalUnitTest.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/test/java/org/apache/sis/measure/ConventionalUnitTest.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -186,9 +186,9 @@ public final strictfp class Conventional verify (Units.CUBIC_METRE, Units.CUBIC_METRE .divide (1E+9), "mm³", 1E-9); assertSame(Units.HOUR, Units.SECOND.multiply(3600)); - assertSame(Units.DEGREE, Units.RADIAN.multiply(Math.PI/180)); - assertSame(Units.GRAD, Units.RADIAN.multiply(Math.PI/200)); - assertSame(Units.ARC_SECOND, Units.RADIAN.multiply(Math.PI / (180*60*60))); + assertSame(Units.DEGREE, Units.RADIAN.multiply(StrictMath.PI/180)); + assertSame(Units.GRAD, Units.RADIAN.multiply(StrictMath.PI/200)); + assertSame(Units.ARC_SECOND, Units.RADIAN.multiply(StrictMath.PI / (180*60*60))); assertSame(Units.MICRORADIAN, Units.RADIAN.divide(1E6)); assertSame(Units.GRAM, Units.KILOGRAM.divide(1E+3)); Modified: sis/branches/JDK9/core/sis-utility/src/test/java/org/apache/sis/measure/UnitFormatTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/test/java/org/apache/sis/measure/UnitFormatTest.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/test/java/org/apache/sis/measure/UnitFormatTest.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/test/java/org/apache/sis/measure/UnitFormatTest.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -90,6 +90,7 @@ public final strictfp class UnitFormatTe verify(declared, "WEEK", "T", "wk", "week", Units.WEEK); verify(declared, "TROPICAL_YEAR", "T", "a", "year", Units.TROPICAL_YEAR); verify(declared, "HERTZ", "∕T", "Hz", "hertz", Units.HERTZ); + verify(declared, "RADIANS_PER_SECOND", "∕T", "rad∕s", "radians per second", Units.RADIANS_PER_SECOND); verify(declared, "METRES_PER_SECOND", "L∕T", "m∕s", "metres per second", Units.METRES_PER_SECOND); verify(declared, "KILOMETRES_PER_HOUR", "L∕T", "km∕h", "kilometres per hour", Units.KILOMETRES_PER_HOUR); verify(declared, "PASCAL", "M∕(L⋅T²)", "Pa", "pascal", Units.PASCAL); Modified: sis/branches/JDK9/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java [UTF-8] (original) +++ sis/branches/JDK9/core/sis-utility/src/test/java/org/apache/sis/util/LocalesTest.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -30,7 +30,7 @@ import static org.junit.Assert.*; * Tests the {@link Locales} class. * * @author Martin Desruisseaux (Geomatys) - * @version 0.4 + * @version 0.8 * @since 0.3 * @module */ @@ -82,6 +82,7 @@ public final strictfp class LocalesTest assertSame(Locale.CANADA_FRENCH, Locales.parse("fr_CAN")); assertSame(Locale.CANADA_FRENCH, Locales.parse("fra_CAN")); assertSame(Locale.JAPAN, Locales.parse("ja_JP")); + assertSame(Locale.US, Locales.parse("en; USA")); assertEquals(new Locale("de", "DE"), Locales.parse("de_DE")); assertEquals(new Locale("", "GB"), Locales.parse("_GB")); Modified: sis/branches/JDK9/ide-project/NetBeans/build.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK9/ide-project/NetBeans/build.xml?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/ide-project/NetBeans/build.xml (original) +++ sis/branches/JDK9/ide-project/NetBeans/build.xml Mon Aug 21 01:03:12 2017 @@ -45,6 +45,9 @@ <fileset dir="${project.root}/core/sis-feature/target/generated-resources"> <include name="**/*.utf"/> </fileset> + <fileset dir="${project.root}/core/sis-raster/target/generated-resources"> + <include name="**/*.utf"/> + </fileset> <fileset dir="${project.root}/storage/sis-storage/target/generated-resources"> <include name="**/*.utf"/> </fileset> Modified: sis/branches/JDK9/ide-project/NetBeans/nbproject/build-impl.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK9/ide-project/NetBeans/nbproject/build-impl.xml?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/ide-project/NetBeans/nbproject/build-impl.xml (original) +++ sis/branches/JDK9/ide-project/NetBeans/nbproject/build-impl.xml Mon Aug 21 01:03:12 2017 @@ -19,7 +19,7 @@ is divided into following sections: - cleanup --> -<project xmlns:if="ant:if" xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" xmlns:unless="ant:unless" basedir=".." default="default" name="Apache_SIS_for_JDK8-impl"> +<project xmlns:if="ant:if" xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" xmlns:unless="ant:unless" basedir=".." default="default" name="Apache_SIS_for_JDK9-impl"> <fail message="Please build using Ant 1.8.0 or higher."> <condition> <not> @@ -90,7 +90,7 @@ is divided into following sections: </not> </condition> </fail> - <j2seproject3:modulename property="module.name" sourcepath="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}"/> + <j2seproject3:modulename property="module.name" sourcepath="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.raster.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}"/> <condition property="named.module.internal"> <and> <isset property="module.name"/> @@ -238,6 +238,7 @@ is divided into following sections: <available file="${test.xmlstore.dir}"/> <available file="${test.storage.dir}"/> <available file="${test.feature.dir}"/> + <available file="${test.raster.dir}"/> <available file="${test.referencing.dir}"/> <available file="${test.ref-by-id.dir}"/> <available file="${test.metadata.dir}"/> @@ -259,6 +260,7 @@ is divided into following sections: <available file="${src.xmlstore.dir}"/> <available file="${src.storage.dir}"/> <available file="${src.feature.dir}"/> + <available file="${src.raster.dir}"/> <available file="${src.referencing.dir}"/> <available file="${src.ref-by-id.dir}"/> <available file="${src.metadata.dir}"/> @@ -365,6 +367,7 @@ is divided into following sections: <fail unless="src.xmlstore.dir">Must set src.xmlstore.dir</fail> <fail unless="src.storage.dir">Must set src.storage.dir</fail> <fail unless="src.feature.dir">Must set src.feature.dir</fail> + <fail unless="src.raster.dir">Must set src.raster.dir</fail> <fail unless="src.referencing.dir">Must set src.referencing.dir</fail> <fail unless="src.ref-by-id.dir">Must set src.ref-by-id.dir</fail> <fail unless="src.metadata.dir">Must set src.metadata.dir</fail> @@ -382,6 +385,7 @@ is divided into following sections: <fail unless="test.xmlstore.dir">Must set test.xmlstore.dir</fail> <fail unless="test.storage.dir">Must set test.storage.dir</fail> <fail unless="test.feature.dir">Must set test.feature.dir</fail> + <fail unless="test.raster.dir">Must set test.raster.dir</fail> <fail unless="test.referencing.dir">Must set test.referencing.dir</fail> <fail unless="test.ref-by-id.dir">Must set test.ref-by-id.dir</fail> <fail unless="test.metadata.dir">Must set test.metadata.dir</fail> @@ -408,7 +412,7 @@ is divided into following sections: </target> <target depends="-init-ap-cmdline-properties,-init-source-module-properties" if="modules.supported.internal" name="-init-macrodef-javac-with-module"> <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" name="srcdir"/> + <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.raster.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" name="srcdir"/> <attribute default="${build.classes.dir}" name="destdir"/> <attribute default="${javac.classpath}" name="classpath"/> <attribute default="${javac.modulepath}" name="modulepath"/> @@ -420,7 +424,7 @@ is divided into following sections: <attribute default="${excludes}" name="excludes"/> <attribute default="${javac.debug}" name="debug"/> <attribute default="${empty.dir}" name="sourcepath" unless:set="named.module.internal"/> - <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" if:set="named.module.internal" name="sourcepath"/> + <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.raster.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" if:set="named.module.internal" name="sourcepath"/> <attribute default="${empty.dir}" name="gensrcdir"/> <element name="customize" optional="true"/> <sequential> @@ -475,7 +479,7 @@ is divided into following sections: </target> <target depends="-init-ap-cmdline-properties,-init-source-module-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors" unless="modules.supported.internal"> <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" name="srcdir"/> + <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.raster.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" name="srcdir"/> <attribute default="${build.classes.dir}" name="destdir"/> <attribute default="${javac.classpath}" name="classpath"/> <attribute default="${javac.modulepath}" name="modulepath"/> @@ -518,7 +522,7 @@ is divided into following sections: </target> <target depends="-init-ap-cmdline-properties,-init-source-module-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal"> <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" name="srcdir"/> + <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.raster.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" name="srcdir"/> <attribute default="${build.classes.dir}" name="destdir"/> <attribute default="${javac.classpath}" name="classpath"/> <attribute default="${javac.modulepath}" name="modulepath"/> @@ -553,7 +557,7 @@ is divided into following sections: </target> <target depends="-init-macrodef-javac-with-module,-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac"> <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" name="srcdir"/> + <attribute default="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.raster.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}" name="srcdir"/> <attribute default="${build.classes.dir}" name="destdir"/> <attribute default="${javac.classpath}" name="classpath"/> <sequential> @@ -716,6 +720,9 @@ is divided into following sections: <fileset dir="${test.feature.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> <filename name="@{testincludes}"/> </fileset> + <fileset dir="${test.raster.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> + <filename name="@{testincludes}"/> + </fileset> <fileset dir="${test.referencing.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> <filename name="@{testincludes}"/> </fileset> @@ -787,6 +794,9 @@ is divided into following sections: <fileset dir="${test.feature.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}"> <filename name="@{testincludes}"/> </fileset> + <fileset dir="${test.raster.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}"> + <filename name="@{testincludes}"/> + </fileset> <fileset dir="${test.referencing.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}"> <filename name="@{testincludes}"/> </fileset> @@ -807,7 +817,7 @@ is divided into following sections: </fileset> </union> <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/> - <testng classfilesetref="test.set" failureProperty="tests.failed" jvm="${platform.java}" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="Apache_SIS_for_JDK8" testname="TestNG tests" workingDir="${work.dir}"> + <testng classfilesetref="test.set" failureProperty="tests.failed" jvm="${platform.java}" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="Apache_SIS_for_JDK9" testname="TestNG tests" workingDir="${work.dir}"> <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/> <propertyset> <propertyref prefix="test-sys-prop."/> @@ -904,7 +914,7 @@ is divided into following sections: <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}"> <isset property="test.method"/> </condition> - <condition else="-suitename Apache_SIS_for_JDK8 -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}"> + <condition else="-suitename Apache_SIS_for_JDK9 -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}"> <matches pattern=".*\.xml" string="@{testClass}"/> </condition> <delete dir="${build.test.results.dir}" quiet="true"/> @@ -1248,7 +1258,7 @@ is divided into following sections: <delete file="${built-jar.properties}" quiet="true"/> </target> <target if="already.built.jar.${basedir}" name="-warn-already-built-jar"> - <echo level="warn" message="Cycle detected: Apache SIS for JDK8 was already built"/> + <echo level="warn" message="Cycle detected: Apache SIS for JDK9 was already built"/> </target> <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps"> <mkdir dir="${build.dir}"/> @@ -1290,7 +1300,7 @@ is divided into following sections: <include name="*"/> </dirset> </pathconvert> - <j2seproject3:depend srcdir="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}:${build.generated.subdirs}"/> + <j2seproject3:depend srcdir="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.raster.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}:${build.generated.subdirs}"/> </target> <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile"> <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/> @@ -1306,6 +1316,7 @@ is divided into following sections: <fileset dir="${src.xmlstore.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${src.storage.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${src.feature.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + <fileset dir="${src.raster.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${src.referencing.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${src.ref-by-id.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${src.metadata.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> @@ -1333,7 +1344,7 @@ is divided into following sections: <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single"> <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> <j2seproject3:force-recompile/> - <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}, module-info.java" sourcepath="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}"/> + <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}, module-info.java" sourcepath="${src.local-src.dir}:${src.webapp.dir}:${src.javafx.dir}:${src.console.dir}:${src.earth-obs.dir}:${src.geotiff.dir}:${src.netcdf.dir}:${src.shapefile.dir}:${src.xmlstore.dir}:${src.storage.dir}:${src.feature.dir}:${src.raster.dir}:${src.referencing.dir}:${src.ref-by-id.dir}:${src.metadata.dir}:${src.utility.dir}:${src.fra-profile.dir}:${src.gdal.dir}:${src.c.gdal.dir}"/> </target> <target name="-post-compile-single"> <!-- Empty placeholder for easier customization. --> @@ -1747,6 +1758,9 @@ is divided into following sections: <fileset dir="${src.feature.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}"> <filename name="**/*.java"/> </fileset> + <fileset dir="${src.raster.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}"> + <filename name="**/*.java"/> + </fileset> <fileset dir="${src.referencing.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}"> <filename name="**/*.java"/> </fileset> @@ -1809,6 +1823,9 @@ is divided into following sections: <fileset dir="${src.feature.dir}" excludes="${excludes}" includes="${includes}"> <filename name="**/doc-files/**"/> </fileset> + <fileset dir="${src.raster.dir}" excludes="${excludes}" includes="${includes}"> + <filename name="**/doc-files/**"/> + </fileset> <fileset dir="${src.referencing.dir}" excludes="${excludes}" includes="${includes}"> <filename name="**/doc-files/**"/> </fileset> @@ -1852,14 +1869,14 @@ is divided into following sections: <!-- You can override this target in the ../build.xml file. --> </target> <target depends="-init-source-module-properties" if="named.module.internal" name="-init-test-javac-module-properties-with-module"> - <j2seproject3:modulename property="test.module.name" sourcepath="${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir}"/> - <condition else="${empty.dir}" property="javac.test.sourcepath" value="${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir}"> + <j2seproject3:modulename property="test.module.name" sourcepath="${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.raster.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir}"/> + <condition else="${empty.dir}" property="javac.test.sourcepath" value="${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.raster.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir}"> <and> <isset property="test.module.name"/> <length length="0" string="${test.module.name}" when="greater"/> </and> </condition> - <condition else="--patch-module ${module.name}=${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir} --add-reads ${module.name}=ALL-UNNAMED" property="javac.test.compilerargs" value="--add-reads ${test.module.name}=ALL-UNNAMED"> + <condition else="--patch-module ${module.name}=${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.raster.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir} --add-reads ${module.name}=ALL-UNNAMED" property="javac.test.compilerargs" value="--add-reads ${test.module.name}=ALL-UNNAMED"> <and> <isset property="test.module.name"/> <length length="0" string="${test.module.name}" when="greater"/> @@ -1900,10 +1917,10 @@ is divided into following sections: </target> <target depends="-init-test-javac-module-properties-with-module,-init-test-module-properties-without-module" name="-init-test-module-properties"/> <target if="do.depend.true" name="-compile-test-depend"> - <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir}"/> + <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.raster.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir}"/> </target> <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> - <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${javac.test.sourcepath}" srcdir="${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir}"> + <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${javac.test.sourcepath}" srcdir="${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.raster.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir}"> <customize> <compilerarg line="${javac.test.compilerargs}"/> </customize> @@ -1919,6 +1936,7 @@ is divided into following sections: <fileset dir="${test.xmlstore.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${test.storage.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${test.feature.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + <fileset dir="${test.raster.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${test.referencing.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${test.ref-by-id.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${test.metadata.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> @@ -1939,7 +1957,7 @@ is divided into following sections: <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/> - <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}, module-info.java" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir}" srcdir="${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir}"> + <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}, module-info.java" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.raster.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.gdal.dir}" srcdir="${test.webapp.dir}:${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.raster.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile. dir}:${test.gdal.dir}"> <customize> <compilerarg line="${javac.test.compilerargs}"/> </customize> @@ -1955,6 +1973,7 @@ is divided into following sections: <fileset dir="${test.xmlstore.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${test.storage.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${test.feature.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + <fileset dir="${test.raster.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${test.referencing.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${test.ref-by-id.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${test.metadata.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> @@ -2065,7 +2084,7 @@ is divided into following sections: <delete file="${built-clean.properties}" quiet="true"/> </target> <target if="already.built.clean.${basedir}" name="-warn-already-built-clean"> - <echo level="warn" message="Cycle detected: Apache SIS for JDK8 was already built"/> + <echo level="warn" message="Cycle detected: Apache SIS for JDK9 was already built"/> </target> <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps"> <mkdir dir="${build.dir}"/> Propchange: sis/branches/JDK9/ide-project/NetBeans/nbproject/cfg_hints.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: sis/branches/JDK9/ide-project/NetBeans/nbproject/cfg_hints.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: sis/branches/JDK9/ide-project/NetBeans/nbproject/genfiles.properties URL: http://svn.apache.org/viewvc/sis/branches/JDK9/ide-project/NetBeans/nbproject/genfiles.properties?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/ide-project/NetBeans/nbproject/genfiles.properties [ISO-8859-1] (original) +++ sis/branches/JDK9/ide-project/NetBeans/nbproject/genfiles.properties [ISO-8859-1] Mon Aug 21 01:03:12 2017 @@ -3,6 +3,6 @@ build.xml.data.CRC32=58e6b21c build.xml.script.CRC32=462eaba0 build.xml.stylesheet.CRC32=28e38971@1.53.1.46 -nbproject/build-impl.xml.data.CRC32=a1a46a16 -nbproject/build-impl.xml.script.CRC32=11a71633 +nbproject/build-impl.xml.data.CRC32=66778a60 +nbproject/build-impl.xml.script.CRC32=92503123 nbproject/build-impl.xml.stylesheet.CRC32=bade6ae5@1.88.0.48 Modified: sis/branches/JDK9/ide-project/NetBeans/nbproject/project.properties URL: http://svn.apache.org/viewvc/sis/branches/JDK9/ide-project/NetBeans/nbproject/project.properties?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/ide-project/NetBeans/nbproject/project.properties [ISO-8859-1] (original) +++ sis/branches/JDK9/ide-project/NetBeans/nbproject/project.properties [ISO-8859-1] Mon Aug 21 01:03:12 2017 @@ -70,6 +70,8 @@ src.storage.dir = ${project.root}/s test.storage.dir = ${project.root}/storage/sis-storage/src/test/java src.feature.dir = ${project.root}/core/sis-feature/src/main/java test.feature.dir = ${project.root}/core/sis-feature/src/test/java +src.raster.dir = ${project.root}/core/sis-raster/src/main/java +test.raster.dir = ${project.root}/core/sis-raster/src/test/java src.referencing.dir = ${project.root}/core/sis-referencing/src/main/java test.referencing.dir = ${project.root}/core/sis-referencing/src/test/java src.ref-by-id.dir = ${project.root}/core/sis-referencing-by-identifiers/src/main/java Modified: sis/branches/JDK9/ide-project/NetBeans/nbproject/project.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK9/ide-project/NetBeans/nbproject/project.xml?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/ide-project/NetBeans/nbproject/project.xml (original) +++ sis/branches/JDK9/ide-project/NetBeans/nbproject/project.xml Mon Aug 21 01:03:12 2017 @@ -21,7 +21,7 @@ <type>org.netbeans.modules.java.j2seproject</type> <configuration> <data xmlns="http://www.netbeans.org/ns/j2se-project/3"> - <name>Apache SIS for JDK8</name> + <name>Apache SIS for JDK9</name> <explicit-platform explicit-source-supported="true"/> <source-roots> <root id="src.local-src.dir" name="Local sources (unversioned)"/> @@ -35,6 +35,7 @@ <root id="src.xmlstore.dir" name="XMLStore"/> <root id="src.storage.dir" name="Storage"/> <root id="src.feature.dir" name="Feature"/> + <root id="src.raster.dir" name="Raster"/> <root id="src.referencing.dir" name="Referencing"/> <root id="src.ref-by-id.dir" name="Referencing by identifiers"/> <root id="src.metadata.dir" name="Metadata"/> @@ -54,6 +55,7 @@ <root id="test.xmlstore.dir" name="Test XMLStore"/> <root id="test.storage.dir" name="Test Storage"/> <root id="test.feature.dir" name="Test Feature"/> + <root id="test.raster.dir" name="Test Raster"/> <root id="test.referencing.dir" name="Test Referencing"/> <root id="test.ref-by-id.dir" name="Test Referencing by identifiers"/> <root id="test.metadata.dir" name="Test Metadata"/> Modified: sis/branches/JDK9/pom.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK9/pom.xml?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/pom.xml (original) +++ sis/branches/JDK9/pom.xml Mon Aug 21 01:03:12 2017 @@ -545,7 +545,7 @@ Apache SIS is a free software, Java lang <!-- Compile --> <plugin> <artifactId>maven-compiler-plugin</artifactId> - <version>3.6.2-SNAPSHOT</version> + <version>3.6.2</version> <configuration> <source>${maven.compile.source}</source> <target>${maven.compile.target}</target> @@ -794,6 +794,10 @@ Apache SIS is a free software, Java lang <packages>org.apache.sis.storage*:org.apache.sis.index*</packages> </group> <group> + <title>Coverage and raster</title> + <packages>org.apache.sis.coverage*:org.apache.sis.image*</packages> + </group> + <group> <title>Feature and Geometry</title> <packages>org.apache.sis.feature*:org.apache.sis.geometry*</packages> </group> Modified: sis/branches/JDK9/src/main/javadoc/overview.html URL: http://svn.apache.org/viewvc/sis/branches/JDK9/src/main/javadoc/overview.html?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/src/main/javadoc/overview.html [UTF-8] (original) +++ sis/branches/JDK9/src/main/javadoc/overview.html [UTF-8] Mon Aug 21 01:03:12 2017 @@ -28,7 +28,7 @@ Overview of <a href="http://sis.apache.org">Apache SIS™ (Spatial Information System)</a>. <h3>Requirements</h3> - <p>SIS requires Java 6 Standard Edition.</p> + <p>SIS requires Java 7 Standard Edition.</p> <h3>Classes naming</h3> <p>Implementations of <a href="http://www.geoapi.org/">GeoAPI interfaces</a> usually (but not always) Modified: sis/branches/JDK9/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatStore.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatStore.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatStore.java [UTF-8] (original) +++ sis/branches/JDK9/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatStore.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -28,6 +28,7 @@ import org.apache.sis.storage.DataStoreR import org.apache.sis.storage.UnsupportedStorageException; import org.apache.sis.storage.StorageConnector; import org.apache.sis.setup.OptionKey; +import org.apache.sis.storage.Resource; import org.apache.sis.util.Debug; @@ -106,7 +107,7 @@ public class LandsatStore extends DataSt public synchronized Metadata getMetadata() throws DataStoreException { if (metadata == null && source != null) try { try (BufferedReader reader = (source instanceof BufferedReader) ? (BufferedReader) source : new LineNumberReader(source)) { - source = null; // Will be closed at the end of this try-catch block. + source = null; // Will be closed at the end of this try-finally block. final LandsatReader parser = new LandsatReader(getDisplayName(), listeners); parser.read(reader); metadata = parser.getMetadata(); @@ -120,6 +121,18 @@ public class LandsatStore extends DataSt } /** + * Current implementation does not provide any resource yet. + * Future versions may return an aggregate of all raster data in the GeoTIFF files associated with this metadata. + * + * @return the starting point of all resources in this data store. + * @throws DataStoreException if an error occurred while reading the data. + */ + @Override + public Resource getRootResource() throws DataStoreException { + return null; + } + + /** * Closes this Landsat store and releases any underlying resources. * * @throws DataStoreException if an error occurred while closing the Landsat file. Propchange: sis/branches/JDK9/storage/sis-gdal/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: sis/branches/JDK9/storage/sis-gdal/pom.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: sis/branches/JDK9/storage/sis-gdal/src/main/c/org_apache_sis_storage_gdal_PJ.c URL: http://svn.apache.org/viewvc/sis/branches/JDK9/storage/sis-gdal/src/main/c/org_apache_sis_storage_gdal_PJ.c?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/storage/sis-gdal/src/main/c/org_apache_sis_storage_gdal_PJ.c [UTF-8] (original) +++ sis/branches/JDK9/storage/sis-gdal/src/main/c/org_apache_sis_storage_gdal_PJ.c [UTF-8] Mon Aug 21 01:03:12 2017 @@ -106,7 +106,9 @@ JNIEXPORT jstring JNICALL Java_org_apach if (pj) { const char *desc = pj_get_def(pj, 0); if (desc) { - jstring str = (*env)->NewStringUTF(env, desc); + const char *trim = desc; + if (*trim == ' ') trim++; + jstring str = (*env)->NewStringUTF(env, trim); pj_dalloc((char*) desc); return str; } @@ -281,12 +283,14 @@ JNIEXPORT void JNICALL Java_org_apache_s JNIEXPORT jstring JNICALL Java_org_apache_sis_storage_gdal_PJ_getLastError (JNIEnv *env, jobject object) { - projPJ pj = getPJ(env, object); - if (pj) { - int err = *pj_get_errno_ref(); - if (err) { - return (*env)->NewStringUTF(env, pj_strerrno(err)); - } + /* + * For now we ignore the object reference, but a future version may use it if + * we make this method thread-safe with the use of a Proj.4 context parameter. + * Note that this method needs to work even if getPJ(env, object) returns NULL. + */ + int err = *pj_get_errno_ref(); + if (err) { + return (*env)->NewStringUTF(env, pj_strerrno(err)); } return NULL; } Modified: sis/branches/JDK9/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/PJ.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/PJ.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/PJ.java [UTF-8] (original) +++ sis/branches/JDK9/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/PJ.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -27,12 +27,10 @@ import org.opengis.metadata.citation.Cit import org.opengis.referencing.datum.Ellipsoid; import org.opengis.referencing.datum.GeodeticDatum; import org.opengis.referencing.datum.PrimeMeridian; -import org.opengis.referencing.crs.CoordinateReferenceSystem; import org.opengis.referencing.operation.TransformException; import org.apache.sis.referencing.factory.InvalidGeodeticParameterException; import org.apache.sis.referencing.IdentifiedObjects; import org.apache.sis.metadata.iso.citation.Citations; -import org.apache.sis.util.resources.Errors; import org.apache.sis.internal.util.Constants; import org.apache.sis.internal.system.OS; @@ -81,8 +79,8 @@ final class PJ implements Identifier, Se Objects.requireNonNull(definition); ptr = allocatePJ(definition); if (ptr == 0) { - throw new InvalidGeodeticParameterException(Errors.format(Errors.Keys.UnparsableStringForClass_2, - CoordinateReferenceSystem.class, definition)); + // Note: our getLastError() implementation is safe even if pts == 0. + throw new InvalidGeodeticParameterException(getLastError()); } } @@ -286,6 +284,7 @@ final class PJ implements Identifier, Se * @return the last error that occurred, or {@code null}. * * @todo this method is not thread-safe. Proj.4 provides a better alternative using a context parameter. + * Note that this method needs to be safe even if {@link #ptr} is 0. */ native String getLastError(); Modified: sis/branches/JDK9/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4.java URL: http://svn.apache.org/viewvc/sis/branches/JDK9/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4.java?rev=1805590&r1=1805589&r2=1805590&view=diff ============================================================================== --- sis/branches/JDK9/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4.java [UTF-8] (original) +++ sis/branches/JDK9/storage/sis-gdal/src/main/java/org/apache/sis/storage/gdal/Proj4.java [UTF-8] Mon Aug 21 01:03:12 2017 @@ -42,7 +42,10 @@ import org.opengis.referencing.operation import org.apache.sis.referencing.operation.AbstractCoordinateOperation; import org.apache.sis.referencing.factory.UnavailableFactoryException; import org.apache.sis.referencing.factory.InvalidGeodeticParameterException; +import org.apache.sis.referencing.datum.DefaultGeodeticDatum; +import org.apache.sis.referencing.datum.BursaWolfParameters; import org.apache.sis.referencing.IdentifiedObjects; +import org.apache.sis.referencing.CommonCRS; import org.apache.sis.referencing.CRS; import org.apache.sis.metadata.iso.citation.Citations; import org.apache.sis.internal.metadata.AxisDirections; @@ -51,6 +54,7 @@ import org.apache.sis.internal.system.OS import org.apache.sis.util.logging.Logging; import org.apache.sis.util.resources.Errors; import org.apache.sis.util.ArgumentChecks; +import org.apache.sis.util.Utilities; import org.apache.sis.util.Static; import org.apache.sis.util.iso.Types; import org.apache.sis.measure.Units; @@ -162,22 +166,13 @@ public final class Proj4 extends Static * Append the map projection parameters. Those parameters may include axis lengths (a and b), * but not necessarily. If axis lengths are specified, then we will ignore the Ellipsoid instance * associated to the CRS. - * - * The "+over" option is for disabling the default wrapping of output longitudes in the -180 to 180 range. - * We do that for having the same behavior between Proj.4 and Apache SIS. No wrapping reduce discontinuity - * problems with geometries that cross the anti-meridian. - * - * The "+no_defs" option is for ensuring that no defaults are read from "/usr/share/proj/proj_def.dat" file. - * That file contains default values for various map projections, for example "+lat_1=29.5" and "+lat_2=45.5" - * for the "aea" projection. Those defaults are assuming that users want Conterminous U.S. map. - * This may cause surprising behavior for users outside USA. */ final StringBuilder definition = new StringBuilder(100); definition.append(Proj4Factory.PROJ_PARAM).append(method); boolean hasSemiMajor = false; boolean hasSemiMinor = false; if (parameters != null) { - definition.append(" +over +no_defs"); // See above comment + definition.append(Proj4Factory.STANDARD_OPTIONS); for (final GeneralParameterValue parameter : parameters.values()) { if (parameter instanceof ParameterValue<?>) { final ParameterValue<?> pv = (ParameterValue<?>) parameter; @@ -255,7 +250,23 @@ public final class Proj4 extends Static definition.append("to_meter=").append(Units.toStandardUnit(unit)); } } + /* + * Append the "+towgs84" element if any. This is the last piece of information. + * Note that the use of a "+towgs84" parameter is an "early binding" approach, + * which is usually not recommended. But Proj4 works that way. + */ if (validCS) { + if (datum instanceof DefaultGeodeticDatum) { + for (final BursaWolfParameters bwp : ((DefaultGeodeticDatum) datum).getBursaWolfParameters()) { + if (Utilities.equalsIgnoreMetadata(CommonCRS.WGS84.datum(), bwp.getTargetDatum())) { + definition.append(" +towgs84=").append(bwp.tX).append(',').append(bwp.tY).append(',').append(bwp.tZ); + if (!bwp.isTranslation()) { + definition.append(',').append(bwp.rX).append(',').append(bwp.rY).append(',').append(bwp.rZ).append(',').append(bwp.dS); + } + break; + } + } + } return definition.toString(); } /* @@ -288,7 +299,7 @@ public final class Proj4 extends Static * Creates a new CRS from the given {@literal Proj.4} definition string. * Some examples of definition strings are: * <ul> - * <li>{@code "+init=epsg:3395"} (see warning below)</li> + * <li>{@code "+init=epsg:3395 +over"} (see warning below)</li> * <li>{@code "+proj=latlong +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"}</li> * <li>{@code "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +ellps=WGS84 +towgs84=0,0,0"}</li> * </ul>