static Class safeLoadClass(String className, String defaultImplClassName, ClassLoader classLoader) throws ClassNotFoundException { try { checkPackageAccess(className); } catch (SecurityException se) { // anyone can access the platform default factory class without permission if (defaultImplClassName != null && defaultImplClassName.equals(className)) { return Class.forName(className); } // not platform default implementation ... throw se; } return nullSafeLoadClass(className, classLoader); }
private static Object fromSystemProperty(String factoryId, String fallbackClassName, ClassLoader classLoader) { try { String systemProp = System.getProperty(factoryId); if (systemProp != null) { return ServiceLoaderUtil.newInstance(systemProp, fallbackClassName, classLoader, EXCEPTION_HANDLER); } } catch (SecurityException ignored) { } return null; }
ClassLoader classLoader = ServiceLoaderUtil.contextClassLoader(EXCEPTION_HANDLER); T provider = ServiceLoaderUtil.firstByServiceLoader(factoryClass, logger, EXCEPTION_HANDLER); if (provider != null) return provider; return (T) ServiceLoaderUtil.newInstance(factoryClassName, factoryClassName, moduleClassLoader, EXCEPTION_HANDLER); return (T) ServiceLoaderUtil.newInstance(fallbackClassName, fallbackClassName, classLoader, EXCEPTION_HANDLER);
static <T extends Exception> Object newInstance(String className, String defaultImplClassName, ClassLoader classLoader, final ExceptionHandler<T> handler) throws T { try { return safeLoadClass(className, defaultImplClassName, classLoader).newInstance(); } catch (ClassNotFoundException x) { throw handler.createException(x, "Provider " + className + " not found"); } catch (Exception x) { throw handler.createException(x, "Provider " + className + " could not be instantiated: " + x); } }
ClassLoader classLoader = ServiceLoaderUtil.contextClassLoader(EXCEPTION_HANDLER); T provider = ServiceLoaderUtil.firstByServiceLoader(factoryClass, logger, EXCEPTION_HANDLER); if (provider != null) return provider; return (T) ServiceLoaderUtil.newInstance(fallbackClassName, fallbackClassName, classLoader, EXCEPTION_HANDLER);
static <T extends Exception> Object newInstance(String className, String defaultImplClassName, ClassLoader classLoader, final ExceptionHandler<T> handler) throws T { try { return safeLoadClass(className, defaultImplClassName, classLoader).newInstance(); } catch (ClassNotFoundException x) { throw handler.createException(x, "Provider " + className + " not found"); } catch (Exception x) { throw handler.createException(x, "Provider " + className + " could not be instantiated: " + x); } }
ClassLoader classLoader = ServiceLoaderUtil.contextClassLoader(EXCEPTION_HANDLER); T provider = ServiceLoaderUtil.firstByServiceLoader(factoryClass, logger, EXCEPTION_HANDLER); if (provider != null) return provider; return (T) ServiceLoaderUtil.newInstance(fallbackClassName, fallbackClassName, classLoader, EXCEPTION_HANDLER);
static Class safeLoadClass(String className, String defaultImplClassName, ClassLoader classLoader) throws ClassNotFoundException { try { checkPackageAccess(className); } catch (SecurityException se) { // anyone can access the platform default factory class without permission if (defaultImplClassName != null && defaultImplClassName.equals(className)) { return Class.forName(className); } // not platform default implementation ... throw se; } return nullSafeLoadClass(className, classLoader); }
private static Object fromSystemProperty(String factoryId, String fallbackClassName, ClassLoader classLoader) { try { String systemProp = System.getProperty(factoryId); if (systemProp != null) { return ServiceLoaderUtil.newInstance(systemProp, fallbackClassName, classLoader, EXCEPTION_HANDLER); } } catch (SecurityException ignored) { } return null; }
static <T extends Exception> Object newInstance(String className, String defaultImplClassName, ClassLoader classLoader, final ExceptionHandler<T> handler) throws T { try { return safeLoadClass(className, defaultImplClassName, classLoader).newInstance(); } catch (ClassNotFoundException x) { throw handler.createException(x, "Provider " + className + " not found"); } catch (Exception x) { throw handler.createException(x, "Provider " + className + " could not be instantiated: " + x); } }
ClassLoader classLoader = ServiceLoaderUtil.contextClassLoader(EXCEPTION_HANDLER); T provider = ServiceLoaderUtil.firstByServiceLoader(factoryClass, logger, EXCEPTION_HANDLER); if (provider != null) return provider; return (T) ServiceLoaderUtil.newInstance(fallbackClassName, fallbackClassName, classLoader, EXCEPTION_HANDLER);
static Class safeLoadClass(String className, String defaultImplClassName, ClassLoader classLoader) throws ClassNotFoundException { try { checkPackageAccess(className); } catch (SecurityException se) { // anyone can access the platform default factory class without permission if (defaultImplClassName != null && defaultImplClassName.equals(className)) { return Class.forName(className); } // not platform default implementation ... throw se; } return nullSafeLoadClass(className, classLoader); }
private static Object fromSystemProperty(String factoryId, String fallbackClassName, ClassLoader classLoader) { try { String systemProp = System.getProperty(factoryId); if (systemProp != null) { return ServiceLoaderUtil.newInstance(systemProp, fallbackClassName, classLoader, EXCEPTION_HANDLER); } } catch (SecurityException ignored) { } return null; }
static <T extends Exception> Object newInstance(String className, String defaultImplClassName, ClassLoader classLoader, final ExceptionHandler<T> handler) throws T { try { return safeLoadClass(className, defaultImplClassName, classLoader).newInstance(); } catch (ClassNotFoundException x) { throw handler.createException(x, "Provider " + className + " not found"); } catch (Exception x) { throw handler.createException(x, "Provider " + className + " could not be instantiated: " + x); } }
static Class safeLoadClass(String className, String defaultImplClassName, ClassLoader classLoader) throws ClassNotFoundException { try { checkPackageAccess(className); } catch (SecurityException se) { // anyone can access the platform default factory class without permission if (defaultImplClassName != null && defaultImplClassName.equals(className)) { return Class.forName(className); } // not platform default implementation ... throw se; } return nullSafeLoadClass(className, classLoader); }
private static Object fromSystemProperty(String factoryId, String fallbackClassName, ClassLoader classLoader) { try { String systemProp = System.getProperty(factoryId); if (systemProp != null) { return ServiceLoaderUtil.newInstance(systemProp, fallbackClassName, classLoader, EXCEPTION_HANDLER); } } catch (SecurityException ignored) { } return null; }
private static Object fromJDKProperties(String factoryId, String fallbackClassName, ClassLoader classLoader) { Path path = null; try { String JAVA_HOME = System.getProperty("java.home"); path = Paths.get(JAVA_HOME, "conf", "jaxws.properties"); // to ensure backwards compatibility if (!Files.exists(path)) { path = Paths.get(JAVA_HOME, "lib", "jaxws.properties"); } if (Files.exists(path)) { Properties props = new Properties(); try (InputStream inStream = Files.newInputStream(path)) { props.load(inStream); } String factoryClassName = props.getProperty(factoryId); return ServiceLoaderUtil.newInstance(factoryClassName, fallbackClassName, classLoader, EXCEPTION_HANDLER); } } catch (Exception ignored) { logger.log(Level.SEVERE, "Error reading JAX-WS configuration from [" + path + "] file. Check it is accessible and has correct format.", ignored); } return null; }
private static Object fromJDKProperties(String factoryId, String fallbackClassName, ClassLoader classLoader) { Path path = null; try { String JAVA_HOME = System.getProperty("java.home"); path = Paths.get(JAVA_HOME, "conf", "jaxws.properties"); // to ensure backwards compatibility if (!Files.exists(path)) { path = Paths.get(JAVA_HOME, "lib", "jaxws.properties"); } if (Files.exists(path)) { Properties props = new Properties(); try (InputStream inStream = Files.newInputStream(path)) { props.load(inStream); } String factoryClassName = props.getProperty(factoryId); return ServiceLoaderUtil.newInstance(factoryClassName, fallbackClassName, classLoader, EXCEPTION_HANDLER); } } catch (Exception ignored) { logger.log(Level.SEVERE, "Error reading JAX-WS configuration from [" + path + "] file. Check it is accessible and has correct format.", ignored); } return null; }
private static Object fromJDKProperties(String factoryId, String fallbackClassName, ClassLoader classLoader) { Path path = null; try { String JAVA_HOME = System.getProperty("java.home"); path = Paths.get(JAVA_HOME, "conf", "jaxws.properties"); // to ensure backwards compatibility if (!Files.exists(path)) { path = Paths.get(JAVA_HOME, "lib", "jaxws.properties"); } if (Files.exists(path)) { Properties props = new Properties(); try (InputStream inStream = Files.newInputStream(path)) { props.load(inStream); } String factoryClassName = props.getProperty(factoryId); return ServiceLoaderUtil.newInstance(factoryClassName, fallbackClassName, classLoader, EXCEPTION_HANDLER); } } catch (Exception ignored) { logger.log(Level.SEVERE, "Error reading JAX-WS configuration from [" + path + "] file. Check it is accessible and has correct format.", ignored); } return null; }
private static Object fromJDKProperties(String factoryId, String fallbackClassName, ClassLoader classLoader) { Path path = null; try { String JAVA_HOME = System.getProperty("java.home"); path = Paths.get(JAVA_HOME, "conf", "jaxws.properties"); // to ensure backwards compatibility if (!Files.exists(path)) { path = Paths.get(JAVA_HOME, "lib", "jaxws.properties"); } if (Files.exists(path)) { Properties props = new Properties(); try (InputStream inStream = Files.newInputStream(path)) { props.load(inStream); } String factoryClassName = props.getProperty(factoryId); return ServiceLoaderUtil.newInstance(factoryClassName, fallbackClassName, classLoader, EXCEPTION_HANDLER); } } catch (Exception ignored) { logger.log(Level.SEVERE, "Error reading JAX-WS configuration from [" + path + "] file. Check it is accessible and has correct format.", ignored); } return null; }