protected void registerConnectionProvider(String tenantIdentifier) { Properties properties = properties(); properties.put( Environment.URL, tenantUrl(properties.getProperty( Environment.URL ), tenantIdentifier) ); DriverManagerConnectionProviderImpl connectionProvider = new DriverManagerConnectionProviderImpl(); connectionProvider.configure( properties ); connectionProviderMap.put( tenantIdentifier, connectionProvider ); } //end::multitenacy-hibernate-MultiTenantConnectionProvider-example[]
@Override public void stop() { delegate.stop(); }
@Override public void configure(Map configurationValues) { log.usingHibernateBuiltInConnectionPool(); PooledConnections pool = buildPool( configurationValues, serviceRegistry ); final long validationInterval = ConfigurationHelper.getLong( VALIDATION_INTERVAL, configurationValues, 30 ); PoolState newstate = new PoolState( pool, validationInterval ); this.state = newstate; }
@Override public void buildEntityManagerFactory() { connectionProvider = new DriverManagerConnectionProviderImpl(); connectionProvider.configure( Environment.getProperties() ); try(Connection connection = connectionProvider.getConnection(); Statement statement = connection.createStatement()) { statement.execute( "DROP TABLE IF EXISTS roles CASCADE" ); statement.execute( "CREATE TABLE roles ( id BIGINT NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY )" ); } catch (SQLException e) { fail(e.getMessage()); } super.buildEntityManagerFactory(); }
new DriverManagerConnectionProviderImpl(); connectionProvider.configure( properties() ); new SchemaDropperImpl( serviceRegistry ).doDrop( metadata, false, schemaGenerator ); serviceRegistry.destroy(); connectionProvider.stop();
connectionProvider = new DriverManagerConnectionProviderImpl();
private static DriverManagerConnectionProviderImpl buildConnectionProvider(Properties props, final boolean allowAggressiveRelease) { DriverManagerConnectionProviderImpl connectionProvider = new DriverManagerConnectionProviderImpl() { public boolean supportsAggressiveRelease() { return allowAggressiveRelease; } }; connectionProvider.configure( props ); return connectionProvider; }
@Override public void releaseResources() { super.releaseResources(); try(Connection connection = connectionProvider.getConnection(); Statement statement = connection.createStatement()) { statement.execute( "DROP TABLE IF EXISTS roles CASCADE" ); } catch (SQLException e) { fail(e.getMessage()); } if ( connectionProvider != null ) { connectionProvider.stop(); } }
@Override public void closeConnection(Connection conn) throws SQLException { if ( conn == null ) { return; } if ( nonEnlistedConnections.contains( conn ) ) { nonEnlistedConnections.remove( conn ); delegate.closeConnection( conn ); } else { // do nothing. part of the enlistment contract here is that the XAResource wrapper // takes that responsibility. } }
@Override public Connection getConnection() throws SQLException { openConnection++; return super.getConnection(); }
private PooledConnections buildPool(Map configurationValues, ServiceRegistryImplementor serviceRegistry) { final boolean autoCommit = ConfigurationHelper.getBoolean( AvailableSettings.AUTOCOMMIT, configurationValues, false ); final int minSize = ConfigurationHelper.getInt( MIN_SIZE, configurationValues, 1 ); final int maxSize = ConfigurationHelper.getInt( AvailableSettings.POOL_SIZE, configurationValues, 20 ); final int initialSize = ConfigurationHelper.getInt( INITIAL_SIZE, configurationValues, minSize ); ConnectionCreator connectionCreator = buildCreator( configurationValues, serviceRegistry ); PooledConnections.Builder pooledConnectionBuilder = new PooledConnections.Builder( connectionCreator, autoCommit ); pooledConnectionBuilder.initialSize( initialSize ); pooledConnectionBuilder.minSize( minSize ); pooledConnectionBuilder.maxSize( maxSize ); return pooledConnectionBuilder.build(); }
connectionCreatorBuilder.setDriver( loadDriverIfPossible( driverClassName, serviceRegistry ) );
@Before public void setUp() throws Exception { connectionProvider = new DriverManagerConnectionProviderImpl(); connectionProvider.configure( properties() ); connection = connectionProvider.getConnection(); ssr = new StandardServiceRegistryBuilder() .applySetting( AvailableSettings.HBM2DDL_CONNECTION, connection ) .build(); tool = (HibernateSchemaManagementTool) ssr.getService( SchemaManagementTool.class ); configurationValues = ssr.getService( ConfigurationService.class ).getSettings(); executionOptions = new ExecutionOptions() { @Override public boolean shouldManageNamespaces() { return true; } @Override public Map getConfigurationValues() { return configurationValues; } @Override public ExceptionHandler getExceptionHandler() { return ExceptionHandlerLoggedImpl.INSTANCE; } }; }
connectionProvider = new DriverManagerConnectionProviderImpl();
@Override public void closeConnection(Connection conn) throws SQLException { super.closeConnection( conn ); openConnection--; }
@Override public Connection getConnection() throws SQLException { Transaction currentTransaction = findCurrentTransaction(); try { if ( currentTransaction == null ) { // this block handles non enlisted connections ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Connection connection = delegate.getConnection(); nonEnlistedConnections.add( connection ); return connection; } // this portion handles enlisted connections ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Connection connection = (Connection) TestingJtaPlatformImpl.synchronizationRegistry().getResource( CONNECTION_KEY ); if ( connection == null ) { connection = delegate.getConnection(); TestingJtaPlatformImpl.synchronizationRegistry().putResource( CONNECTION_KEY, connection ); XAResourceWrapper xaResourceWrapper = new XAResourceWrapper( this, connection ); currentTransaction.enlistResource( xaResourceWrapper ); } return connection; } catch (SQLException e) { throw e; } catch (Exception e) { throw new SQLException(e); } }
private PooledConnections buildPool(Map configurationValues, ServiceRegistryImplementor serviceRegistry) { final boolean autoCommit = ConfigurationHelper.getBoolean( AvailableSettings.AUTOCOMMIT, configurationValues, false ); final int minSize = ConfigurationHelper.getInt( MIN_SIZE, configurationValues, 1 ); final int maxSize = ConfigurationHelper.getInt( AvailableSettings.POOL_SIZE, configurationValues, 20 ); final int initialSize = ConfigurationHelper.getInt( INITIAL_SIZE, configurationValues, minSize ); ConnectionCreator connectionCreator = buildCreator( configurationValues, serviceRegistry ); PooledConnections.Builder pooledConnectionBuilder = new PooledConnections.Builder( connectionCreator, autoCommit ); pooledConnectionBuilder.initialSize( initialSize ); pooledConnectionBuilder.minSize( minSize ); pooledConnectionBuilder.maxSize( maxSize ); return pooledConnectionBuilder.build(); }
connectionCreatorBuilder.setDriver( loadDriverIfPossible( driverClassName, serviceRegistry ) );
protected void registerConnectionProvider(String tenantIdentifier, TimeZone timeZone) { Properties properties = properties(); properties.put( Environment.URL, tenantUrl( properties.getProperty( Environment.URL ), tenantIdentifier ) ); DriverManagerConnectionProviderImpl connectionProvider = new DriverManagerConnectionProviderImpl(); connectionProvider.configure( properties ); connectionProviderMap.put( tenantIdentifier, connectionProvider ); timeZoneTenantMap.put( tenantIdentifier, timeZone ); } //end::multitenacy-hibernate-timezone-configuration-registerConnectionProvider-example[]
connectionProvider = new DriverManagerConnectionProviderImpl();