diff --git a/src/main/java/io/ebean/XServiceProvider.java b/src/main/java/io/ebean/XServiceProvider.java index bc6c36d71..7f7ce9cc6 100644 --- a/src/main/java/io/ebean/XServiceProvider.java +++ b/src/main/java/io/ebean/XServiceProvider.java @@ -20,29 +20,23 @@ class XServiceProvider { private static SpiFetchGroupService fetchGroupService = initSpiFetchGroupService(); private static SpiFetchGroupService initSpiFetchGroupService() { - Iterator loader = ServiceLoader.load(SpiFetchGroupService.class).iterator(); - if (loader.hasNext()) { - return loader.next(); - } - throw new IllegalStateException("No service implementation found for SpiFetchGroupService?"); + return loadFirstService(SpiFetchGroupService.class); } private static SpiRawSqlService initRawSql() { - - Iterator loader = ServiceLoader.load(SpiRawSqlService.class).iterator(); - if (loader.hasNext()) { - return loader.next(); - } - throw new IllegalStateException("No service implementation found for SpiRawSqlService?"); + return loadFirstService(SpiRawSqlService.class); } private static SpiProfileLocationFactory initProfileLocation() { + return loadFirstService(SpiProfileLocationFactory.class); + } - Iterator loader = ServiceLoader.load(SpiProfileLocationFactory.class).iterator(); + private static T loadFirstService(Class cls) { + Iterator loader = ServiceLoader.load(cls).iterator(); if (loader.hasNext()) { return loader.next(); } - throw new IllegalStateException("No service implementation found for SpiProfileLocationFactory?"); + throw new IllegalStateException("No service implementation found for " + cls); } /**