diff --git a/entity-store/build.gradle.kts b/entity-store/build.gradle.kts index a55d90302..cc0ba9d1d 100644 --- a/entity-store/build.gradle.kts +++ b/entity-store/build.gradle.kts @@ -1,6 +1,6 @@ dependencies { api(project(":xodus-openAPI")) - api("io.youtrackdb:youtrackdb-core:1.0.0-20250116.142259-7") + api("io.youtrackdb:youtrackdb-core:1.0.0-20250120.134920-10") implementation(project(":xodus-utils")) implementation(project(":xodus-environment")) diff --git a/entity-store/src/main/kotlin/jetbrains/exodus/entitystore/orientdb/OSchemaBuddy.kt b/entity-store/src/main/kotlin/jetbrains/exodus/entitystore/orientdb/OSchemaBuddy.kt index 29fef3178..5abb2143e 100644 --- a/entity-store/src/main/kotlin/jetbrains/exodus/entitystore/orientdb/OSchemaBuddy.kt +++ b/entity-store/src/main/kotlin/jetbrains/exodus/entitystore/orientdb/OSchemaBuddy.kt @@ -85,7 +85,7 @@ class OSchemaBuddyImpl( override fun initialize(session: DatabaseSession) { session.createClassIdSequenceIfAbsent() - for (oClass in session.schema.classes) { + for (oClass in session.schema.getClasses(session)) { if (oClass.isVertexType && !INTERNAL_CLASS_NAMES.contains(oClass.name)) { classIdToOClassId[oClass.requireClassId()] = oClass.clusterIds[0] to oClass.name } @@ -199,7 +199,7 @@ class OSchemaBuddyImpl( entityTypeId: Int ): String { val (_, typeName) = classIdToOClassId.computeIfAbsent(entityTypeId) { - val oClass = session.schema.classes.find { oClass -> + val oClass = session.schema.getClasses(session).find { oClass -> oClass.getCustom(CLASS_ID_CUSTOM_PROPERTY_NAME)?.toInt() == entityTypeId } ?: throw EntityRemovedInDatabaseException("Invalid type ID $entityTypeId") oClass.requireClassId() to oClass.name diff --git a/entity-store/src/main/kotlin/jetbrains/exodus/entitystore/orientdb/OStoreTransactionImpl.kt b/entity-store/src/main/kotlin/jetbrains/exodus/entitystore/orientdb/OStoreTransactionImpl.kt index e88c8a877..d96050a27 100644 --- a/entity-store/src/main/kotlin/jetbrains/exodus/entitystore/orientdb/OStoreTransactionImpl.kt +++ b/entity-store/src/main/kotlin/jetbrains/exodus/entitystore/orientdb/OStoreTransactionImpl.kt @@ -266,7 +266,7 @@ class OStoreTransactionImpl( override fun getEntityTypes(): MutableList { requireActiveTransaction() - return session.schema.classes.map { it.name }.toMutableList() + return session.schema.getClasses(session).map { it.name }.toMutableList() } override fun getAll(entityType: String): EntityIterable { diff --git a/query/src/main/kotlin/jetbrains/exodus/query/metadata/XodusToOrientDataMigratorLauncher.kt b/query/src/main/kotlin/jetbrains/exodus/query/metadata/XodusToOrientDataMigratorLauncher.kt index e785f454f..a4c3c5372 100644 --- a/query/src/main/kotlin/jetbrains/exodus/query/metadata/XodusToOrientDataMigratorLauncher.kt +++ b/query/src/main/kotlin/jetbrains/exodus/query/metadata/XodusToOrientDataMigratorLauncher.kt @@ -87,8 +87,8 @@ class XodusToOrientDataMigratorLauncher( val dbProvider = orient.databaseProvider val dbName = orient.orientConfig.databaseName - val classesCount = dbProvider.withSession { - it.schema.classes.filter { !it.name.startsWith("O") }.size + val classesCount = dbProvider.withSession { session -> + session.schema.getClasses(session).filter { schemaClass -> !schemaClass.name.startsWith("O") }.size } if (classesCount > VERTEX_CLASSES_TO_SKIP_MIGRATION) { log.info { "There are already $classesCount classes in the database so it's considered as migrated" } diff --git a/query/src/main/kotlin/jetbrains/exodus/query/metadata/YouTrackDbSchemaInitializer.kt b/query/src/main/kotlin/jetbrains/exodus/query/metadata/YouTrackDbSchemaInitializer.kt index 410d77965..559b3f458 100644 --- a/query/src/main/kotlin/jetbrains/exodus/query/metadata/YouTrackDbSchemaInitializer.kt +++ b/query/src/main/kotlin/jetbrains/exodus/query/metadata/YouTrackDbSchemaInitializer.kt @@ -19,7 +19,7 @@ import com.jetbrains.youtrack.db.api.DatabaseSession import com.jetbrains.youtrack.db.api.record.Direction import com.jetbrains.youtrack.db.api.record.Edge import com.jetbrains.youtrack.db.api.record.Vertex -import com.jetbrains.youtrack.db.api.schema.Property +import com.jetbrains.youtrack.db.api.schema.SchemaProperty import com.jetbrains.youtrack.db.api.schema.PropertyType import com.jetbrains.youtrack.db.api.schema.SchemaClass import com.jetbrains.youtrack.db.internal.core.collate.CaseInsensitiveCollate @@ -456,7 +456,7 @@ internal class YouTrackDbSchemaInitializer( appendLine() } - private fun Property.applyCardinality(cardinality: AssociationEndCardinality) { + private fun SchemaProperty.applyCardinality(cardinality: AssociationEndCardinality) { when (cardinality) { AssociationEndCardinality._0_1 -> { setRequirement(false) @@ -484,7 +484,7 @@ internal class YouTrackDbSchemaInitializer( } } - private fun Property.setMaxIfDifferent(max: String?) { + private fun SchemaProperty.setMaxIfDifferent(max: String?) { append(", max $max") if (this.max == max) { append(" already set") @@ -494,7 +494,7 @@ internal class YouTrackDbSchemaInitializer( } } - private fun Property.setMinIfDifferent(min: String?) { + private fun SchemaProperty.setMinIfDifferent(min: String?) { append(", min $min") if (this.min == min) { append(" already set") @@ -668,7 +668,7 @@ internal class YouTrackDbSchemaInitializer( appendLine() } - private fun Property.setRequirement(required: Boolean) { + private fun SchemaProperty.setRequirement(required: Boolean) { if (required) { append(", required") if (!isMandatory) { @@ -683,7 +683,7 @@ internal class YouTrackDbSchemaInitializer( } } - private fun Property.setNotNullIfDifferent(notNull: Boolean) { + private fun SchemaProperty.setNotNullIfDifferent(notNull: Boolean) { if (notNull) { append(", not nullable") if (!isNotNull) { @@ -700,7 +700,7 @@ internal class YouTrackDbSchemaInitializer( private fun SchemaClass.createPropertyIfAbsent( propertyName: String, oType: PropertyType - ): Property { + ): SchemaProperty { append(", type is $oType") val oProperty = if (existsProperty(propertyName)) { append(", already created") @@ -734,7 +734,7 @@ internal class YouTrackDbSchemaInitializer( * * But we still can set linkedClassType for direct link out-properties. * */ - private fun SchemaClass.createLinkPropertyIfAbsent(propertyName: String): Property { + private fun SchemaClass.createLinkPropertyIfAbsent(propertyName: String): SchemaProperty { val oProperty = if (existsProperty(propertyName)) { append(", already created") getProperty(propertyName) @@ -751,7 +751,7 @@ internal class YouTrackDbSchemaInitializer( private fun SchemaClass.createEmbeddedSetPropertyIfAbsent( propertyName: String, oType: PropertyType - ): Property { + ): SchemaProperty { append(", type of the set is $oType") val oProperty = if (existsProperty(propertyName)) { append(", already created") diff --git a/query/src/test/kotlin/jetbrains/exodus/query/metadata/SchemaTestUtils.kt b/query/src/test/kotlin/jetbrains/exodus/query/metadata/SchemaTestUtils.kt index 7f059676f..225451df3 100644 --- a/query/src/test/kotlin/jetbrains/exodus/query/metadata/SchemaTestUtils.kt +++ b/query/src/test/kotlin/jetbrains/exodus/query/metadata/SchemaTestUtils.kt @@ -19,7 +19,7 @@ import com.jetbrains.youtrack.db.api.DatabaseSession import com.jetbrains.youtrack.db.api.record.Direction import com.jetbrains.youtrack.db.api.record.Edge import com.jetbrains.youtrack.db.api.record.Vertex -import com.jetbrains.youtrack.db.api.schema.Property +import com.jetbrains.youtrack.db.api.schema.SchemaProperty import com.jetbrains.youtrack.db.api.schema.SchemaClass import com.jetbrains.youtrack.db.internal.core.metadata.schema.SchemaClassInternal import jetbrains.exodus.entitystore.orientdb.* @@ -74,7 +74,7 @@ internal fun DatabaseSession.assertAssociationExists( } } -private fun Property.assertCardinality(cardinality: AssociationEndCardinality) { +private fun SchemaProperty.assertCardinality(cardinality: AssociationEndCardinality) { when (cardinality) { AssociationEndCardinality._0_1 -> { assertTrue(!this.isMandatory) diff --git a/query/src/test/kotlin/jetbrains/exodus/query/metadata/YouTrackDbSchemaInitializerTest.kt b/query/src/test/kotlin/jetbrains/exodus/query/metadata/YouTrackDbSchemaInitializerTest.kt index db0b56e23..98a52b146 100644 --- a/query/src/test/kotlin/jetbrains/exodus/query/metadata/YouTrackDbSchemaInitializerTest.kt +++ b/query/src/test/kotlin/jetbrains/exodus/query/metadata/YouTrackDbSchemaInitializerTest.kt @@ -16,7 +16,7 @@ package jetbrains.exodus.query.metadata import com.jetbrains.youtrack.db.api.exception.RecordDuplicatedException -import com.jetbrains.youtrack.db.api.schema.Property +import com.jetbrains.youtrack.db.api.schema.SchemaProperty import com.jetbrains.youtrack.db.api.schema.PropertyType import com.jetbrains.youtrack.db.internal.core.db.DatabaseSessionInternal import jetbrains.exodus.entitystore.orientdb.OVertexEntity.Companion.LOCAL_ENTITY_ID_PROPERTY_NAME @@ -576,7 +576,7 @@ class YouTrackDbSchemaInitializerTest { } } - private fun Property.check(required: Boolean, notNull: Boolean) { + private fun SchemaProperty.check(required: Boolean, notNull: Boolean) { assertEquals(required, isMandatory) assertEquals(notNull, isNotNull) }