diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/SourceType.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/SourceType.java index 34274048877c..3e2d60954e89 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/SourceType.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/SourceType.java @@ -77,7 +77,7 @@ public static SourceType interpret(Object value, SourceType defaultValue) { if ( name.isEmpty() ) { return METADATA; } - for ( SourceType sourceType: values() ) { + for ( var sourceType: values() ) { if ( sourceType.toString().equalsIgnoreCase(name) ) { return sourceType; } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/UniqueConstraintSchemaUpdateStrategy.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/UniqueConstraintSchemaUpdateStrategy.java index 7b804902a2f9..ef2b6f4a6885 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/UniqueConstraintSchemaUpdateStrategy.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/UniqueConstraintSchemaUpdateStrategy.java @@ -57,7 +57,7 @@ public static UniqueConstraintSchemaUpdateStrategy interpret(Object setting) { } try { - final UniqueConstraintSchemaUpdateStrategy byName = byName( setting.toString() ); + final var byName = byName( setting.toString() ); if ( byName != null ) { return byName; } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java index 809e30d7a1f7..e60a8a18a3a7 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/extract/internal/AbstractInformationExtractorImpl.java @@ -1024,12 +1024,12 @@ protected NameSpacePrimaryKeysInformation extractNameSpacePrimaryKeysInformation final String currentPkName = resultSet.getString( getResultSetPrimaryKeyNameLabel() ); final Identifier currentPrimaryKeyIdentifier = currentPkName == null ? null : toIdentifier( currentPkName ); - final TableInformation tableInformation = getTableInformation( + final var tableInformation = getTableInformation( resultSet.getString( getResultSetPrimaryKeyCatalogLabel() ), resultSet.getString( getResultSetPrimaryKeySchemaLabel() ), currentTableName ); - PrimaryKeyInformation primaryKeyInformation = + var primaryKeyInformation = primaryKeysInformation.getPrimaryKeyInformation( currentTableName ); final List columns; if ( primaryKeyInformation != null ) { @@ -1162,7 +1162,7 @@ public Iterable getIndexes(TableInformation tableInformation) != DatabaseMetaData.tableIndexStatistic ) { final Identifier indexIdentifier = toIdentifier( resultSet.getString( getResultSetIndexNameLabel() ) ); - var builder = indexInformationBuilder( builders, indexIdentifier ); + final var builder = indexInformationBuilder( builders, indexIdentifier ); final Identifier columnIdentifier = toIdentifier( resultSet.getString( getResultSetColumnNameLabel() ) ); final var columnInformation = tableInformation.getColumn( columnIdentifier ); @@ -1199,12 +1199,15 @@ public Iterable getIndexes(TableInformation tableInformation) private static IndexInformationImpl.Builder indexInformationBuilder( Map builders, Identifier indexIdentifier) { - var builder = builders.get( indexIdentifier ); + final var builder = builders.get( indexIdentifier ); if ( builder == null ) { - builder = IndexInformationImpl.builder( indexIdentifier ); - builders.put( indexIdentifier, builder ); + final var newBuilder = IndexInformationImpl.builder( indexIdentifier ); + builders.put( indexIdentifier, newBuilder ); + return newBuilder; + } + else { + return builder; } - return builder; } @Override @@ -1238,7 +1241,7 @@ protected NameSpaceIndexesInformation extractNameSpaceIndexesInformation(ResultS while ( resultSet.next() ) { if ( resultSet.getShort( getResultSetIndexTypeLabel() ) != DatabaseMetaData.tableIndexStatistic ) { - final TableInformation tableInformation = getTableInformation( + final var tableInformation = getTableInformation( resultSet.getString( getResultSetCatalogLabel() ), resultSet.getString( getResultSetSchemaLabel() ), resultSet.getString( getResultSetTableNameLabel() ) @@ -1266,10 +1269,10 @@ private IndexInformation getOrCreateIndexInformation( NameSpaceIndexesInformation indexesInformation, Identifier indexIdentifier, TableInformation tableInformation) { - final List indexes = + final var indexes = indexesInformation.getIndexesInformation( tableInformation.getName().getTableName().getText() ); if ( indexes != null ) { - for ( IndexInformation index : indexes ) { + for ( var index : indexes ) { if ( indexIdentifier.equals( index.getIndexIdentifier() ) ) { return index; } @@ -1515,7 +1518,7 @@ protected NameSpaceForeignKeysInformation extractNameSpaceForeignKeysInformation final var foreignKeysInformation = new NameSpaceForeignKeysInformation( getIdentifierHelper() ); while ( resultSet.next() ) { - final TableInformation tableInformation = getTableInformation( + final var tableInformation = getTableInformation( resultSet.getString( getResultSetForeignKeyCatalogLabel() ), resultSet.getString( getResultSetForeignKeySchemaLabel() ), resultSet.getString( getResultSetForeignKeyTableLabel() ) @@ -1550,10 +1553,10 @@ private ForeignKeyInformation getOrCreateForeignKeyInformation( NameSpaceForeignKeysInformation foreignKeysInformation, Identifier foreignKeyIdentifier, TableInformation tableInformation) { - final List foreignKeys = + final var foreignKeys = foreignKeysInformation.getForeignKeysInformation( tableInformation.getName().getTableName().getText() ); if ( foreignKeys != null ) { - for ( ForeignKeyInformation foreignKey : foreignKeys ) { + for ( var foreignKey : foreignKeys ) { if ( foreignKeyIdentifier.equals( foreignKey.getForeignKeyIdentifier() ) ) { return foreignKey; } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaMigrator.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaMigrator.java index 1279029091aa..259ee37955a4 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaMigrator.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaMigrator.java @@ -49,7 +49,6 @@ import static org.hibernate.internal.util.collections.CollectionHelper.setOfSize; import static org.hibernate.tool.schema.UniqueConstraintSchemaUpdateStrategy.DROP_RECREATE_QUIETLY; import static org.hibernate.tool.schema.UniqueConstraintSchemaUpdateStrategy.SKIP; -import static org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation; import static org.hibernate.tool.schema.internal.Helper.interpretFormattingEnabled; import static org.hibernate.tool.schema.internal.SchemaCreatorImpl.createUserDefinedTypes; import static org.hibernate.tool.schema.internal.SchemaDropperImpl.dropUserDefinedTypes; @@ -520,8 +519,8 @@ protected void createSchemaAndCatalog( SqlStringGenerationContext context, GenerationTarget[] targets) { if ( tryToCreateCatalogs || tryToCreateSchemas ) { - Namespace.Name logicalName = namespace.getName(); - Namespace.Name physicalName = namespace.getPhysicalName(); + final var logicalName = namespace.getName(); + final var physicalName = namespace.getPhysicalName(); if ( tryToCreateCatalogs ) { final Identifier catalogLogicalName = logicalName.catalog(); diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaPopulator.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaPopulator.java index 2879ad37d11b..20a33530a16e 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaPopulator.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/AbstractSchemaPopulator.java @@ -45,7 +45,7 @@ void applyImportSources( Dialect dialect, GenerationTarget... targets) { final var formatter = getImportScriptFormatter(format); - boolean hasDefaultImportFileScriptBeenExecuted = applyImportScript( + final boolean hasDefaultImportFileScriptBeenExecuted = applyImportScript( options, commandExtractor, dialect, @@ -123,8 +123,11 @@ private boolean containsDefaultImportFile(ScriptSourceInput importScriptInput,Ex return false; } else { - final URL defaultImportFileUrl = getClassLoaderService().locateResource( DEFAULT_IMPORT_FILE ); - return defaultImportFileUrl != null && importScriptInput.containsScript( defaultImportFileUrl ); + final URL defaultImportFileUrl = + getClassLoaderService() + .locateResource( DEFAULT_IMPORT_FILE ); + return defaultImportFileUrl != null + && importScriptInput.containsScript( defaultImportFileUrl ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/Helper.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/Helper.java index 834584197fce..822bbe7323c0 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/Helper.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/Helper.java @@ -63,15 +63,17 @@ public static ScriptSourceInput interpretScriptSourceSetting( else { final String scriptSourceSettingString = scriptSourceSetting.toString(); CORE_LOGGER.attemptingToResolveScriptSourceSetting( scriptSourceSettingString ); - final String[] paths = splitAtCommas( scriptSourceSettingString ); + final var paths = splitAtCommas( scriptSourceSettingString ); if ( paths.length == 1 ) { return interpretScriptSourceSetting( scriptSourceSettingString, classLoaderService, charsetName ); } - final var inputs = new AbstractScriptSourceInput[paths.length]; - for ( int i = 0; i < paths.length; i++ ) { - inputs[i] = interpretScriptSourceSetting( paths[i], classLoaderService, charsetName ) ; + else { + final var inputs = new AbstractScriptSourceInput[paths.length]; + for ( int i = 0; i < paths.length; i++ ) { + inputs[i] = interpretScriptSourceSetting( paths[i], classLoaderService, charsetName ); + } + return new ScriptSourceInputAggregate( inputs ); } - return new ScriptSourceInputAggregate( inputs ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaCreatorImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaCreatorImpl.java index b7000a3a6bf0..b11d60a8a2d0 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaCreatorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaCreatorImpl.java @@ -30,7 +30,6 @@ import org.hibernate.service.spi.ServiceRegistryImplementor; import org.hibernate.tool.schema.SourceType; import org.hibernate.tool.schema.spi.GenerationTarget; -import org.hibernate.tool.schema.internal.exec.JdbcContext; import org.hibernate.tool.schema.spi.ContributableMatcher; import org.hibernate.tool.schema.spi.ExceptionHandler; import org.hibernate.tool.schema.spi.ExecutionOptions; @@ -94,7 +93,7 @@ public void doCreation( TargetDescriptor targetDescriptor) { if ( !targetDescriptor.getTargetTypes().isEmpty() ) { final var configuration = options.getConfigurationValues(); - final JdbcContext jdbcContext = tool.resolveJdbcContext( configuration ); + final var jdbcContext = tool.resolveJdbcContext( configuration ); doCreation( metadata, jdbcContext.getDialect(), @@ -505,8 +504,9 @@ private static void createSchemasAndCatalogs( Formatter formatter, SqlStringGenerationContext context, GenerationTarget[] targets) { - final boolean tryToCreateCatalogs = options.shouldManageNamespaces() && dialect.canCreateCatalog(); - final boolean tryToCreateSchemas = options.shouldManageNamespaces() && dialect.canCreateSchema(); + final boolean manageNamespaces = options.shouldManageNamespaces(); + final boolean tryToCreateCatalogs = manageNamespaces && dialect.canCreateCatalog(); + final boolean tryToCreateSchemas = manageNamespaces && dialect.canCreateSchema(); // first, create each catalog/schema if ( tryToCreateCatalogs || tryToCreateSchemas ) { Set exportedCatalogs = new HashSet<>(); @@ -560,35 +560,35 @@ private static void checkExportIdentifier(Exportable exportable, Set exp * * @return The generation commands */ + @Internal public List generateCreationCommands(Metadata metadata, final boolean manageNamespaces) { final var target = new JournalingGenerationTarget(); - final var metadataImplementor = (MetadataImplementor) metadata; - final var dialect = + createFromMetadata( + metadata, + new ExecutionOptions() { + @Override + public boolean shouldManageNamespaces() { + return manageNamespaces; + } + + @Override + public Map getConfigurationValues() { + return Collections.emptyMap(); + } + + @Override + public ExceptionHandler getExceptionHandler() { + return ExceptionHandlerHaltImpl.INSTANCE; + } + }, metadataImplementor.getMetadataBuildingOptions() .getServiceRegistry() .requireService( JdbcEnvironment.class ) - .getDialect(); - - final ExecutionOptions options = new ExecutionOptions() { - @Override - public boolean shouldManageNamespaces() { - return manageNamespaces; - } - - @Override - public Map getConfigurationValues() { - return Collections.emptyMap(); - } - - @Override - public ExceptionHandler getExceptionHandler() { - return ExceptionHandlerHaltImpl.INSTANCE; - } - }; - - createFromMetadata( metadata, options, dialect, FormatStyle.NONE.getFormatter(), target ); - + .getDialect(), + FormatStyle.NONE.getFormatter(), + target + ); return target.commands; } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaDropperImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaDropperImpl.java index f8e2028dd45f..b8ccf7047231 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaDropperImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaDropperImpl.java @@ -108,7 +108,7 @@ public void doDrop( TargetDescriptor targetDescriptor) { if ( !targetDescriptor.getTargetTypes().isEmpty() ) { final var configuration = options.getConfigurationValues(); - final JdbcContext jdbcContext = tool.resolveJdbcContext( configuration ); + final var jdbcContext = tool.resolveJdbcContext( configuration ); doDrop( metadata, options, @@ -417,14 +417,15 @@ private static void dropSchemasAndCatalogs( Formatter formatter, SqlStringGenerationContext context, GenerationTarget[] targets) { - boolean tryToDropCatalogs = options.shouldManageNamespaces() && dialect.canCreateCatalog(); - boolean tryToDropSchemas = options.shouldManageNamespaces() && dialect.canCreateSchema(); + final boolean manageNamespaces = options.shouldManageNamespaces(); + final boolean tryToDropCatalogs = manageNamespaces && dialect.canCreateCatalog(); + final boolean tryToDropSchemas = manageNamespaces && dialect.canCreateSchema(); if ( tryToDropCatalogs || tryToDropSchemas) { final Set exportedCatalogs = new HashSet<>(); for ( var namespace : metadata.getDatabase().getNamespaces() ) { if ( schemaFilter.includeNamespace( namespace ) ) { - Namespace.Name logicalName = namespace.getName(); - Namespace.Name physicalName = namespace.getPhysicalName(); + final var logicalName = namespace.getName(); + final var physicalName = namespace.getPhysicalName(); if ( tryToDropSchemas ) { final Identifier schemaPhysicalName = context.schemaWithDefault( physicalName.schema() ); @@ -434,7 +435,7 @@ private static void dropSchemasAndCatalogs( } } - if (tryToDropCatalogs) { + if ( tryToDropCatalogs ) { final Identifier catalogLogicalName = logicalName.catalog(); final Identifier catalogPhysicalName = context.catalogWithDefault( physicalName.catalog() ); if ( catalogPhysicalName != null && !exportedCatalogs.contains( catalogLogicalName ) ) { @@ -495,8 +496,8 @@ public DelayedDropAction buildDelayedAction( ExecutionOptions options, ContributableMatcher inclusionFilter, SourceDescriptor sourceDescriptor) { - final JournalingGenerationTarget target = new JournalingGenerationTarget(); - final Dialect dialect = tool.getServiceRegistry().requireService( JdbcEnvironment.class ).getDialect(); + final var target = new JournalingGenerationTarget(); + final var dialect = tool.getServiceRegistry().requireService( JdbcEnvironment.class ).getDialect(); doDrop( metadata, options, inclusionFilter, dialect, sourceDescriptor, target ); return new DelayedDropActionImpl( target.commands, tool.getCustomDatabaseGenerationTarget() ); } @@ -520,6 +521,7 @@ public void doDrop(Metadata metadata, boolean manageNamespaces, GenerationTarget /** * For tests */ + @Internal public void doDrop( Metadata metadata, final ServiceRegistry serviceRegistry, @@ -527,11 +529,10 @@ public void doDrop( final boolean manageNamespaces, GenerationTarget... targets) { if ( targets == null || targets.length == 0 ) { - final var jdbcContext = tool.resolveJdbcContext( settings ); targets = new GenerationTarget[] { new GenerationTargetToDatabase( serviceRegistry.requireService( TransactionCoordinatorBuilder.class ) - .buildDdlTransactionIsolator( jdbcContext ), + .buildDdlTransactionIsolator( tool.resolveJdbcContext( settings ) ), true ) }; @@ -603,12 +604,10 @@ public DelayedDropActionImpl(ArrayList commands, GenerationTarget target public void perform(ServiceRegistry serviceRegistry) { CORE_LOGGER.startingDelayedSchemaDrop(); - final var jdbcContext = new JdbcContextDelayedDropImpl( serviceRegistry ); - if ( target == null ) { target = new GenerationTargetToDatabase( serviceRegistry.requireService( TransactionCoordinatorBuilder.class ) - .buildDdlTransactionIsolator( jdbcContext ), + .buildDdlTransactionIsolator( new JdbcContextDelayedDropImpl( serviceRegistry ) ), true ); } diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/spi/SchemaManagementToolCoordinator.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/spi/SchemaManagementToolCoordinator.java index 952186241169..fd77867d283b 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/spi/SchemaManagementToolCoordinator.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/spi/SchemaManagementToolCoordinator.java @@ -70,7 +70,7 @@ public static void process( final ServiceRegistry serviceRegistry, final Map configuration, DelayedDropRegistry delayedDropRegistry) { - final Set groupings = ActionGrouping.interpret( metadata, configuration ); + final var groupings = ActionGrouping.interpret( metadata, configuration ); if ( groupings.isEmpty() ) { // no actions specified LOG.debug( "No schema management actions found" );