@@ -69,8 +69,7 @@ public void contextClassLoaderProvider() {
6969 Thread .currentThread ().setContextClassLoader (rcll );
7070 assertEquals (
7171 Available7Provider .class ,
72- ServiceProviders .load (
73- ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR ).getClass ());
72+ load (ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR ).getClass ());
7473 } finally {
7574 Thread .currentThread ().setContextClassLoader (ccl );
7675 }
@@ -85,8 +84,7 @@ public void noProvider() {
8584 serviceFile ,
8685 "io/grpc/ServiceProvidersTestAbstractProvider-doesNotExist.txt" );
8786 Thread .currentThread ().setContextClassLoader (cl );
88- assertNull (ServiceProviders .load (
89- ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR ));
87+ assertNull (load (ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR ));
9088 } finally {
9189 Thread .currentThread ().setContextClassLoader (ccl );
9290 }
@@ -98,8 +96,7 @@ public void multipleProvider() throws Exception {
9896 "io/grpc/ServiceProvidersTestAbstractProvider-multipleProvider.txt" );
9997 assertSame (
10098 Available7Provider .class ,
101- ServiceProviders .load (
102- ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR ).getClass ());
99+ load (ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR ).getClass ());
103100
104101 List <ServiceProvidersTestAbstractProvider > providers = ServiceProviders .loadAll (
105102 ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR );
@@ -116,16 +113,15 @@ public void unavailableProvider() {
116113 "io/grpc/ServiceProvidersTestAbstractProvider-unavailableProvider.txt" );
117114 assertEquals (
118115 Available7Provider .class ,
119- ServiceProviders .load (
120- ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR ).getClass ());
116+ load (ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR ).getClass ());
121117 }
122118
123119 @ Test
124120 public void unknownClassProvider () {
125121 ClassLoader cl = new ReplacingClassLoader (getClass ().getClassLoader (), serviceFile ,
126122 "io/grpc/ServiceProvidersTestAbstractProvider-unknownClassProvider.txt" );
127123 try {
128- ServiceProviders .load (
124+ ServiceProviders .loadAll (
129125 ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR );
130126 fail ("Exception expected" );
131127 } catch (ServiceConfigurationError e ) {
@@ -140,7 +136,7 @@ public void exceptionSurfacedToCaller_failAtInit() {
140136 try {
141137 // Even though there is a working provider, if any providers fail then we should fail
142138 // completely to avoid returning something unexpected.
143- ServiceProviders .load (
139+ ServiceProviders .loadAll (
144140 ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR );
145141 fail ("Expected exception" );
146142 } catch (ServiceConfigurationError expected ) {
@@ -154,7 +150,7 @@ public void exceptionSurfacedToCaller_failAtPriority() {
154150 "io/grpc/ServiceProvidersTestAbstractProvider-failAtPriorityProvider.txt" );
155151 try {
156152 // The exception should be surfaced to the caller
157- ServiceProviders .load (
153+ ServiceProviders .loadAll (
158154 ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR );
159155 fail ("Expected exception" );
160156 } catch (FailAtPriorityProvider .PriorityException expected ) {
@@ -168,7 +164,7 @@ public void exceptionSurfacedToCaller_failAtAvailable() {
168164 "io/grpc/ServiceProvidersTestAbstractProvider-failAtAvailableProvider.txt" );
169165 try {
170166 // The exception should be surfaced to the caller
171- ServiceProviders .load (
167+ ServiceProviders .loadAll (
172168 ServiceProvidersTestAbstractProvider .class , NO_HARDCODED , cl , ACCESSOR );
173169 fail ("Expected exception" );
174170 } catch (FailAtAvailableProvider .AvailableException expected ) {
@@ -244,6 +240,18 @@ class RandomClass {}
244240 assertFalse (candidates .iterator ().hasNext ());
245241 }
246242
243+ private static <T > T load (
244+ Class <T > klass ,
245+ Iterable <Class <?>> hardcoded ,
246+ ClassLoader cl ,
247+ PriorityAccessor <T > priorityAccessor ) {
248+ List <T > candidates = ServiceProviders .loadAll (klass , hardcoded , cl , priorityAccessor );
249+ if (candidates .isEmpty ()) {
250+ return null ;
251+ }
252+ return candidates .get (0 );
253+ }
254+
247255 private static class BaseProvider extends ServiceProvidersTestAbstractProvider {
248256 private final boolean isAvailable ;
249257 private final int priority ;
0 commit comments