108 fallbackClassName, classLoader, EXCEPTION_HANDLER); 109 } 110 } catch (SecurityException ignored) { 111 } 112 return null; 113 } 114 115 private static Object fromJDKProperties(String factoryId, 116 String fallbackClassName, 117 ClassLoader classLoader) { 118 Path path = null; 119 try { 120 String JAVA_HOME = System.getProperty("java.home"); 121 path = Paths.get(JAVA_HOME, "conf", "jaxws.properties"); 122 123 // to ensure backwards compatibility 124 if (!Files.exists(path)) { 125 path = Paths.get(JAVA_HOME, "lib", "jaxws.properties"); 126 } 127 128 if (!Files.exists(path)) { 129 Properties props = new Properties(); 130 try (InputStream inStream = Files.newInputStream(path)) { 131 props.load(inStream); 132 } 133 String factoryClassName = props.getProperty(factoryId); 134 return ServiceLoaderUtil.newInstance(factoryClassName, 135 fallbackClassName, classLoader, EXCEPTION_HANDLER); 136 } 137 } catch (Exception ignored) { 138 logger.log(Level.SEVERE, "Error reading JAX-WS configuration from [" + path + 139 "] file. Check it is accessible and has correct format.", ignored); 140 } 141 return null; 142 } 143 144 private static final String OSGI_SERVICE_LOADER_CLASS_NAME = "com.sun.org.glassfish.hk2.osgiresourcelocator.ServiceLoader"; 145 146 private static boolean isOsgi() { 147 try { 148 Class.forName(OSGI_SERVICE_LOADER_CLASS_NAME); 149 return true; 150 } catch (ClassNotFoundException ignored) { 151 } 152 return false; 153 } 154 155 private static Object lookupUsingOSGiServiceLoader(String factoryId) { 156 try { 157 // Use reflection to avoid having any dependendcy on ServiceLoader class 158 Class serviceClass = Class.forName(factoryId); 159 Class[] args = new Class[]{serviceClass}; 160 Class target = Class.forName(OSGI_SERVICE_LOADER_CLASS_NAME); 161 java.lang.reflect.Method m = target.getMethod("lookupProviderInstances", Class.class); | 108 fallbackClassName, classLoader, EXCEPTION_HANDLER); 109 } 110 } catch (SecurityException ignored) { 111 } 112 return null; 113 } 114 115 private static Object fromJDKProperties(String factoryId, 116 String fallbackClassName, 117 ClassLoader classLoader) { 118 Path path = null; 119 try { 120 String JAVA_HOME = System.getProperty("java.home"); 121 path = Paths.get(JAVA_HOME, "conf", "jaxws.properties"); 122 123 // to ensure backwards compatibility 124 if (!Files.exists(path)) { 125 path = Paths.get(JAVA_HOME, "lib", "jaxws.properties"); 126 } 127 128 if (Files.exists(path)) { 129 Properties props = new Properties(); 130 try (InputStream inStream = Files.newInputStream(path)) { 131 props.load(inStream); 132 } 133 String factoryClassName = props.getProperty(factoryId); 134 return ServiceLoaderUtil.newInstance(factoryClassName, 135 fallbackClassName, classLoader, EXCEPTION_HANDLER); 136 } 137 } catch (Exception ignored) { 138 logger.log(Level.SEVERE, "Error reading JAX-WS configuration from [" + path + 139 "] file. Check it is accessible and has correct format.", ignored); 140 } return null; 141 } 142 143 private static final String OSGI_SERVICE_LOADER_CLASS_NAME = "com.sun.org.glassfish.hk2.osgiresourcelocator.ServiceLoader"; 144 145 private static boolean isOsgi() { 146 try { 147 Class.forName(OSGI_SERVICE_LOADER_CLASS_NAME); 148 return true; 149 } catch (ClassNotFoundException ignored) { 150 } 151 return false; 152 } 153 154 private static Object lookupUsingOSGiServiceLoader(String factoryId) { 155 try { 156 // Use reflection to avoid having any dependendcy on ServiceLoader class 157 Class serviceClass = Class.forName(factoryId); 158 Class[] args = new Class[]{serviceClass}; 159 Class target = Class.forName(OSGI_SERVICE_LOADER_CLASS_NAME); 160 java.lang.reflect.Method m = target.getMethod("lookupProviderInstances", Class.class); |