You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2017/01/09 12:30:43 UTC
svn commit: r1777955 - in /sis/trunk: ./
core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/
core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/
core/sis-utility/src/test/java/org/apache/sis/test/ ide-project/
ide-project/Ne...
Author: desruisseaux
Date: Mon Jan 9 12:30:43 2017
New Revision: 1777955
URL: http://svn.apache.org/viewvc?rev=1777955&view=rev
Log:
Merge from JDK7 branch.
Added:
sis/trunk/ide-project/LicenseHeader.txt
- copied unchanged from r1777943, sis/branches/JDK7/ide-project/LicenseHeader.txt
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/
- copied from r1777943, sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/ConcurrentReadException.java
- copied unchanged from r1777943, sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/storage/ConcurrentReadException.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/ConcurrentWriteException.java
- copied unchanged from r1777943, sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/storage/ConcurrentWriteException.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/ForwardOnlyStorageException.java
- copied unchanged from r1777943, sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/storage/ForwardOnlyStorageException.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/io/
- copied from r1777943, sis/branches/JDK7/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/io/
Removed:
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ChannelData.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ChannelDataInput.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ChannelDataOutput.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ChannelImageInputStream.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ChannelImageOutputStream.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/DataTransfer.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/HyperRectangleReader.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/IOUtilities.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Markable.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MemoryDataTransfer.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Region.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/InputStreamAdapter.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/ByteArrayChannel.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/ChannelDataInputTest.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/ChannelDataOutputTest.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/ChannelDataTestCase.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/ChannelImageInputStreamTest.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/ChannelImageOutputStreamTest.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/DripByteChannel.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/HyperRectangleReaderTest.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/IOUtilitiesTest.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/ImageInputStreamComparator.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/MemoryCacheImageOutputStream.java
Modified:
sis/trunk/ (props changed)
sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java
sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/MergerTest.java
sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java
sis/trunk/ide-project/NetBeans/nbproject/project.properties
sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java
sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java
sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java
sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Type.java
sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/ChannelDecoder.java
sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/VariableInfo.java
sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStoreProvider.java
sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/impl/ChannelDecoderTest.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.properties
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources_fr.properties
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/Store.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/package-info.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreClosedException.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreException.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/IllegalNameException.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/StorageConnector.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/UnsupportedStorageException.java
sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/package-info.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/storage/StorageConnectorTest.java
sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/test/suite/StorageTestSuite.java
Propchange: sis/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 9 12:30:43 2017
@@ -1,5 +1,5 @@
/sis/branches/Android:1430670-1480699
/sis/branches/JDK6:1394364-1758914
-/sis/branches/JDK7:1394913-1777269
-/sis/branches/JDK8:1584960-1777268
+/sis/branches/JDK7:1394913-1777943
+/sis/branches/JDK8:1584960-1777936
/sis/branches/JDK9:1773327-1773512
Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -51,7 +51,8 @@ import org.apache.sis.internal.jdk8.JDK8
* <ul>
* <li>The {@linkplain MetadataStandard#getInterface(Class) standard type} of the source element
* is assignable to the type of the target element.</li>
- * <li>There is no conflict, i.e. no property value that are not collection and not equal.</li>
+ * <li>There is no conflict, i.e. no property value that are not collection and not equal
+ * (note: this condition is disabled if {@link #avoidConflicts} is {@code false}).</li>
* </ul>
* If such pair is found, then the merge operation if performed recursively
* for that pair of source and target elements.</li>
@@ -81,6 +82,14 @@ public class Merger {
protected final Locale locale;
/**
+ * {@code true} for performing a greater effort of avoiding merge conflicts.
+ * The default value is {@code false}, which may cause {@link #unmerged unmerged(\u2026)} to be invoked in
+ * situation where it could have been avoided. Setting this value to {@code true} increase the chances
+ * of merge success at the expense of more computations.
+ */
+ public boolean avoidConflicts;
+
+ /**
* Creates a new merger.
*
* @param locale the locale to use for formatting error messages, or {@code null} for the default locale.
@@ -219,11 +228,16 @@ public class Merger {
final Iterator<?> it = sourceList.iterator();
while (it.hasNext()) {
final Object value = it.next();
- if (merge(value, (ModifiableMetadata) element, true) &&
- merge(value, (ModifiableMetadata) element, false))
- {
- it.remove();
- break; // Merge at most one source element to each target element.
+ if (!avoidConflicts || merge(value, (ModifiableMetadata) element, true)) {
+ /*
+ * If enabled, above 'merge' call verified that the merge can be done, including
+ * by recursive checks in all children. The intend is to have a "all or nothing"
+ * behavior, before the 'merge' call below starts to modify the values.
+ */
+ if (merge(value, (ModifiableMetadata) element, false)) {
+ it.remove();
+ break; // Merge at most one source element to each target element.
+ }
}
}
}
@@ -270,6 +284,9 @@ public class Merger {
* The default implementation throws an {@link InvalidMetadataException}.
* Subclasses can override this method if they want to perform a different processing.
*
+ * <p><b>Tip:</b> to reduce the risks that this method is invoked, consider setting the
+ * {@link #avoidConflicts} flag to {@code true} before invoking {@link #merge merge(\u2026)}.</p>
+ *
* @param target the metadata instance in which the value should have been written.
* @param propertyName the name of the property to write.
* @param sourceValue the value to write.
Modified: sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/MergerTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/MergerTest.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/MergerTest.java [UTF-8] (original)
+++ sis/trunk/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/MergerTest.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -99,6 +99,7 @@ public final strictfp class MergerTest e
final DefaultMetadata source = createSample1();
final DefaultMetadata target = createSample2();
final Merger merger = new Merger(null);
+ merger.avoidConflicts = true;
merger.merge(source, target);
assertSetEquals(Arrays.asList(Locale.JAPANESE, Locale.FRENCH), target.getLanguages());
Modified: sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java
URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java [UTF-8] (original)
+++ sis/trunk/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -23,6 +23,14 @@ import java.util.Iterator;
import java.util.Random;
import java.util.concurrent.Callable;
import java.io.PrintWriter;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Files;
+import java.nio.file.StandardOpenOption;
+import java.nio.ByteBuffer;
+import java.nio.channels.Channels;
+import java.nio.channels.ReadableByteChannel;
+import java.nio.channels.SeekableByteChannel;
import java.lang.reflect.UndeclaredThrowableException;
import java.text.Format;
import java.text.DateFormat;
@@ -46,7 +54,7 @@ import static org.apache.sis.internal.ut
*
* @author Martin Desruisseaux (Geomatys)
* @since 0.3
- * @version 0.7
+ * @version 0.8
* @module
*/
public final strictfp class TestUtilities extends Static {
@@ -437,4 +445,32 @@ public final strictfp class TestUtilitie
} while (!stop);
return true;
}
+
+ /**
+ * Copies the full content of the given test resource in a temporary file and returns the channel for that file.
+ * The file is opened with {@link StandardOpenOption#DELETE_ON_CLOSE}, together with read and write options.
+ *
+ * @param caller defines the root from which to search for the {@code resource}.
+ * @param resource path (relative to the {@code caller}) of the test file to copy.
+ * @return a channel opened on a copy of the content of the given test resource.
+ * @throws IOException if an error occurred while copying the data.
+ *
+ * @since 0.8
+ */
+ public static SeekableByteChannel createTemporaryFile(final Class<?> caller, final String resource) throws IOException {
+ final SeekableByteChannel channel;
+ try (final ReadableByteChannel in = Channels.newChannel(caller.getResourceAsStream(resource))) {
+ final int s = resource.lastIndexOf('.');
+ final Path file = Files.createTempFile("SIS", (s >= 0) ? resource.substring(s) : null);
+ channel = Files.newByteChannel(file, StandardOpenOption.DELETE_ON_CLOSE,
+ StandardOpenOption.READ, StandardOpenOption.WRITE);
+ final ByteBuffer buffer = ByteBuffer.allocate(4000);
+ while (in.read(buffer) >= 0) {
+ buffer.flip();
+ channel.write(buffer);
+ buffer.clear();
+ }
+ }
+ return channel.position(0);
+ }
}
Modified: sis/trunk/ide-project/NetBeans/nbproject/project.properties
URL: http://svn.apache.org/viewvc/sis/trunk/ide-project/NetBeans/nbproject/project.properties?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/ide-project/NetBeans/nbproject/project.properties [ISO-8859-1] (original)
+++ sis/trunk/ide-project/NetBeans/nbproject/project.properties [ISO-8859-1] Mon Jan 9 12:30:43 2017
@@ -32,6 +32,7 @@ excludes =
main.class =
manifest.file = manifest.mf
project.license = apache20
+project.licensePath = ../../ide-project/LicenseHeader.txt
no.dependencies = true
source.encoding = UTF-8
javac.source = 1.7
Modified: sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java [UTF-8] (original)
+++ sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -31,7 +31,7 @@ import org.apache.sis.storage.StorageCon
import org.apache.sis.storage.DataStoreException;
import org.apache.sis.storage.DataStoreContentException;
import org.apache.sis.storage.UnsupportedStorageException;
-import org.apache.sis.internal.storage.ChannelDataInput;
+import org.apache.sis.internal.storage.io.ChannelDataInput;
import org.apache.sis.internal.storage.MetadataBuilder;
import org.apache.sis.metadata.sql.MetadataStoreException;
import org.apache.sis.storage.DataStoreClosedException;
Modified: sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java [UTF-8] (original)
+++ sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -30,7 +30,7 @@ import org.opengis.metadata.citation.Dat
import org.opengis.util.FactoryException;
import org.apache.sis.internal.jdk8.JDK8;
import org.apache.sis.internal.geotiff.Resources;
-import org.apache.sis.internal.storage.ChannelDataInput;
+import org.apache.sis.internal.storage.io.ChannelDataInput;
import org.apache.sis.storage.DataStoreException;
import org.apache.sis.storage.DataStoreContentException;
import org.apache.sis.internal.storage.MetadataBuilder;
Modified: sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java [UTF-8] (original)
+++ sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -27,7 +27,7 @@ import java.nio.ByteOrder;
import java.text.ParseException;
import org.apache.sis.storage.DataStoreException;
import org.apache.sis.storage.DataStoreContentException;
-import org.apache.sis.internal.storage.ChannelDataInput;
+import org.apache.sis.internal.storage.io.ChannelDataInput;
import org.apache.sis.internal.storage.MetadataBuilder;
import org.apache.sis.internal.geotiff.Resources;
import org.apache.sis.util.resources.Errors;
Modified: sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Type.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Type.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Type.java [UTF-8] (original)
+++ sis/trunk/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Type.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -19,7 +19,7 @@ package org.apache.sis.storage.geotiff;
import java.util.Arrays;
import java.io.IOException;
import java.nio.charset.Charset;
-import org.apache.sis.internal.storage.ChannelDataInput;
+import org.apache.sis.internal.storage.io.ChannelDataInput;
import org.apache.sis.internal.util.Numerics;
import org.apache.sis.math.DecimalFunctions;
import org.apache.sis.math.Vector;
Modified: sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/ChannelDecoder.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/ChannelDecoder.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/ChannelDecoder.java [UTF-8] (original)
+++ sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/ChannelDecoder.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -42,7 +42,7 @@ import org.apache.sis.internal.netcdf.Gr
import org.apache.sis.internal.netcdf.NamedElement;
import org.apache.sis.internal.netcdf.DiscreteSampling;
import org.apache.sis.internal.netcdf.Resources;
-import org.apache.sis.internal.storage.ChannelDataInput;
+import org.apache.sis.internal.storage.io.ChannelDataInput;
import org.apache.sis.internal.util.CollectionsExt;
import org.apache.sis.internal.util.StandardDateFormat;
import org.apache.sis.storage.DataStoreException;
Modified: sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/VariableInfo.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/VariableInfo.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/VariableInfo.java [UTF-8] (original)
+++ sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/VariableInfo.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -24,9 +24,9 @@ import ucar.nc2.constants.CDM;
import ucar.nc2.constants._Coordinate;
import org.apache.sis.internal.netcdf.DataType;
import org.apache.sis.internal.netcdf.Variable;
-import org.apache.sis.internal.storage.ChannelDataInput;
-import org.apache.sis.internal.storage.HyperRectangleReader;
-import org.apache.sis.internal.storage.Region;
+import org.apache.sis.internal.storage.io.ChannelDataInput;
+import org.apache.sis.internal.storage.io.HyperRectangleReader;
+import org.apache.sis.internal.storage.io.Region;
import org.apache.sis.storage.DataStoreException;
import org.apache.sis.storage.DataStoreContentException;
import org.apache.sis.util.resources.Errors;
Modified: sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStoreProvider.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStoreProvider.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStoreProvider.java [UTF-8] (original)
+++ sis/trunk/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/NetcdfStoreProvider.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -27,7 +27,7 @@ import java.lang.reflect.UndeclaredThrow
import org.apache.sis.internal.netcdf.Decoder;
import org.apache.sis.internal.netcdf.impl.ChannelDecoder;
import org.apache.sis.internal.netcdf.ucar.DecoderWrapper;
-import org.apache.sis.internal.storage.ChannelDataInput;
+import org.apache.sis.internal.storage.io.ChannelDataInput;
import org.apache.sis.internal.system.SystemListener;
import org.apache.sis.internal.system.Modules;
import org.apache.sis.storage.DataStore;
Modified: sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/impl/ChannelDecoderTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/impl/ChannelDecoderTest.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/impl/ChannelDecoderTest.java [UTF-8] (original)
+++ sis/trunk/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/impl/ChannelDecoderTest.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -23,7 +23,7 @@ import java.nio.channels.Channels;
import org.apache.sis.internal.netcdf.IOTestCase;
import org.apache.sis.internal.netcdf.Decoder;
import org.apache.sis.internal.netcdf.DecoderTest;
-import org.apache.sis.internal.storage.ChannelDataInput;
+import org.apache.sis.internal.storage.io.ChannelDataInput;
import org.apache.sis.storage.DataStoreException;
import org.apache.sis.test.DependsOn;
Modified: sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java [UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -92,6 +92,16 @@ public final class Resources extends Ind
public static final short ClosedWriter_1 = 5;
/**
+ * One or more read operations are in progress in the \u201c{0}\u201d data store.
+ */
+ public static final short ConcurrentRead_1 = 19;
+
+ /**
+ * A write operation is in progress in the \u201c{0}\u201d data store.
+ */
+ public static final short ConcurrentWrite_1 = 20;
+
+ /**
* Character string in the \u201c{0}\u201d file is too long. The string has {2} characters while the
* limit is {1}.
*/
@@ -144,6 +154,16 @@ public final class Resources extends Ind
public static final short StreamIsForwardOnly_1 = 13;
/**
+ * The \u201c{0}\u201d data store can be read only once.
+ */
+ public static final short StreamIsReadOnce_1 = 18;
+
+ /**
+ * Can not modify previously written data in \u201c{0}\u201d.
+ */
+ public static final short StreamIsWriteOnce_1 = 21;
+
+ /**
* Format of \u201c{0}\u201d is not recognized.
*/
public static final short UnknownFormatFor_1 = 14;
Modified: sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.properties
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.properties?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.properties [ISO-8859-1] (original)
+++ sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.properties [ISO-8859-1] Mon Jan 9 12:30:43 2017
@@ -25,6 +25,8 @@ CanNotReadFile_3 = Can
CanNotReadFile_4 = Can not read line {2} (after column {3}) of \u201c{1}\u201d as part of a file in the {0} format.
ClosedReader_1 = This {0} reader is closed.
ClosedWriter_1 = This {0} writer is closed.
+ConcurrentRead_1 = One or more read operations are in progress in the \u201c{0}\u201d data store.
+ConcurrentWrite_1 = A write operation is in progress in the \u201c{0}\u201d data store.
FeatureAlreadyPresent_2 = A feature named \u201c{1}\u201d is already present in the \u201c{0}\u201d data store.
FeatureNotFound_2 = Feature \u201c{1}\u201d has not been found in the \u201c{0}\u201d data store.
ExcessiveStringSize_3 = Character string in the \u201c{0}\u201d file is too long. The string has {2} characters while the limit is {1}.
@@ -35,4 +37,6 @@ InconsistentNameComponents_2 = Comp
MissingSchemeInURI_1 = Missing scheme in \u201c{0}\u201d URI.
ProcessingExecutedOn_1 = Processing executed on {0}.
StreamIsForwardOnly_1 = Can not move backward in the \u201c{0}\u201d stream.
+StreamIsReadOnce_1 = The \u201c{0}\u201d data store can be read only once.
+StreamIsWriteOnce_1 = Can not modify previously written data in \u201c{0}\u201d.
UnknownFormatFor_1 = Format of \u201c{0}\u201d is not recognized.
Modified: sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources_fr.properties
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources_fr.properties?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources_fr.properties [ISO-8859-1] (original)
+++ sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources_fr.properties [ISO-8859-1] Mon Jan 9 12:30:43 2017
@@ -30,6 +30,8 @@ CanNotReadFile_3 = Ne p
CanNotReadFile_4 = Ne peut pas lire la ligne {2} (apr\u00e8s la colonne {3}) de \u00ab\u202f{1}\u202f\u00bb comme une partie d\u2019un fichier au format {0}.
ClosedReader_1 = Ce lecteur {0} est ferm\u00e9.
ClosedWriter_1 = Cet encodeur {0} est ferm\u00e9.
+ConcurrentRead_1 = Une ou plusieurs op\u00e9rations de lecture sont en cours sur les donn\u00e9es de \u00ab\u202f{0}\u202f\u00bb.
+ConcurrentWrite_1 = Une op\u00e9ration d\u2019\u00e9criture est en cours sur les donn\u00e9es de \u00ab\u202f{0}\u202f\u00bb.
ExcessiveStringSize_3 = La cha\u00eene de caract\u00e8res dans le fichier \u00ab\u202f{0}\u202f\u00bb est trop longue. La cha\u00eene fait {2} caract\u00e8res alors que la limite est {1}.
FeatureAlreadyPresent_2 = Une entit\u00e9 nomm\u00e9e \u00ab\u202f{1}\u202f\u00bb est d\u00e9j\u00e0 pr\u00e9sente dans les donn\u00e9es de \u00ab\u202f{0}\u202f\u00bb.
FeatureNotFound_2 = L\u2019entit\u00e9 \u00ab\u202f{1}\u202f\u00bb n\u2019est pas \u00e9t\u00e9 trouv\u00e9e dans les donn\u00e9es de \u00ab\u202f{0}\u202f\u00bb.
@@ -40,4 +42,6 @@ InconsistentNameComponents_2 = Les
MissingSchemeInURI_1 = Il manque le sch\u00e9ma dans l\u2019URI \u00ab\u202f{0}\u202f\u00bb.
ProcessingExecutedOn_1 = Traitement ex\u00e9cut\u00e9 sur {0}.
StreamIsForwardOnly_1 = Ne peut pas reculer dans le flux de donn\u00e9es \u00ab\u202f{0}\u202f\u00bb.
+StreamIsReadOnce_1 = Les donn\u00e9es de \u00ab\u202f{0}\u202f\u00bb ne peuvent \u00eatre lues qu\u2019une seule fois.
+StreamIsWriteOnce_1 = Ne peut pas revenir sur les donn\u00e9es d\u00e9j\u00e0 \u00e9crites dans \u00ab\u202f{0}\u202f\u00bb.
UnknownFormatFor_1 = Le format de \u00ab\u202f{0}\u202f\u00bb n\u2019est pas reconnu.
Modified: sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/Store.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/Store.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/Store.java [UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/Store.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -43,7 +43,7 @@ import org.apache.sis.referencing.CRS;
import org.apache.sis.referencing.CommonCRS;
import org.apache.sis.internal.referencing.GeodeticObjectBuilder;
import org.apache.sis.internal.storage.MetadataBuilder;
-import org.apache.sis.internal.storage.IOUtilities;
+import org.apache.sis.internal.storage.io.IOUtilities;
import org.apache.sis.geometry.GeneralEnvelope;
import org.apache.sis.metadata.iso.DefaultMetadata;
import org.apache.sis.metadata.sql.MetadataStoreException;
Modified: sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/package-info.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/package-info.java [UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/package-info.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -25,7 +25,7 @@
*
* @author Martin Desruisseaux (Geomatys)
* @since 0.3
- * @version 0.3
+ * @version 0.8
* @module
*/
package org.apache.sis.internal.storage;
Modified: sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreClosedException.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreClosedException.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreClosedException.java [UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreClosedException.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -18,7 +18,7 @@ package org.apache.sis.storage;
import java.util.Locale;
import java.nio.file.OpenOption;
-import org.apache.sis.internal.storage.IOUtilities;
+import org.apache.sis.internal.storage.io.IOUtilities;
import org.apache.sis.internal.storage.Resources;
Modified: sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreException.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreException.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreException.java [UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreException.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -20,7 +20,7 @@ import java.util.Locale;
import org.opengis.util.InternationalString;
import org.apache.sis.util.LocalizedException;
import org.apache.sis.internal.storage.Resources;
-import org.apache.sis.internal.storage.IOUtilities;
+import org.apache.sis.internal.storage.io.IOUtilities;
import org.apache.sis.util.Workaround;
@@ -66,7 +66,6 @@ public class DataStoreException extends
* Creates an exception with no cause and no details message.
*/
public DataStoreException() {
- super();
}
/**
Modified: sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/IllegalNameException.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/IllegalNameException.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/IllegalNameException.java [UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/IllegalNameException.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -44,7 +44,6 @@ public class IllegalNameException extend
* Creates an exception with no cause and no details message.
*/
public IllegalNameException() {
- super();
}
/**
Modified: sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/StorageConnector.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/StorageConnector.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/StorageConnector.java [UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/StorageConnector.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -41,9 +41,11 @@ import org.apache.sis.util.Classes;
import org.apache.sis.util.ArgumentChecks;
import org.apache.sis.util.ObjectConverters;
import org.apache.sis.util.resources.Errors;
-import org.apache.sis.internal.storage.IOUtilities;
-import org.apache.sis.internal.storage.ChannelDataInput;
-import org.apache.sis.internal.storage.ChannelImageInputStream;
+import org.apache.sis.internal.storage.io.IOUtilities;
+import org.apache.sis.internal.storage.io.ChannelFactory;
+import org.apache.sis.internal.storage.io.ChannelDataInput;
+import org.apache.sis.internal.storage.io.ChannelImageInputStream;
+import org.apache.sis.internal.storage.io.InputStreamAdapter;
import org.apache.sis.setup.OptionKey;
@@ -73,7 +75,7 @@ import org.apache.sis.setup.OptionKey;
*
* @author Martin Desruisseaux (Geomatys)
* @since 0.3
- * @version 0.3
+ * @version 0.8
* @module
*/
public class StorageConnector implements Serializable {
@@ -397,6 +399,12 @@ public class StorageConnector implements
} else if (type == ChannelDataInput.class) { // Undocumented case (SIS internal)
createChannelDataInput(false);
done = true;
+ } else if (type == ChannelFactory.class) { // Undocumented case (SIS internal)
+ /*
+ * ChannelFactory may have been created as a side effect of creating a ReadableByteChannel.
+ * Caller should have asked for another type (e.g. InputStream) before to ask for this type.
+ */
+ done = true;
}
} catch (IOException e) {
throw new DataStoreException(Errors.format(Errors.Keys.CanNotOpen_1, getStorageName()), e);
@@ -411,7 +419,7 @@ public class StorageConnector implements
final Object value;
try {
value = createView(type);
- } catch (RuntimeException e) {
+ } catch (RuntimeException | DataStoreException e) {
throw e;
} catch (Exception e) {
throw new DataStoreException(Errors.format(Errors.Keys.CanNotOpen_1, getStorageName()), e);
@@ -455,11 +463,13 @@ public class StorageConnector implements
* Following method call recognizes ReadableByteChannel, InputStream (with special case for FileInputStream),
* URL, URI, File, Path or other types that may be added in future SIS versions.
*/
- final ReadableByteChannel channel = IOUtilities.open(storage,
- getOption(OptionKey.URL_ENCODING), getOption(OptionKey.OPEN_OPTIONS));
+ final ChannelFactory factory = ChannelFactory.prepare(storage,
+ getOption(OptionKey.URL_ENCODING), false, getOption(OptionKey.OPEN_OPTIONS));
ChannelDataInput asDataInput = null;
- if (channel != null) {
+ if (factory != null) {
+ final String name = getStorageName();
+ final ReadableByteChannel channel = factory.reader(name);
addViewToClose(channel, storage);
ByteBuffer buffer = getOption(OptionKey.BYTE_BUFFER);
if (buffer == null) {
@@ -467,13 +477,19 @@ public class StorageConnector implements
// TODO: we do not create direct buffer yet, but this is something
// we may want to consider in a future SIS version.
}
- final String name = getStorageName();
if (asImageInputStream) {
asDataInput = new ChannelImageInputStream(name, channel, buffer, false);
} else {
asDataInput = new ChannelDataInput(name, channel, buffer, false);
}
addViewToClose(asDataInput, channel);
+ /*
+ * Following is an undocumented mechanism for allowing some Apache SIS implementations of DataStore
+ * to re-open the same channel or input stream another time, typically for re-reading the same data.
+ */
+ if (factory.canOpen()) {
+ addView(ChannelFactory.class, factory);
+ }
}
addView(ChannelDataInput.class, asDataInput);
}
Modified: sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/UnsupportedStorageException.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/UnsupportedStorageException.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/UnsupportedStorageException.java [UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/UnsupportedStorageException.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -20,7 +20,7 @@ import java.util.Locale;
import java.nio.file.OpenOption;
import org.apache.sis.util.Classes;
import org.apache.sis.internal.storage.Resources;
-import org.apache.sis.internal.storage.IOUtilities;
+import org.apache.sis.internal.storage.io.IOUtilities;
/**
@@ -43,7 +43,6 @@ public class UnsupportedStorageException
* Creates an exception with no cause and no details message.
*/
public UnsupportedStorageException() {
- super();
}
/**
Modified: sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/package-info.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/package-info.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/package-info.java [UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/main/java/org/apache/sis/storage/package-info.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -27,7 +27,7 @@
* @author Johann Sorel (Geomatys)
* @author Martin Desruisseaux (Geomatys)
* @since 0.3
- * @version 0.4
+ * @version 0.8
* @module
*/
package org.apache.sis.storage;
Modified: sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/storage/StorageConnectorTest.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/storage/StorageConnectorTest.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/storage/StorageConnectorTest.java [UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/storage/StorageConnectorTest.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -26,8 +26,9 @@ import javax.imageio.ImageIO;
import javax.imageio.stream.ImageInputStream;
import java.sql.Connection;
import org.apache.sis.setup.OptionKey;
-import org.apache.sis.internal.storage.ChannelDataInput;
-import org.apache.sis.internal.storage.ChannelImageInputStream;
+import org.apache.sis.internal.storage.io.ChannelDataInput;
+import org.apache.sis.internal.storage.io.ChannelImageInputStream;
+import org.apache.sis.internal.storage.io.InputStreamAdapter;
import org.apache.sis.test.DependsOnMethod;
import org.apache.sis.test.DependsOn;
import org.apache.sis.test.TestCase;
@@ -45,7 +46,7 @@ import static org.opengis.test.Assert.*;
* @module
*/
@SuppressWarnings("OverlyStrongTypeCast")
-@DependsOn(org.apache.sis.internal.storage.ChannelImageInputStreamTest.class)
+@DependsOn(org.apache.sis.internal.storage.io.ChannelImageInputStreamTest.class)
public final strictfp class StorageConnectorTest extends TestCase {
/**
* The magic number of Java class files, used for verifying the content of our test file.
@@ -88,7 +89,7 @@ public final strictfp class StorageConne
* Tests the {@link StorageConnector#getStorageAs(Class)} method for the {@link String} type.
*
* @throws DataStoreException if an error occurred while using the storage connector.
- * @throws IOException Should never happen.
+ * @throws IOException should never happen since we do not open any file.
*/
@Test
public void testGetAsString() throws DataStoreException, IOException {
@@ -201,11 +202,12 @@ public final strictfp class StorageConne
assertNotSame(connection.getStorage(), in);
assertSame("Expected cached value.", in, connection.getStorageAs(InputStream.class));
assertInstanceOf("Expected Channel backend", InputStreamAdapter.class, in);
- assertInstanceOf("Expected Channel backend", ChannelImageInputStream.class, ((InputStreamAdapter) in).input);
- assertSame(((InputStreamAdapter) in).input, connection.getStorageAs(DataInput.class));
- assertSame(((InputStreamAdapter) in).input, connection.getStorageAs(ImageInputStream.class));
+ final ImageInputStream input = ((InputStreamAdapter) in).input;
+ assertInstanceOf("Expected Channel backend", ChannelImageInputStream.class, input);
+ assertSame(input, connection.getStorageAs(DataInput.class));
+ assertSame(input, connection.getStorageAs(ImageInputStream.class));
- final ReadableByteChannel channel = ((ChannelImageInputStream) ((InputStreamAdapter) in).input).channel;
+ final ReadableByteChannel channel = ((ChannelImageInputStream) input).channel;
assertTrue(channel.isOpen());
connection.closeAllExcept(null);
assertFalse(channel.isOpen());
@@ -285,7 +287,7 @@ public final strictfp class StorageConne
public void testGetAsTemporaryByteBuffer() throws DataStoreException, IOException {
StorageConnector connection = create(true);
final DataInput in = ImageIO.createImageInputStream(connection.getStorage());
- assertNotNull("ImageIO.createImageInputStream(InputStream)", in); // Sanity check.
+ assertNotNull("ImageIO.createImageInputStream(InputStream)", in); // Sanity check.
connection = new StorageConnector(in);
assertSame(in, connection.getStorageAs(DataInput.class));
@@ -300,7 +302,7 @@ public final strictfp class StorageConne
* Tests the {@link StorageConnector#getStorageAs(Class)} method for the {@link Connection} type.
*
* @throws DataStoreException if an error occurred while using the storage connector.
- * @throws IOException Should never happen.
+ * @throws IOException should never happen since we do not open any file.
*/
public void testGetAsConnection() throws DataStoreException, IOException {
final StorageConnector connection = create(false);
Modified: sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/test/suite/StorageTestSuite.java
URL: http://svn.apache.org/viewvc/sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/test/suite/StorageTestSuite.java?rev=1777955&r1=1777954&r2=1777955&view=diff
==============================================================================
--- sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/test/suite/StorageTestSuite.java [UTF-8] (original)
+++ sis/trunk/storage/sis-storage/src/test/java/org/apache/sis/test/suite/StorageTestSuite.java [UTF-8] Mon Jan 9 12:30:43 2017
@@ -31,12 +31,12 @@ import org.junit.BeforeClass;
*/
@Suite.SuiteClasses({
org.apache.sis.internal.storage.CodeTypeTest.class,
- org.apache.sis.internal.storage.IOUtilitiesTest.class,
- org.apache.sis.internal.storage.ChannelDataInputTest.class,
- org.apache.sis.internal.storage.ChannelDataOutputTest.class,
- org.apache.sis.internal.storage.ChannelImageInputStreamTest.class,
- org.apache.sis.internal.storage.ChannelImageOutputStreamTest.class,
- org.apache.sis.internal.storage.HyperRectangleReaderTest.class,
+ org.apache.sis.internal.storage.io.IOUtilitiesTest.class,
+ org.apache.sis.internal.storage.io.ChannelDataInputTest.class,
+ org.apache.sis.internal.storage.io.ChannelDataOutputTest.class,
+ org.apache.sis.internal.storage.io.ChannelImageInputStreamTest.class,
+ org.apache.sis.internal.storage.io.ChannelImageOutputStreamTest.class,
+ org.apache.sis.internal.storage.io.HyperRectangleReaderTest.class,
org.apache.sis.internal.storage.MetadataBuilderTest.class,
org.apache.sis.storage.FeatureNamingTest.class,
org.apache.sis.storage.ProbeResultTest.class,