getLoadedServiceLoader(serviceType.getServiceClass()); if (serviceLoaderOptional.isPresent()) { return serviceLoaderOptional.get();
/** * Return the first service instance for the requested service type or * {@link Optional#empty()} if none exist. * @param logger to log resolution. * @param serviceType the requested service type encapsulation. * @param <T> the requested service class type. * @return the instance of T or null of none exist in this context. * @throws ClassNotFoundException */ @NonNull public synchronized <T> Optional<T> getSingleService( ILogger logger, Service<T> serviceType) throws ClassNotFoundException { logger.verbose("Looking for %1$s", serviceType); ServiceLoader<T> serviceLoader = getServiceLoader(serviceType); logger.verbose("Got a serviceLoader %1$s", Integer.toHexString(System.identityHashCode(serviceLoader))); Iterator<T> serviceIterator = serviceLoader.iterator(); logger.verbose("Service Iterator = %1$s ", serviceIterator); if (serviceIterator.hasNext()) { T service = serviceIterator.next(); logger.verbose("Got it from %1$s, loaded service = %2$s, type = %3$s", serviceIterator, service, service.getClass()); return Optional.of(service); } else { logger.verbose("Cannot find service implementation %1$s", serviceType); return Optional.empty(); } }
JackProvider jackProvider = buildToolServiceLoader .getSingleService(logger, BuildToolsServiceLoader.JACK) .orElseThrow(() -> new IllegalStateException("Cannot load Jill from build tools."));
try { Optional<JackProvider> jackProvider = buildToolServiceLoader .getSingleService(getLogger(), BuildToolsServiceLoader.JACK); if (jackProvider.isPresent()) { Api01Config config;
JillProvider jillProvider = buildToolServiceLoader .getSingleService(logger, BuildToolsServiceLoader.JILL) .orElseThrow(() -> new IllegalStateException("Cannot load Jill from build tools."));
try { Optional<JillProvider> jillProviderOptional = buildToolServiceLoader .getSingleService(logger, BuildToolsServiceLoader.JILL);
getLoadedServiceLoader(serviceType.getServiceClass()); if (serviceLoaderOptional.isPresent()) { return serviceLoaderOptional.get();
/** * Return the first service instance for the requested service type or * {@link Optional#absent()} if none exist. * @param logger to log resolution. * @param serviceType the requested service type encapsulation. * @param <T> the requested service class type. * @return the instance of T or null of none exist in this context. * @throws ClassNotFoundException */ @NonNull public synchronized <T> Optional<T> getSingleService( ILogger logger, Service<T> serviceType) throws ClassNotFoundException { logger.verbose("Looking for %1$s", serviceType); ServiceLoader<T> serviceLoader = getServiceLoader(serviceType); logger.verbose("Got a serviceLoader %1$d", Integer.toHexString(System.identityHashCode(serviceLoader))); Iterator<T> serviceIterator = serviceLoader.iterator(); logger.verbose("Service Iterator = %1$s ", serviceIterator); if (serviceIterator.hasNext()) { T service = serviceIterator.next(); logger.verbose("Got it from %1$s, loaded service = %2$s, type = %3$s", serviceIterator, service, service.getClass()); return Optional.of(service); } else { logger.info("Cannot find service implementation %1$s" + serviceType); return Optional.absent(); } }
/** * Load a built-tools version specific {@link ServiceLoader} helper. * @param buildToolInfo the requested build-tools information * @return an initialized {@link BuildToolsServiceLoader.BuildToolServiceLoader} to get * instances of {@link ServiceLoader} from. */ @NonNull public synchronized BuildToolServiceLoader forVersion(BuildToolInfo buildToolInfo) { Optional<LoadedBuildTool> loadedBuildToolOptional = findVersion(buildToolInfo.getRevision()); if (loadedBuildToolOptional.isPresent()) { return loadedBuildToolOptional.get().serviceLoader; } LoadedBuildTool loadedBuildTool = new LoadedBuildTool(buildToolInfo.getRevision(), new BuildToolServiceLoader(buildToolInfo)); loadedBuildTools.add(loadedBuildTool); return loadedBuildTool.serviceLoader; }
/** * Load a built-tools version specific {@link ServiceLoader} helper. * @param buildToolInfo the requested build-tools information * @return an initialized {@link BuildToolsServiceLoader.BuildToolServiceLoader} to get * instances of {@link ServiceLoader} from. */ @NonNull public synchronized BuildToolServiceLoader forVersion(BuildToolInfo buildToolInfo) { Optional<LoadedBuildTool> loadedBuildToolOptional = findVersion(buildToolInfo.getRevision()); if (loadedBuildToolOptional.isPresent()) { return loadedBuildToolOptional.get().serviceLoader; } LoadedBuildTool loadedBuildTool = new LoadedBuildTool(buildToolInfo.getRevision(), new BuildToolServiceLoader(buildToolInfo)); loadedBuildTools.add(loadedBuildTool); return loadedBuildTool.serviceLoader; }