Skip to content

Commit 43361a8

Browse files
committed
Switch to using centralized service loader
1 parent 77aab2d commit 43361a8

14 files changed

Lines changed: 36 additions & 32 deletions

cdm/core/src/main/java/thredds/inventory/CollectionSpecParsers.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
package thredds.inventory;
66

77
import java.util.Formatter;
8-
import java.util.ServiceLoader;
98
import javax.annotation.Nullable;
9+
import ucar.nc2.util.NcServiceLoader;
1010

1111
/**
1212
* Static helper methods for CollectionSpecParserAbstract objects.
@@ -49,7 +49,7 @@ private static CollectionSpecParserProvider getProvider(String spec) {
4949
CollectionSpecParserProvider collectionSpecParserProvider = null;
5050

5151
// look for dynamically loaded CollectionSpecParserProvider
52-
for (CollectionSpecParserProvider provider : ServiceLoader.load(CollectionSpecParserProvider.class)) {
52+
for (CollectionSpecParserProvider provider : NcServiceLoader.load(CollectionSpecParserProvider.class)) {
5353
if (provider.canParse(spec)) {
5454
collectionSpecParserProvider = provider;
5555
break;

cdm/core/src/main/java/thredds/inventory/MControllers.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
import java.io.IOException;
99
import java.nio.file.DirectoryStream;
10-
import java.util.ServiceLoader;
1110
import thredds.filesystem.ControllerOS;
11+
import ucar.nc2.util.NcServiceLoader;
1212

1313
public class MControllers {
1414

@@ -23,7 +23,7 @@ public static MController create(String location) {
2323

2424
// look for dynamically loaded MControllerProviders
2525
if (location != null) {
26-
for (MControllerProvider provider : ServiceLoader.load(MControllerProvider.class)) {
26+
for (MControllerProvider provider : NcServiceLoader.load(MControllerProvider.class)) {
2727
if (provider.canScan(location)) {
2828
mControllerProvider = provider;
2929
break;

cdm/core/src/main/java/thredds/inventory/MFiles.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@
66
package thredds.inventory;
77

88
import java.io.IOException;
9-
import java.util.ServiceLoader;
109
import javax.annotation.Nonnull;
1110
import javax.annotation.Nullable;
12-
import org.slf4j.Logger;
13-
import org.slf4j.LoggerFactory;
1411
import thredds.filesystem.MFileOS;
1512
import thredds.filesystem.MFileOS7;
1613
import ucar.nc2.internal.ncml.NcmlReader;
14+
import ucar.nc2.util.NcServiceLoader;
15+
import ucar.nc2.util.log.LoggerFactory;
1716

1817
/**
1918
* Static helper methods for MFile objects.
@@ -34,7 +33,7 @@ public static MFile create(@Nonnull String location) {
3433
MFileProvider mFileProvider = null;
3534

3635
// look for dynamically loaded MFileProviders
37-
for (MFileProvider provider : ServiceLoader.load(MFileProvider.class)) {
36+
for (MFileProvider provider : NcServiceLoader.load(MFileProvider.class)) {
3837
if (provider.canProvide(location)) {
3938
mFileProvider = provider;
4039
break;

cdm/core/src/main/java/ucar/nc2/NetcdfFile.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
import ucar.nc2.util.EscapeStrings;
5757
import ucar.nc2.util.IO;
5858
import ucar.nc2.util.Indent;
59+
import ucar.nc2.util.NcServiceLoader;
5960
import ucar.nc2.util.cache.FileCacheIF;
6061
import ucar.nc2.util.cache.FileCacheable;
6162
import ucar.nc2.util.rc.RC;
@@ -422,7 +423,7 @@ private static boolean canOpen(RandomAccessFile raf) throws IOException {
422423
if (N3header.isValidFile(raf)) {
423424
return true;
424425
} else {
425-
for (IOServiceProvider iosp : ServiceLoader.load(IOServiceProvider.class)) {
426+
for (IOServiceProvider iosp : NcServiceLoader.load(IOServiceProvider.class)) {
426427
log.info("ServiceLoader IOServiceProvider {}", iosp.getClass().getName());
427428
System.out.printf("ServiceLoader IOServiceProvider found %s%n", iosp.getClass().getName());
428429
if (iosp.isValidFile(raf)) {
@@ -835,7 +836,7 @@ private static IOServiceProvider getIosp(RandomAccessFile raf) throws IOExceptio
835836
} else {
836837

837838
// look for dynamically loaded IOSPs
838-
for (IOServiceProvider loadedSpi : ServiceLoader.load(IOServiceProvider.class)) {
839+
for (IOServiceProvider loadedSpi : NcServiceLoader.load(IOServiceProvider.class)) {
839840
if (loadedSpi.isValidFile(raf)) {
840841
Class c = loadedSpi.getClass();
841842
try {

cdm/core/src/main/java/ucar/nc2/NetcdfFiles.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import ucar.nc2.util.DiskCache;
3737
import ucar.nc2.util.EscapeStrings;
3838
import ucar.nc2.util.IO;
39+
import ucar.nc2.util.NcServiceLoader;
3940
import ucar.nc2.util.rc.RC;
4041
import ucar.unidata.io.UncompressInputStream;
4142
import ucar.unidata.io.bzip2.CBZip2InputStream;
@@ -423,7 +424,7 @@ public static ucar.unidata.io.RandomAccessFile getRaf(String location, int buffe
423424

424425
if (raf == null) {
425426
// look for dynamically loaded RandomAccessFile Providers
426-
for (RandomAccessFileProvider provider : ServiceLoader.load(RandomAccessFileProvider.class)) {
427+
for (RandomAccessFileProvider provider : NcServiceLoader.load(RandomAccessFileProvider.class)) {
427428
if (provider.isOwnerOf(location)) {
428429
raf = provider.open(location, buffer_size);
429430
// might cause issues if the end of a resource location string
@@ -809,7 +810,7 @@ private static IOServiceProvider getIosp(ucar.unidata.io.RandomAccessFile raf) t
809810

810811
} else {
811812
// look for dynamically loaded IOSPs, and sort before using
812-
final ServiceLoader<IOServiceProvider> iosps = ServiceLoader.load(IOServiceProvider.class);
813+
final ServiceLoader<IOServiceProvider> iosps = NcServiceLoader.load(IOServiceProvider.class);
813814
final List<IOServiceProvider> sortedIosps = Lists.newArrayList(iosps);
814815
Collections.sort(sortedIosps);
815816

cdm/core/src/main/java/ucar/nc2/dataset/CoordSysBuilder.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.lang.reflect.Method;
1717
import java.io.IOException;
1818
import java.util.*;
19+
import ucar.nc2.util.NcServiceLoader;
1920

2021
/**
2122
* Abstract class for implementing Convention-specific parsing of netCDF files.
@@ -401,7 +402,7 @@ public static CoordSysBuilderIF factory(NetcdfDataset ds, CancelTask cancelTask)
401402
// call static isMine() using reflection.
402403
CoordSysBuilderIF builder = null;
403404
if (convClass == null) {
404-
for (CoordSysBuilderIF csb : ServiceLoader.load(CoordSysBuilderIF.class)) {
405+
for (CoordSysBuilderIF csb : NcServiceLoader.load(CoordSysBuilderIF.class)) {
405406

406407
Class c = csb.getClass();
407408
Method m;

cdm/core/src/main/java/ucar/nc2/dataset/NetcdfDataset.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import ucar.nc2.iosp.IOServiceProvider;
1919
import ucar.nc2.ncml.NcMLReader;
2020
import ucar.nc2.util.CancelTask;
21+
import ucar.nc2.util.NcServiceLoader;
2122
import ucar.nc2.util.cache.FileCache;
2223
import ucar.nc2.util.cache.FileFactory;
2324
import java.io.IOException;
@@ -808,14 +809,14 @@ private static NetcdfFile openProtocolOrFile(DatasetUrl durl, int buffer_size, u
808809
}
809810

810811
// look for dynamically loaded NetcdfFileProvider
811-
for (NetcdfFileProvider provider : ServiceLoader.load(NetcdfFileProvider.class)) {
812+
for (NetcdfFileProvider provider : NcServiceLoader.load(NetcdfFileProvider.class)) {
812813
if (provider.isOwnerOf(durl)) {
813814
return provider.open(durl.getTrueurl(), cancelTask);
814815
}
815816
}
816817

817818
// look for providers who do not have an associated ServiceType.
818-
for (NetcdfFileProvider provider : ServiceLoader.load(NetcdfFileProvider.class)) {
819+
for (NetcdfFileProvider provider : NcServiceLoader.load(NetcdfFileProvider.class)) {
819820
if (provider.isOwnerOf(durl.getTrueurl())) {
820821
return provider.open(durl.getTrueurl(), cancelTask);
821822
}

cdm/core/src/main/java/ucar/nc2/dataset/NetcdfDatasets.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import java.io.IOException;
55
import java.io.Reader;
66
import java.util.EnumSet;
7-
import java.util.ServiceLoader;
87
import java.util.Set;
98
import ucar.nc2.NetcdfFile;
109
import ucar.nc2.NetcdfFiles;
@@ -13,6 +12,7 @@
1312
import ucar.nc2.internal.dataset.DatasetEnhancer;
1413
import ucar.nc2.internal.ncml.NcmlReader;
1514
import ucar.nc2.util.CancelTask;
15+
import ucar.nc2.util.NcServiceLoader;
1616
import ucar.nc2.util.cache.FileCache;
1717
import ucar.nc2.util.cache.FileCacheIF;
1818
import ucar.nc2.util.cache.FileFactory;
@@ -426,14 +426,14 @@ private static NetcdfFile openProtocolOrFile(DatasetUrl durl, int buffer_size, u
426426
Object spiObject) throws IOException {
427427

428428
// look for dynamically loaded NetcdfFileProvider
429-
for (NetcdfFileProvider provider : ServiceLoader.load(NetcdfFileProvider.class)) {
429+
for (NetcdfFileProvider provider : NcServiceLoader.load(NetcdfFileProvider.class)) {
430430
if (provider.isOwnerOf(durl)) {
431431
return provider.open(durl.getTrueurl(), cancelTask);
432432
}
433433
}
434434

435435
// look for providers who do not have an associated ServiceType.
436-
for (NetcdfFileProvider provider : ServiceLoader.load(NetcdfFileProvider.class)) {
436+
for (NetcdfFileProvider provider : NcServiceLoader.load(NetcdfFileProvider.class)) {
437437
if (provider.isOwnerOf(durl.getTrueurl())) {
438438
return provider.open(durl.getTrueurl(), cancelTask);
439439
}

cdm/core/src/main/java/ucar/nc2/dataset/VariableDS.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import ucar.nc2.internal.dataset.CoordinatesHelper;
1515
import ucar.nc2.util.CancelTask;
1616
import ucar.nc2.util.Misc;
17+
import ucar.nc2.util.NcServiceLoader;
1718

1819
import javax.annotation.Nullable;
1920
import java.io.IOException;
@@ -38,7 +39,7 @@ public class VariableDS extends Variable implements VariableEnhanced, EnhanceSca
3839

3940
static {
4041
ENHANCEMENT_PROVIDERS = new ArrayList<>();
41-
for (EnhancementProvider enhancementProvider : ServiceLoader.load(EnhancementProvider.class)) {
42+
for (EnhancementProvider enhancementProvider : NcServiceLoader.load(EnhancementProvider.class)) {
4243
ENHANCEMENT_PROVIDERS.add(enhancementProvider);
4344
}
4445
}

cdm/core/src/main/java/ucar/nc2/dt/grid/GridDataset.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import java.util.HashMap;
1313
import java.util.List;
1414
import java.util.Map;
15-
import java.util.ServiceLoader;
1615
import java.util.Set;
1716
import ucar.nc2.Attribute;
1817
import ucar.nc2.AttributeContainer;
@@ -30,6 +29,7 @@
3029
import ucar.nc2.time.CalendarDate;
3130
import ucar.nc2.time.CalendarDateRange;
3231
import ucar.nc2.units.DateRange;
32+
import ucar.nc2.util.NcServiceLoader;
3333
import ucar.nc2.util.cache.FileCacheIF;
3434
import ucar.unidata.geoloc.LatLonRect;
3535
import ucar.unidata.geoloc.ProjectionRect;
@@ -116,7 +116,7 @@ public static ucar.nc2.dt.GridDataset openIfce(String location) throws java.io.I
116116
*/
117117
public static ucar.nc2.dt.GridDataset openIfce(String location, Set<NetcdfDataset.Enhance> enhanceMode)
118118
throws java.io.IOException {
119-
for (GridDatasetProvider gdsProvider : ServiceLoader.load(GridDatasetProvider.class)) {
119+
for (GridDatasetProvider gdsProvider : NcServiceLoader.load(GridDatasetProvider.class)) {
120120
if (gdsProvider.isMine(location, enhanceMode)) {
121121
return gdsProvider.open(location, enhanceMode);
122122
}

0 commit comments

Comments
 (0)