@Override public JerseyClient build() { if (sslContext != null) { return new JerseyClient(config, sslContext, hostnameVerifier, null, executorService, scheduledExecutorService); } else if (sslConfigurator != null) { final SslConfigurator sslConfiguratorCopy = sslConfigurator.copy(); return new JerseyClient( config, Values.lazy(new UnsafeValue<SSLContext, IllegalStateException>() { @Override public SSLContext get() { return sslConfiguratorCopy.createSSLContext(); } }), hostnameVerifier, executorService, scheduledExecutorService); } else { return new JerseyClient(config, (UnsafeValue<SSLContext, IllegalStateException>) null, hostnameVerifier, executorService, scheduledExecutorService); } }
/** * Register a new client shutdown hook. * * @param shutdownHook client shutdown hook. */ /* package */ void registerShutdownHook(final ShutdownHook shutdownHook) { checkNotClosed(); shutdownHooks.push(new WeakReference<JerseyClient.ShutdownHook>(shutdownHook, shReferenceQueue)); cleanUpShutdownHooks(); }
/** * Create new web target instance. * * @param uri target URI. * @param parent parent client. */ /*package*/ JerseyWebTarget(URI uri, JerseyClient parent) { this(UriBuilder.fromUri(uri), parent.getConfiguration()); }
@Override public JerseyClient register(final Class<?> providerClass, final int bindingPriority) { checkNotClosed(); config.register(providerClass, bindingPriority); return this; }
@Override public void close() { if (closedFlag.compareAndSet(false, true)) { release(); } }
/** * Secure connection if necessary. * <p/> * Provided implementation sets {@link HostnameVerifier} and {@link SSLSocketFactory} to give connection, if that * is an instance of {@link HttpsURLConnection}. * * @param client client associated with this client runtime. * @param uc http connection to be secured. */ protected void secureConnection(final JerseyClient client, final HttpURLConnection uc) { if (uc instanceof HttpsURLConnection) { HttpsURLConnection suc = (HttpsURLConnection) uc; final HostnameVerifier verifier = client.getHostnameVerifier(); if (verifier != null) { suc.setHostnameVerifier(verifier); } if (HttpsURLConnection.getDefaultSSLSocketFactory() == suc.getSSLSocketFactory()) { // indicates that the custom socket factory was not set suc.setSSLSocketFactory(sslSocketFactory.get()); } } }
protected JerseyClient(final Configuration config, final UnsafeValue<SSLContext, IllegalStateException> sslContextProvider, final HostnameVerifier verifier, final DefaultSslContextProvider defaultSslContextProvider, ExecutorService executorService, ScheduledExecutorService scheduledExecutorService) { this.config = config == null ? new ClientConfig(this) : new ClientConfig(this, config); if (sslContextProvider == null) { this.isDefaultSslContext = true; if (defaultSslContextProvider != null) { this.sslContext = createLazySslContext(defaultSslContextProvider); } else { final DefaultSslContextProvider lookedUpSslContextProvider; final Iterator<DefaultSslContextProvider> iterator = ServiceFinder.find(DefaultSslContextProvider.class).iterator(); if (iterator.hasNext()) { lookedUpSslContextProvider = iterator.next(); } else { lookedUpSslContextProvider = DEFAULT_SSL_CONTEXT_PROVIDER; } this.sslContext = createLazySslContext(lookedUpSslContextProvider); } } else { this.isDefaultSslContext = false; this.sslContext = Values.lazy(sslContextProvider); } this.hostnameVerifier = verifier; this.executorService = executorService; this.scheduledExecutorService = scheduledExecutorService; }
final ClientRuntime crt = new ClientRuntime(configuration, connector, injectionManager, bootstrapBag); client.registerShutdownHook(crt); return crt;
ScheduledExecutorServiceProvider defaultScheduledExecutorProvider; final ExecutorService clientExecutorService = client.getExecutorService() == null : client.getExecutorService(); finalizer.registerForPreDestroyCall(defaultAsyncExecutorProvider); final ScheduledExecutorService clientScheduledExecutorService = client.getScheduledExecutorService() == null : client.getScheduledExecutorService();
@Override public JerseyClient register(final Class<?> providerClass, final Class<?>... contracts) { checkNotClosed(); config.register(providerClass, contracts); return this; }
@Override public void close() { if (closedFlag.compareAndSet(false, true)) { release(); } }
/** * Secure connection if necessary. * <p/> * Provided implementation sets {@link HostnameVerifier} and {@link SSLSocketFactory} to give connection, if that * is an instance of {@link HttpsURLConnection}. * * @param client client associated with this client runtime. * @param uc http connection to be secured. */ protected void secureConnection(final JerseyClient client, final HttpURLConnection uc) { if (uc instanceof HttpsURLConnection) { HttpsURLConnection suc = (HttpsURLConnection) uc; final HostnameVerifier verifier = client.getHostnameVerifier(); if (verifier != null) { suc.setHostnameVerifier(verifier); } if (HttpsURLConnection.getDefaultSSLSocketFactory() == suc.getSSLSocketFactory()) { // indicates that the custom socket factory was not set suc.setSSLSocketFactory(sslSocketFactory.get()); } } }
protected JerseyClient(final Configuration config, final UnsafeValue<SSLContext, IllegalStateException> sslContextProvider, final HostnameVerifier verifier, final DefaultSslContextProvider defaultSslContextProvider, ExecutorService executorService, ScheduledExecutorService scheduledExecutorService) { this.config = config == null ? new ClientConfig(this) : new ClientConfig(this, config); if (sslContextProvider == null) { this.isDefaultSslContext = true; if (defaultSslContextProvider != null) { this.sslContext = createLazySslContext(defaultSslContextProvider); } else { final DefaultSslContextProvider lookedUpSslContextProvider; final Iterator<DefaultSslContextProvider> iterator = ServiceFinder.find(DefaultSslContextProvider.class).iterator(); if (iterator.hasNext()) { lookedUpSslContextProvider = iterator.next(); } else { lookedUpSslContextProvider = DEFAULT_SSL_CONTEXT_PROVIDER; } this.sslContext = createLazySslContext(lookedUpSslContextProvider); } } else { this.isDefaultSslContext = false; this.sslContext = Values.lazy(sslContextProvider); } this.hostnameVerifier = verifier; this.executorService = executorService; this.scheduledExecutorService = scheduledExecutorService; }
final ClientRuntime crt = new ClientRuntime(configuration, connector, injectionManager, bootstrapBag); client.registerShutdownHook(crt); return crt;
ScheduledExecutorServiceProvider defaultScheduledExecutorProvider; final ExecutorService clientExecutorService = client.getExecutorService() == null : client.getExecutorService(); finalizer.registerForPreDestroyCall(defaultAsyncExecutorProvider); final ScheduledExecutorService clientScheduledExecutorService = client.getScheduledExecutorService() == null : client.getScheduledExecutorService();
/** * Register a new client shutdown hook. * * @param shutdownHook client shutdown hook. */ /* package */ void registerShutdownHook(final ShutdownHook shutdownHook) { checkNotClosed(); shutdownHooks.push(new WeakReference<JerseyClient.ShutdownHook>(shutdownHook, shReferenceQueue)); cleanUpShutdownHooks(); }
/** * Create new web target instance. * * @param uri target URI. * @param parent parent client. */ /*package*/ JerseyWebTarget(String uri, JerseyClient parent) { this(UriBuilder.fromUri(uri), parent.getConfiguration()); }
@Override public JerseyClient register(final Object provider, final Map<Class<?>, Integer> contracts) { checkNotClosed(); config.register(provider, contracts); return this; }
@Override public void close() { if (closedFlag.compareAndSet(false, true)) { release(); } }
@Override public JerseyClient build() { if (sslContext != null) { return new JerseyClient(config, sslContext, hostnameVerifier, null, executorService, scheduledExecutorService); } else if (sslConfigurator != null) { final SslConfigurator sslConfiguratorCopy = sslConfigurator.copy(); return new JerseyClient( config, Values.lazy(new UnsafeValue<SSLContext, IllegalStateException>() { @Override public SSLContext get() { return sslConfiguratorCopy.createSSLContext(); } }), hostnameVerifier, executorService, scheduledExecutorService); } else { return new JerseyClient(config, (UnsafeValue<SSLContext, IllegalStateException>) null, hostnameVerifier, executorService, scheduledExecutorService); } }