boolean rebindDataSources() {
		boolean ok;
		// on cherche une datasource avec InitialContext pour afficher nom et version bdd + nom et version driver jdbc
		// (le nom de la dataSource recherchée dans JNDI est du genre jdbc/Xxx qui est le nom standard d'une DataSource)
		try {
			final boolean rewrapDataSources = Parameter.REWRAP_DATASOURCES.getValueAsBoolean();
			if (rewrapDataSources || Parameter.DATASOURCES.getValue() != null) {
				// on annule le rebinding ou rewrapping éventuellement faits avant par SessionListener
				// si datasources ou rewrap-datasources est défini dans le filter
				stop();
			}
			final Map<String, DataSource> jndiDataSources = JdbcWrapperHelper.getJndiDataSources();
			LOG.debug("datasources found in JNDI: " + jndiDataSources.keySet());
			for (final Map.Entry<String, DataSource> entry : jndiDataSources.entrySet()) {
				final String jndiName = entry.getKey();
				final DataSource dataSource = entry.getValue();
				try {
					if (rewrapDataSources || isServerNeedsRewrap(jndiName)) {
						rewrapDataSource(jndiName, dataSource);
						JdbcWrapperHelper.registerRewrappedDataSource(jndiName, dataSource);
					} else if (!isProxyAlready(dataSource)) {
						// si dataSource est déjà un proxy, il ne faut pas faire un proxy d'un proxy ni un rebinding
						final DataSource dataSourceProxy = createDataSourceProxy(jndiName,
								dataSource);
						JdbcWrapperHelper.rebindDataSource(servletContext, jndiName, dataSource,
								dataSourceProxy);
						LOG.debug("datasource rebinded: " + jndiName + " from class "
								+ dataSource.getClass().getName() + " to class "
								+ dataSourceProxy.getClass().getName());
					}
				} catch (final Throwable t) { // NOPMD
					// ça n'a pas marché, tant pis pour celle-ci qui semble invalide, mais continuons avec les autres
					LOG.debug("rebinding datasource " + jndiName + " failed, skipping it", t);
				}
			}
			ok = true;
		} catch (final Throwable t) { // NOPMD
			// ça n'a pas marché, tant pis
			LOG.debug("rebinding datasources failed, skipping", t);
			ok = false;
		}
		return ok;
	}
@Test
	public void testRebindDataSources() {
		// test rebind et stop (sans conteneur)
		jdbcWrapper.rebindDataSources();
		Utils.setProperty(Parameter.REWRAP_DATASOURCES, "true");
		jdbcWrapper.rebindDataSources();
		jdbcWrapper.stop();
	}