/** * Creates a new abstract connection factory. Once invoked the supplied provider config is made immutable. See {@link * ProviderConfig#makeImmutable()}. * * @param url of the ldap to connect to * @param strategy connection strategy * @param config provider configuration */ public AbstractProviderConnectionFactory(final String url, final ConnectionStrategy strategy, final T config) { metadata = new DefaultConnectionFactoryMetadata(url); connectionStrategy = strategy; providerConfig = config; providerConfig.makeImmutable(); }
/** * Creates a new DNS SRV connection strategy. * * @param env JNDI environment * @param ttl time to live in milliseconds for SRV records */ public DnsSrvConnectionStrategy(final Map<String, Object> env, final long ttl) { if (env != null) { setJndiEnvironment(env); } setTimeToLive(ttl); }
/** * Returns the supplied connection count if {@link #useConnectionCount} is true. Otherwise returns {@link * #invocationCount}. * * @param connectionCount as reported by the connection * * @return count used to reorder the URL list */ protected int getCount(final int connectionCount) { if (useConnectionCount) { return connectionCount; } return returnAndIncrementInvocationCount(); }
@Override public synchronized Response<Void> reopen(final BindRequest request) throws LdapException { try { if (providerConnection != null) { providerConnection.close(null); } } catch (LdapException e) { logger.warn("Error closing connection with the LDAP", e); } finally { providerConnection = null; } providerConnection = providerConnectionFactory.create(); return providerConnection.bind(request); }
@Override public void initialize() { initializeObject(INVOKER); object.setProperties(extraProps); }
/** * Creates a new connection. Connections returned from this method must be opened before they can perform ldap * operations. * * @return connection */ @Override public Connection getConnection() { return new DefaultConnection(config, provider.getConnectionFactory(config)); }
/** * Removes a listener from receiving unsolicited notifications. * * @param listener to no longer receive unsolicited notifications */ public void removeListener(final UnsolicitedNotificationListener listener) { connection.getProviderConnection().removeUnsolicitedNotificationListener(listener); } }
/** * Sets the control processor. * * @param processor control processor */ public void setControlProcessor(final ControlProcessor<C> processor) { checkImmutable(); logger.trace("setting controlProcessor: {}", processor); controlProcessor = processor; }
/** * Adds a listener to receive unsolicited notifications. * * @param listener to receive unsolicited notifications */ public void addListener(final UnsolicitedNotificationListener listener) { connection.getProviderConnection().addUnsolicitedNotificationListener(listener); }
/** * Returns an array containing a single entry URL obtained from {@link ConnectionFactoryMetadata#getLdapUrl()}. * * @param metadata which can be used to produce the URL list * * @return list of URLs to attempt connections to */ @Override public String[] getLdapUrls(final ConnectionFactoryMetadata metadata) { if (metadata == null || metadata.getLdapUrl() == null) { return null; } return new String[] {metadata.getLdapUrl()}; } }
@Override public synchronized Response<Void> reopen(final BindRequest request) throws LdapException { try { if (providerConnection != null) { providerConnection.close(null); } } catch (LdapException e) { logger.warn("Error closing connection with the LDAP", e); } finally { providerConnection = null; } providerConnection = providerConnectionFactory.create(); return providerConnection.bind(request); }
/** * Creates a new abstract connection factory. Once invoked the supplied provider config is made immutable. See {@link * ProviderConfig#makeImmutable()}. * * @param url of the ldap to connect to * @param strategy connection strategy * @param config provider configuration */ public AbstractProviderConnectionFactory(final String url, final ConnectionStrategy strategy, final T config) { metadata = new DefaultConnectionFactoryMetadata(url); connectionStrategy = strategy; providerConfig = config; providerConfig.makeImmutable(); }
@Override public void initialize() { initializeObject(INVOKER); object.setProperties(extraProps); }
/** * Creates a new connection. Connections returned from this method must be opened before they can perform ldap * operations. * * @return connection */ @Override public Connection getConnection() { return new DefaultConnection(config, provider.getConnectionFactory(config)); }
/** * Removes a listener from receiving unsolicited notifications. * * @param listener to no longer receive unsolicited notifications */ public void removeListener(final UnsolicitedNotificationListener listener) { connection.getProviderConnection().removeUnsolicitedNotificationListener(listener); } }
/** * Sets the control processor. * * @param processor control processor */ public void setControlProcessor(final ControlProcessor<C> processor) { checkImmutable(); logger.trace("setting controlProcessor: {}", processor); controlProcessor = processor; }
@Override public synchronized Response<Void> reopen(final BindRequest request) throws LdapException { try { if (providerConnection != null) { providerConnection.close(null); } } catch (LdapException e) { logger.warn("Error closing connection with the LDAP", e); } finally { providerConnection = null; } providerConnection = providerConnectionFactory.create(); return providerConnection.bind(request); }
/** * Creates a new abstract connection factory. Once invoked the supplied provider config is made immutable. See {@link * ProviderConfig#makeImmutable()}. * * @param url of the ldap to connect to * @param config provider configuration */ public AbstractProviderConnectionFactory(final String url, final T config) { if (url == null) { throw new IllegalArgumentException("LDAP URL cannot be null"); } metadata = new DefaultConnectionFactoryMetadata(url); providerConfig = config; providerConfig.makeImmutable(); }
/** * Creates a new connection. Connections returned from this method must be opened before they can perform ldap * operations. * * @return connection */ @Override public Connection getConnection() { return new DefaultConnection(config, provider.getConnectionFactory(config)); }
/** * Removes a listener from receiving unsolicited notifications. * * @param listener to no longer receive unsolicited notifications */ public void removeListener(final UnsolicitedNotificationListener listener) { connection.getProviderConnection().removeUnsolicitedNotificationListener(listener); } }