├── .gitattributes
├── .gitignore
├── .idea
├── .name
├── bashsupport_project.xml
├── codeStyleSettings.xml
├── codeStyles
│ ├── Project.xml
│ └── codeStyleConfig.xml
├── compiler.xml
├── copyright
│ └── profiles_settings.xml
├── dataSources.xml
├── dictionaries
│ ├── Leonid_Bushuev.xml
│ └── leo.xml
├── encodings.xml
├── icon.png
├── inspectionProfiles
│ ├── Project_Default.xml
│ └── profiles_settings.xml
├── jarRepositories.xml
├── kotlinc.xml
├── libraries
│ ├── annotations.xml
│ ├── h2.xml
│ ├── junit_jupiter.xml
│ ├── junit_platform_launcher.xml
│ ├── kotlin_reflect.xml
│ ├── kotlin_stdlib_jdk8.xml
│ └── yaka.xml
├── misc.xml
├── modules.xml
├── runConfigurations
│ ├── System_Tests.xml
│ ├── Systems_Test_Launch.xml
│ ├── Unit_Tests.xml
│ └── Units_Test_Launch.xml
└── vcs.xml
├── LICENSE.txt
├── README.md
├── build.gradle
├── dekaf-inter-test
├── dekaf-inter-test.iml
└── tests
│ ├── settings
│ ├── SettingTest.kt
│ └── SettingsTest.kt
│ └── utils
│ ├── ArrayHacksTest.kt
│ └── SimpleStringConvertTest.kt
├── dekaf-inter
├── dekaf-inter.iml
└── src
│ ├── DekafInfo.java
│ ├── common
│ ├── ParamDef.java
│ ├── ParamDirection.java
│ ├── ParamType.java
│ └── StatementCategory.java
│ ├── exceptions
│ ├── DBAccessDeniedException.java
│ ├── DBColumnAccessDeniedException.java
│ ├── DBConnectionException.java
│ ├── DBDriverException.java
│ ├── DBException.java
│ ├── DBFactoryException.java
│ ├── DBFetchingException.java
│ ├── DBInitializationException.java
│ ├── DBIsNotConnected.java
│ ├── DBLoginFailedException.java
│ ├── DBParameterHandlingException.java
│ ├── DBParameterSettingException.java
│ ├── DBPerformingException.java
│ ├── DBPreparingException.java
│ ├── DBSchemaAccessDeniedException.java
│ ├── DBServiceIsNotActiveException.java
│ ├── DBSessionIsClosedException.java
│ ├── DBTransactionException.java
│ ├── DBTransactionIsAlreadyStartedException.java
│ ├── DbmsUnsupportedFeatureException.java
│ ├── DuplicateKeyException.java
│ ├── NoRowsException.java
│ ├── NoTableOrViewException.java
│ ├── StrippedSQLException.java
│ ├── StrippedUnknownException.java
│ ├── UnexpectedDBException.java
│ ├── UnexpectedReflectionException.java
│ ├── UnhandledTypeException.java
│ └── UnknownDBException.java
│ ├── intf
│ ├── InterColumnCursor.java
│ ├── InterCursor.java
│ ├── InterFacade.java
│ ├── InterIntsCursor.java
│ ├── InterLongsCursor.java
│ ├── InterMatrixCursor.java
│ ├── InterSeance.java
│ ├── InterServiceFactory.java
│ └── InterSession.java
│ ├── package-info.java
│ ├── settings
│ ├── Setting.java
│ └── Settings.java
│ └── utils
│ ├── ArrayHacks.java
│ ├── EmptyIterator.java
│ ├── SimpleStringConvert.java
│ └── Version.java
├── dekaf-jdbc-test
├── dekaf-jdbc-test.iml
└── tests
│ ├── Aliases.kt
│ └── impl
│ ├── H2ConnectedTest.kt
│ ├── JdbcColumnCursorTest.kt
│ ├── JdbcFacadeTest.kt
│ ├── JdbcIntsCursorTest.kt
│ ├── JdbcLongsCursorTest.kt
│ ├── JdbcMatrixCursorTest.kt
│ ├── JdbcSeanceTest.kt
│ ├── JdbcServiceFactoryTest.kt
│ └── JdbcSessionTest.kt
├── dekaf-jdbc
├── dekaf-jdbc.iml
├── manifest
│ └── META-INF
│ │ └── services
│ │ └── org.jetbrains.dekaf.inter.intf.InterServiceFactory
└── src
│ ├── impl
│ ├── JdbcBaseCursor.java
│ ├── JdbcColumnCursor.java
│ ├── JdbcFacade.java
│ ├── JdbcIntsCursor.java
│ ├── JdbcLongsCursor.java
│ ├── JdbcMatrixCursor.java
│ ├── JdbcParametersHandler.java
│ ├── JdbcRowFetcher.java
│ ├── JdbcRowFetchers.java
│ ├── JdbcRowsCollector.java
│ ├── JdbcRowsCollectors.java
│ ├── JdbcSeance.java
│ ├── JdbcServiceFactory.java
│ ├── JdbcSession.java
│ ├── JdbcStuff.java
│ ├── JdbcUtil.java
│ ├── JdbcValueGetter.java
│ └── JdbcValueGetters.java
│ ├── package-info.java
│ └── utils
│ ├── NameAndClass.java
│ ├── Numbers.java
│ └── Objects.java
├── dekaf-main-test
├── dekaf-main-test.iml
└── src
│ ├── DbMasterTest.kt
│ ├── base
│ ├── BaseFacadeTest.kt
│ ├── BaseSessionTest.kt
│ ├── BaseTransactionTest.kt
│ ├── FactoryLoaderTest.kt
│ └── UnitTestWithH2.kt
│ ├── pool
│ └── ServicePoolTest.kt
│ ├── queries
│ └── QueryLayoutTest.kt
│ ├── settings
│ ├── SettingsBuilderTest.kt
│ └── SettingsLoaderTest.kt
│ └── util
│ ├── H2Util.kt
│ └── Numbers.kt
├── dekaf-main
├── dekaf-main.iml
└── src
│ ├── DbMaster.kt
│ ├── Readme.txt
│ ├── base
│ ├── BaseFacade.kt
│ ├── BasePerformer.kt
│ ├── BaseQueryRunner.kt
│ ├── BaseSession.kt
│ └── FactoryLoader.kt
│ ├── db
│ ├── DbFacade.kt
│ ├── DbInsideTransaction.kt
│ ├── DbQueryRunner.kt
│ ├── DbSession.kt
│ └── DbTransaction.kt
│ ├── pool
│ └── ServicePool.kt
│ ├── queries
│ ├── Layouts.kt
│ ├── Query.kt
│ ├── QueryLayout.kt
│ └── impl
│ │ ├── ResultCollector.kt
│ │ ├── RowArrayMHandler.kt
│ │ ├── RowArrayNHandler.kt
│ │ ├── RowFunHandler.kt
│ │ ├── RowHandler.kt
│ │ ├── TableArrayResultCollector.kt
│ │ ├── TableIteratorResultCollector.kt
│ │ ├── TableListResultCollector.kt
│ │ ├── TableResultCollector.kt
│ │ └── TableStreamResultCollector.kt
│ ├── settings
│ ├── SettingsBuilder.kt
│ ├── SettingsFun.kt
│ └── SettingsLoader.kt
│ ├── simplext
│ ├── SimplextFileReader.kt
│ ├── SimplextLine.kt
│ ├── SimplextReader.kt
│ └── SimplextTextReader.kt
│ └── util
│ ├── BooleanFun.kt
│ ├── ClassFun.kt
│ └── TextFun.kt
├── deploy.sh
├── doc
├── implementation-specific-services.md
└── settings.md
├── old
├── dekaf-cassandra-test-db
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ └── core
│ │ │ ├── CassandraTestHelper.java
│ │ │ └── CassandraTestHelperFactory.java
│ │ └── resources
│ │ ├── META-INF
│ │ └── services
│ │ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ └── CassandraTestHelper.sql
├── dekaf-cassandra
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── Cassandra.java
│ │ │ │ ├── jdbc
│ │ │ │ ├── CassandraExceptionRecognizer.java
│ │ │ │ ├── CassandraIntermediateFacade.java
│ │ │ │ ├── CassandraIntermediateProvider.java
│ │ │ │ └── CassandraIntermediateSession.java
│ │ │ │ └── sql
│ │ │ │ └── CassandraSQL.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── jdbc
│ │ └── CassandraInterServiceProviderUnitTest.java
├── dekaf-clickhouse-test-db
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ └── core
│ │ │ ├── CHouseTestHelper.java
│ │ │ └── CHouseTestHelperFactory.java
│ │ └── resources
│ │ ├── META-INF
│ │ └── services
│ │ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ └── CHouseTestHelper.sql
├── dekaf-clickhouse-tests
│ └── src
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ ├── CHouseIntegrationTests.java
│ │ ├── core
│ │ ├── CHouseCommandRunnerTest.java
│ │ ├── CHousePrimaryTest.java
│ │ ├── CHouseQueryRunnerTest.java
│ │ └── CHouseSessionTest.java
│ │ └── jdbc
│ │ └── CHouseExceptionRecognizingTest.java
├── dekaf-clickhouse
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── ClickHouse.java
│ │ │ │ ├── jdbc
│ │ │ │ ├── CHouseExceptionRecognizer.java
│ │ │ │ ├── CHouseIntermediateFacade.java
│ │ │ │ └── CHouseIntermediateProvider.java
│ │ │ │ └── sql
│ │ │ │ └── ClickHouseSQL.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── jdbc
│ │ ├── CHouseInterServiceProviderTest.java
│ │ ├── CHouseInterServiceProviderUnitTest.java
│ │ ├── CHouseJdbcIntegrationTests.java
│ │ └── CHouseJdbcUnitTests.java
├── dekaf-core-test-db
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── TestDB.java
│ │ │ │ ├── TestEnvironment.java
│ │ │ │ ├── core
│ │ │ │ ├── BaseTestHelper.java
│ │ │ │ ├── DBTestHelper.java
│ │ │ │ ├── DBTestHelperFactory.java
│ │ │ │ ├── UnknownDBTestHelper.java
│ │ │ │ └── UnknownDBTestHelperFactory.java
│ │ │ │ └── exceptions
│ │ │ │ └── DBProtectionException.java
│ │ └── resources
│ │ │ ├── META-INF
│ │ │ └── services
│ │ │ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
│ │ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ └── core
│ │ │ └── UnknownDBTestHelper.sql
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ ├── CommonIntegrationCase.java
│ │ └── core
│ │ ├── CommonCommandRunnerTest.java
│ │ ├── CommonExceptionRecognizingTest.java
│ │ ├── CommonPrimaryTest.java
│ │ ├── CommonQueryRunnerTest.java
│ │ └── CommonSessionTest.java
├── dekaf-core
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── Dekaf.java
│ │ │ │ ├── Rdbms.java
│ │ │ │ ├── core
│ │ │ │ ├── BaseCommandRunner.java
│ │ │ │ ├── BaseFacade.java
│ │ │ │ ├── BaseFederatedProvider.java
│ │ │ │ ├── BaseQueryRunner.java
│ │ │ │ ├── BaseRdbmsProvider.java
│ │ │ │ ├── BaseScriptRunner.java
│ │ │ │ ├── BaseSeanceRunner.java
│ │ │ │ ├── BaseSession.java
│ │ │ │ ├── ConnectionInfo.java
│ │ │ │ ├── DBCommandRunner.java
│ │ │ │ ├── DBFacade.java
│ │ │ │ ├── DBFederatedProvider.java
│ │ │ │ ├── DBLeasedSession.java
│ │ │ │ ├── DBLeasedSessionWrapper.java
│ │ │ │ ├── DBQueryRunner.java
│ │ │ │ ├── DBRdbmsProvider.java
│ │ │ │ ├── DBScriptRunner.java
│ │ │ │ ├── DBSession.java
│ │ │ │ ├── DBSessions.java
│ │ │ │ ├── DBTransaction.java
│ │ │ │ ├── DBTransactionControl.java
│ │ │ │ ├── ImplementationAccessibleService.java
│ │ │ │ ├── InSession.java
│ │ │ │ ├── InSessionNoResult.java
│ │ │ │ ├── InTransaction.java
│ │ │ │ ├── InTransactionNoResult.java
│ │ │ │ ├── Layouts.java
│ │ │ │ ├── ParameterDef.java
│ │ │ │ ├── QueryKind.java
│ │ │ │ ├── ResultLayout.java
│ │ │ │ ├── RowLayout.java
│ │ │ │ └── ValueType.java
│ │ │ │ ├── intermediate
│ │ │ │ ├── AdaptIntermediateCursor.java
│ │ │ │ ├── AdaptIntermediateFacade.java
│ │ │ │ ├── AdaptIntermediateFederatedProvider.java
│ │ │ │ ├── AdaptIntermediatePortableCursor.java
│ │ │ │ ├── AdaptIntermediateRdbmsProvider.java
│ │ │ │ ├── AdaptIntermediateSeance.java
│ │ │ │ ├── AdaptIntermediateSession.java
│ │ │ │ ├── AdaptIntermediateStructCollectingCursor.java
│ │ │ │ ├── DBExceptionRecognizer.java
│ │ │ │ ├── IntegralIntermediateCursor.java
│ │ │ │ ├── IntegralIntermediateFacade.java
│ │ │ │ ├── IntegralIntermediateFederatedProvider.java
│ │ │ │ ├── IntegralIntermediateRdbmsProvider.java
│ │ │ │ ├── IntegralIntermediateSeance.java
│ │ │ │ ├── IntegralIntermediateSession.java
│ │ │ │ ├── PrimeIntermediateCursor.java
│ │ │ │ ├── PrimeIntermediateFacade.java
│ │ │ │ ├── PrimeIntermediateFederatedProvider.java
│ │ │ │ ├── PrimeIntermediateRdbmsProvider.java
│ │ │ │ ├── PrimeIntermediateSeance.java
│ │ │ │ ├── PrimeIntermediateSession.java
│ │ │ │ └── package-info.java
│ │ │ │ ├── jdbc
│ │ │ │ ├── BaseExceptionRecognizer.java
│ │ │ │ ├── JdbcDrivers.java
│ │ │ │ ├── JdbcIntermediateCallableSeance.java
│ │ │ │ ├── JdbcIntermediateCursor.java
│ │ │ │ ├── JdbcIntermediateFacade.java
│ │ │ │ ├── JdbcIntermediateFederatedProvider.java
│ │ │ │ ├── JdbcIntermediateRdbmsProvider.java
│ │ │ │ ├── JdbcIntermediateSeance.java
│ │ │ │ ├── JdbcIntermediateSession.java
│ │ │ │ ├── JdbcIntermediateSimpleSeance.java
│ │ │ │ ├── JdbcSessions.java
│ │ │ │ ├── UnknownDatabase.java
│ │ │ │ ├── UnknownDatabaseExceptionRecognizer.java
│ │ │ │ ├── UnknownDatabaseInfo.java
│ │ │ │ ├── UnknownDatabaseInfoHelper.java
│ │ │ │ ├── UnknownDatabaseIntermediateFacade.java
│ │ │ │ ├── UnknownDatabaseIntermediateSession.java
│ │ │ │ ├── UnknownDatabaseProvider.java
│ │ │ │ └── pooling
│ │ │ │ │ ├── ConnectionPool.java
│ │ │ │ │ ├── ConnectionPoolException.java
│ │ │ │ │ ├── ConnectionPoolExhaustedException.java
│ │ │ │ │ ├── ConnectionPoolIsNotReadyException.java
│ │ │ │ │ ├── ConnectionPoolOperationInterruptedException.java
│ │ │ │ │ ├── SimpleDataSource.java
│ │ │ │ │ └── UnexpectedDataSourceException.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── sql
│ │ │ │ ├── Rewriters.java
│ │ │ │ ├── Scriptum.java
│ │ │ │ ├── ScriptumResource.java
│ │ │ │ ├── ScriptumResourceFromJava.java
│ │ │ │ ├── SqlCommand.java
│ │ │ │ ├── SqlQuery.java
│ │ │ │ ├── SqlScript.java
│ │ │ │ ├── SqlScriptBuilder.java
│ │ │ │ ├── SqlStatement.java
│ │ │ │ ├── TextFileFragment.java
│ │ │ │ ├── TextFragment.java
│ │ │ │ ├── TextPointer.java
│ │ │ │ └── TextWalker.java
│ │ │ │ └── util
│ │ │ │ ├── Classes.java
│ │ │ │ ├── Collects.java
│ │ │ │ ├── Directories.java
│ │ │ │ ├── Function.java
│ │ │ │ ├── Providers.java
│ │ │ │ ├── StringOperator.java
│ │ │ │ ├── Strings.java
│ │ │ │ └── UnaryOperator.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ ├── MANIFEST.MF
│ │ │ └── services
│ │ │ ├── org.jetbrains.dekaf.core.DBFederatedProvider
│ │ │ ├── org.jetbrains.dekaf.intermediate.IntegralIntermediateFederatedProvider
│ │ │ ├── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ │ └── org.jetbrains.dekaf.intermediate.PrimeIntermediateFederatedProvider
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ ├── CoreUnitTests.java
│ │ │ ├── RdbmsTest.java
│ │ │ ├── core
│ │ │ ├── BaseFacadeTest.java
│ │ │ ├── BaseFederatedProviderTest.java
│ │ │ ├── BaseInMemoryDBFacadeCase.java
│ │ │ ├── BaseQueryRunnerDirectTest.java
│ │ │ ├── BaseQueryRunnerPseudoRemoteTest.java
│ │ │ ├── BaseQueryRunnerTest.java
│ │ │ ├── BaseRdbmsProviderTest.java
│ │ │ ├── BaseScriptRunnerTest.java
│ │ │ ├── BaseSessionTest.java
│ │ │ └── Tetra.java
│ │ │ ├── exceptions
│ │ │ └── DBExceptionTest.java
│ │ │ ├── intermediate
│ │ │ └── AdaptIntermediateRdbmsProviderTest.java
│ │ │ ├── jdbc
│ │ │ ├── BaseInMemoryDBCase.java
│ │ │ ├── BaseIntermediateInMemoryDBCase.java
│ │ │ ├── JdbcIntermediateCursorTest.java
│ │ │ ├── JdbcIntermediateFacadeTest.java
│ │ │ ├── JdbcIntermediateFederatedProviderTest.java
│ │ │ ├── JdbcIntermediateSeanceSimpleTest.java
│ │ │ ├── JdbcIntermediateSessionTest.java
│ │ │ ├── JdbcJarProvidersTest.java
│ │ │ ├── JdbcSessionsTest.java
│ │ │ ├── JdbcUnitTests.java
│ │ │ ├── UnknownDatabaseProviderTest.java
│ │ │ └── pooling
│ │ │ │ ├── ConnectionPoolTest.java
│ │ │ │ ├── FakeConnection.java
│ │ │ │ └── FakeDataSource.java
│ │ │ ├── sql
│ │ │ ├── RewritersTest.java
│ │ │ ├── ScriptumBasicTest.java
│ │ │ ├── ScriptumResourceFromJavaTest.java
│ │ │ ├── SqlCommandTest.java
│ │ │ ├── SqlScriptBuilderTest.java
│ │ │ └── SqlScriptTest.java
│ │ │ └── util
│ │ │ ├── ArrayFunctionsTest.java
│ │ │ ├── NumbersTest.java
│ │ │ ├── StringsTest.java
│ │ │ └── VersionTest.java
│ │ └── resources
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── sql
│ │ ├── FileWithFragments.sql
│ │ ├── FileWithOneCommand.sql
│ │ ├── ScriptumBasicTest.sql
│ │ └── ScriptumResourceFromJavaTest.sql
├── dekaf-exasol-test-db
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ └── core
│ │ │ ├── ExasolTestHelper.java
│ │ │ └── ExasolTestHelperFactory.java
│ │ └── resources
│ │ ├── META-INF
│ │ └── services
│ │ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ └── ExasolTestHelper.sql
├── dekaf-exasol-tests
│ └── src
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ ├── ExasolIntegrationTests.java
│ │ ├── core
│ │ ├── ExasolCommandRunnerTest.java
│ │ ├── ExasolPrimaryTest.java
│ │ ├── ExasolQueryRunnerTest.java
│ │ └── ExasolSessionTest.java
│ │ └── jdbc
│ │ └── ExasolExceptionRecognizingTest.java
├── dekaf-exasol
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── Exasol.java
│ │ │ │ ├── jdbc
│ │ │ │ ├── ExasolExceptionRecognizer.java
│ │ │ │ ├── ExasolIntermediateFacade.java
│ │ │ │ └── ExasolIntermediateProvider.java
│ │ │ │ └── sql
│ │ │ │ └── ExasolSQL.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── jdbc
│ │ ├── ExasolInterServiceProviderTest.java
│ │ ├── ExasolInterServiceProviderUnitTest.java
│ │ ├── ExasolJdbcIntegrationTests.java
│ │ └── ExasolJdbcUnitTests.java
├── dekaf-h2db-test-db
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ └── core
│ │ │ ├── H2dbTestHelper.java
│ │ │ └── H2dbTestHelperFactory.java
│ │ └── resources
│ │ ├── META-INF
│ │ └── services
│ │ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ └── H2dbTestHelper.sql
├── dekaf-h2db-tests
│ └── src
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ ├── H2dbIntegrationTests.java
│ │ │ ├── core
│ │ │ ├── H2dbCommandRunnerTest.java
│ │ │ ├── H2dbPrimaryTest.java
│ │ │ ├── H2dbQueryRunnerTest.java
│ │ │ └── H2dbSessionTest.java
│ │ │ └── jdbc
│ │ │ └── H2dbExceptionRecognizingTest.java
│ │ └── resources
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── jdbc
│ │ └── H2dbExceptionRecognizingTest.sql
├── dekaf-h2db
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── H2db.java
│ │ │ │ ├── jdbc
│ │ │ │ ├── H2dbExceptionRecognizer.java
│ │ │ │ ├── H2dbIntermediateFacade.java
│ │ │ │ └── H2dbIntermediateProvider.java
│ │ │ │ └── sql
│ │ │ │ └── H2dbSQL.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── jdbc
│ │ ├── H2dbInterServiceProviderTest.java
│ │ ├── H2dbInterServiceProviderUnitTest.java
│ │ ├── H2dbJdbcIntegrationTests.java
│ │ └── H2dbJdbcUnitTests.java
├── dekaf-mssql-test-db
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ └── core
│ │ │ ├── MssqlTestHelper.java
│ │ │ └── MssqlTestHelperFactory.java
│ │ └── resources
│ │ ├── META-INF
│ │ └── services
│ │ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ └── MssqlTestHelper.sql
├── dekaf-mssql-tests
│ └── src
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ ├── MssqlIntegrationTests.java
│ │ ├── core
│ │ ├── MssqlCommandRunnerTest.java
│ │ ├── MssqlPrimaryTest.java
│ │ ├── MssqlQueryRunnerTest.java
│ │ ├── MssqlSessionTest.java
│ │ └── MssqlTestHelperTest.java
│ │ └── jdbc
│ │ └── MssqlExceptionRecognizerTest.java
├── dekaf-mssql
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── Mssql.java
│ │ │ │ ├── jdbc
│ │ │ │ ├── MssqlExceptionRecognizer.java
│ │ │ │ ├── MssqlIntermediateFacade.java
│ │ │ │ ├── MssqlIntermediateProvider.java
│ │ │ │ └── MssqlIntermediateSession.java
│ │ │ │ └── sql
│ │ │ │ └── MicrosoftSQL.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── jdbc
│ │ ├── MssqlInterServiceProviderTest.java
│ │ ├── MssqlInterServiceProviderUnitTest.java
│ │ ├── MssqlJdbcIntegrationTests.java
│ │ └── MssqlJdbcUnitTests.java
├── dekaf-mysql-test-db
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ └── core
│ │ │ ├── MemsqlTestHelper.java
│ │ │ ├── MysqlTestHelper.java
│ │ │ └── MysqlTestHelperFactory.java
│ │ └── resources
│ │ ├── META-INF
│ │ └── services
│ │ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ ├── MemsqlTestHelper.sql
│ │ └── MysqlTestHelper.sql
├── dekaf-mysql-tests
│ └── src
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ ├── MysqlIntegrationTests.java
│ │ │ ├── core
│ │ │ ├── MysqlCommandRunnerTest.java
│ │ │ ├── MysqlPrimaryTest.java
│ │ │ ├── MysqlQueryRunnerTest.java
│ │ │ ├── MysqlSessionTest.java
│ │ │ ├── MysqlTestHelperTest.java
│ │ │ └── MysqlVersionTest.java
│ │ │ └── jdbc
│ │ │ └── MysqlExceptionRecognizerTest.java
│ │ └── resources
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ └── MysqlTestHelperTest.sql
├── dekaf-mysql
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── Mysql.java
│ │ │ │ ├── jdbc
│ │ │ │ ├── MysqlConsts.java
│ │ │ │ ├── MysqlExceptionRecognizer.java
│ │ │ │ ├── MysqlIntermediateFacade.java
│ │ │ │ ├── MysqlIntermediateProvider.java
│ │ │ │ └── MysqlIntermediateSession.java
│ │ │ │ └── sql
│ │ │ │ └── MySQL.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── jdbc
│ │ ├── MysqlInterServiceProviderTest.java
│ │ ├── MysqlInterServiceProviderUnitTest.java
│ │ ├── MysqlIntermediateSessionUnitTest.java
│ │ ├── MysqlJdbcIntegrationTests.java
│ │ └── MysqlJdbcUnitTests.java
├── dekaf-oracle-test-db
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ └── core
│ │ │ ├── OracleTestHelper.java
│ │ │ └── OracleTestHelperFactory.java
│ │ └── resources
│ │ ├── META-INF
│ │ └── services
│ │ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ └── OracleTestHelper.sql
├── dekaf-oracle-tests
│ └── src
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ ├── OracleIntegrationTests.java
│ │ │ ├── core
│ │ │ ├── OracleCommandRunnerTest.java
│ │ │ ├── OraclePrimaryTest.java
│ │ │ ├── OracleQueryRunnerTest.java
│ │ │ ├── OracleSessionTest.java
│ │ │ └── OracleTestHelperTest.java
│ │ │ └── jdbc
│ │ │ └── OracleExceptionRecognizingTest.java
│ │ └── resources
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ ├── core
│ │ ├── OracleTestHelperTest.sql
│ │ └── OracleTestHelperTest_CreateIndexType.sql
│ │ └── jdbc
│ │ └── OracleExceptionRecognizingTest.sql
├── dekaf-oracle
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── Oracle.java
│ │ │ │ ├── exceptions
│ │ │ │ └── OracleTimezoneRegionNotFoundException.java
│ │ │ │ ├── jdbc
│ │ │ │ ├── OracleExceptionRecognizer.java
│ │ │ │ ├── OracleIntermediateFacade.java
│ │ │ │ ├── OracleIntermediateProvider.java
│ │ │ │ └── OracleIntermediateSession.java
│ │ │ │ └── sql
│ │ │ │ └── OracleSQL.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── jdbc
│ │ ├── OracleIntermediateProviderUnitTest.java
│ │ ├── OracleJdbcIntegrationTests.java
│ │ └── OracleJdbcUnitTests.java
├── dekaf-postgres-test-db
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ └── core
│ │ │ ├── PostgresTestHelper.java
│ │ │ └── PostgresTestHelperFactory.java
│ │ └── resources
│ │ ├── META-INF
│ │ └── services
│ │ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ └── PostgresTestHelper.sql
├── dekaf-postgres-tests
│ └── src
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ ├── PostgresIntegrationTests.java
│ │ │ ├── core
│ │ │ ├── PostgresCommandRunnerTest.java
│ │ │ ├── PostgresPrimaryTest.java
│ │ │ ├── PostgresQueryRunnerTest.java
│ │ │ ├── PostgresSessionTest.java
│ │ │ ├── PostgresTestHelperTest.java
│ │ │ └── SudokuTest.java
│ │ │ └── jdbc
│ │ │ └── PostgresExceptionRecognizerTest.java
│ │ └── resources
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ ├── PostgresTestHelperTest.sql
│ │ └── SudokuTest.sql
├── dekaf-postgres
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── Postgres.java
│ │ │ │ ├── jdbc
│ │ │ │ ├── PostgresExceptionRecognizer.java
│ │ │ │ ├── PostgresIntermediateFacade.java
│ │ │ │ └── PostgresIntermediateProvider.java
│ │ │ │ └── sql
│ │ │ │ └── PostgreSQL.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── jdbc
│ │ ├── PostgresInterServiceProviderTest.java
│ │ ├── PostgresInterServiceProviderUnitTest.java
│ │ ├── PostgresJdbcIntegrationTests.java
│ │ └── PostgresJdbcUnitTests.java
├── dekaf-redshift-test-db
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ └── core
│ │ │ ├── RedshiftTestHelper.java
│ │ │ └── RedshiftTestHelperFactory.java
│ │ └── resources
│ │ ├── META-INF
│ │ └── services
│ │ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ └── RedshiftTestHelper.sql
├── dekaf-redshift-tests
│ └── src
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ ├── RedshiftIntegrationTests.java
│ │ ├── core
│ │ ├── RedshiftCommandRunnerTest.java
│ │ ├── RedshiftPrimaryTest.java
│ │ ├── RedshiftQueryRunnerTest.java
│ │ └── RedshiftSessionTest.java
│ │ └── jdbc
│ │ └── RedshiftExceptionRecognizingTest.java
├── dekaf-redshift
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── Redshift.java
│ │ │ │ ├── jdbc
│ │ │ │ ├── RedshiftExceptionRecognizer.java
│ │ │ │ ├── RedshiftIntermediateFacade.java
│ │ │ │ └── RedshiftIntermediateProvider.java
│ │ │ │ └── sql
│ │ │ │ └── RedshiftSQL.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── jdbc
│ │ ├── RedshiftInterServiceProviderTest.java
│ │ ├── RedshiftInterServiceProviderUnitTest.java
│ │ ├── RedshiftJdbcIntegrationTests.java
│ │ └── RedshiftJdbcUnitTests.java
├── dekaf-single-test-db
│ └── src
│ │ └── main
│ │ └── resources
│ │ └── META-INF
│ │ └── services
│ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
├── dekaf-single
│ └── src
│ │ └── main
│ │ └── resources
│ │ └── META-INF
│ │ └── services
│ │ ├── org.jetbrains.dekaf.core.DBFederatedProvider
│ │ ├── org.jetbrains.dekaf.intermediate.IntegralIntermediateFederatedProvider
│ │ ├── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ └── org.jetbrains.dekaf.intermediate.PrimeIntermediateFederatedProvider
├── dekaf-sqlite-test-db
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ └── core
│ │ │ ├── SqliteTestHelper.java
│ │ │ └── SqliteTestHelperFactory.java
│ │ └── resources
│ │ ├── META-INF
│ │ └── services
│ │ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ └── SqliteTestHelper.sql
├── dekaf-sqlite-tests
│ └── src
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ ├── SqliteIntegrationTests.java
│ │ ├── core
│ │ ├── SqliteCommandRunnerTest.java
│ │ ├── SqlitePrimaryTest.java
│ │ ├── SqliteQueryRunnerTest.java
│ │ └── SqliteSessionTest.java
│ │ └── jdbc
│ │ └── SqliteExceptionRecognizingTest.java
├── dekaf-sqlite
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── Sqlite.java
│ │ │ │ ├── jdbc
│ │ │ │ ├── SqliteExceptionRecognizer.java
│ │ │ │ ├── SqliteIntermediateFacade.java
│ │ │ │ ├── SqliteIntermediateProvider.java
│ │ │ │ ├── SqliteIntermediateSession.java
│ │ │ │ └── SqliteIntermediateSimpleSeance.java
│ │ │ │ └── sql
│ │ │ │ └── SqliteSQL.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── jdbc
│ │ ├── SqliteInterServiceProviderTest.java
│ │ ├── SqliteInterServiceProviderUnitTest.java
│ │ ├── SqliteJdbcIntegrationTests.java
│ │ └── SqliteJdbcUnitTests.java
├── dekaf-sybase-test-db
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ └── core
│ │ │ ├── SybaseTestHelper.java
│ │ │ └── SybaseTestHelperFactory.java
│ │ └── resources
│ │ ├── META-INF
│ │ └── services
│ │ │ └── org.jetbrains.dekaf.core.DBTestHelperFactory
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── core
│ │ └── SybaseTestHelper.sql
├── dekaf-sybase-tests
│ └── src
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ ├── SybaseIntegrationTests.java
│ │ ├── core
│ │ ├── SybaseCommandRunnerTest.java
│ │ ├── SybasePrimaryTest.java
│ │ ├── SybaseQueryRunnerTest.java
│ │ ├── SybaseSessionTest.java
│ │ ├── SybaseTestHelperTest.java
│ │ └── SybaseVersionTest.java
│ │ └── jdbc
│ │ └── SybaseExceptionRecognizerTest.java
├── dekaf-sybase
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── jetbrains
│ │ │ │ └── dekaf
│ │ │ │ ├── Sybase.java
│ │ │ │ ├── jdbc
│ │ │ │ ├── SybaseExceptionRecognizer.java
│ │ │ │ ├── SybaseIntermediateFacade.java
│ │ │ │ ├── SybaseIntermediateProvider.java
│ │ │ │ └── SybaseIntermediateSession.java
│ │ │ │ └── sql
│ │ │ │ └── SybaseSQL.java
│ │ └── resources
│ │ │ └── META-INF
│ │ │ └── services
│ │ │ └── org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── jetbrains
│ │ └── dekaf
│ │ └── jdbc
│ │ ├── SybaseInterServiceProviderTest.java
│ │ ├── SybaseInterServiceProviderUnitTest.java
│ │ ├── SybaseJdbcIntegrationTests.java
│ │ └── SybaseJdbcUnitTests.java
├── fine-junit
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── org
│ │ └── jetbrains
│ │ │ └── dekaf
│ │ │ ├── assertions
│ │ │ └── PatternAssert.java
│ │ │ └── junitft
│ │ │ ├── FineRunner.java
│ │ │ ├── ParallelExecutor.java
│ │ │ ├── ParamTestMethod.java
│ │ │ ├── SimpleTestMethod.java
│ │ │ ├── TeamCityListener.java
│ │ │ ├── TestMethod.java
│ │ │ ├── TestSuiteExecutor.java
│ │ │ ├── TestWithParams.java
│ │ │ └── ThreadTestUtils.java
│ │ └── testing
│ │ └── categories
│ │ ├── ForEveryRdbms.java
│ │ ├── ForMSSQL.java
│ │ ├── ForMySQL.java
│ │ ├── ForOracle.java
│ │ ├── ForPostgres.java
│ │ ├── NotForMSSQL.java
│ │ ├── NotForMySQL.java
│ │ ├── NotForOracle.java
│ │ ├── NotForPostgres.java
│ │ └── UnitTest.java
├── post-build.xml
├── post-coverage.xml
├── public-pack
│ ├── assembly-fw.xml
│ ├── assembly-single-templates.xml
│ ├── assembly-tests.xml
│ └── assembly-tools.xml
└── test-pack
│ └── src
│ └── test
│ └── java
│ ├── RunIntegrationTests.java
│ └── UnitTests.java
├── settings.gradle
├── test-utils
├── src
│ ├── FileFun.kt
│ ├── NumberConsts.kt
│ ├── SystemTest.kt
│ ├── TestConsoleFun.kt
│ ├── TestThreadFun.kt
│ ├── UnitTest.kt
│ └── teamcity
│ │ ├── TeamCityListener.kt
│ │ └── TeamCityMessages.kt
└── test-utils.iml
└── tests-basic
├── src
└── TestLaunch.kt
└── tests-basic.iml
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto eol=lf
2 | *.sql text eol=lf
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 | *.jar
3 | *.war
4 | *.ear
5 | *.zip
6 |
7 | lib
8 | out
9 | classes
10 | dist
11 | coverage
12 | */target
13 | .gradle
14 | .gradleTemp
15 |
16 | .idea/workspace.xml
17 | .idea/uiDesigner.xml
18 | .idea/deployment.xml
19 | .idea/shelf
20 | .idea/ant.xml
21 | .idea/dataSources.local.xml
22 |
23 | test-db.config
24 | test-db.properties
25 | pom.xml.versionsBackup
26 |
27 |
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | Dekaf
--------------------------------------------------------------------------------
/.idea/bashsupport_project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/dataSources.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.idea/dictionaries/Leonid_Bushuev.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | assertj
5 | büro
6 | cmds
7 | deregister
8 | deregistering
9 | jtds
10 | odbc
11 | rdbms
12 | rset
13 | scriptum
14 | sqlserver
15 | structs
16 |
17 |
18 |
--------------------------------------------------------------------------------
/.idea/dictionaries/leo.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | callables
5 | claß
6 | consts
7 | dedulplicate
8 | dekaf
9 | drei
10 | einz
11 | fünf
12 | inno
13 | isam
14 | iseq
15 | jacoco
16 | jacocoagent
17 | javaagent
18 | jdba
19 | klass
20 | klazz
21 | labuda
22 | lada
23 | mssql
24 | passivate
25 | plpgsql
26 | postgre
27 | postgresql
28 | recyclebin
29 | reinit
30 | rewriters
31 | simplext
32 | sqle
33 | struct
34 | sudoku
35 | unexistent
36 | vier
37 | yaka
38 | zwei
39 |
40 |
41 |
--------------------------------------------------------------------------------
/.idea/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JetBrains/dekaf/ceb7e2b58c2426e3ed61816ca3556ecc6dceab39/.idea/icon.png
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/jarRepositories.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.idea/kotlinc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/libraries/annotations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/libraries/h2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/libraries/yaka.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/runConfigurations/System_Tests.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/runConfigurations/Systems_Test_Launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/runConfigurations/Unit_Tests.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/runConfigurations/Units_Test_Launch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/dekaf-inter-test/dekaf-inter-test.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/dekaf-inter-test/tests/settings/SettingTest.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.interTest.settings
2 |
3 | import lb.yaka.expectations.*
4 | import lb.yaka.gears.*
5 | import org.jetbrains.dekaf.inter.settings.Setting
6 | import org.jetbrains.dekaf.test.utils.UnitTest
7 | import org.junit.jupiter.api.Test
8 | import java.util.*
9 |
10 |
11 | class SettingTest : UnitTest {
12 |
13 | @Test
14 | fun equals_basic() {
15 | val setting1 = Setting("theName", "theValue")
16 | val setting2 = Setting("the" + "Name", "the" + "Value")
17 |
18 | expect that (setting1.equals(setting2)) iz true
19 | expect that (setting1 == setting2) iz true
20 | expect that setting1 equalsTo setting2
21 | }
22 |
23 | @Test
24 | fun equals_viaObject() {
25 | val setting1 = Setting("theName", "theValue")
26 | val setting2 = Setting("the" + "Name", "the" + "Value")
27 |
28 | expect that Objects.equals(setting1, setting2) iz true
29 | }
30 |
31 | }
--------------------------------------------------------------------------------
/dekaf-inter-test/tests/utils/ArrayHacksTest.kt:
--------------------------------------------------------------------------------
1 | package com.jetbrains.dekaf.interTest.utils
2 |
3 | import lb.yaka.expectations.equalsTo
4 | import lb.yaka.gears.expect
5 | import org.jetbrains.dekaf.inter.utils.ArrayHacks
6 | import org.jetbrains.dekaf.inter.utils.ArrayHacks.arrayClass
7 | import org.jetbrains.dekaf.test.utils.UnitTest
8 | import org.junit.jupiter.api.Test
9 |
10 |
11 | class ArrayHacksTest : UnitTest {
12 |
13 | @Test
14 | fun createMatrix() {
15 | val m: Array> = ArrayHacks.createArray(String::class.java, 5, 3)
16 | m[0][0] = "0:0"
17 | m[0][2] = "0:2"
18 | m[4][0] = "4:0"
19 | m[4][2] = "4:2"
20 | }
21 |
22 |
23 | @Test
24 | fun arrayClass_basic() {
25 | val a: Array = arrayOf("S")
26 | val c = arrayClass(a)
27 | expect that c.isArray equalsTo true
28 | expect that c.componentType equalsTo java.lang.String::class.java
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/dekaf-inter/dekaf-inter.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/dekaf-inter/src/DekafInfo.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter;
2 |
3 | import org.jetbrains.dekaf.inter.utils.Version;
4 |
5 |
6 |
7 | /**
8 | * Brief information.
9 | */
10 | public class DekafInfo {
11 |
12 | public static final Version VERSION = Version.of(3, 0, 0, -30);
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/dekaf-inter/src/common/ParamDirection.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.common;
2 |
3 | public enum ParamDirection {
4 |
5 | paramIn (true, false, "in"),
6 | paramInOut (true, true, "in-out"),
7 | paramOut (false, true, "out");
8 |
9 | public final boolean isIn;
10 | public final boolean isOut;
11 | public final String name;
12 |
13 | ParamDirection(final boolean isIn, final boolean isOut, final String name) {
14 | this.isIn = isIn;
15 | this.isOut = isOut;
16 | this.name = name;
17 | }
18 |
19 | @Override
20 | public String toString() {
21 | return name;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/dekaf-inter/src/common/ParamType.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.common;
2 |
3 | public enum ParamType {
4 |
5 | // @formatter:off
6 | paramBoolean (),
7 | paramBit (),
8 | paramTinyInt (),
9 | paramSmallInt (),
10 | paramInt (),
11 | paramBigInt (),
12 | paramFloat (),
13 | paramDouble (),
14 | paramBigInteger(),
15 | paramBigDecimal(),
16 | paramChar (),
17 | paramString (),
18 | paramDate (),
19 | paramDateTime (),
20 | paramTime (),
21 | paramTimestamp (),
22 | paramCLOB (),
23 | paramBLOB (),
24 | paramRefCursor ();
25 | // @formatter:on
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/dekaf-inter/src/common/StatementCategory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.common;
2 |
3 | public enum StatementCategory {
4 | stmtSimple,
5 | stmtUpdate,
6 | stmtQuery
7 | }
8 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBAccessDeniedException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | **/
13 | public class DBAccessDeniedException extends DBException {
14 |
15 | public DBAccessDeniedException(@NotNull final SQLException sqlException,
16 | @Nullable final String statementText) {
17 | super(sqlException, statementText);
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBColumnAccessDeniedException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | **/
13 | public class DBColumnAccessDeniedException extends DBAccessDeniedException {
14 |
15 | public DBColumnAccessDeniedException(@NotNull final SQLException sqlException,
16 | @Nullable final String statementText) {
17 | super(sqlException, statementText);
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBConnectionException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | */
13 | public class DBConnectionException extends DBException {
14 |
15 | public DBConnectionException(@NotNull final String message,
16 | @NotNull final SQLException sqlException,
17 | @Nullable final String statementText) {
18 | super(message, sqlException, statementText);
19 | }
20 |
21 | public DBConnectionException(@NotNull final SQLException sqlException,
22 | @Nullable final String statementText) {
23 | super(sqlException, statementText);
24 | }
25 |
26 | public DBConnectionException(@NotNull final String message) {
27 | super(message, null);
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBDriverException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 | import java.sql.SQLException;
6 |
7 |
8 |
9 | /**
10 | * @author Leonid Bushuev from JetBrains
11 | */
12 | public class DBDriverException extends DBException {
13 |
14 | public DBDriverException(@NotNull String message, @NotNull Exception exception) {
15 | super(message, exception, null);
16 | }
17 |
18 | public DBDriverException(@NotNull String message, @NotNull SQLException exception) {
19 | super(message, exception, null);
20 | }
21 |
22 |
23 | public DBDriverException(@NotNull String message) {
24 | super(message, null);
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBFactoryException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | * Thrown on a problem when working with DBServiceFactory.
9 | * @author Leonid Bushuev from JetBrains
10 | */
11 | public class DBFactoryException extends DBException {
12 |
13 | public DBFactoryException(@NotNull String message, @NotNull Exception exception) {
14 | super(message, exception, null);
15 | }
16 |
17 |
18 | public DBFactoryException(@NotNull String message) {
19 | super(message, null);
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBInitializationException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 | import java.sql.SQLException;
6 |
7 |
8 |
9 | /**
10 | * Throws when a problem of a SQL command or query initialization error occured.
11 | *
12 | * @author Leonid Bushuev from JetBrains
13 | */
14 | public class DBInitializationException extends DBException {
15 |
16 | public DBInitializationException(@NotNull final String message,
17 | @NotNull final SQLException sqlException) {
18 | super(message, sqlException, null);
19 | }
20 |
21 |
22 | public DBInitializationException(@NotNull final String message,
23 | @NotNull final Exception exception) {
24 | super(message, exception, null);
25 | }
26 |
27 |
28 | public DBInitializationException(@NotNull final String message) {
29 | super(message, (Throwable)null, null);
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBIsNotConnected.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | *
9 | **/
10 | public class DBIsNotConnected extends DBException {
11 | public DBIsNotConnected(@NotNull final String message) {
12 | super(message, null);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBLoginFailedException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | */
13 | public class DBLoginFailedException extends DBConnectionException {
14 |
15 | public DBLoginFailedException(@NotNull final SQLException sqlException,
16 | @Nullable final String statementText) {
17 | super(sqlException, statementText);
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBParameterHandlingException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | */
13 | public abstract class DBParameterHandlingException extends DBException {
14 |
15 | protected DBParameterHandlingException(final @NotNull String message,
16 | final @NotNull SQLException sqlException,
17 | final @Nullable String statementText) {
18 | super(message, sqlException, statementText);
19 | }
20 |
21 | public DBParameterHandlingException(final @NotNull String message,
22 | final @NotNull Exception exception,
23 | final @NotNull String statementText) {
24 | super(message, exception, statementText);
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBParameterSettingException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | */
13 | public class DBParameterSettingException extends DBParameterHandlingException {
14 |
15 | public DBParameterSettingException(final @NotNull String message,
16 | final @NotNull SQLException sqlException,
17 | final @Nullable String statementText) {
18 | super(message, sqlException, statementText);
19 | }
20 |
21 | public DBParameterSettingException(final @NotNull String message,
22 | final @NotNull Exception exception,
23 | final @Nullable String statementText) {
24 | super(message, exception, statementText);
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBPerformingException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 | import java.sql.SQLException;
6 |
7 |
8 |
9 | /**
10 | * Throws when a problem of a SQL command or query is performed.
11 | *
12 | * @author Leonid Bushuev
13 | */
14 | public class DBPerformingException extends DBException {
15 |
16 | public DBPerformingException(@NotNull final SQLException sqlException,
17 | @NotNull final String statementText) {
18 | super(sqlException, statementText);
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBSchemaAccessDeniedException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | **/
13 | public class DBSchemaAccessDeniedException extends DBAccessDeniedException {
14 |
15 | public DBSchemaAccessDeniedException(@NotNull final SQLException sqlException,
16 | @Nullable final String statementText) {
17 | super(sqlException, statementText);
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBServiceIsNotActiveException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | * @author Leonid Bushuev from JetBrains
9 | */
10 | public class DBServiceIsNotActiveException extends DBException {
11 |
12 | public DBServiceIsNotActiveException(@NotNull final String message) {
13 | super(message, null);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBSessionIsClosedException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | * @author Leonid Bushuev from JetBrains
9 | */
10 | public class DBSessionIsClosedException extends DBServiceIsNotActiveException {
11 | public DBSessionIsClosedException(@NotNull final String message) {
12 | super(message);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBTransactionException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 |
7 |
8 | public class DBTransactionException extends DBException {
9 |
10 | public DBTransactionException(final @NotNull String message,
11 | final @Nullable Throwable cause) {
12 | super(message, cause, null);
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DBTransactionIsAlreadyStartedException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | * @author Leonid Bushuev from JetBrains
9 | */
10 | public class DBTransactionIsAlreadyStartedException extends DBTransactionException {
11 |
12 | public DBTransactionIsAlreadyStartedException() {
13 | super("The session is already inside a transaction", null);
14 | }
15 |
16 | public DBTransactionIsAlreadyStartedException(@NotNull final String message) {
17 | super(message, null);
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DbmsUnsupportedFeatureException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | */
11 |
12 | public class DbmsUnsupportedFeatureException extends DBException {
13 |
14 | public DbmsUnsupportedFeatureException(@NotNull final String message,
15 | @Nullable String statementText) {
16 | super(message, statementText);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/DuplicateKeyException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | *
12 | **/
13 | public class DuplicateKeyException extends DBException {
14 |
15 | public DuplicateKeyException(@NotNull final SQLException sqlException,
16 | @Nullable String statementText) {
17 | super(sqlException, statementText);
18 | }
19 |
20 |
21 | public DuplicateKeyException(@NotNull final String message,
22 | @NotNull final SQLException sqlException,
23 | @Nullable String statementText) {
24 | super(message, sqlException, statementText);
25 | }
26 |
27 |
28 | public DuplicateKeyException(@NotNull final String message, @Nullable String statementText) {
29 | super(message, statementText);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/NoRowsException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | *
12 | **/
13 | public class NoRowsException extends DBException {
14 |
15 | public NoRowsException(@NotNull final SQLException sqlException, @Nullable String statementText) {
16 | super(sqlException, statementText);
17 | }
18 |
19 |
20 | public NoRowsException(@NotNull final String message,
21 | @NotNull final SQLException sqlException,
22 | @Nullable String statementText) {
23 | super(message, sqlException, statementText);
24 | }
25 |
26 |
27 | public NoRowsException(@NotNull final String message, @Nullable String statementText) {
28 | super(message, statementText);
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/NoTableOrViewException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | */
13 | public class NoTableOrViewException extends DBException {
14 |
15 | public NoTableOrViewException(@NotNull final SQLException sqlException,
16 | @Nullable final String statementText) {
17 | super(sqlException, statementText);
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/StrippedUnknownException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | */
11 | public class StrippedUnknownException extends Exception {
12 |
13 | @NotNull
14 | public final String originalClassName;
15 |
16 | public StrippedUnknownException(@NotNull final Throwable originalException,
17 | @Nullable final Throwable cause) {
18 | super(prepareMessage(originalException), cause);
19 | originalClassName = originalException.getClass().getName();
20 | setStackTrace(originalException.getStackTrace());
21 | }
22 |
23 | private static String prepareMessage(@NotNull final Throwable originalException) {
24 | return originalException.getClass().getName() + ": " + originalException.getMessage();
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/UnexpectedDBException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * Unknown database error.
12 | */
13 | public final class UnexpectedDBException extends DBException {
14 |
15 | public UnexpectedDBException(@NotNull final SQLException sqlException,
16 | @Nullable String statementText) {
17 | super(sqlException, statementText);
18 | }
19 |
20 | public UnexpectedDBException(@NotNull final String message,
21 | @NotNull final Exception exception,
22 | @Nullable String statementText) {
23 | super(message, exception, statementText);
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/UnexpectedReflectionException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | * @author Leonid Bushuev from JetBrains
9 | **/
10 | public class UnexpectedReflectionException extends RuntimeException {
11 |
12 | public UnexpectedReflectionException(@NotNull final String message, @NotNull final Exception e) {
13 | super(message + ": " + e.getClass().getSimpleName() + ": " + e.getMessage(), e);
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/UnhandledTypeException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 |
7 |
8 | /**
9 | *
10 | **/
11 | public class UnhandledTypeException extends DBException {
12 | public UnhandledTypeException(@NotNull final String message, @Nullable String statementText) {
13 | super(message, statementText);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/dekaf-inter/src/exceptions/UnknownDBException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * Unknown database error.
12 | */
13 | public final class UnknownDBException extends DBException {
14 |
15 | public UnknownDBException(@NotNull final SQLException sqlException,
16 | @Nullable String statementText) {
17 | super(sqlException, statementText);
18 | }
19 |
20 |
21 | public UnknownDBException(@NotNull final String message,
22 | @NotNull final Exception exception,
23 | @Nullable String statementText) {
24 | super(message, exception, statementText);
25 | }
26 |
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/dekaf-inter/src/intf/InterColumnCursor.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.intf;
2 |
3 | import org.jetbrains.annotations.Nullable;
4 |
5 |
6 |
7 | public interface InterColumnCursor extends InterCursor {
8 |
9 | void prepare();
10 |
11 | @Nullable
12 | C[] fetchPortion();
13 |
14 | @Nullable
15 | C[] fetchRow();
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/dekaf-inter/src/intf/InterCursor.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.intf;
2 |
3 | public interface InterCursor extends AutoCloseable {
4 |
5 | /**
6 | * Closes the seance.
7 | */
8 | void close();
9 |
10 | /**
11 | * Check whether the seance was closed.
12 | * @return whether the seance was closed.
13 | */
14 | boolean isClosed();
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/dekaf-inter/src/intf/InterIntsCursor.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.intf;
2 |
3 | import org.jetbrains.annotations.Nullable;
4 |
5 |
6 |
7 | public interface InterIntsCursor extends InterCursor {
8 |
9 | void setDefaultValue(int defaultValue);
10 |
11 | @Nullable
12 | int[] fetchPortion();
13 |
14 | @Nullable
15 | int[] fetchRow();
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/dekaf-inter/src/intf/InterLongsCursor.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.intf;
2 |
3 | import org.jetbrains.annotations.Nullable;
4 |
5 |
6 |
7 | public interface InterLongsCursor extends InterCursor {
8 |
9 | void setDefaultValue(long defaultValue);
10 |
11 | @Nullable
12 | long[] fetchPortion();
13 |
14 | @Nullable
15 | long[] fetchRow();
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/dekaf-inter/src/intf/InterMatrixCursor.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.intf;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | public interface InterMatrixCursor extends InterCursor {
8 |
9 | void prepare();
10 |
11 | void prepare(final @NotNull Class> @NotNull [] cellClasses);
12 |
13 | void setDefaultValue(B value);
14 |
15 | B[][] fetchPortion();
16 |
17 | B[] fetchRow();
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/dekaf-inter/src/intf/InterServiceFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.intf;
2 |
3 |
4 | import org.jetbrains.annotations.NotNull;
5 |
6 |
7 |
8 | /**
9 | * Creates InterFacade instances for specific RDBMS.
10 | */
11 | public interface InterServiceFactory {
12 |
13 | /**
14 | * Creates an instance of InterFacade.
15 | * @return just created instance.
16 | */
17 | @NotNull
18 | InterFacade createFacade();
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/dekaf-inter/src/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Intermediate interfaces.
3 | *
4 | * Intermediate interfaces are needed to integrate the main module of Dekaf with JDBC stuff.
5 | **/
6 | package org.jetbrains.dekaf.inter;
7 |
--------------------------------------------------------------------------------
/dekaf-inter/src/utils/EmptyIterator.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.inter.utils;
2 |
3 | import java.util.Iterator;
4 |
5 |
6 |
7 | public class EmptyIterator implements Iterator {
8 |
9 | @SuppressWarnings("rawtypes")
10 | private static final EmptyIterator instance = new EmptyIterator();
11 |
12 | public static Iterator one() {
13 | //noinspection unchecked
14 | return instance;
15 | }
16 |
17 | @Override
18 | public boolean hasNext() {
19 | return false;
20 | }
21 |
22 | @Override
23 | public E next() {
24 | return null;
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/dekaf-jdbc-test/tests/Aliases.kt:
--------------------------------------------------------------------------------
1 | @file:Suppress("platform_class_mapped_to_kotlin", "RemoveRedundantQualifierName")
2 |
3 | package org.jetbrains.dekaf.jdbcTest
4 |
5 |
6 | typealias JavaByte = java.lang.Byte
7 | typealias JavaShort = java.lang.Short
8 | typealias JavaInt = java.lang.Integer
9 | typealias JavaLong = java.lang.Long
10 |
--------------------------------------------------------------------------------
/dekaf-jdbc-test/tests/impl/JdbcServiceFactoryTest.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbcTest.impl
2 |
3 | import lb.yaka.expectations.iz
4 | import lb.yaka.gears.expect
5 | import lb.yaka.gears.notEmpty
6 | import lb.yaka.utils.isInstanceOf
7 | import org.jetbrains.dekaf.inter.intf.InterServiceFactory
8 | import org.jetbrains.dekaf.jdbc.impl.JdbcServiceFactory
9 | import org.jetbrains.dekaf.test.utils.UnitTest
10 | import org.junit.jupiter.api.Test
11 | import java.util.*
12 | import java.util.stream.Collectors
13 |
14 |
15 | class JdbcServiceFactoryTest : UnitTest {
16 |
17 | @Test
18 | fun serviceLoading() {
19 | val loader: ServiceLoader =
20 | ServiceLoader.load(InterServiceFactory::class.java)
21 | val list: List> =
22 | loader.stream().collect(Collectors.toList())
23 |
24 | expect that list iz notEmpty
25 |
26 | val factory = list.first().get()
27 |
28 | expect that factory isInstanceOf JdbcServiceFactory::class
29 | }
30 |
31 | }
--------------------------------------------------------------------------------
/dekaf-jdbc/dekaf-jdbc.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/dekaf-jdbc/manifest/META-INF/services/org.jetbrains.dekaf.inter.intf.InterServiceFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.impl.JdbcServiceFactory
2 |
--------------------------------------------------------------------------------
/dekaf-jdbc/src/impl/JdbcBaseCursor.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc.impl;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.inter.intf.InterCursor;
5 |
6 | import java.sql.ResultSet;
7 |
8 |
9 |
10 | public abstract class JdbcBaseCursor implements InterCursor {
11 |
12 | @NotNull
13 | protected final JdbcSeance seance;
14 |
15 | @NotNull
16 | protected final ResultSet rset;
17 |
18 | protected boolean end = false;
19 | private boolean closed = false;
20 |
21 |
22 | protected JdbcBaseCursor(@NotNull final JdbcSeance seance, @NotNull final ResultSet rset) {
23 | this.seance = seance;
24 | this.rset = rset;
25 | }
26 |
27 | @Override
28 | public void close() {
29 | JdbcUtil.close(rset);
30 | closed = true;
31 | }
32 |
33 | @Override
34 | public boolean isClosed() {
35 | return closed;
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/dekaf-jdbc/src/impl/JdbcRowFetcher.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc.impl;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 | import java.sql.ResultSet;
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * Fetcher that can fetch rows from {@link ResultSet}.
12 | *
13 | * Stateless service.
14 | *
15 | *
16 | * @author Leonid Bushuev from JetBrains
17 | */
18 | public abstract class JdbcRowFetcher {
19 |
20 |
21 | abstract R fetchRow(@NotNull final ResultSet rset)
22 | throws SQLException;
23 | }
24 |
--------------------------------------------------------------------------------
/dekaf-jdbc/src/impl/JdbcRowsCollector.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc.impl;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 | import java.sql.ResultSet;
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | */
13 | public abstract class JdbcRowsCollector {
14 |
15 | protected boolean hasMoreRows = true;
16 |
17 | protected abstract T collectRows(@NotNull final ResultSet rset, int limit) throws SQLException;
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/dekaf-jdbc/src/impl/JdbcStuff.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc.impl;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | public final class JdbcStuff {
8 |
9 | public static void closeIt(@NotNull AutoCloseable closeable) {
10 | try {
11 | closeable.close();
12 | }
13 | catch (Throwable e) {
14 | // panic!
15 | // TODO log somehow
16 | }
17 | }
18 |
19 |
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/dekaf-jdbc/src/impl/JdbcValueGetter.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc.impl;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.ResultSet;
7 | import java.sql.SQLException;
8 |
9 |
10 |
11 | /**
12 | * @author Leonid Bushuev from JetBrains
13 | */
14 | public abstract class JdbcValueGetter {
15 |
16 | /**
17 | * Gets the cell value from the given result set.
18 | * @param rset result set.
19 | * @param index column index, starting from 1 (as in JDBC).
20 | * @return the got value, can be null.
21 | * @throws SQLException
22 | */
23 | @Nullable
24 | abstract V getValue(@NotNull ResultSet rset, int index)
25 | throws SQLException;
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/dekaf-jdbc/src/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * The JDBC stuff.
3 | **/
4 | package org.jetbrains.dekaf.jdbc;
--------------------------------------------------------------------------------
/dekaf-main-test/dekaf-main-test.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/dekaf-main-test/src/base/BaseSessionTest.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.mainTest.base
2 |
3 | import org.jetbrains.dekaf.main.db.inSession
4 | import org.jetbrains.dekaf.main.db.inTransaction
5 | import org.junit.jupiter.api.Order
6 | import org.junit.jupiter.api.Test
7 |
8 |
9 | class BaseSessionTest : UnitTestWithH2 {
10 |
11 | @Test @Order(1)
12 | fun basic_ping() {
13 | dbf.inSession { session ->
14 | session.ping()
15 | }
16 | }
17 |
18 | @Test @Order(2)
19 | fun basic_perform_beyondTransaction() {
20 | dbf.inSession { session ->
21 | session.perform("call 2*2")
22 | }
23 | }
24 |
25 | @Test @Order(3)
26 | fun basic_perform_inTransaction() {
27 | dbf.inTransaction { transaction ->
28 | transaction.perform("call 2*2")
29 | }
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/dekaf-main-test/src/base/BaseTransactionTest.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.mainTest.base
2 |
3 | import org.jetbrains.dekaf.main.db.inSession
4 | import org.junit.jupiter.api.Order
5 | import org.junit.jupiter.api.Test
6 |
7 |
8 | class BaseTransactionTest : UnitTestWithH2 {
9 |
10 | @Test @Order(1)
11 | fun basic_commit() {
12 | dbf.inSession { session ->
13 |
14 | val tran = session.beginTransaction()
15 | tran.commit()
16 | tran.close()
17 |
18 | }
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/dekaf-main-test/src/base/FactoryLoaderTest.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.mainTest.base
2 |
3 | import lb.yaka.expectations.equalsTo
4 | import lb.yaka.gears.expect
5 | import org.jetbrains.dekaf.inter.settings.Settings
6 | import org.jetbrains.dekaf.main.base.FactoryLoader
7 | import org.jetbrains.dekaf.test.utils.UnitTest
8 | import org.junit.jupiter.api.Test
9 |
10 | class FactoryLoaderTest : UnitTest {
11 |
12 | @Test
13 | fun interFactory_exists() {
14 | val f = FactoryLoader.selectInterServiceFactory(Settings.empty)
15 | expect that f.javaClass.name equalsTo "org.jetbrains.dekaf.jdbc.impl.JdbcServiceFactory"
16 | }
17 |
18 | }
--------------------------------------------------------------------------------
/dekaf-main-test/src/base/UnitTestWithH2.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.mainTest.base
2 |
3 | import org.jetbrains.dekaf.main.DbMaster
4 | import org.jetbrains.dekaf.main.base.BaseFacade
5 | import org.jetbrains.dekaf.mainTest.util.H2memSettings
6 | import org.jetbrains.dekaf.test.utils.UnitTest
7 | import org.junit.jupiter.api.AfterAll
8 | import org.junit.jupiter.api.BeforeAll
9 | import org.junit.jupiter.api.MethodOrderer
10 | import org.junit.jupiter.api.TestMethodOrder
11 |
12 |
13 | @TestMethodOrder(MethodOrderer.OrderAnnotation::class)
14 | interface UnitTestWithH2 : UnitTest {
15 |
16 | companion object {
17 |
18 | lateinit var dbFacade: BaseFacade
19 |
20 | @BeforeAll @JvmStatic
21 | fun initH2() {
22 | dbFacade = DbMaster.open(H2memSettings) as BaseFacade
23 | dbFacade.connect()
24 | }
25 |
26 | @AfterAll @JvmStatic
27 | fun closeH2() {
28 | dbFacade.disconnect()
29 | }
30 |
31 | }
32 |
33 |
34 | val dbf: BaseFacade
35 | get() = dbFacade
36 |
37 |
38 | }
--------------------------------------------------------------------------------
/dekaf-main-test/src/util/H2Util.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.mainTest.util
2 |
3 | import org.jetbrains.dekaf.inter.settings.Settings
4 |
5 |
6 | val H2memSettings =
7 | Settings.of(
8 | "driver", Settings.of("class", "org.h2.Driver"),
9 | "jdbc", Settings.of("connection-string", "jdbc:h2:mem:test")
10 | )
11 |
--------------------------------------------------------------------------------
/dekaf-main-test/src/util/Numbers.kt:
--------------------------------------------------------------------------------
1 | @file:Suppress("ObjectPropertyName")
2 |
3 | package org.jetbrains.dekaf.mainTest.util
4 |
5 |
6 | const val `0`: Byte = 0.toByte()
7 |
--------------------------------------------------------------------------------
/dekaf-main/dekaf-main.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/dekaf-main/src/DbMaster.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main
2 |
3 | import org.jetbrains.dekaf.inter.intf.InterFacade
4 | import org.jetbrains.dekaf.inter.settings.Settings
5 | import org.jetbrains.dekaf.main.base.BaseFacade
6 | import org.jetbrains.dekaf.main.base.FactoryLoader
7 | import org.jetbrains.dekaf.main.db.DbFacade
8 | import java.util.concurrent.CopyOnWriteArrayList
9 |
10 |
11 | object DbMaster {
12 |
13 | private val facades = CopyOnWriteArrayList()
14 |
15 |
16 | @JvmStatic
17 | fun open(settings: Settings, connect: Boolean = false): DbFacade {
18 | // inter
19 | val interFactory = FactoryLoader.selectInterServiceFactory(settings)
20 | val interFacade = interFactory.createFacade()
21 | interFacade.init(settings)
22 | // main
23 | val dbFacade = BaseFacade()
24 | dbFacade.setup(interFacade, settings)
25 | if (connect) dbFacade.connect()
26 | // ok
27 | return dbFacade
28 | }
29 |
30 |
31 |
32 |
33 |
34 |
35 | }
--------------------------------------------------------------------------------
/dekaf-main/src/Readme.txt:
--------------------------------------------------------------------------------
1 | The main Dekaf module.
2 |
--------------------------------------------------------------------------------
/dekaf-main/src/db/DbFacade.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.db
2 |
3 |
4 | interface DbFacade {
5 |
6 | fun connect()
7 |
8 | fun disconnect()
9 |
10 | fun openSession(): DbSession
11 |
12 | fun isConnected(ping: Boolean = false): Boolean
13 |
14 | fun countActiveSessions(): Int
15 |
16 | }
17 |
18 |
19 |
20 | fun DbFacade.inSession(block: (DbSession) -> X): X {
21 | val session = openSession()
22 | try {
23 | return block(session)
24 | }
25 | finally {
26 | session.close()
27 | }
28 | }
29 |
30 |
31 | fun DbFacade.inTransaction(block: (DbTransaction) -> X): X =
32 | this.inSession {
33 | session -> session.inTransaction(block)
34 | }
35 |
36 |
--------------------------------------------------------------------------------
/dekaf-main/src/db/DbInsideTransaction.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.db
2 |
3 | import org.jetbrains.dekaf.main.queries.Query
4 | import org.jetbrains.dekaf.main.queries.QueryLayout
5 |
6 |
7 | interface DbInsideTransaction {
8 |
9 | /**
10 | * Performs a simple statement without parameters or result sets.
11 | */
12 | fun perform(statementText: String)
13 |
14 |
15 | fun query(queryText: String, layout: QueryLayout): DbQueryRunner
16 |
17 | fun query(query: Query): DbQueryRunner
18 |
19 | }
--------------------------------------------------------------------------------
/dekaf-main/src/db/DbQueryRunner.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.db
2 |
3 |
4 | interface DbQueryRunner: AutoCloseable {
5 |
6 | fun run(vararg paramValues: Any?): T
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/dekaf-main/src/db/DbSession.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.db
2 |
3 |
4 | interface DbSession : DbInsideTransaction, AutoCloseable {
5 |
6 | fun beginTransaction(): DbTransaction
7 |
8 | fun ping()
9 |
10 | fun markBroken()
11 |
12 | override fun close()
13 |
14 | }
15 |
16 |
17 |
18 | fun DbSession.inTransaction(block: (DbTransaction) -> X): X {
19 | val transaction = this.beginTransaction()
20 | try {
21 | val result = block(transaction)
22 | transaction.commit()
23 | return result
24 | }
25 | finally {
26 | transaction.close()
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/dekaf-main/src/db/DbTransaction.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.db
2 |
3 |
4 | interface DbTransaction : DbInsideTransaction, AutoCloseable {
5 |
6 | fun commit()
7 |
8 | fun rollback()
9 |
10 | override fun close()
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/dekaf-main/src/queries/Query.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.queries
2 |
3 |
4 |
5 | class Query (
6 |
7 | val text: String,
8 |
9 | val layout: QueryLayout
10 |
11 | )
--------------------------------------------------------------------------------
/dekaf-main/src/queries/impl/ResultCollector.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.queries.impl
2 |
3 | import org.jetbrains.dekaf.inter.intf.InterSeance
4 |
5 |
6 | interface ResultCollector : AutoCloseable {
7 |
8 | fun prepare(seance: InterSeance, positionIndex: Int)
9 |
10 | fun retrieve(): T
11 |
12 | override fun close()
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/dekaf-main/src/queries/impl/RowHandler.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.queries.impl
2 |
3 | import org.jetbrains.dekaf.inter.intf.InterMatrixCursor
4 | import org.jetbrains.dekaf.inter.intf.InterSeance
5 |
6 |
7 | interface RowHandler {
8 |
9 | fun prepare(seance: InterSeance, position: Int): InterMatrixCursor
10 |
11 | fun handleRow(values: Array): R
12 |
13 | val rowClass: Class
14 |
15 | }
--------------------------------------------------------------------------------
/dekaf-main/src/queries/impl/TableArrayResultCollector.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.queries.impl
2 |
3 | import org.jetbrains.dekaf.inter.utils.ArrayHacks
4 |
5 |
6 | class TableArrayResultCollector: TableResultCollector, R, B> {
7 |
8 | constructor(handler: RowHandler) : super(handler)
9 |
10 |
11 | override fun retrieve(): Array {
12 | val list = retrieveIntoArrayList()
13 | val emptyArray: Array = ArrayHacks.createEmptyArray(handler.rowClass)
14 | val n = list.size
15 | if (n == 0) return emptyArray
16 | return list.toArray(emptyArray)
17 | }
18 |
19 | }
--------------------------------------------------------------------------------
/dekaf-main/src/queries/impl/TableIteratorResultCollector.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.queries.impl
2 |
3 |
4 | class TableIteratorResultCollector: TableResultCollector, R, B> {
5 |
6 |
7 | constructor(handler: RowHandler) : super(handler)
8 |
9 |
10 | override fun retrieve(): Iterator {
11 | val iterator = PortionedIterator()
12 | iterator.prepare()
13 | return iterator
14 | }
15 |
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/dekaf-main/src/queries/impl/TableListResultCollector.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.queries.impl
2 |
3 |
4 | class TableListResultCollector: TableResultCollector, R, B> {
5 |
6 | constructor(handler: RowHandler) : super(handler)
7 |
8 |
9 | override fun retrieve(): List {
10 | return retrieveIntoArrayList()
11 | }
12 |
13 | }
--------------------------------------------------------------------------------
/dekaf-main/src/queries/impl/TableStreamResultCollector.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.queries.impl
2 |
3 | import java.util.*
4 | import java.util.stream.Stream
5 | import java.util.stream.StreamSupport
6 |
7 |
8 | class TableStreamResultCollector: TableResultCollector, R, B> {
9 |
10 | constructor(handler: RowHandler) : super(handler)
11 |
12 | override fun retrieve(): Stream {
13 | val iterator = PortionedIterator()
14 | iterator.prepare()
15 | if (!iterator.hasNext()) return Stream.empty()
16 |
17 | val spliterator = Spliterators.spliteratorUnknownSize(iterator, 0);
18 | val stream = StreamSupport.stream(spliterator, false)
19 | stream.onClose { cursor.close() }
20 | return stream
21 | }
22 |
23 | }
--------------------------------------------------------------------------------
/dekaf-main/src/settings/SettingsFun.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.settings
2 |
3 | import org.jetbrains.dekaf.inter.settings.Setting
4 | import org.jetbrains.dekaf.inter.settings.Settings
5 | import java.io.Serializable
6 |
7 |
8 | fun settingsOf(vararg pairs: Pair): Settings {
9 | val n = pairs.size
10 | if (n == 0) return Settings.empty
11 | val a = Array(n) { index ->
12 | val p = pairs[index]
13 | Setting(p.first, p.second)
14 | }
15 | return Settings(*a)
16 | }
17 |
18 |
19 | val Setting.pair: Pair
20 | inline get() = Pair(name, value)
21 |
22 |
--------------------------------------------------------------------------------
/dekaf-main/src/simplext/SimplextTextReader.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.main.simplext
2 |
3 | import org.jetbrains.dekaf.main.util.indexOf
4 |
5 | /**
6 | *
7 | */
8 | class SimplextTextReader : SimplextReader {
9 |
10 | constructor(rootNode: N, handler: (SimplextLine) -> N) : super(rootNode, handler)
11 |
12 |
13 | fun processText(text: CharSequence) {
14 | val n = text.length
15 | var p = 0
16 | while (p < n) {
17 | val q = text.indexOf('\n', from = p, notFound = n)
18 | processLine(text, from = p, till = q)
19 | p = q + 1
20 | }
21 | }
22 |
23 | }
--------------------------------------------------------------------------------
/doc/implementation-specific-services.md:
--------------------------------------------------------------------------------
1 | Implementation-specific Services
2 | ================================
3 |
4 | Currently supported service names:
5 |
6 | | service name | description |
7 | -----------------------------------------------------------------------
8 | | intermediate-service | intermediate/remote service |
9 | | connection-pool | connection pool |
10 | | jdbc-driver | JDBC driver |
11 | | jdbc-connection | JDBC connection |
12 |
13 |
--------------------------------------------------------------------------------
/doc/settings.md:
--------------------------------------------------------------------------------
1 | Settings
2 | --------
3 |
4 | Format of settings, passed to an RDBMS service facade.
5 |
6 |
7 | ### Driver settings
8 |
9 | Prefix: ``driver``
10 |
11 | This settings specify how to load JDBC driver.
12 |
13 | | setting | description |
14 | | ------- | ----------- |
15 | | ``path`` | Path to the driver jar files. |
16 | | ``jars`` | Names of the jar files to load, comma separated. |
17 | | ``class`` | Jdbc driver class (should implement interface ``java.sql.Driver``). |
18 |
19 |
20 | ### JDBC setting
21 |
22 | Prefix: ``jdbc``
23 |
24 | | setting | description |
25 | | ------- | ----------- |
26 | | ``connection-string`` | The JDBC connection string (a.k.a. JDBC URL). |
27 |
28 |
29 | Prefix: ``jdbc.properties``
30 |
31 | All JDBC-specific properties that are passed to the JDBC driver as is.
32 |
33 |
--------------------------------------------------------------------------------
/old/dekaf-cassandra-test-db/src/main/java/org/jetbrains/dekaf/core/CassandraTestHelperFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.Cassandra;
5 | import org.jetbrains.dekaf.Rdbms;
6 |
7 | import java.util.Collections;
8 | import java.util.Set;
9 |
10 |
11 |
12 | public class CassandraTestHelperFactory implements DBTestHelperFactory {
13 |
14 | private static final Set COLLECTION_OF_CASSANDRA = Collections.singleton(Cassandra.RDBMS);
15 |
16 |
17 | @NotNull
18 | @Override
19 | public Set supportRdbms() {
20 | return COLLECTION_OF_CASSANDRA;
21 | }
22 |
23 |
24 | @NotNull
25 | @Override
26 | public DBTestHelper createTestHelperFor(@NotNull final DBFacade facade) {
27 | return new CassandraTestHelper(facade);
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/old/dekaf-cassandra-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.CassandraTestHelperFactory
2 |
--------------------------------------------------------------------------------
/old/dekaf-cassandra-test-db/src/main/resources/org/jetbrains/dekaf/core/CassandraTestHelper.sql:
--------------------------------------------------------------------------------
1 | ---- X1 ----
2 | create table X1 (X INT PRIMARY KEY);
3 |
4 | ---- X1000 ----
5 | create table X1000 (X INT PRIMARY KEY);
6 |
7 | ---- X1000000 ----
8 | create table X1000000 (X INT PRIMARY KEY);
9 |
--------------------------------------------------------------------------------
/old/dekaf-cassandra/src/main/java/org/jetbrains/dekaf/Cassandra.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * Cassandra declaration class.
5 | *
6 | * @author Liudmila Kornilova
7 | */
8 | public abstract class Cassandra {
9 |
10 | /**
11 | * Cassandra RDBMS marker.
12 | */
13 | public final static Rdbms RDBMS = Rdbms.of("CASSANDRA");
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/old/dekaf-cassandra/src/main/java/org/jetbrains/dekaf/sql/CassandraSQL.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | public class CassandraSQL {
4 | }
5 |
--------------------------------------------------------------------------------
/old/dekaf-cassandra/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.CassandraIntermediateProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-cassandra/src/test/java/org/jetbrains/dekaf/jdbc/CassandraInterServiceProviderUnitTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.assertions.PatternAssert;
4 | import org.junit.Test;
5 |
6 | import static org.jetbrains.dekaf.jdbc.CassandraIntermediateProvider.CASSANDRA_CONNECTION_STRING_EXAMPLE;
7 | import static org.jetbrains.dekaf.jdbc.CassandraIntermediateProvider.CASSANDRA_CONNECTION_STRING_PATTERN;
8 |
9 |
10 |
11 | public class CassandraInterServiceProviderUnitTest {
12 |
13 | @Test
14 | public void connectionStringExample_matches_connectionStringPattern() {
15 | PatternAssert.assertThat(CASSANDRA_CONNECTION_STRING_PATTERN)
16 | .fits(CASSANDRA_CONNECTION_STRING_EXAMPLE);
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse-test-db/src/main/java/org/jetbrains/dekaf/core/CHouseTestHelper.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.sql.Scriptum;
5 |
6 |
7 |
8 | public class CHouseTestHelper extends BaseTestHelper {
9 |
10 | public CHouseTestHelper(@NotNull final DBFacade db) {
11 | super(db, Scriptum.of(CHouseTestHelper.class));
12 | }
13 |
14 | @Override
15 | public void prepareX1() {
16 | performCommand("create view if not exists X1 as select 1 X");
17 | }
18 |
19 | @Override
20 | public void prepareX1000() {
21 | performCommand(scriptum, "X1000");
22 | }
23 |
24 | @Override
25 | public void prepareX1000000() {
26 | prepareX1000();
27 | performCommand(scriptum, "X1000000");
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse-test-db/src/main/java/org/jetbrains/dekaf/core/CHouseTestHelperFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.ClickHouse;
5 | import org.jetbrains.dekaf.Rdbms;
6 |
7 | import java.util.Collections;
8 | import java.util.Set;
9 |
10 |
11 |
12 | public class CHouseTestHelperFactory implements DBTestHelperFactory {
13 |
14 | private static final Set COLLECTION_OF_CHOUSE = Collections.singleton(ClickHouse.RDBMS);
15 |
16 |
17 | @NotNull
18 | @Override
19 | public Set supportRdbms() {
20 | return COLLECTION_OF_CHOUSE;
21 | }
22 |
23 |
24 | @NotNull
25 | @Override
26 | public DBTestHelper createTestHelperFor(@NotNull final DBFacade facade) {
27 | return new CHouseTestHelper(facade);
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.CHouseTestHelperFactory
2 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse-test-db/src/main/resources/org/jetbrains/dekaf/core/CHouseTestHelper.sql:
--------------------------------------------------------------------------------
1 | ---- X1000 ----
2 | create view if exists X1000 as
3 | select number X from system.numbers limit 1000
4 | ;
5 |
6 |
7 | ---- X1000000 ----
8 | create view if exists X1000000 as
9 | select number X from system.numbers limit 1000000
10 | ;
11 |
12 |
13 | ---- EnsureNoTableOrViewMetaQuery ----
14 | select 'drop table if exists `' || replaceAll(name, '`', '``') || '`' as cmd
15 | from system.tables
16 | where database = currentDatabase()
17 | and lower(name) in (lower(?),lower(?),lower(?),lower(?))
18 | ;
19 |
20 |
21 | ---- ZapSchemaMetaQuery ----
22 | select 'drop table if exists `' || replaceAll(name, '`', '`') || '`' as cmd
23 | from system.tables
24 | where database = currentDatabase()
25 | ;
26 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse-tests/src/test/java/org/jetbrains/dekaf/CHouseIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | import org.jetbrains.dekaf.core.CHouseCommandRunnerTest;
4 | import org.jetbrains.dekaf.core.CHousePrimaryTest;
5 | import org.jetbrains.dekaf.core.CHouseQueryRunnerTest;
6 | import org.jetbrains.dekaf.core.CHouseSessionTest;
7 | import org.jetbrains.dekaf.jdbc.CHouseExceptionRecognizingTest;
8 | import org.junit.runner.RunWith;
9 | import org.junit.runners.Suite;
10 |
11 |
12 |
13 | @RunWith(Suite.class)
14 | @Suite.SuiteClasses({
15 | CHousePrimaryTest.class,
16 | CHouseSessionTest.class,
17 | CHouseCommandRunnerTest.class,
18 | CHouseQueryRunnerTest.class,
19 | CHouseExceptionRecognizingTest.class
20 | })
21 | public class CHouseIntegrationTests {}
22 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse-tests/src/test/java/org/jetbrains/dekaf/core/CHouseCommandRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | public class CHouseCommandRunnerTest extends CommonCommandRunnerTest {
4 |
5 |
6 |
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse-tests/src/test/java/org/jetbrains/dekaf/core/CHousePrimaryTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.ClickHouse;
4 | import org.junit.FixMethodOrder;
5 | import org.junit.Test;
6 | import org.junit.internal.AssumptionViolatedException;
7 | import org.junit.runners.MethodSorters;
8 |
9 | import static org.assertj.core.api.Assertions.assertThat;
10 |
11 |
12 |
13 | @FixMethodOrder(MethodSorters.JVM)
14 | public class CHousePrimaryTest extends CommonPrimaryTest {
15 |
16 | @Test
17 | public void rdbms_is_CHouse() {
18 | assertThat(DB.rdbms()).isEqualTo(ClickHouse.RDBMS);
19 | }
20 |
21 |
22 | @Override
23 | public void getConnectionInfo_user() {
24 | throw new AssumptionViolatedException("In ClickHouse user can be empty");
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse-tests/src/test/java/org/jetbrains/dekaf/core/CHouseQueryRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | public class CHouseQueryRunnerTest extends CommonQueryRunnerTest {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse-tests/src/test/java/org/jetbrains/dekaf/core/CHouseSessionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.junit.FixMethodOrder;
4 | import org.junit.runners.MethodSorters;
5 |
6 |
7 |
8 | @FixMethodOrder(MethodSorters.JVM)
9 | public class CHouseSessionTest extends CommonSessionTest {
10 |
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse-tests/src/test/java/org/jetbrains/dekaf/jdbc/CHouseExceptionRecognizingTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.core.CommonExceptionRecognizingTest;
4 |
5 |
6 |
7 | public class CHouseExceptionRecognizingTest extends CommonExceptionRecognizingTest {
8 |
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse/src/main/java/org/jetbrains/dekaf/ClickHouse.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | public abstract class ClickHouse {
4 |
5 | public final static Rdbms RDBMS = Rdbms.of("CLICKHOUSE");
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse/src/main/java/org/jetbrains/dekaf/sql/ClickHouseSQL.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | public class ClickHouseSQL {
4 | }
5 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.CHouseIntermediateProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse/src/test/java/org/jetbrains/dekaf/jdbc/CHouseInterServiceProviderTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.Before;
4 | import org.junit.Test;
5 |
6 | import java.sql.Driver;
7 | import java.sql.DriverManager;
8 | import java.sql.SQLException;
9 |
10 | import static org.assertj.core.api.Assertions.assertThat;
11 | import static org.jetbrains.dekaf.jdbc.CHouseIntermediateProvider.CHOUSE_CONNECTION_STRING_EXAMPLE;
12 |
13 |
14 |
15 | public class CHouseInterServiceProviderTest {
16 |
17 | protected CHouseIntermediateProvider myProvider;
18 |
19 | @Before
20 | public void setup() {
21 | myProvider = CHouseIntermediateProvider.INSTANCE;
22 | }
23 |
24 | @Test
25 | public void driverIsLoaded() throws SQLException {
26 | final Driver driver = DriverManager.getDriver(CHOUSE_CONNECTION_STRING_EXAMPLE);
27 | assertThat(driver).isNotNull();
28 | }
29 |
30 | }
--------------------------------------------------------------------------------
/old/dekaf-clickhouse/src/test/java/org/jetbrains/dekaf/jdbc/CHouseInterServiceProviderUnitTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.assertions.PatternAssert;
4 | import org.junit.Test;
5 |
6 | import static org.jetbrains.dekaf.jdbc.CHouseIntermediateProvider.CHOUSE_CONNECTION_STRING_EXAMPLE;
7 | import static org.jetbrains.dekaf.jdbc.CHouseIntermediateProvider.CHOUSE_CONNECTION_STRING_PATTERN;
8 |
9 |
10 |
11 | public class CHouseInterServiceProviderUnitTest {
12 |
13 | @Test
14 | public void connectionStringExample_matches_connectionStringPattern() {
15 | PatternAssert.assertThat(CHOUSE_CONNECTION_STRING_PATTERN)
16 | .fits(CHOUSE_CONNECTION_STRING_EXAMPLE);
17 | }
18 |
19 | }
--------------------------------------------------------------------------------
/old/dekaf-clickhouse/src/test/java/org/jetbrains/dekaf/jdbc/CHouseJdbcIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 |
4 | import org.junit.runner.RunWith;
5 | import org.junit.runners.Suite;
6 |
7 |
8 |
9 | @RunWith(Suite.class)
10 | @Suite.SuiteClasses({
11 | CHouseInterServiceProviderTest.class
12 | })
13 | public class CHouseJdbcIntegrationTests {
14 |
15 | static {
16 | System.setProperty("java.awt.headless", "true");
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/old/dekaf-clickhouse/src/test/java/org/jetbrains/dekaf/jdbc/CHouseJdbcUnitTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 |
4 | import org.junit.runner.RunWith;
5 | import org.junit.runners.Suite;
6 |
7 |
8 |
9 | @RunWith(Suite.class)
10 | @Suite.SuiteClasses({
11 | CHouseInterServiceProviderTest.class
12 | })
13 | public class CHouseJdbcUnitTests {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/old/dekaf-core-test-db/src/main/java/org/jetbrains/dekaf/core/DBTestHelperFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.Rdbms;
5 |
6 | import java.util.Set;
7 |
8 |
9 |
10 | /**
11 | * Creates applicable test helpers.
12 | *
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | public interface DBTestHelperFactory {
16 |
17 | /**
18 | * RDBMS that this factory supports.
19 | * @return the set of supported RDBMS.
20 | */
21 | @NotNull
22 | Set supportRdbms();
23 |
24 |
25 | /**
26 | * Creates a helper for the specified RDBMS.
27 | *
28 | *
29 | * This method creates a separate instance on each call.
30 | *
31 | *
32 | * @param facade the facade of database to create a helper for.
33 | * @return just created helper.
34 | */
35 | @NotNull
36 | DBTestHelper createTestHelperFor(@NotNull DBFacade facade);
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/old/dekaf-core-test-db/src/main/java/org/jetbrains/dekaf/core/UnknownDBTestHelperFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.Rdbms;
5 | import org.jetbrains.dekaf.jdbc.UnknownDatabase;
6 |
7 | import java.util.Collections;
8 | import java.util.Set;
9 |
10 |
11 |
12 | /**
13 | * @author Leonid Bushuev
14 | **/
15 | public class UnknownDBTestHelperFactory implements DBTestHelperFactory {
16 |
17 | private static final Set COLLECTION_OF_H2DB = Collections.singleton(UnknownDatabase.RDBMS);
18 |
19 |
20 | @NotNull
21 | @Override
22 | public Set supportRdbms() {
23 | return COLLECTION_OF_H2DB;
24 | }
25 |
26 |
27 | @NotNull
28 | @Override
29 | public DBTestHelper createTestHelperFor(@NotNull final DBFacade facade) {
30 | return new UnknownDBTestHelper(facade);
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/old/dekaf-core-test-db/src/main/java/org/jetbrains/dekaf/exceptions/DBProtectionException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | **/
11 | public class DBProtectionException extends DBException {
12 |
13 | public DBProtectionException(@NotNull final String message,
14 | @Nullable final String statementText) {
15 | super(message, statementText);
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/old/dekaf-core-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.UnknownDBTestHelperFactory
2 |
--------------------------------------------------------------------------------
/old/dekaf-core-test-db/src/main/resources/org/jetbrains/dekaf/core/UnknownDBTestHelper.sql:
--------------------------------------------------------------------------------
1 | ---- X10 ----
2 | if object_id('X10') is null
3 | execute('
4 | create view X10 as
5 | select 1 as X
6 | union all
7 | select 2 as X
8 | union all
9 | select 3 as X
10 | union all
11 | select 4 as X
12 | union all
13 | select 5 as X
14 | union all
15 | select 6 as X
16 | union all
17 | select 7 as X
18 | union all
19 | select 8 as X
20 | union all
21 | select 9 as X
22 | union all
23 | select 10 as X
24 | ')
25 | ;
26 |
27 |
28 | ---- X1000 ----
29 | if object_id('X1000') is null
30 | execute('
31 | create view X1000 as
32 | select (A.X - 1) * 100 + (B.X - 1) * 10 + C.X as X
33 | from X10 A,
34 | X10 B,
35 | X10 C
36 | ')
37 | ;
38 |
39 |
40 | ---- X1000000 ----
41 | if object_id('X1000000') is null
42 | execute('
43 | create view X1000000 as
44 | select (P.X - 1)*1000 + Q.X as X
45 | from X1000 P,
46 | X1000 Q
47 | ')
48 | ;
49 |
--------------------------------------------------------------------------------
/old/dekaf-core-test-db/src/test/java/org/jetbrains/dekaf/CommonIntegrationCase.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | import org.jetbrains.dekaf.core.DBFacade;
4 | import org.jetbrains.dekaf.core.DBTestHelper;
5 | import org.junit.AfterClass;
6 | import org.junit.BeforeClass;
7 | import org.junit.FixMethodOrder;
8 | import org.junit.runners.MethodSorters;
9 |
10 |
11 |
12 | /**
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | @FixMethodOrder(MethodSorters.JVM)
16 | public abstract class CommonIntegrationCase {
17 |
18 | protected static DBFacade DB;
19 | protected static DBTestHelper TH;
20 |
21 |
22 | @BeforeClass
23 | public static void setupTestDB() {
24 | System.setProperty("java.awt.headless", "true");
25 | DB = TestDB.DB;
26 | TH = TestDB.TH;
27 | }
28 |
29 |
30 | @AfterClass
31 | public static void disconnectFromTestDB() {
32 | if (DB != null) {
33 | TestDB.disconnect();
34 | }
35 | }
36 |
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/old/dekaf-core-test-db/src/test/java/org/jetbrains/dekaf/core/CommonExceptionRecognizingTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.CommonIntegrationCase;
5 | import org.jetbrains.dekaf.exceptions.NoTableOrViewException;
6 | import org.junit.Before;
7 | import org.junit.Test;
8 |
9 |
10 |
11 | /**
12 | * @author Leonid Bushuev from JetBrains
13 | */
14 | public class CommonExceptionRecognizingTest extends CommonIntegrationCase {
15 |
16 | @Before
17 | public void setUp() throws Exception {
18 | DB.connect();
19 | }
20 |
21 | @Test(expected = NoTableOrViewException.class)
22 | public void recognize_NoTableOrView() {
23 | DB.inTransaction(new InTransactionNoResult() {
24 | @Override
25 | public void run(@NotNull final DBTransaction tran) {
26 | tran.query("select * from unexistent_table", Layouts.existence()).run();
27 | }
28 | });
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/core/BaseCommandRunner.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.intermediate.IntegralIntermediateSeance;
4 |
5 |
6 |
7 | /**
8 | * @author Leonid Bushuev from JetBrains
9 | */
10 | public class BaseCommandRunner implements DBCommandRunner, BaseSeanceRunner {
11 |
12 | private final IntegralIntermediateSeance myInterSeance;
13 |
14 | protected BaseCommandRunner(final IntegralIntermediateSeance interSeance) {
15 | myInterSeance = interSeance;
16 | }
17 |
18 | @Override
19 | public DBCommandRunner withParams(final Object... params) {
20 | myInterSeance.setInParameters(params);
21 | return this;
22 | }
23 |
24 | @Override
25 | public DBCommandRunner run() {
26 | myInterSeance.execute();
27 | return this;
28 | }
29 |
30 |
31 | @Override
32 | public void close() {
33 | myInterSeance.close();
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/core/BaseSeanceRunner.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 | public interface BaseSeanceRunner {
7 |
8 | void close();
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/core/DBCommandRunner.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 | public interface DBCommandRunner {
7 |
8 | /**
9 | * Assigns command parameters.
10 | * @param params parameters, one for each '?' sign in the command.
11 | * @return the query.
12 | */
13 | DBCommandRunner withParams(Object... params);
14 |
15 | /**
16 | * Performs the query.
17 | */
18 | DBCommandRunner run();
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/core/DBScriptRunner.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 | public interface DBScriptRunner {
7 |
8 | /**
9 | * Performs the script - all commands one by one.
10 | */
11 | DBScriptRunner run();
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/core/DBSession.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 |
4 |
5 | /**
6 | * A session with database.
7 | *
8 | *
9 | * The instance of this session can be borrowed from {@link DBFacade},
10 | * or instantiated by {@link DBSessions}.
11 | *
12 | *
13 | * @see DBFacade
14 | * @see DBTransaction
15 | * @see DBSessions
16 | **/
17 | public interface DBSession extends DBTransaction, ImplementationAccessibleService {
18 |
19 | /**
20 | * Performs the given operation in transaction and returns the result.
21 | *
22 | * @param operation operation to perform.
23 | * @param type of result.
24 | * @return the result.
25 | */
26 | R inTransaction(InTransaction operation);
27 |
28 | /**
29 | * Performs the given operation in transaction and returns the result.
30 | *
31 | * @param operation operation to perform.
32 | */
33 | void inTransaction(InTransactionNoResult operation);
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/core/DBTransaction.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.sql.SqlCommand;
5 | import org.jetbrains.dekaf.sql.SqlQuery;
6 | import org.jetbrains.dekaf.sql.SqlScript;
7 |
8 |
9 |
10 | /**
11 | * Database transaction.
12 | **/
13 | public interface DBTransaction {
14 |
15 | @NotNull
16 | DBCommandRunner command(@NotNull final SqlCommand command);
17 |
18 | @NotNull
19 | DBCommandRunner command(@NotNull final String commandText);
20 |
21 | @NotNull
22 | DBQueryRunner query(@NotNull final SqlQuery query);
23 |
24 | @NotNull
25 | DBQueryRunner query(@NotNull final String queryText,
26 | @NotNull final ResultLayout layout);
27 |
28 | @NotNull
29 | DBScriptRunner script(@NotNull final SqlScript script);
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/core/InSession.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | * In-session closure.
9 | */
10 | public interface InSession {
11 |
12 | R run(@NotNull final DBSession session);
13 | }
14 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/core/InSessionNoResult.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | * In-session closure.
9 | */
10 | public interface InSessionNoResult {
11 |
12 | void run(@NotNull final DBSession session);
13 | }
14 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/core/InTransaction.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | * In-transaction closure.
9 | */
10 | public interface InTransaction {
11 |
12 | R run(@NotNull final DBTransaction tran);
13 | }
14 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/core/InTransactionNoResult.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | * In-transaction closure.
9 | */
10 | public interface InTransactionNoResult {
11 |
12 | void run(@NotNull final DBTransaction tran);
13 | }
14 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/core/QueryKind.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * Kind of SQL query.
5 | *
6 | * @author Leonid Bushuev from JetBrains
7 | */
8 | public enum QueryKind{
9 |
10 | /**
11 | * Select query or call to a function that returns cursor.
12 | */
13 | SELECT,
14 |
15 | /**
16 | * Insert/Update/Delete query or a code block that can be performed inside a transaction.
17 | */
18 | IUD,
19 |
20 | /**
21 | * Other kind of query (DDL or DCL).
22 | */
23 | OTHER
24 | }
25 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/core/ValueType.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 | public enum ValueType {
7 |
8 | BOOLEAN,
9 | BYTE,
10 | SHORT,
11 | INT,
12 | LONG,
13 | FLOAT,
14 | DOUBLE,
15 | DECIMAL,
16 | STRING,
17 | DATE,
18 | TIME,
19 | TIMESTAMP,
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/intermediate/AdaptIntermediateCursor.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.intermediate;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | * @author Leonid Bushuev from JetBrains
9 | */
10 | public abstract class AdaptIntermediateCursor implements IntegralIntermediateCursor {
11 |
12 | @NotNull
13 | protected final PrimeIntermediateCursor
15 | *
16 | *
17 | * Also contains interface {@link org.jetbrains.dekaf.intermediate.DBExceptionRecognizer} for RDBMS-specific errors analysis.
18 | *
19 | *
20 | *
21 | * @author Leonid Bushuev from JetBrains
22 | */
23 | package org.jetbrains.dekaf.intermediate;
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/jdbc/UnknownDatabase.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.Rdbms;
4 |
5 |
6 |
7 | /**
8 | * Unknown/unspecified RDBMS declaration class.
9 | *
10 | * @author Leonid Bushuev from JetBrains
11 | */
12 | public abstract class UnknownDatabase {
13 |
14 | /**
15 | * Unknown RDBMS marker.
16 | */
17 | public static final Rdbms RDBMS = Rdbms.of("UNKNOWN");
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/jdbc/UnknownDatabaseExceptionRecognizer.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 | public final class UnknownDatabaseExceptionRecognizer extends BaseExceptionRecognizer {
7 |
8 | public final static UnknownDatabaseExceptionRecognizer INSTANCE = new UnknownDatabaseExceptionRecognizer();
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/jdbc/UnknownDatabaseInfo.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | class UnknownDatabaseInfo {
4 |
5 | boolean isOracle, isDB2, isHsql, isDerby;
6 |
7 | String fromSingleRowTable = "";
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/jdbc/pooling/ConnectionPoolException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc.pooling;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 | import org.jetbrains.dekaf.exceptions.DBException;
6 |
7 |
8 |
9 | /**
10 | * @author Leonid Bushuev from JetBrains
11 | */
12 | public class ConnectionPoolException extends DBException {
13 |
14 | public ConnectionPoolException(@NotNull String message, @NotNull Throwable cause, @Nullable String statementText) {
15 | super(message, cause, statementText);
16 | }
17 |
18 |
19 | public ConnectionPoolException(@NotNull String message, @Nullable String statementText) {
20 | super(message, statementText);
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/jdbc/pooling/ConnectionPoolExhaustedException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc.pooling;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | * @author Leonid Bushuev from JetBrains
9 | */
10 | public class ConnectionPoolExhaustedException extends ConnectionPoolException {
11 | public ConnectionPoolExhaustedException(@NotNull String message) {
12 | super(message, null);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/jdbc/pooling/ConnectionPoolIsNotReadyException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc.pooling;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 | public class ConnectionPoolIsNotReadyException extends ConnectionPoolException {
7 |
8 | public ConnectionPoolIsNotReadyException(String message) {
9 | super(message, null);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/jdbc/pooling/ConnectionPoolOperationInterruptedException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc.pooling;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | */
11 | public class ConnectionPoolOperationInterruptedException extends ConnectionPoolException {
12 |
13 | public ConnectionPoolOperationInterruptedException(@NotNull String message, @NotNull Throwable cause, @Nullable String statementText) {
14 | super(message, cause, statementText);
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/jdbc/pooling/UnexpectedDataSourceException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc.pooling;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | */
11 | public class UnexpectedDataSourceException extends ConnectionPoolException {
12 |
13 | public UnexpectedDataSourceException(@NotNull String message, @Nullable String statementText) {
14 | super(message, statementText);
15 | }
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Dekaf — Java Database Access Layer Framework
3 | *
4 | *
5 | * Provides easy and clear access to databases.
6 | * See Dekaf Framework on GitHub
7 | *
8 | *
9 | *
10 | * Inner packages:
11 | *
12 | * - core: core and client-side interfaces and classes; client code should use this package.
13 | * - intermediate: interfaces and classes that are on an 'intermediate' layer (between Dekaf and vendor-provided API).
14 | * - jdbc: classes that uses JDBC (RDBMS vendor provided API) and implements intermediate interfaces.
15 | * - exceptions: exceptions classes.
16 | * - util: some utility functions.
17 | *
18 | *
19 | *
20 | *
21 | * This package also contains RDBMS markers.
22 | *
23 | *
24 | * @author Leonid Bushuev from JetBrains
25 | */
26 | package org.jetbrains.dekaf;
27 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/sql/TextPointer.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 | final class TextPointer {
7 |
8 | /**
9 | * Offset from the beginning of the text.
10 | */
11 | final int offset;
12 |
13 | /**
14 | * Row number, starts with 1.
15 | */
16 | final int row;
17 |
18 | /**
19 | * Number of positions inside the row, starts with 1.
20 | */
21 | final int pos;
22 |
23 |
24 | TextPointer(int offset, int row, int pos) {
25 | this.offset = offset;
26 | this.row = row;
27 | this.pos = pos;
28 | }
29 |
30 |
31 | @Override
32 | public boolean equals(Object o) {
33 | if (this == o) return true;
34 | if (o == null || getClass() != o.getClass()) return false;
35 |
36 | TextPointer pointer = (TextPointer) o;
37 |
38 | return offset == pointer.offset && pos == pointer.pos && row == pointer.row;
39 | }
40 |
41 |
42 | @Override
43 | public int hashCode() {
44 | return offset;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/util/Function.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.util;
2 |
3 | /**
4 | * Function of one argument.
5 | *
6 | *
7 | * Like this one: https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html
8 | *
9 | *
10 | * @param type of the argument.
11 | * @param type of the result.
12 | *
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | public interface Function {
16 |
17 | /**
18 | * The function itself.
19 | * @param arg argument.
20 | * @return result.
21 | */
22 | R apply(T arg);
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/util/StringOperator.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.util;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public interface StringOperator extends UnaryOperator {
7 |
8 | // nothing much
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/java/org/jetbrains/dekaf/util/UnaryOperator.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.util;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public interface UnaryOperator extends Function {
7 |
8 | // nothing much
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/resources/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 | Main-Class: org.jetbrains.dekaf.Dekaf
3 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBFederatedProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.BaseFederatedProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateFederatedProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.JdbcIntermediateFederatedProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.UnknownDatabaseProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.PrimeIntermediateFederatedProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.JdbcIntermediateFederatedProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/test/java/org/jetbrains/dekaf/core/BaseQueryRunnerDirectTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 | public class BaseQueryRunnerDirectTest extends BaseQueryRunnerTest {
7 | }
8 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/test/java/org/jetbrains/dekaf/core/BaseQueryRunnerPseudoRemoteTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.intermediate.AdaptIntermediateFacade;
5 | import org.jetbrains.dekaf.jdbc.JdbcIntermediateFacade;
6 |
7 |
8 |
9 | /**
10 | * @author Leonid Bushuev from JetBrains
11 | */
12 | public class BaseQueryRunnerPseudoRemoteTest extends BaseQueryRunnerTest {
13 |
14 | @NotNull
15 | protected BaseFacade prepareBaseFacade(@NotNull final JdbcIntermediateFacade jdbcFacade) {
16 | AdaptIntermediateFacade intermediateFacade = new AdaptIntermediateFacade(jdbcFacade);
17 | return new BaseFacade(intermediateFacade);
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/test/java/org/jetbrains/dekaf/core/Tetra.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | final class Tetra {
7 |
8 | int A;
9 | int B;
10 | int C;
11 | int D;
12 |
13 | public Tetra() {}
14 |
15 | public Tetra(final int a, final int b, final int c, final int d) {
16 | A = a;
17 | B = b;
18 | C = c;
19 | D = d;
20 | }
21 |
22 | @Override
23 | public String toString() {
24 | return A + "," + B + "," + C + "," + D;
25 | }
26 |
27 | @Override
28 | public boolean equals(final Object o) {
29 | if (this == o) return true;
30 | if (o == null || getClass() != o.getClass()) return false;
31 | Tetra that = (Tetra) o;
32 | return A == that.A && B == that.B && C == that.C && D == that.D;
33 | }
34 |
35 | @Override
36 | public int hashCode() {
37 | return A + B + C + D;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/test/java/org/jetbrains/dekaf/jdbc/BaseIntermediateInMemoryDBCase.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.intermediate.DBExceptionRecognizer;
4 |
5 | import java.sql.Connection;
6 |
7 |
8 |
9 | /**
10 | * @author Leonid Bushuev from JetBrains
11 | */
12 | public abstract class BaseIntermediateInMemoryDBCase extends BaseInMemoryDBCase {
13 |
14 | protected static DBExceptionRecognizer ourExceptionRecognizer = new BaseExceptionRecognizer();
15 |
16 |
17 | protected JdbcIntermediateSession openSession() {
18 | Connection connection = obtainConnection();
19 | JdbcIntermediateSession session =
20 | new JdbcIntermediateSession(null, ourExceptionRecognizer, connection, true);
21 | return session;
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/test/java/org/jetbrains/dekaf/jdbc/JdbcIntermediateSessionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.Test;
4 |
5 | import java.sql.Connection;
6 |
7 |
8 |
9 | public class JdbcIntermediateSessionTest extends BaseIntermediateInMemoryDBCase {
10 |
11 |
12 | @Test
13 | public void create_ping_close() {
14 | Connection connection = obtainConnection();
15 | JdbcIntermediateSession session =
16 | new JdbcIntermediateSession(null, ourExceptionRecognizer, connection, true);
17 | session.ping();
18 | session.close();
19 | }
20 |
21 |
22 | }
--------------------------------------------------------------------------------
/old/dekaf-core/src/test/java/org/jetbrains/dekaf/sql/SqlCommandTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.assertj.core.api.Assertions.assertThat;
6 |
7 |
8 |
9 | public class SqlCommandTest {
10 |
11 | @Test
12 | public void rewrite_basic() {
13 | SqlCommand cmd1 = new SqlCommand("AAA BBB CCC", 33, "name");
14 | SqlCommand cmd2 = cmd1.rewrite(Rewriters.replace("BBB", "XXX"));
15 |
16 | assertThat(cmd2.getSourceText()).isEqualTo("AAA XXX CCC");
17 |
18 | assertThat(cmd2.getRow()).isEqualTo(33);
19 | assertThat(cmd2.getName()).isEqualTo("name");
20 | }
21 |
22 | }
--------------------------------------------------------------------------------
/old/dekaf-core/src/test/resources/org/jetbrains/dekaf/sql/FileWithFragments.sql:
--------------------------------------------------------------------------------
1 | zero fragment
2 |
3 | ---- first-fragment ----
4 |
5 | the first fragment
6 |
7 | ---- second-fragment ----
8 |
9 | the second fragment
10 | the second fragment
11 |
12 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/test/resources/org/jetbrains/dekaf/sql/FileWithOneCommand.sql:
--------------------------------------------------------------------------------
1 | ---- TheCommand ----
2 | select something
3 | from some_table
4 |
--------------------------------------------------------------------------------
/old/dekaf-core/src/test/resources/org/jetbrains/dekaf/sql/ScriptumResourceFromJavaTest.sql:
--------------------------------------------------------------------------------
1 | -- Some comment at the top of the file.
2 |
3 |
4 | ---- FIRST ----
5 |
6 | select something from anything
7 |
8 |
9 |
10 | ---- SECOND ----
11 |
12 | select 2
13 |
14 |
15 | ---- SECOND + ORACLE ----
16 |
17 | select 2 from dual
18 |
19 |
20 |
21 | ------- THIRD -------
22 |
23 | call 3
24 |
25 |
26 | ---- MULTI_LINE ----
27 |
28 | select columns
29 | from table
30 | where the condition is met
31 |
32 |
33 | ---- lower_case ----
34 |
35 | select something_lower_case
36 |
37 |
38 | ---- München_Straße ----
39 |
40 | select etwas_von_München
41 |
42 |
43 | ---- Санкт-Петербург ----
44 |
45 | select Невский Проспект
46 |
47 |
48 | ---- THE_END ----
49 |
50 | select last_value
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/old/dekaf-exasol-test-db/src/main/java/org/jetbrains/dekaf/core/ExasolTestHelper.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.sql.Scriptum;
5 |
6 |
7 |
8 | public class ExasolTestHelper extends BaseTestHelper {
9 |
10 | public ExasolTestHelper(@NotNull final DBFacade db) {
11 | super(db, Scriptum.of(ExasolTestHelper.class));
12 | }
13 |
14 | @Override
15 | public void prepareX1() {
16 | performCommand("create or replace view X1 as select 1 X");
17 | }
18 |
19 | @Override
20 | public void prepareX1000() {
21 | performCommand(scriptum, "X1000");
22 | }
23 |
24 | @Override
25 | public void prepareX1000000() {
26 | prepareX1000();
27 | performCommand(scriptum, "X1000000");
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/old/dekaf-exasol-test-db/src/main/java/org/jetbrains/dekaf/core/ExasolTestHelperFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.Exasol;
5 | import org.jetbrains.dekaf.Rdbms;
6 |
7 | import java.util.Collections;
8 | import java.util.Set;
9 |
10 |
11 |
12 | public class ExasolTestHelperFactory implements DBTestHelperFactory {
13 |
14 | private static final Set COLLECTION_OF_EXASOL = Collections.singleton(Exasol.RDBMS);
15 |
16 |
17 | @NotNull
18 | @Override
19 | public Set supportRdbms() {
20 | return COLLECTION_OF_EXASOL;
21 | }
22 |
23 |
24 | @NotNull
25 | @Override
26 | public DBTestHelper createTestHelperFor(@NotNull final DBFacade facade) {
27 | return new ExasolTestHelper(facade);
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/old/dekaf-exasol-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.ExasolTestHelperFactory
2 |
--------------------------------------------------------------------------------
/old/dekaf-exasol-tests/src/test/java/org/jetbrains/dekaf/ExasolIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | import org.jetbrains.dekaf.core.ExasolCommandRunnerTest;
4 | import org.jetbrains.dekaf.core.ExasolPrimaryTest;
5 | import org.jetbrains.dekaf.core.ExasolQueryRunnerTest;
6 | import org.jetbrains.dekaf.core.ExasolSessionTest;
7 | import org.jetbrains.dekaf.jdbc.ExasolExceptionRecognizingTest;
8 | import org.junit.runner.RunWith;
9 | import org.junit.runners.Suite;
10 |
11 |
12 |
13 | @RunWith(Suite.class)
14 | @Suite.SuiteClasses({
15 | ExasolPrimaryTest.class,
16 | ExasolSessionTest.class,
17 | ExasolCommandRunnerTest.class,
18 | ExasolQueryRunnerTest.class,
19 | ExasolExceptionRecognizingTest.class
20 | })
21 | public class ExasolIntegrationTests {}
22 |
--------------------------------------------------------------------------------
/old/dekaf-exasol-tests/src/test/java/org/jetbrains/dekaf/core/ExasolCommandRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | public class ExasolCommandRunnerTest extends CommonCommandRunnerTest {
4 |
5 |
6 |
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/old/dekaf-exasol-tests/src/test/java/org/jetbrains/dekaf/core/ExasolPrimaryTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.Exasol;
4 | import org.junit.FixMethodOrder;
5 | import org.junit.Test;
6 | import org.junit.internal.AssumptionViolatedException;
7 | import org.junit.runners.MethodSorters;
8 |
9 | import static org.assertj.core.api.Assertions.assertThat;
10 |
11 |
12 |
13 | @FixMethodOrder(MethodSorters.JVM)
14 | public class ExasolPrimaryTest extends CommonPrimaryTest {
15 |
16 | @Test
17 | public void rdbms_is_Exasol() {
18 | assertThat(DB.rdbms()).isEqualTo(Exasol.RDBMS);
19 | }
20 |
21 |
22 | @Override
23 | public void getConnectionInfo_user() {
24 | throw new AssumptionViolatedException("In Exasol user can be empty");
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/old/dekaf-exasol-tests/src/test/java/org/jetbrains/dekaf/core/ExasolQueryRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | public class ExasolQueryRunnerTest extends CommonQueryRunnerTest {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/old/dekaf-exasol-tests/src/test/java/org/jetbrains/dekaf/core/ExasolSessionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.junit.FixMethodOrder;
4 | import org.junit.runners.MethodSorters;
5 |
6 |
7 |
8 | @FixMethodOrder(MethodSorters.JVM)
9 | public class ExasolSessionTest extends CommonSessionTest {
10 |
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/old/dekaf-exasol-tests/src/test/java/org/jetbrains/dekaf/jdbc/ExasolExceptionRecognizingTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.core.CommonExceptionRecognizingTest;
4 |
5 |
6 |
7 | public class ExasolExceptionRecognizingTest extends CommonExceptionRecognizingTest {
8 |
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/old/dekaf-exasol/src/main/java/org/jetbrains/dekaf/Exasol.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * Exasol declaration class.
5 | */
6 | public abstract class Exasol {
7 |
8 | /**
9 | * Exasol RDBMS marker.
10 | */
11 | public final static Rdbms RDBMS = Rdbms.of("EXASOL");
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/old/dekaf-exasol/src/main/java/org/jetbrains/dekaf/sql/ExasolSQL.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | public class ExasolSQL {
4 | }
5 |
--------------------------------------------------------------------------------
/old/dekaf-exasol/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.ExasolIntermediateProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-exasol/src/test/java/org/jetbrains/dekaf/jdbc/ExasolInterServiceProviderTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.Before;
4 | import org.junit.Test;
5 |
6 | import java.sql.Driver;
7 | import java.sql.DriverManager;
8 | import java.sql.SQLException;
9 |
10 | import static org.assertj.core.api.Assertions.assertThat;
11 | import static org.jetbrains.dekaf.jdbc.ExasolIntermediateProvider.EXASOL_CONNECTION_STRING_EXAMPLE;
12 |
13 |
14 |
15 | public class ExasolInterServiceProviderTest {
16 |
17 | protected ExasolIntermediateProvider myProvider;
18 |
19 | @Before
20 | public void setup() {
21 | myProvider = ExasolIntermediateProvider.INSTANCE;
22 | }
23 |
24 | @Test
25 | public void driverIsLoaded() throws SQLException {
26 | final Driver driver = DriverManager.getDriver(EXASOL_CONNECTION_STRING_EXAMPLE);
27 | assertThat(driver).isNotNull();
28 | }
29 |
30 | }
--------------------------------------------------------------------------------
/old/dekaf-exasol/src/test/java/org/jetbrains/dekaf/jdbc/ExasolInterServiceProviderUnitTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.assertions.PatternAssert;
4 | import org.junit.Test;
5 |
6 | import static org.jetbrains.dekaf.jdbc.ExasolIntermediateProvider.EXASOL_CONNECTION_STRING_EXAMPLE;
7 | import static org.jetbrains.dekaf.jdbc.ExasolIntermediateProvider.EXASOL_CONNECTION_STRING_PATTERN;
8 |
9 |
10 |
11 | public class ExasolInterServiceProviderUnitTest {
12 |
13 | @Test
14 | public void connectionStringExample_matches_connectionStringPattern() {
15 | PatternAssert.assertThat(EXASOL_CONNECTION_STRING_PATTERN)
16 | .fits(EXASOL_CONNECTION_STRING_EXAMPLE);
17 | }
18 |
19 | }
--------------------------------------------------------------------------------
/old/dekaf-exasol/src/test/java/org/jetbrains/dekaf/jdbc/ExasolJdbcIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 |
4 | import org.junit.runner.RunWith;
5 | import org.junit.runners.Suite;
6 |
7 |
8 |
9 | @RunWith(Suite.class)
10 | @Suite.SuiteClasses({
11 | ExasolInterServiceProviderTest.class
12 | })
13 | public class ExasolJdbcIntegrationTests {
14 |
15 | static {
16 | System.setProperty("java.awt.headless", "true");
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/old/dekaf-exasol/src/test/java/org/jetbrains/dekaf/jdbc/ExasolJdbcUnitTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 |
4 | import org.junit.runner.RunWith;
5 | import org.junit.runners.Suite;
6 |
7 |
8 |
9 | @RunWith(Suite.class)
10 | @Suite.SuiteClasses({
11 | ExasolInterServiceProviderTest.class
12 | })
13 | public class ExasolJdbcUnitTests {
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/old/dekaf-h2db-test-db/src/main/java/org/jetbrains/dekaf/core/H2dbTestHelper.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.sql.Scriptum;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | **/
11 | public class H2dbTestHelper extends BaseTestHelper {
12 |
13 | public H2dbTestHelper(@NotNull final DBFacade db) {
14 | super(db, Scriptum.of(H2dbTestHelper.class));
15 | }
16 |
17 | @Override
18 | public void prepareX1() {
19 | performCommand("create or replace view X1 as select 1 as X from dual");
20 | }
21 |
22 | @Override
23 | public void prepareX1000() {
24 | performCommand(scriptum, "X1000");
25 | }
26 |
27 | @Override
28 | public void prepareX1000000() {
29 | prepareX1000();
30 | performCommand(scriptum, "X1000000");
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/old/dekaf-h2db-test-db/src/main/java/org/jetbrains/dekaf/core/H2dbTestHelperFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.H2db;
5 | import org.jetbrains.dekaf.Rdbms;
6 |
7 | import java.util.Collections;
8 | import java.util.Set;
9 |
10 |
11 |
12 | /**
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | public class H2dbTestHelperFactory implements DBTestHelperFactory {
16 |
17 | private static final Set COLLECTION_OF_H2DB = Collections.singleton(H2db.RDBMS);
18 |
19 |
20 | @NotNull
21 | @Override
22 | public Set supportRdbms() {
23 | return COLLECTION_OF_H2DB;
24 | }
25 |
26 |
27 | @NotNull
28 | @Override
29 | public DBTestHelper createTestHelperFor(@NotNull final DBFacade facade) {
30 | return new H2dbTestHelper(facade);
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/old/dekaf-h2db-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.H2dbTestHelperFactory
2 |
--------------------------------------------------------------------------------
/old/dekaf-h2db-tests/src/test/java/org/jetbrains/dekaf/H2dbIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 |
7 | import org.jetbrains.dekaf.core.H2dbCommandRunnerTest;
8 | import org.jetbrains.dekaf.core.H2dbPrimaryTest;
9 | import org.jetbrains.dekaf.core.H2dbQueryRunnerTest;
10 | import org.jetbrains.dekaf.core.H2dbSessionTest;
11 | import org.jetbrains.dekaf.jdbc.H2dbExceptionRecognizingTest;
12 | import org.junit.runner.RunWith;
13 | import org.junit.runners.Suite;
14 |
15 |
16 |
17 | @RunWith(Suite.class)
18 | @Suite.SuiteClasses({
19 | H2dbPrimaryTest.class,
20 | H2dbSessionTest.class,
21 | H2dbCommandRunnerTest.class,
22 | H2dbQueryRunnerTest.class,
23 | H2dbExceptionRecognizingTest.class
24 | })
25 | public class H2dbIntegrationTests {}
26 |
--------------------------------------------------------------------------------
/old/dekaf-h2db-tests/src/test/java/org/jetbrains/dekaf/core/H2dbCommandRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class H2dbCommandRunnerTest extends CommonCommandRunnerTest {
7 |
8 |
9 |
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/old/dekaf-h2db-tests/src/test/java/org/jetbrains/dekaf/core/H2dbPrimaryTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.H2db;
4 | import org.junit.FixMethodOrder;
5 | import org.junit.Test;
6 | import org.junit.internal.AssumptionViolatedException;
7 | import org.junit.runners.MethodSorters;
8 |
9 | import static org.assertj.core.api.Assertions.assertThat;
10 |
11 |
12 |
13 | /**
14 | * @author Leonid Bushuev from JetBrains
15 | **/
16 | @FixMethodOrder(MethodSorters.JVM)
17 | public class H2dbPrimaryTest extends CommonPrimaryTest {
18 |
19 | @Test
20 | public void rdbms_is_H2db() {
21 | assertThat(DB.rdbms()).isEqualTo(H2db.RDBMS);
22 | }
23 |
24 |
25 | @Override
26 | public void getConnectionInfo_user() {
27 | throw new AssumptionViolatedException("In H2 user can be empty");
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/old/dekaf-h2db-tests/src/test/java/org/jetbrains/dekaf/core/H2dbQueryRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class H2dbQueryRunnerTest extends CommonQueryRunnerTest {
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/old/dekaf-h2db-tests/src/test/java/org/jetbrains/dekaf/core/H2dbSessionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.junit.FixMethodOrder;
4 | import org.junit.runners.MethodSorters;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | **/
11 | @FixMethodOrder(MethodSorters.JVM)
12 | public class H2dbSessionTest extends CommonSessionTest {
13 |
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/old/dekaf-h2db-tests/src/test/resources/org/jetbrains/dekaf/jdbc/H2dbExceptionRecognizingTest.sql:
--------------------------------------------------------------------------------
1 | ---- NoRows ----
2 | declare
3 | x natural;
4 | begin
5 | select 1
6 | into x
7 | from dual
8 | where 42 is null;
9 | end;
10 | /
11 |
12 |
--------------------------------------------------------------------------------
/old/dekaf-h2db/src/main/java/org/jetbrains/dekaf/H2db.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * H2 DB declaration class.
5 | *
6 | * @author Leonid Bushuev from JetBrains
7 | */
8 | public abstract class H2db {
9 |
10 | /**
11 | * H2 RDBMS marker.
12 | */
13 | public final static Rdbms RDBMS = Rdbms.of("H2");
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/old/dekaf-h2db/src/main/java/org/jetbrains/dekaf/sql/H2dbSQL.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class H2dbSQL {
7 | }
8 |
--------------------------------------------------------------------------------
/old/dekaf-h2db/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.H2dbIntermediateProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-h2db/src/test/java/org/jetbrains/dekaf/jdbc/H2dbInterServiceProviderTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.Before;
4 | import org.junit.Test;
5 |
6 | import java.sql.Driver;
7 | import java.sql.DriverManager;
8 | import java.sql.SQLException;
9 |
10 | import static org.assertj.core.api.Assertions.assertThat;
11 | import static org.jetbrains.dekaf.jdbc.H2dbIntermediateProvider.H2DB_CONNECTION_STRING_EXAMPLE;
12 |
13 |
14 |
15 | /**
16 | * @author Leonid Bushuev from JetBrains
17 | */
18 | public class H2dbInterServiceProviderTest {
19 |
20 | protected H2dbIntermediateProvider myProvider;
21 |
22 | @Before
23 | public void setup() {
24 | myProvider = H2dbIntermediateProvider.INSTANCE;
25 | }
26 |
27 | @Test
28 | public void driverIsLoaded() throws SQLException {
29 | final Driver driver = DriverManager.getDriver(H2DB_CONNECTION_STRING_EXAMPLE);
30 | assertThat(driver).isNotNull();
31 | }
32 |
33 | }
--------------------------------------------------------------------------------
/old/dekaf-h2db/src/test/java/org/jetbrains/dekaf/jdbc/H2dbInterServiceProviderUnitTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.assertions.PatternAssert;
4 | import org.junit.Test;
5 |
6 | import static org.jetbrains.dekaf.jdbc.H2dbIntermediateProvider.H2DB_CONNECTION_STRING_EXAMPLE;
7 | import static org.jetbrains.dekaf.jdbc.H2dbIntermediateProvider.H2DB_CONNECTION_STRING_PATTERN;
8 |
9 |
10 |
11 | /**
12 | * @author Leonid Bushuev from JetBrains
13 | */
14 | public class H2dbInterServiceProviderUnitTest {
15 |
16 | @Test
17 | public void connectionStringExample_matches_connectionStringPattern() {
18 | PatternAssert.assertThat(H2DB_CONNECTION_STRING_PATTERN)
19 | .fits(H2DB_CONNECTION_STRING_EXAMPLE);
20 | }
21 |
22 | }
--------------------------------------------------------------------------------
/old/dekaf-h2db/src/test/java/org/jetbrains/dekaf/jdbc/H2dbJdbcIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | H2dbInterServiceProviderTest.class
15 | })
16 | public class H2dbJdbcIntegrationTests {
17 |
18 | static {
19 | System.setProperty("java.awt.headless", "true");
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/old/dekaf-h2db/src/test/java/org/jetbrains/dekaf/jdbc/H2dbJdbcUnitTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | H2dbInterServiceProviderTest.class
15 | })
16 | public class H2dbJdbcUnitTests {
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/old/dekaf-mssql-test-db/src/main/java/org/jetbrains/dekaf/core/MssqlTestHelperFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.Mssql;
5 | import org.jetbrains.dekaf.Rdbms;
6 |
7 | import java.util.Collections;
8 | import java.util.Set;
9 |
10 |
11 |
12 | /**
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | public class MssqlTestHelperFactory implements DBTestHelperFactory {
16 |
17 | private static final Set COLLECTION_OF_MSSQL = Collections.singleton(Mssql.RDBMS);
18 |
19 |
20 | @NotNull
21 | @Override
22 | public Set supportRdbms() {
23 | return COLLECTION_OF_MSSQL;
24 | }
25 |
26 |
27 | @NotNull
28 | @Override
29 | public DBTestHelper createTestHelperFor(@NotNull final DBFacade facade) {
30 | return new MssqlTestHelper(facade);
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/old/dekaf-mssql-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.MssqlTestHelperFactory
2 |
--------------------------------------------------------------------------------
/old/dekaf-mssql-tests/src/test/java/org/jetbrains/dekaf/MssqlIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 |
7 | import org.jetbrains.dekaf.core.*;
8 | import org.jetbrains.dekaf.jdbc.MssqlExceptionRecognizerTest;
9 | import org.junit.runner.RunWith;
10 | import org.junit.runners.Suite;
11 |
12 |
13 |
14 | @RunWith(Suite.class)
15 | @Suite.SuiteClasses({
16 | MssqlPrimaryTest.class,
17 | MssqlSessionTest.class,
18 | MssqlCommandRunnerTest.class,
19 | MssqlQueryRunnerTest.class,
20 | MssqlExceptionRecognizerTest.class,
21 | MssqlTestHelperTest.class
22 | })
23 | public class MssqlIntegrationTests {}
24 |
--------------------------------------------------------------------------------
/old/dekaf-mssql-tests/src/test/java/org/jetbrains/dekaf/core/MssqlCommandRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class MssqlCommandRunnerTest extends CommonCommandRunnerTest {
7 |
8 |
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/old/dekaf-mssql-tests/src/test/java/org/jetbrains/dekaf/core/MssqlPrimaryTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.Mssql;
4 | import org.junit.FixMethodOrder;
5 | import org.junit.Test;
6 | import org.junit.runners.MethodSorters;
7 |
8 | import static org.assertj.core.api.Assertions.assertThat;
9 |
10 |
11 |
12 | /**
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | @FixMethodOrder(MethodSorters.JVM)
16 | public class MssqlPrimaryTest extends CommonPrimaryTest {
17 |
18 | @Test
19 | public void rdbms_is_Mssql() {
20 | assertThat(DB.rdbms()).isEqualTo(Mssql.RDBMS);
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/old/dekaf-mssql-tests/src/test/java/org/jetbrains/dekaf/core/MssqlSessionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.junit.FixMethodOrder;
4 | import org.junit.runners.MethodSorters;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | **/
11 | @FixMethodOrder(MethodSorters.JVM)
12 | public class MssqlSessionTest extends CommonSessionTest {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/old/dekaf-mssql-tests/src/test/java/org/jetbrains/dekaf/jdbc/MssqlExceptionRecognizerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.core.CommonExceptionRecognizingTest;
4 |
5 |
6 |
7 | /**
8 | * @author Leonid Bushuev from JetBrains
9 | */
10 | public class MssqlExceptionRecognizerTest extends CommonExceptionRecognizingTest {
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/old/dekaf-mssql/src/main/java/org/jetbrains/dekaf/Mssql.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * MsSQL declaration class.
5 | *
6 | * @author Leonid Bushuev from JetBrains
7 | */
8 | public abstract class Mssql {
9 |
10 | /**
11 | * MsSQL RDBMS marker.
12 | */
13 | public final static Rdbms RDBMS = Rdbms.of("MSSQL");
14 |
15 | public final static String AZURE_FLAVOUR = "Azure";
16 | }
17 |
--------------------------------------------------------------------------------
/old/dekaf-mssql/src/main/java/org/jetbrains/dekaf/sql/MicrosoftSQL.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class MicrosoftSQL {
7 | }
8 |
--------------------------------------------------------------------------------
/old/dekaf-mssql/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.MssqlIntermediateProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-mssql/src/test/java/org/jetbrains/dekaf/jdbc/MssqlInterServiceProviderTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.Before;
4 | import org.junit.Test;
5 |
6 | import java.sql.Driver;
7 | import java.sql.DriverManager;
8 | import java.sql.SQLException;
9 |
10 | import static org.assertj.core.api.Assertions.assertThat;
11 | import static org.jetbrains.dekaf.jdbc.MssqlIntermediateProvider.MSSQL_CONNECTION_STRING_EXAMPLE;
12 |
13 |
14 |
15 | /**
16 | * @author Leonid Bushuev from JetBrains
17 | */
18 | public class MssqlInterServiceProviderTest {
19 |
20 | protected MssqlIntermediateProvider myProvider;
21 |
22 | @Before
23 | public void setup() {
24 | myProvider = MssqlIntermediateProvider.INSTANCE;
25 | }
26 |
27 | @Test
28 | public void driverIsLoaded() throws SQLException {
29 | final Driver driver = DriverManager.getDriver(MSSQL_CONNECTION_STRING_EXAMPLE);
30 | assertThat(driver).isNotNull();
31 | }
32 |
33 | }
--------------------------------------------------------------------------------
/old/dekaf-mssql/src/test/java/org/jetbrains/dekaf/jdbc/MssqlInterServiceProviderUnitTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.assertions.PatternAssert;
4 | import org.junit.Test;
5 |
6 | import static org.jetbrains.dekaf.jdbc.MssqlIntermediateProvider.MSSQL_CONNECTION_STRING_EXAMPLE;
7 | import static org.jetbrains.dekaf.jdbc.MssqlIntermediateProvider.MSSQL_CONNECTION_STRING_PATTERN;
8 |
9 |
10 |
11 | /**
12 | * @author Leonid Bushuev from JetBrains
13 | */
14 | public class MssqlInterServiceProviderUnitTest {
15 |
16 | @Test
17 | public void connectionStringExample_matches_connectionStringPattern() {
18 | PatternAssert.assertThat(MSSQL_CONNECTION_STRING_PATTERN)
19 | .fits(MSSQL_CONNECTION_STRING_EXAMPLE);
20 | }
21 |
22 | }
--------------------------------------------------------------------------------
/old/dekaf-mssql/src/test/java/org/jetbrains/dekaf/jdbc/MssqlJdbcIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | MssqlInterServiceProviderTest.class
15 | })
16 | public class MssqlJdbcIntegrationTests {
17 |
18 | static {
19 | System.setProperty("java.awt.headless", "true");
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/old/dekaf-mssql/src/test/java/org/jetbrains/dekaf/jdbc/MssqlJdbcUnitTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | MssqlInterServiceProviderTest.class
15 | })
16 | public class MssqlJdbcUnitTests {
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/old/dekaf-mysql-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.MysqlTestHelperFactory
2 |
--------------------------------------------------------------------------------
/old/dekaf-mysql-tests/src/test/java/org/jetbrains/dekaf/MysqlIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 |
7 | import org.jetbrains.dekaf.core.*;
8 | import org.jetbrains.dekaf.jdbc.MysqlExceptionRecognizerTest;
9 | import org.junit.runner.RunWith;
10 | import org.junit.runners.Suite;
11 |
12 |
13 |
14 | @RunWith(Suite.class)
15 | @Suite.SuiteClasses({
16 | MysqlPrimaryTest.class,
17 | MysqlSessionTest.class,
18 | MysqlCommandRunnerTest.class,
19 | MysqlQueryRunnerTest.class,
20 | MysqlExceptionRecognizerTest.class,
21 | MysqlTestHelperTest.class,
22 | MysqlVersionTest.class
23 | })
24 | public class MysqlIntegrationTests {}
25 |
--------------------------------------------------------------------------------
/old/dekaf-mysql-tests/src/test/java/org/jetbrains/dekaf/core/MysqlCommandRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class MysqlCommandRunnerTest extends CommonCommandRunnerTest {
7 |
8 |
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/old/dekaf-mysql-tests/src/test/java/org/jetbrains/dekaf/core/MysqlPrimaryTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.Mysql;
4 | import org.junit.FixMethodOrder;
5 | import org.junit.Ignore;
6 | import org.junit.Test;
7 | import org.junit.internal.AssumptionViolatedException;
8 | import org.junit.runners.MethodSorters;
9 |
10 | import static org.assertj.core.api.Assertions.assertThat;
11 |
12 |
13 |
14 | /**
15 | * @author Leonid Bushuev from JetBrains
16 | **/
17 | @FixMethodOrder(MethodSorters.JVM)
18 | public class MysqlPrimaryTest extends CommonPrimaryTest {
19 |
20 | @Test
21 | public void rdbms_is_Mysql() {
22 | assertThat(DB.rdbms()).isEqualTo(Mysql.RDBMS);
23 | }
24 |
25 |
26 | @Override
27 | public void getConnectionInfo_database() {
28 | throw new AssumptionViolatedException("For MySQL a database name is not applicable");
29 | }
30 |
31 | @Override
32 | @Test @Ignore
33 | public void zapSchema_foreignKeys() {
34 | // http://stackoverflow.com/questions/4061293/mysql-cant-create-table-errno-150
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/old/dekaf-mysql-tests/src/test/java/org/jetbrains/dekaf/core/MysqlSessionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.junit.FixMethodOrder;
4 | import org.junit.runners.MethodSorters;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | **/
11 | @FixMethodOrder(MethodSorters.JVM)
12 | public class MysqlSessionTest extends CommonSessionTest {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/old/dekaf-mysql-tests/src/test/java/org/jetbrains/dekaf/core/MysqlVersionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.util.Version;
4 | import org.junit.Assert;
5 | import org.junit.Test;
6 |
7 | import static org.jetbrains.dekaf.jdbc.MysqlIntermediateFacade.parseServerVersion;
8 |
9 |
10 |
11 | public class MysqlVersionTest {
12 | @Test
13 | public void test1() {
14 | doTest(
15 | "10.1.34-MariaDB-0ubuntu0.18.04.1",
16 | 10, 1, 34);
17 | }
18 |
19 | @Test
20 | public void test2() {
21 | doTest(
22 | "10.1.31-MariaDB",
23 | 10, 1, 31);
24 | }
25 |
26 | @Test
27 | public void test3() {
28 | doTest(
29 | "5.2.14-MariaDB-mariadb122~wheezy",
30 | 5, 2, 14);
31 | }
32 |
33 | @Test
34 | public void test4() {
35 | doTest(
36 | "5.5.59-MariaDB-1~wheezy",
37 | 5, 5, 59);
38 | }
39 |
40 | private void doTest(String verStr, int... ver) {
41 | Assert.assertEquals(Version.of(ver), parseServerVersion(verStr));
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/old/dekaf-mysql-tests/src/test/java/org/jetbrains/dekaf/jdbc/MysqlExceptionRecognizerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.core.CommonExceptionRecognizingTest;
4 |
5 |
6 |
7 | /**
8 | * @author Leonid Bushuev from JetBrains
9 | */
10 | public class MysqlExceptionRecognizerTest extends CommonExceptionRecognizingTest {
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/old/dekaf-mysql/src/main/java/org/jetbrains/dekaf/Mysql.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * MySQL declaration class.
5 | *
6 | * @author Leonid Bushuev from JetBrains
7 | */
8 | public abstract class Mysql {
9 |
10 | /**
11 | * MySQL RDBMS marker.
12 | */
13 | public final static Rdbms RDBMS = Rdbms.of("MYSQL");
14 |
15 | public final static String MYSQL_FLAVOUR = "MySQL";
16 | public final static String MARIADB_FLAVOUR = "MariaDB";
17 | public final static String MEMSQL_FLAVOUR = "MemSQL";
18 | }
19 |
--------------------------------------------------------------------------------
/old/dekaf-mysql/src/main/java/org/jetbrains/dekaf/jdbc/MysqlConsts.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public interface MysqlConsts {
7 |
8 | /**
9 | * Fetching whole result set at once when non-pack mode,
10 | * fetching row by row in pack mode.
11 | */
12 | byte FETCH_STRATEGY_AUTO = 0;
13 |
14 | /**
15 | * Always fetch row by row.
16 | */
17 | byte FETCH_STRATEGY_ROW = 1;
18 |
19 | /**
20 | * Always fetch all at once.
21 | */
22 | byte FETCH_STRATEGY_WHOLE = 2;
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/old/dekaf-mysql/src/main/java/org/jetbrains/dekaf/sql/MySQL.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class MySQL {
7 | }
8 |
--------------------------------------------------------------------------------
/old/dekaf-mysql/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.MysqlIntermediateProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-mysql/src/test/java/org/jetbrains/dekaf/jdbc/MysqlInterServiceProviderTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.Before;
4 | import org.junit.Test;
5 |
6 | import java.sql.Driver;
7 | import java.sql.DriverManager;
8 | import java.sql.SQLException;
9 |
10 | import static org.assertj.core.api.Assertions.assertThat;
11 | import static org.jetbrains.dekaf.jdbc.MysqlIntermediateProvider.MYSQL_CONNECTION_STRING_EXAMPLE;
12 |
13 |
14 |
15 | /**
16 | * @author Leonid Bushuev from JetBrains
17 | */
18 | public class MysqlInterServiceProviderTest {
19 |
20 | protected MysqlIntermediateProvider myProvider;
21 |
22 | @Before
23 | public void setup() {
24 | myProvider = MysqlIntermediateProvider.INSTANCE;
25 | }
26 |
27 | @Test
28 | public void driverIsLoaded() throws SQLException {
29 | final Driver driver = DriverManager.getDriver(MYSQL_CONNECTION_STRING_EXAMPLE);
30 | assertThat(driver).isNotNull();
31 | }
32 |
33 | }
--------------------------------------------------------------------------------
/old/dekaf-mysql/src/test/java/org/jetbrains/dekaf/jdbc/MysqlInterServiceProviderUnitTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.assertions.PatternAssert;
4 | import org.junit.Test;
5 |
6 | import static org.jetbrains.dekaf.jdbc.MysqlIntermediateProvider.MYSQL_CONNECTION_STRING_EXAMPLE;
7 | import static org.jetbrains.dekaf.jdbc.MysqlIntermediateProvider.MYSQL_CONNECTION_STRING_PATTERN;
8 |
9 |
10 |
11 | /**
12 | * @author Leonid Bushuev from JetBrains
13 | */
14 | public class MysqlInterServiceProviderUnitTest {
15 |
16 | @Test
17 | public void connectionStringExample_matches_connectionStringPattern() {
18 | PatternAssert.assertThat(MYSQL_CONNECTION_STRING_PATTERN)
19 | .fits(MYSQL_CONNECTION_STRING_EXAMPLE);
20 | }
21 |
22 | }
--------------------------------------------------------------------------------
/old/dekaf-mysql/src/test/java/org/jetbrains/dekaf/jdbc/MysqlJdbcIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | MysqlInterServiceProviderTest.class
15 | })
16 | public class MysqlJdbcIntegrationTests {
17 |
18 | static {
19 | System.setProperty("java.awt.headless", "true");
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/old/dekaf-mysql/src/test/java/org/jetbrains/dekaf/jdbc/MysqlJdbcUnitTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | MysqlInterServiceProviderTest.class,
15 | MysqlIntermediateSessionUnitTest.class
16 | })
17 | public class MysqlJdbcUnitTests {
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/old/dekaf-oracle-test-db/src/main/java/org/jetbrains/dekaf/core/OracleTestHelperFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.Oracle;
5 | import org.jetbrains.dekaf.Rdbms;
6 |
7 | import java.util.Collections;
8 | import java.util.Set;
9 |
10 |
11 |
12 | /**
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | public class OracleTestHelperFactory implements DBTestHelperFactory {
16 |
17 | private static final Set COLLECTION_OF_ORACLE = Collections.singleton(Oracle.RDBMS);
18 |
19 |
20 | @NotNull
21 | @Override
22 | public Set supportRdbms() {
23 | return COLLECTION_OF_ORACLE;
24 | }
25 |
26 |
27 | @NotNull
28 | @Override
29 | public DBTestHelper createTestHelperFor(@NotNull final DBFacade facade) {
30 | return new OracleTestHelper(facade);
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/old/dekaf-oracle-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.OracleTestHelperFactory
2 |
--------------------------------------------------------------------------------
/old/dekaf-oracle-tests/src/test/java/org/jetbrains/dekaf/core/OracleCommandRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class OracleCommandRunnerTest extends CommonCommandRunnerTest {
7 |
8 |
9 |
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/old/dekaf-oracle-tests/src/test/java/org/jetbrains/dekaf/core/OraclePrimaryTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.Oracle;
4 | import org.junit.FixMethodOrder;
5 | import org.junit.Test;
6 | import org.junit.runners.MethodSorters;
7 |
8 | import static org.assertj.core.api.Assertions.assertThat;
9 |
10 |
11 |
12 | /**
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | @FixMethodOrder(MethodSorters.JVM)
16 | public class OraclePrimaryTest extends CommonPrimaryTest {
17 |
18 | @Test
19 | public void rdbms_is_Oracle() {
20 | assertThat(DB.rdbms()).isEqualTo(Oracle.RDBMS);
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/old/dekaf-oracle-tests/src/test/java/org/jetbrains/dekaf/core/OracleQueryRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 |
6 |
7 | /**
8 | * @author Leonid Bushuev from JetBrains
9 | **/
10 | public class OracleQueryRunnerTest extends CommonQueryRunnerTest {
11 |
12 |
13 | @NotNull
14 | @Override
15 | protected String sqlNow() {
16 | return "sysdate";
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/old/dekaf-oracle-tests/src/test/java/org/jetbrains/dekaf/core/OracleSessionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.junit.FixMethodOrder;
4 | import org.junit.runners.MethodSorters;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | **/
11 | @FixMethodOrder(MethodSorters.JVM)
12 | public class OracleSessionTest extends CommonSessionTest {
13 |
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/old/dekaf-oracle-tests/src/test/resources/org/jetbrains/dekaf/jdbc/OracleExceptionRecognizingTest.sql:
--------------------------------------------------------------------------------
1 | ---- NoRows ----
2 | declare
3 | x natural;
4 | begin
5 | select 1
6 | into x
7 | from dual
8 | where 42 is null;
9 | end;
10 | /
11 |
12 |
--------------------------------------------------------------------------------
/old/dekaf-oracle/src/main/java/org/jetbrains/dekaf/Oracle.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 | public abstract class Oracle {
7 |
8 | /**
9 | * Oracle RDBMS marker.
10 | */
11 | public static final Rdbms RDBMS = Rdbms.of("ORACLE");
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/old/dekaf-oracle/src/main/java/org/jetbrains/dekaf/exceptions/OracleTimezoneRegionNotFoundException.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.exceptions;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | import java.sql.SQLException;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | */
13 | public class OracleTimezoneRegionNotFoundException extends DBConnectionException {
14 |
15 | public OracleTimezoneRegionNotFoundException(@NotNull final String message,
16 | @NotNull final SQLException sqle,
17 | @Nullable final String statementText) {
18 | super(message, sqle, statementText);
19 | }
20 |
21 | public OracleTimezoneRegionNotFoundException(@NotNull final SQLException sqlException,
22 | @Nullable final String statementText) {
23 | super(sqlException, statementText);
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/old/dekaf-oracle/src/main/java/org/jetbrains/dekaf/sql/OracleSQL.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class OracleSQL {
7 | }
8 |
--------------------------------------------------------------------------------
/old/dekaf-oracle/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.OracleIntermediateProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-oracle/src/test/java/org/jetbrains/dekaf/jdbc/OracleJdbcIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | OracleIntermediateProviderUnitTest.class
15 | })
16 | public class OracleJdbcIntegrationTests {
17 |
18 | static {
19 | System.setProperty("java.awt.headless", "true");
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/old/dekaf-oracle/src/test/java/org/jetbrains/dekaf/jdbc/OracleJdbcUnitTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | OracleIntermediateProviderUnitTest.class
15 | })
16 | public class OracleJdbcUnitTests {
17 | }
18 |
--------------------------------------------------------------------------------
/old/dekaf-postgres-test-db/src/main/java/org/jetbrains/dekaf/core/PostgresTestHelperFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.Postgres;
5 | import org.jetbrains.dekaf.Rdbms;
6 |
7 | import java.util.Collections;
8 | import java.util.Set;
9 |
10 |
11 |
12 | /**
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | public class PostgresTestHelperFactory implements DBTestHelperFactory {
16 |
17 | private static final Set COLLECTION_OF_POSTGRE = Collections.singleton(Postgres.RDBMS);
18 |
19 |
20 | @NotNull
21 | @Override
22 | public Set supportRdbms() {
23 | return COLLECTION_OF_POSTGRE;
24 | }
25 |
26 |
27 | @NotNull
28 | @Override
29 | public DBTestHelper createTestHelperFor(@NotNull final DBFacade facade) {
30 | return new PostgresTestHelper(facade);
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/old/dekaf-postgres-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.PostgresTestHelperFactory
2 |
--------------------------------------------------------------------------------
/old/dekaf-postgres-tests/src/test/java/org/jetbrains/dekaf/PostgresIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 |
7 | import org.jetbrains.dekaf.core.*;
8 | import org.jetbrains.dekaf.jdbc.PostgresExceptionRecognizerTest;
9 | import org.junit.runner.RunWith;
10 | import org.junit.runners.Suite;
11 |
12 |
13 |
14 | @RunWith(Suite.class)
15 | @Suite.SuiteClasses({
16 | PostgresPrimaryTest.class,
17 | PostgresSessionTest.class,
18 | PostgresCommandRunnerTest.class,
19 | PostgresQueryRunnerTest.class,
20 | PostgresExceptionRecognizerTest.class,
21 | SudokuTest.class,
22 | PostgresTestHelperTest.class
23 | })
24 | public class PostgresIntegrationTests {}
25 |
--------------------------------------------------------------------------------
/old/dekaf-postgres-tests/src/test/java/org/jetbrains/dekaf/core/PostgresCommandRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class PostgresCommandRunnerTest extends CommonCommandRunnerTest {
7 |
8 |
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/old/dekaf-postgres-tests/src/test/java/org/jetbrains/dekaf/core/PostgresPrimaryTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.Postgres;
4 | import org.junit.FixMethodOrder;
5 | import org.junit.Test;
6 | import org.junit.runners.MethodSorters;
7 |
8 | import static org.assertj.core.api.Assertions.assertThat;
9 |
10 |
11 |
12 | /**
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | @FixMethodOrder(MethodSorters.JVM)
16 | public class PostgresPrimaryTest extends CommonPrimaryTest {
17 |
18 | @Test
19 | public void rdbms_is_Postgres() {
20 | assertThat(DB.rdbms()).isEqualTo(Postgres.RDBMS);
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/old/dekaf-postgres-tests/src/test/java/org/jetbrains/dekaf/core/PostgresSessionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.junit.FixMethodOrder;
4 | import org.junit.runners.MethodSorters;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | **/
11 | @FixMethodOrder(MethodSorters.JVM)
12 | public class PostgresSessionTest extends CommonSessionTest {
13 |
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/old/dekaf-postgres-tests/src/test/java/org/jetbrains/dekaf/jdbc/PostgresExceptionRecognizerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.core.CommonExceptionRecognizingTest;
4 |
5 |
6 |
7 | /**
8 | * @author Leonid Bushuev from JetBrains
9 | */
10 | public class PostgresExceptionRecognizerTest extends CommonExceptionRecognizingTest {
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/old/dekaf-postgres-tests/src/test/resources/org/jetbrains/dekaf/core/SudokuTest.sql:
--------------------------------------------------------------------------------
1 | ---- create-table-sudoku ----
2 | create table Sudoku
3 | (
4 | Id integer not null
5 | constraint Sudoku_pk primary key,
6 | Rebus smallint[9][9],
7 | Solution smallint[9][9]
8 | );
9 |
10 | ---- populate-table-sudoku ----
11 | insert into Sudoku
12 | values (1, e'{{0,0,0,2,6,0,7,0,1}, {6,8,0,0,7,0,0,9,0}, {1,9,0,0,0,4,5,0,0}}',
13 | e'{{4,3,5,2,6,9,7,8,1}, {6,8,2,5,7,1,4,9,3}, {1,9,7,8,3,4,5,6,2}}'),
14 | (2, e'{{0,0,0,2,6,0,7,0,1}, {6,8,0,0,7,0,0,9,0}, {1,9,0,0,0,4,5,0,0}}',
15 | e'{{4,3,5,2,6,9,7,8,1}, {6,8,2,5,7,1,4,9,3}, {1,9,7,8,3,4,5,6,2}}');
16 |
17 | ---- retrieve-one-sudoku ----
18 | select Rebus
19 | from Sudoku
20 | where Rebus is not null
21 | limit 1;
22 |
23 | ---- retrieve-couple-of-sudoku ----
24 | select Rebus, Solution
25 | from Sudoku
26 | where Rebus is not null
27 | limit 1;
28 |
29 | ---- retrieve-super-matrix ----
30 | select Rebus, Solution
31 | from Sudoku
32 | order by Id;
33 |
--------------------------------------------------------------------------------
/old/dekaf-postgres/src/main/java/org/jetbrains/dekaf/Postgres.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * PostgreSQL declaration class.
5 | *
6 | * @author Leonid Bushuev from JetBrains
7 | */
8 | public abstract class Postgres {
9 |
10 | /**
11 | * PostgreSQL RDBMS marker.
12 | */
13 | public final static Rdbms RDBMS = Rdbms.of("POSTGRES");
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/old/dekaf-postgres/src/main/java/org/jetbrains/dekaf/sql/PostgreSQL.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class PostgreSQL {
7 | }
8 |
--------------------------------------------------------------------------------
/old/dekaf-postgres/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.PostgresIntermediateProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-postgres/src/test/java/org/jetbrains/dekaf/jdbc/PostgresInterServiceProviderTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.Before;
4 | import org.junit.Test;
5 |
6 | import java.sql.Driver;
7 | import java.sql.DriverManager;
8 | import java.sql.SQLException;
9 |
10 | import static org.assertj.core.api.Assertions.assertThat;
11 | import static org.jetbrains.dekaf.jdbc.PostgresIntermediateProvider.POSTGRES_CONNECTION_STRING_EXAMPLE;
12 |
13 |
14 |
15 | /**
16 | * @author Leonid Bushuev from JetBrains
17 | */
18 | public class PostgresInterServiceProviderTest {
19 |
20 | protected PostgresIntermediateProvider myProvider;
21 |
22 | @Before
23 | public void setup() {
24 | myProvider = PostgresIntermediateProvider.INSTANCE;
25 | }
26 |
27 | @Test
28 | public void driverIsLoaded() throws SQLException {
29 | final Driver driver = DriverManager.getDriver(POSTGRES_CONNECTION_STRING_EXAMPLE);
30 | assertThat(driver).isNotNull();
31 | }
32 |
33 | }
--------------------------------------------------------------------------------
/old/dekaf-postgres/src/test/java/org/jetbrains/dekaf/jdbc/PostgresInterServiceProviderUnitTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.assertions.PatternAssert;
4 | import org.junit.Test;
5 |
6 | import static org.jetbrains.dekaf.jdbc.PostgresIntermediateProvider.POSTGRES_CONNECTION_STRING_EXAMPLE;
7 | import static org.jetbrains.dekaf.jdbc.PostgresIntermediateProvider.POSTGRES_CONNECTION_STRING_PATTERN;
8 |
9 |
10 |
11 | /**
12 | * @author Leonid Bushuev from JetBrains
13 | */
14 | public class PostgresInterServiceProviderUnitTest {
15 |
16 | @Test
17 | public void connectionStringExample_matches_connectionStringPattern() {
18 | PatternAssert.assertThat(POSTGRES_CONNECTION_STRING_PATTERN)
19 | .fits(POSTGRES_CONNECTION_STRING_EXAMPLE);
20 | }
21 |
22 | }
--------------------------------------------------------------------------------
/old/dekaf-postgres/src/test/java/org/jetbrains/dekaf/jdbc/PostgresJdbcIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | PostgresInterServiceProviderTest.class
15 | })
16 | public class PostgresJdbcIntegrationTests {
17 |
18 | static {
19 | System.setProperty("java.awt.headless", "true");
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/old/dekaf-postgres/src/test/java/org/jetbrains/dekaf/jdbc/PostgresJdbcUnitTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | PostgresInterServiceProviderTest.class
15 | })
16 | public class PostgresJdbcUnitTests {
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/old/dekaf-redshift-test-db/src/main/java/org/jetbrains/dekaf/core/RedshiftTestHelper.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.sql.Scriptum;
5 |
6 |
7 |
8 | public class RedshiftTestHelper extends BaseTestHelper {
9 |
10 | public RedshiftTestHelper(@NotNull DBFacade db) {
11 | super(db, Scriptum.of(RedshiftTestHelper.class));
12 | }
13 |
14 | @Override
15 | public void prepareX1() {
16 | performCommand("create or replace view X1 as select 1");
17 | }
18 |
19 | @Override
20 | public void prepareX1000() {
21 | performCommand(scriptum, "X1000");
22 | }
23 |
24 | @Override
25 | public void prepareX1000000() {
26 | performCommand(scriptum, "X1000000");
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/old/dekaf-redshift-test-db/src/main/java/org/jetbrains/dekaf/core/RedshiftTestHelperFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.Rdbms;
5 | import org.jetbrains.dekaf.Redshift;
6 |
7 | import java.util.Collections;
8 | import java.util.Set;
9 |
10 |
11 |
12 | public class RedshiftTestHelperFactory implements DBTestHelperFactory {
13 |
14 | private static final Set COLLECTION_OF_REDSHIFT = Collections.singleton(Redshift.RDBMS);
15 |
16 | @NotNull
17 | @Override
18 | public Set supportRdbms() {
19 | return COLLECTION_OF_REDSHIFT;
20 | }
21 |
22 | @NotNull
23 | @Override
24 | public DBTestHelper createTestHelperFor(@NotNull final DBFacade facade) {
25 | return new RedshiftTestHelper(facade);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/old/dekaf-redshift-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.RedshiftTestHelperFactory
2 |
--------------------------------------------------------------------------------
/old/dekaf-redshift-tests/src/test/java/org/jetbrains/dekaf/RedshiftIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 |
4 | import org.jetbrains.dekaf.core.RedshiftCommandRunnerTest;
5 | import org.jetbrains.dekaf.core.RedshiftPrimaryTest;
6 | import org.jetbrains.dekaf.core.RedshiftQueryRunnerTest;
7 | import org.jetbrains.dekaf.core.RedshiftSessionTest;
8 | import org.jetbrains.dekaf.jdbc.RedshiftExceptionRecognizingTest;
9 | import org.junit.runner.RunWith;
10 | import org.junit.runners.Suite;
11 |
12 |
13 |
14 | @RunWith(Suite.class)
15 | @Suite.SuiteClasses({
16 | RedshiftPrimaryTest.class,
17 | RedshiftSessionTest.class,
18 | RedshiftCommandRunnerTest.class,
19 | RedshiftQueryRunnerTest.class,
20 | RedshiftExceptionRecognizingTest.class
21 | })
22 | public class RedshiftIntegrationTests {}
23 |
--------------------------------------------------------------------------------
/old/dekaf-redshift-tests/src/test/java/org/jetbrains/dekaf/core/RedshiftCommandRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 |
4 |
5 | public class RedshiftCommandRunnerTest extends CommonCommandRunnerTest {
6 |
7 | }
--------------------------------------------------------------------------------
/old/dekaf-redshift-tests/src/test/java/org/jetbrains/dekaf/core/RedshiftPrimaryTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.Redshift;
4 | import org.junit.FixMethodOrder;
5 | import org.junit.Test;
6 | import org.junit.runners.MethodSorters;
7 |
8 | import static org.assertj.core.api.Assertions.assertThat;
9 |
10 |
11 |
12 | @FixMethodOrder(MethodSorters.JVM)
13 | public class RedshiftPrimaryTest extends CommonPrimaryTest {
14 |
15 | @Test
16 | public void rdbms_is_Redshift() {
17 | assertThat(DB.rdbms()).isEqualTo(Redshift.RDBMS);
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/old/dekaf-redshift-tests/src/test/java/org/jetbrains/dekaf/core/RedshiftSessionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.junit.FixMethodOrder;
4 | import org.junit.runners.MethodSorters;
5 |
6 |
7 |
8 | @FixMethodOrder(MethodSorters.JVM)
9 | public class RedshiftSessionTest extends CommonSessionTest {
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/old/dekaf-redshift-tests/src/test/java/org/jetbrains/dekaf/jdbc/RedshiftExceptionRecognizingTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.core.CommonExceptionRecognizingTest;
4 |
5 |
6 |
7 | public class RedshiftExceptionRecognizingTest extends CommonExceptionRecognizingTest {
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/old/dekaf-redshift/src/main/java/org/jetbrains/dekaf/Redshift.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | public final class Redshift {
4 |
5 | public static final Rdbms RDBMS = Rdbms.of("REDSHIFT");
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/old/dekaf-redshift/src/main/java/org/jetbrains/dekaf/sql/RedshiftSQL.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | public class RedshiftSQL {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/old/dekaf-redshift/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.RedshiftIntermediateProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-redshift/src/test/java/org/jetbrains/dekaf/jdbc/RedshiftInterServiceProviderTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.Before;
4 | import org.junit.Test;
5 |
6 | import java.sql.Driver;
7 | import java.sql.DriverManager;
8 | import java.sql.SQLException;
9 |
10 | import static org.assertj.core.api.Assertions.assertThat;
11 | import static org.jetbrains.dekaf.jdbc.RedshiftIntermediateProvider.REDSHIFT_CONNECTION_STRING_EXAMPLE;
12 |
13 |
14 |
15 | public class RedshiftInterServiceProviderTest {
16 | protected RedshiftIntermediateProvider myProvider;
17 |
18 | @Before
19 | public void setup() {
20 | myProvider = RedshiftIntermediateProvider.INSTANCE;
21 | }
22 |
23 | @Test
24 | public void driverIsLoaded() throws SQLException {
25 | Driver driver = DriverManager.getDriver(REDSHIFT_CONNECTION_STRING_EXAMPLE);
26 | assertThat(driver).isNotNull();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/old/dekaf-redshift/src/test/java/org/jetbrains/dekaf/jdbc/RedshiftInterServiceProviderUnitTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.assertj.core.api.Assertions.assertThat;
6 | import static org.jetbrains.dekaf.jdbc.RedshiftIntermediateProvider.REDSHIFT_CONNECTION_STRING_EXAMPLE;
7 | import static org.jetbrains.dekaf.jdbc.RedshiftIntermediateProvider.REDSHIFT_CONNECTION_STRING_PATTERN;
8 |
9 |
10 |
11 | public class RedshiftInterServiceProviderUnitTest {
12 |
13 | @Test
14 | public void connectionStringExample_matches_connectionStringPattern() {
15 | assertThat(REDSHIFT_CONNECTION_STRING_EXAMPLE).matches(REDSHIFT_CONNECTION_STRING_PATTERN);
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/old/dekaf-redshift/src/test/java/org/jetbrains/dekaf/jdbc/RedshiftJdbcIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.runner.RunWith;
4 | import org.junit.runners.Suite;
5 |
6 |
7 |
8 | @RunWith(Suite.class)
9 | @Suite.SuiteClasses({
10 | RedshiftInterServiceProviderTest.class
11 | })
12 | public class RedshiftJdbcIntegrationTests {
13 |
14 | static {
15 | System.setProperty("java.awt.headless", "true");
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/old/dekaf-redshift/src/test/java/org/jetbrains/dekaf/jdbc/RedshiftJdbcUnitTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.runner.RunWith;
4 | import org.junit.runners.Suite;
5 |
6 |
7 |
8 | @RunWith(Suite.class)
9 | @Suite.SuiteClasses({
10 | RedshiftInterServiceProviderTest.class
11 | })
12 | public class RedshiftJdbcUnitTests {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/old/dekaf-single-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.PostgresTestHelperFactory
2 | org.jetbrains.dekaf.core.OracleTestHelperFactory
3 | org.jetbrains.dekaf.core.MssqlTestHelperFactory
4 | org.jetbrains.dekaf.core.SybaseTestHelperFactory
5 | org.jetbrains.dekaf.core.MysqlTestHelperFactory
6 | org.jetbrains.dekaf.core.H2dbTestHelperFactory
7 | org.jetbrains.dekaf.core.SqliteTestHelperFactory
8 | org.jetbrains.dekaf.core.ExasolTestHelperFactory
9 | org.jetbrains.dekaf.core.RedshiftTestHelperFactory
10 | org.jetbrains.dekaf.core.CHouseTestHelperFactory
11 | org.jetbrains.dekaf.core.CassandraTestHelperFactory
12 |
--------------------------------------------------------------------------------
/old/dekaf-single/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBFederatedProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.BaseFederatedProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-single/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateFederatedProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.JdbcIntermediateFederatedProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-single/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.PostgresIntermediateProvider
2 | org.jetbrains.dekaf.jdbc.OracleIntermediateProvider
3 | org.jetbrains.dekaf.jdbc.MssqlIntermediateProvider
4 | org.jetbrains.dekaf.jdbc.SybaseIntermediateProvider
5 | org.jetbrains.dekaf.jdbc.MysqlIntermediateProvider
6 | org.jetbrains.dekaf.jdbc.H2dbIntermediateProvider
7 | org.jetbrains.dekaf.jdbc.SqliteIntermediateProvider
8 | org.jetbrains.dekaf.jdbc.ExasolIntermediateProvider
9 | org.jetbrains.dekaf.jdbc.RedshiftIntermediateProvider
10 | org.jetbrains.dekaf.jdbc.CHouseIntermediateProvider
11 | org.jetbrains.dekaf.jdbc.CassandraIntermediateProvider
12 | org.jetbrains.dekaf.jdbc.UnknownDatabaseProvider
13 |
--------------------------------------------------------------------------------
/old/dekaf-single/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.PrimeIntermediateFederatedProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.JdbcIntermediateFederatedProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite-test-db/src/main/java/org/jetbrains/dekaf/core/SqliteTestHelper.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.sql.Scriptum;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | **/
11 | public class SqliteTestHelper extends BaseTestHelper {
12 |
13 | public SqliteTestHelper(@NotNull final DBFacade db) {
14 | super(db, Scriptum.of(SqliteTestHelper.class));
15 | }
16 |
17 | @Override
18 | public void prepareX1() {
19 | performCommand("create view X1 as select 1");
20 | }
21 |
22 | @Override
23 | public void prepareX1000() {
24 | performCommand(scriptum, "X1000");
25 | }
26 |
27 | @Override
28 | public void prepareX1000000() {
29 | prepareX1000();
30 | performCommand(scriptum, "X1000000");
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite-test-db/src/main/java/org/jetbrains/dekaf/core/SqliteTestHelperFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.Sqlite;
5 | import org.jetbrains.dekaf.Rdbms;
6 |
7 | import java.util.Collections;
8 | import java.util.Set;
9 |
10 |
11 |
12 | /**
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | public class SqliteTestHelperFactory implements DBTestHelperFactory {
16 |
17 | private static final Set COLLECTION_OF_SQLITE = Collections.singleton(Sqlite.RDBMS);
18 |
19 |
20 | @NotNull
21 | @Override
22 | public Set supportRdbms() {
23 | return COLLECTION_OF_SQLITE;
24 | }
25 |
26 |
27 | @NotNull
28 | @Override
29 | public DBTestHelper createTestHelperFor(@NotNull final DBFacade facade) {
30 | return new SqliteTestHelper(facade);
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.SqliteTestHelperFactory
2 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite-tests/src/test/java/org/jetbrains/dekaf/SqliteIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 |
7 | import org.jetbrains.dekaf.core.SqliteCommandRunnerTest;
8 | import org.jetbrains.dekaf.core.SqlitePrimaryTest;
9 | import org.jetbrains.dekaf.core.SqliteQueryRunnerTest;
10 | import org.jetbrains.dekaf.core.SqliteSessionTest;
11 | import org.jetbrains.dekaf.jdbc.SqliteExceptionRecognizingTest;
12 | import org.junit.runner.RunWith;
13 | import org.junit.runners.Suite;
14 |
15 |
16 |
17 | @RunWith(Suite.class)
18 | @Suite.SuiteClasses({
19 | SqlitePrimaryTest.class,
20 | SqliteSessionTest.class,
21 | SqliteCommandRunnerTest.class,
22 | SqliteQueryRunnerTest.class,
23 | SqliteExceptionRecognizingTest.class
24 | })
25 | public class SqliteIntegrationTests {}
26 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite-tests/src/test/java/org/jetbrains/dekaf/core/SqliteCommandRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class SqliteCommandRunnerTest extends CommonCommandRunnerTest {
7 |
8 |
9 |
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite-tests/src/test/java/org/jetbrains/dekaf/core/SqlitePrimaryTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.Sqlite;
4 | import org.junit.FixMethodOrder;
5 | import org.junit.Test;
6 | import org.junit.internal.AssumptionViolatedException;
7 | import org.junit.runners.MethodSorters;
8 |
9 | import static org.assertj.core.api.Assertions.assertThat;
10 |
11 |
12 |
13 | /**
14 | * @author Leonid Bushuev from JetBrains
15 | **/
16 | @FixMethodOrder(MethodSorters.JVM)
17 | public class SqlitePrimaryTest extends CommonPrimaryTest {
18 |
19 | @Test
20 | public void rdbms_is_Sqlite() {
21 | assertThat(DB.rdbms()).isEqualTo(Sqlite.RDBMS);
22 | }
23 |
24 |
25 | @Override
26 | public void getConnectionInfo_user() {
27 | throw new AssumptionViolatedException("In Sqlite user can be empty");
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite-tests/src/test/java/org/jetbrains/dekaf/core/SqliteQueryRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class SqliteQueryRunnerTest extends CommonQueryRunnerTest {
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite-tests/src/test/java/org/jetbrains/dekaf/core/SqliteSessionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.junit.FixMethodOrder;
4 | import org.junit.runners.MethodSorters;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | **/
11 | @FixMethodOrder(MethodSorters.JVM)
12 | public class SqliteSessionTest extends CommonSessionTest {
13 |
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite-tests/src/test/java/org/jetbrains/dekaf/jdbc/SqliteExceptionRecognizingTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.core.CommonExceptionRecognizingTest;
4 |
5 |
6 |
7 | /**
8 | * @author Leonid Bushuev from JetBrains
9 | */
10 | public class SqliteExceptionRecognizingTest extends CommonExceptionRecognizingTest {
11 |
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite/src/main/java/org/jetbrains/dekaf/Sqlite.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * Sqlite declaration class.
5 | *
6 | * @author Leonid Bushuev from JetBrains
7 | */
8 | public abstract class Sqlite {
9 |
10 | /**
11 | * Sqlite RDBMS marker.
12 | */
13 | public final static Rdbms RDBMS = Rdbms.of("SQLITE");
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite/src/main/java/org/jetbrains/dekaf/jdbc/SqliteExceptionRecognizer.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 | @SuppressWarnings("ThrowableResultOfMethodCallIgnored")
7 | public class SqliteExceptionRecognizer extends BaseExceptionRecognizer {
8 |
9 | public static final SqliteExceptionRecognizer INSTANCE = new SqliteExceptionRecognizer();
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite/src/main/java/org/jetbrains/dekaf/jdbc/SqliteIntermediateSession.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 | import org.jetbrains.dekaf.intermediate.DBExceptionRecognizer;
6 |
7 | import java.sql.Connection;
8 |
9 | public class SqliteIntermediateSession extends JdbcIntermediateSession {
10 |
11 | SqliteIntermediateSession(@Nullable JdbcIntermediateFacade facade,
12 | @NotNull DBExceptionRecognizer exceptionRecognizer,
13 | @NotNull Connection connection, boolean ownConnection) {
14 | super(facade, exceptionRecognizer, connection, ownConnection);
15 | }
16 |
17 | @NotNull
18 | @Override
19 | protected JdbcIntermediateSimpleSeance openSimpleStatementSeance(@NotNull String statementText) {
20 | return new SqliteIntermediateSimpleSeance(this, statementText);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite/src/main/java/org/jetbrains/dekaf/sql/SqliteSQL.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class SqliteSQL {
7 | }
8 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.SqliteIntermediateProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite/src/test/java/org/jetbrains/dekaf/jdbc/SqliteInterServiceProviderTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.Before;
4 | import org.junit.Test;
5 |
6 | import java.sql.Driver;
7 | import java.sql.DriverManager;
8 | import java.sql.SQLException;
9 |
10 | import static org.assertj.core.api.Assertions.assertThat;
11 | import static org.jetbrains.dekaf.jdbc.SqliteIntermediateProvider.SQLITE_CONNECTION_STRING_EXAMPLE;
12 |
13 |
14 |
15 | /**
16 | * @author Leonid Bushuev from JetBrains
17 | */
18 | public class SqliteInterServiceProviderTest {
19 |
20 | protected SqliteIntermediateProvider myProvider;
21 |
22 | @Before
23 | public void setup() {
24 | myProvider = SqliteIntermediateProvider.INSTANCE;
25 | }
26 |
27 | @Test
28 | public void driverIsLoaded() throws SQLException {
29 | final Driver driver = DriverManager.getDriver(SQLITE_CONNECTION_STRING_EXAMPLE);
30 | assertThat(driver).isNotNull();
31 | }
32 |
33 | }
--------------------------------------------------------------------------------
/old/dekaf-sqlite/src/test/java/org/jetbrains/dekaf/jdbc/SqliteInterServiceProviderUnitTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.assertions.PatternAssert;
4 | import org.junit.Test;
5 |
6 | import static org.jetbrains.dekaf.jdbc.SqliteIntermediateProvider.SQLITE_CONNECTION_STRING_EXAMPLE;
7 | import static org.jetbrains.dekaf.jdbc.SqliteIntermediateProvider.SQLITE_CONNECTION_STRING_PATTERN;
8 |
9 |
10 |
11 | /**
12 | * @author Leonid Bushuev from JetBrains
13 | */
14 | public class SqliteInterServiceProviderUnitTest {
15 |
16 | @Test
17 | public void connectionStringExample_matches_connectionStringPattern() {
18 | PatternAssert.assertThat(SQLITE_CONNECTION_STRING_PATTERN)
19 | .fits(SQLITE_CONNECTION_STRING_EXAMPLE);
20 | }
21 |
22 | }
--------------------------------------------------------------------------------
/old/dekaf-sqlite/src/test/java/org/jetbrains/dekaf/jdbc/SqliteJdbcIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | SqliteInterServiceProviderTest.class
15 | })
16 | public class SqliteJdbcIntegrationTests {
17 |
18 | static {
19 | System.setProperty("java.awt.headless", "true");
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/old/dekaf-sqlite/src/test/java/org/jetbrains/dekaf/jdbc/SqliteJdbcUnitTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | SqliteInterServiceProviderTest.class
15 | })
16 | public class SqliteJdbcUnitTests {
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/old/dekaf-sybase-test-db/src/main/java/org/jetbrains/dekaf/core/SybaseTestHelperFactory.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.dekaf.Rdbms;
5 | import org.jetbrains.dekaf.Sybase;
6 |
7 | import java.util.Collections;
8 | import java.util.Set;
9 |
10 |
11 |
12 | /**
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | public class SybaseTestHelperFactory implements DBTestHelperFactory {
16 |
17 | private static final Set COLLECTION_OF_SYBASE = Collections.singleton(Sybase.RDBMS);
18 |
19 |
20 | @NotNull
21 | @Override
22 | public Set supportRdbms() {
23 | return COLLECTION_OF_SYBASE;
24 | }
25 |
26 |
27 | @NotNull
28 | @Override
29 | public DBTestHelper createTestHelperFor(@NotNull final DBFacade facade) {
30 | return new SybaseTestHelper(facade);
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/old/dekaf-sybase-test-db/src/main/resources/META-INF/services/org.jetbrains.dekaf.core.DBTestHelperFactory:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.core.SybaseTestHelperFactory
2 |
--------------------------------------------------------------------------------
/old/dekaf-sybase-tests/src/test/java/org/jetbrains/dekaf/SybaseIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 |
7 | import org.jetbrains.dekaf.core.*;
8 | import org.jetbrains.dekaf.jdbc.SybaseExceptionRecognizerTest;
9 | import org.junit.runner.RunWith;
10 | import org.junit.runners.Suite;
11 |
12 |
13 |
14 | @RunWith(Suite.class)
15 | @Suite.SuiteClasses({
16 | SybasePrimaryTest.class,
17 | SybaseSessionTest.class,
18 | SybaseCommandRunnerTest.class,
19 | SybaseQueryRunnerTest.class,
20 | SybaseExceptionRecognizerTest.class,
21 | SybaseTestHelperTest.class,
22 | SybaseVersionTest.class,
23 | })
24 | public class SybaseIntegrationTests {}
25 |
--------------------------------------------------------------------------------
/old/dekaf-sybase-tests/src/test/java/org/jetbrains/dekaf/core/SybaseCommandRunnerTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class SybaseCommandRunnerTest extends CommonCommandRunnerTest {
7 |
8 |
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/old/dekaf-sybase-tests/src/test/java/org/jetbrains/dekaf/core/SybasePrimaryTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.Sybase;
4 | import org.junit.FixMethodOrder;
5 | import org.junit.Test;
6 | import org.junit.runners.MethodSorters;
7 |
8 | import static org.assertj.core.api.Assertions.assertThat;
9 |
10 |
11 |
12 | /**
13 | * @author Leonid Bushuev from JetBrains
14 | **/
15 | @FixMethodOrder(MethodSorters.JVM)
16 | public class SybasePrimaryTest extends CommonPrimaryTest {
17 |
18 | @Test
19 | public void rdbms_is_Sybase() {
20 | assertThat(DB.rdbms()).isEqualTo(Sybase.RDBMS);
21 | }
22 |
23 | @Test @Override
24 | public void getConnectionInfo_versions() {
25 | DB.connect();
26 | ConnectionInfo info = DB.getConnectionInfo();
27 | assertThat(info.serverVersion.isOrGreater(15)).isTrue();
28 | assertThat(info.driverVersion.isOrGreater(1,2,5)).isTrue();
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/old/dekaf-sybase-tests/src/test/java/org/jetbrains/dekaf/core/SybaseSessionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.junit.FixMethodOrder;
4 | import org.junit.runners.MethodSorters;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | **/
11 | @FixMethodOrder(MethodSorters.JVM)
12 | public class SybaseSessionTest extends CommonSessionTest {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/old/dekaf-sybase-tests/src/test/java/org/jetbrains/dekaf/core/SybaseVersionTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.core;
2 |
3 | import org.jetbrains.dekaf.util.Version;
4 | import org.junit.Assert;
5 | import org.junit.Test;
6 |
7 | import static org.jetbrains.dekaf.jdbc.SybaseIntermediateFacade.parseServerVersion;
8 |
9 |
10 |
11 | public class SybaseVersionTest {
12 | @Test
13 | public void test1() {
14 | doTest(
15 | "Adaptive Server Enterprise/15.7.0/EBF 19805 SMP ESD#01 /P/x86_64/Enterprise Linux/aseasap/2918/64-bit/FBO/Wed Feb 8 07:50:28 2012",
16 | 15, 7);
17 | }
18 |
19 | @Test
20 | public void test2() {
21 | doTest(
22 | "Adaptive Server Enterprise/16.0 SP02 PL02/EBF 25320 SMP/P/x86_64/Enterprise Linux/ase160sp02plx/2492/64-bit/FBO/Sat Nov 21 04:05:39 2015",
23 | 16, 0);
24 | }
25 |
26 | private void doTest(String verStr, int... ver) {
27 | Assert.assertEquals(Version.of(ver), parseServerVersion(verStr));
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/old/dekaf-sybase/src/main/java/org/jetbrains/dekaf/Sybase.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf;
2 |
3 | /**
4 | * Sybase ASE declaration class.
5 | *
6 | * @author Leonid Bushuev from JetBrains
7 | */
8 | public abstract class Sybase {
9 |
10 | /**
11 | * Sybase ASE RDBMS marker.
12 | */
13 | public final static Rdbms RDBMS = Rdbms.of("SYBASE");
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/old/dekaf-sybase/src/main/java/org/jetbrains/dekaf/sql/SybaseSQL.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.sql;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | **/
6 | public class SybaseSQL {
7 | }
8 |
--------------------------------------------------------------------------------
/old/dekaf-sybase/src/main/resources/META-INF/services/org.jetbrains.dekaf.intermediate.IntegralIntermediateRdbmsProvider:
--------------------------------------------------------------------------------
1 | org.jetbrains.dekaf.jdbc.SybaseIntermediateProvider
2 |
--------------------------------------------------------------------------------
/old/dekaf-sybase/src/test/java/org/jetbrains/dekaf/jdbc/SybaseInterServiceProviderTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.junit.Before;
4 | import org.junit.Test;
5 |
6 | import java.sql.Driver;
7 | import java.sql.DriverManager;
8 | import java.sql.SQLException;
9 |
10 | import static org.assertj.core.api.Assertions.assertThat;
11 | import static org.jetbrains.dekaf.jdbc.SybaseIntermediateProvider.SYBASE_JTDS_CONNECTION_STRING_EXAMPLE;
12 |
13 |
14 |
15 | /**
16 | * @author Leonid Bushuev from JetBrains
17 | */
18 | public class SybaseInterServiceProviderTest {
19 |
20 | protected SybaseIntermediateProvider myProvider;
21 |
22 | @Before
23 | public void setup() {
24 | myProvider = SybaseIntermediateProvider.INSTANCE;
25 | }
26 |
27 | @Test
28 | public void driverIsLoaded() throws SQLException {
29 | final Driver driver = DriverManager.getDriver(SYBASE_JTDS_CONNECTION_STRING_EXAMPLE);
30 | assertThat(driver).isNotNull();
31 | }
32 |
33 | }
--------------------------------------------------------------------------------
/old/dekaf-sybase/src/test/java/org/jetbrains/dekaf/jdbc/SybaseInterServiceProviderUnitTest.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | import org.jetbrains.dekaf.assertions.PatternAssert;
4 | import org.junit.Test;
5 |
6 | import static org.jetbrains.dekaf.jdbc.SybaseIntermediateProvider.*;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | */
13 | public class SybaseInterServiceProviderUnitTest {
14 |
15 | @Test
16 | public void connectionStringExample_matches_connectionStringPattern() {
17 | PatternAssert.assertThat(SYBASE_CONNECTION_STRING_PATTERN)
18 | .fits(SYBASE_JTDS_CONNECTION_STRING_EXAMPLE)
19 | .fits(SYBASE_NATIVE_CONNECTION_STRING_EXAMPLE);
20 | }
21 |
22 | }
--------------------------------------------------------------------------------
/old/dekaf-sybase/src/test/java/org/jetbrains/dekaf/jdbc/SybaseJdbcIntegrationTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | SybaseInterServiceProviderTest.class
15 | })
16 | public class SybaseJdbcIntegrationTests {
17 |
18 | static {
19 | System.setProperty("java.awt.headless", "true");
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/old/dekaf-sybase/src/test/java/org/jetbrains/dekaf/jdbc/SybaseJdbcUnitTests.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.jdbc;
2 |
3 | /**
4 | * @author Leonid Bushuev from JetBrains
5 | */
6 |
7 | import org.junit.runner.RunWith;
8 | import org.junit.runners.Suite;
9 |
10 |
11 |
12 | @RunWith(Suite.class)
13 | @Suite.SuiteClasses({
14 | SybaseInterServiceProviderTest.class
15 | })
16 | public class SybaseJdbcUnitTests {
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/org/jetbrains/dekaf/junitft/SimpleTestMethod.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.junitft;
2 |
3 | import org.junit.runner.Description;
4 |
5 | import java.lang.reflect.Method;
6 |
7 |
8 |
9 | /**
10 | * @author Leonid Bushuev from JetBrains
11 | */
12 | public class SimpleTestMethod extends TestMethod {
13 |
14 |
15 | public SimpleTestMethod(Class> javaClass, Method javaMethod) {
16 | super(javaClass, javaMethod);
17 | }
18 |
19 |
20 | @Override
21 | Description getDescription() {
22 | return Description.createTestDescription(javaClass, javaMethod.getName());
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/org/jetbrains/dekaf/junitft/TestMethod.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.junitft;
2 |
3 | import org.junit.runner.Description;
4 | import org.junit.runners.model.FrameworkMethod;
5 |
6 | import java.lang.reflect.Method;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | */
13 | public abstract class TestMethod extends FrameworkMethod {
14 |
15 | protected final Class> javaClass;
16 | protected final Method javaMethod;
17 |
18 |
19 | public TestMethod(Class> javaClass, Method javaMethod) {
20 | super(javaMethod);
21 | this.javaClass = javaClass;
22 | this.javaMethod = javaMethod;
23 | }
24 |
25 |
26 | abstract Description getDescription();
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/org/jetbrains/dekaf/junitft/TestWithParams.java:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.junitft;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 |
9 |
10 | /**
11 | * @author Leonid Bushuev from JetBrains
12 | */
13 | @Retention(RetentionPolicy.RUNTIME)
14 | @Target({ElementType.METHOD})
15 | public @interface TestWithParams {
16 |
17 |
18 | String params() default "";
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/testing/categories/ForEveryRdbms.java:
--------------------------------------------------------------------------------
1 | package testing.categories;
2 |
3 | /**
4 | * Tests that should be performed for every RDBMS.
5 | */
6 | public interface ForEveryRdbms extends ForPostgres, ForOracle, ForMSSQL, ForMySQL
7 | {}
8 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/testing/categories/ForMSSQL.java:
--------------------------------------------------------------------------------
1 | package testing.categories;
2 |
3 | /**
4 | * Microsoft SQL related tests.
5 | */
6 | public interface ForMSSQL {}
7 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/testing/categories/ForMySQL.java:
--------------------------------------------------------------------------------
1 | package testing.categories;
2 |
3 | /**
4 | * MySQL related tests.
5 | */
6 | public interface ForMySQL {}
7 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/testing/categories/ForOracle.java:
--------------------------------------------------------------------------------
1 | package testing.categories;
2 |
3 | /**
4 | * Oracle related tests.
5 | */
6 | public interface ForOracle {}
7 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/testing/categories/ForPostgres.java:
--------------------------------------------------------------------------------
1 | package testing.categories;
2 |
3 | /**
4 | * PostgreSLQ related tests.
5 | */
6 | public interface ForPostgres {}
7 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/testing/categories/NotForMSSQL.java:
--------------------------------------------------------------------------------
1 | package testing.categories;
2 |
3 | /**
4 | * Microsoft SQL related tests.
5 | */
6 | public interface NotForMSSQL {}
7 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/testing/categories/NotForMySQL.java:
--------------------------------------------------------------------------------
1 | package testing.categories;
2 |
3 | /**
4 | * MySQL related tests.
5 | */
6 | public interface NotForMySQL {}
7 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/testing/categories/NotForOracle.java:
--------------------------------------------------------------------------------
1 | package testing.categories;
2 |
3 | /**
4 | * Oracle related tests.
5 | */
6 | public interface NotForOracle {}
7 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/testing/categories/NotForPostgres.java:
--------------------------------------------------------------------------------
1 | package testing.categories;
2 |
3 | /**
4 | * PostgreSLQ related tests.
5 | */
6 | public interface NotForPostgres {}
7 |
--------------------------------------------------------------------------------
/old/fine-junit/src/main/java/testing/categories/UnitTest.java:
--------------------------------------------------------------------------------
1 | package testing.categories;
2 |
3 | /**
4 | * A unit test, that doesn't require running servers and even JDBC drivers.
5 | */
6 | public interface UnitTest
7 | {}
8 |
--------------------------------------------------------------------------------
/old/public-pack/assembly-tools.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 | tools
11 |
12 | zip
13 |
14 | false
15 | false
16 |
17 |
18 |
19 |
20 | /
21 | ../tools
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/old/test-pack/src/test/java/UnitTests.java:
--------------------------------------------------------------------------------
1 | import org.jetbrains.dekaf.CoreUnitTests;
2 | import org.jetbrains.dekaf.jdbc.*;
3 | import org.junit.runner.RunWith;
4 | import org.junit.runners.Suite;
5 |
6 |
7 |
8 | /**
9 | * @author Leonid Bushuev from JetBrains
10 | **/
11 |
12 |
13 | @RunWith(Suite.class)
14 | @Suite.SuiteClasses({
15 | CoreUnitTests.class,
16 | JdbcUnitTests.class,
17 | OracleJdbcUnitTests.class,
18 | PostgresJdbcUnitTests.class,
19 | MssqlJdbcUnitTests.class,
20 | SybaseJdbcUnitTests.class,
21 | MysqlJdbcUnitTests.class,
22 | H2dbJdbcUnitTests.class,
23 | //RedshiftJdbcUnitTests.class,
24 | SqliteJdbcUnitTests.class,
25 | ExasolJdbcUnitTests.class
26 | })
27 | public class UnitTests {}
28 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'dekaf'
2 |
3 | include 'dekaf-inter'
4 | include 'dekaf-inter-test'
5 |
6 | include 'dekaf-jdbc'
7 | include 'dekaf-jdbc-test'
8 |
9 | include 'dekaf-main'
10 | include 'dekaf-main-test'
11 |
12 | include 'test-utils'
13 |
14 | include 'tests-basic'
15 |
16 |
--------------------------------------------------------------------------------
/test-utils/src/FileFun.kt:
--------------------------------------------------------------------------------
1 | @file:JvmName("FileFun")
2 |
3 | package org.jetbrains.dekaf.test.utils
4 |
5 | import java.nio.file.Files
6 | import java.nio.file.Path
7 |
8 |
9 | fun Path.exists() = Files.exists(this)
10 |
11 | fun Path.isDirectory() = Files.isDirectory(this)
12 |
13 | fun Path.isFile() = Files.isRegularFile(this)
14 |
15 | fun Path.isReadable() = Files.isReadable(this)
16 |
17 |
--------------------------------------------------------------------------------
/test-utils/src/NumberConsts.kt:
--------------------------------------------------------------------------------
1 | @file:Suppress("ObjectPropertyName")
2 |
3 | package org.jetbrains.dekaf.test.utils
4 |
5 |
6 | const val `0`: Byte = 0
7 | const val `1`: Byte = 1
8 | const val `2`: Byte = 2
9 | const val `3`: Byte = 3
10 | const val `4`: Byte = 4
11 | const val `5`: Byte = 5
12 | const val `6`: Byte = 6
13 | const val `7`: Byte = 7
14 | const val `8`: Byte = 8
15 | const val `9`: Byte = 9
16 |
17 |
18 |
--------------------------------------------------------------------------------
/test-utils/src/TestConsoleFun.kt:
--------------------------------------------------------------------------------
1 | @file:JvmName("TestConsoleFun")
2 | package org.jetbrains.dekaf.test.utils
3 |
4 |
5 | private val printLock = Object()
6 |
7 |
8 | fun say(text: String) {
9 | synchronized(printLock) {
10 | System.out.println(text)
11 | System.out.flush()
12 | }
13 | }
14 |
15 | fun blame(text: String, exception: Throwable? = null) {
16 | synchronized(printLock) {
17 | System.err.println(text)
18 | exception?.printStackTrace(System.err)
19 | System.err.flush()
20 | }
21 | }
22 |
23 | fun halt(text: String, errorCode: Int): Nothing {
24 | blame(text)
25 | say("FAILED with error code: $errorCode")
26 | halt(errorCode)
27 | }
28 |
29 | fun halt(errorCode: Int): Nothing {
30 | Thread.sleep(40L)
31 | System.exit(errorCode)
32 | throw Exception("Must be halted with exit code: $errorCode")
33 | }
34 |
35 |
36 |
--------------------------------------------------------------------------------
/test-utils/src/UnitTest.kt:
--------------------------------------------------------------------------------
1 | package org.jetbrains.dekaf.test.utils
2 |
3 |
4 | import org.junit.jupiter.api.Tag
5 | import org.junit.jupiter.api.TestInstance
6 |
7 |
8 | @Tag("UnitTest")
9 | @TestInstance(TestInstance.Lifecycle.PER_CLASS)
10 | interface UnitTest
11 |
--------------------------------------------------------------------------------
/test-utils/test-utils.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/tests-basic/tests-basic.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------