Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hardcoded database implementation package name #5178

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import app.cash.sqldelight.Transacter
import app.cash.sqldelight.db.QueryResult
import app.cash.sqldelight.db.SqlDriver
import app.cash.sqldelight.db.SqlSchema
import com.example.testmodule.newInstance
import com.example.testmodule.schema
import com.example.`impl`.newInstance
import com.example.`impl`.schema
import kotlin.Unit

public interface TestDatabase : Transacter {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.testmodule
package com.example.`impl`

import app.cash.sqldelight.TransacterImpl
import app.cash.sqldelight.db.AfterVersion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,20 +66,18 @@ object SqlDelightCompiler {
fun writeDatabaseInterface(
module: Module,
file: SqlDelightFile,
implementationFolder: String,
output: FileAppender,
) {
writeQueryWrapperInterface(module, file, implementationFolder, output)
writeQueryWrapperInterface(module, file, output)
}

fun writeImplementations(
module: Module,
sourceFile: SqlDelightFile,
implementationFolder: String,
output: FileAppender,
) {
val fileIndex = SqlDelightFileIndex.getInstance(module)
val packageName = "${fileIndex.packageName}.$implementationFolder"
val packageName = "${fileIndex.packageName}.impl"
val databaseImplementationType = DatabaseGenerator(module, sourceFile).type()
val exposer = DatabaseExposerGenerator(databaseImplementationType, fileIndex, sourceFile.generateAsync)

Expand All @@ -98,15 +96,14 @@ object SqlDelightCompiler {
private fun writeQueryWrapperInterface(
module: Module,
sourceFile: SqlDelightFile,
implementationFolder: String,
output: FileAppender,
) {
val fileIndex = SqlDelightFileIndex.getInstance(module)
val packageName = fileIndex.packageName
val queryWrapperType = DatabaseGenerator(module, sourceFile).interfaceType()
val fileSpec = FileSpec.builder(packageName, queryWrapperType.name!!)
// TODO: Remove these when kotlinpoet supports top level types.
.addImport("$packageName.$implementationFolder", "newInstance", "schema")
.addImport("$packageName.impl", "newInstance", "schema")
.apply {
var index = 0
fileIndex.dependencies.forEach {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@ class QueriesTypeTest {
val insert = result.compiledFile.namedMutators.first()
assertThat(result.errors).isEmpty()

val database = File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")
val database = File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")
assertThat(result.compilerOutput).containsKey(database)
assertThat(result.compilerOutput[database].toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -237,11 +237,11 @@ class QueriesTypeTest {
val insert = result.compiledFile.namedMutators.first()
assertThat(result.errors).isEmpty()

val database = File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")
val database = File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")
assertThat(result.compilerOutput).containsKey(database)
assertThat(result.compilerOutput[database].toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -338,11 +338,11 @@ class QueriesTypeTest {
fileName = "Data.sq",
)

val database = File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")
val database = File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")
assertThat(result.compilerOutput).containsKey(database)
assertThat(result.compilerOutput[database].toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -415,11 +415,11 @@ class QueriesTypeTest {
val insert = result.compiledFile.namedMutators.first()
assertThat(result.errors).isEmpty()

val database = File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")
val database = File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")
assertThat(result.compilerOutput).containsKey(database)
assertThat(result.compilerOutput[database].toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -573,11 +573,11 @@ class QueriesTypeTest {
val insert = result.compiledFile.namedMutators.first()
assertThat(result.errors).isEmpty()

val database = File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")
val database = File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")
assertThat(result.compilerOutput).containsKey(database)
assertThat(result.compilerOutput[database].toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ class QueryWrapperTest {

assertThat(result.errors).isEmpty()

val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")]
val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")]
assertThat(queryWrapperFile).isNotNull()
assertThat(queryWrapperFile.toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -109,11 +109,11 @@ class QueryWrapperTest {

assertThat(result.errors).isEmpty()

val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")]
val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")]
assertThat(queryWrapperFile).isNotNull()
assertThat(queryWrapperFile.toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -194,12 +194,12 @@ class QueryWrapperTest {

assertThat(result.errors).isEmpty()

val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")]
val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")]

assertThat(queryWrapperFile).isNotNull()
assertThat(queryWrapperFile.toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -289,11 +289,11 @@ class QueryWrapperTest {

assertThat(result.errors).isEmpty()

val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")]
val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")]
assertThat(queryWrapperFile).isNotNull()
assertThat(queryWrapperFile.toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -375,11 +375,11 @@ class QueryWrapperTest {

assertThat(result.errors).isEmpty()

val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")]
val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")]
assertThat(queryWrapperFile).isNotNull()
assertThat(queryWrapperFile.toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -459,11 +459,11 @@ class QueryWrapperTest {

assertThat(result.errors).isEmpty()

val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")]
val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")]
assertThat(queryWrapperFile).isNotNull()
assertThat(queryWrapperFile.toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -534,11 +534,11 @@ class QueryWrapperTest {

assertThat(result.errors).isEmpty()

val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")]
val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")]
assertThat(queryWrapperFile).isNotNull()
assertThat(queryWrapperFile.toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -630,11 +630,11 @@ class QueryWrapperTest {

assertThat(result.errors).isEmpty()

val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")]
val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")]
assertThat(queryWrapperFile).isNotNull()
assertThat(queryWrapperFile.toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -745,11 +745,11 @@ class QueryWrapperTest {

assertThat(result.errors).isEmpty()

val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")]
val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")]
assertThat(queryWrapperFile).isNotNull()
assertThat(queryWrapperFile.toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down Expand Up @@ -858,11 +858,11 @@ class QueryWrapperTest {

assertThat(result.errors).isEmpty()

val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")]
val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")]
assertThat(queryWrapperFile.toString()).apply {
startsWith(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.TransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ class AsyncQueriesTypeTest {
val insert = result.compiledFile.namedMutators.first()
Truth.assertThat(result.errors).isEmpty()

val database = File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")
val database = File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")
Truth.assertThat(result.compilerOutput).containsKey(database)
Truth.assertThat(result.compilerOutput[database].toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.SuspendingTransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,11 @@ class AsyncQueryWrapperTest {

Truth.assertThat(result.errors).isEmpty()

val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/testmodule/TestDatabaseImpl.kt")]
val queryWrapperFile = result.compilerOutput[File(result.outputDirectory, "com/example/impl/TestDatabaseImpl.kt")]
Truth.assertThat(queryWrapperFile).isNotNull()
Truth.assertThat(queryWrapperFile.toString()).isEqualTo(
"""
|package com.example.testmodule
|package com.example.`impl`
|
|import app.cash.sqldelight.SuspendingTransacterImpl
|import app.cash.sqldelight.db.AfterVersion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ class SqlDelightEnvironment(
private val compilationUnit: SqlDelightCompilationUnit,
private val verifyMigrations: Boolean,
override var dialect: SqlDelightDialect,
moduleName: String,
private val sourceFolders: List<File> = compilationUnit.sourceFolders
.filter { it.folder.exists() && !it.dependency }
.map { it.folder },
Expand All @@ -74,7 +73,6 @@ class SqlDelightEnvironment(
SqlDelightProjectService {
val project = projectEnvironment.project
val module = MockModule(project, projectEnvironment.parentDisposable)
private val moduleName = SqlDelightFileIndex.sanitizeDirectoryName(moduleName)

init {
project.registerService(SqlDelightProjectService::class.java, this)
Expand Down Expand Up @@ -176,15 +174,15 @@ class SqlDelightEnvironment(
output = writer,
includeAll = true,
)
SqlDelightCompiler.writeImplementations(module, migrationFile, moduleName, writer)
SqlDelightCompiler.writeImplementations(module, migrationFile, writer)
}
logger("----- END ${migrationFile.name} in $timeTaken ms ------")
}

sourceFile?.let {
SqlDelightCompiler.writeDatabaseInterface(module, it, moduleName, writer)
SqlDelightCompiler.writeDatabaseInterface(module, it, writer)
if (it is SqlDelightQueriesFile) {
SqlDelightCompiler.writeImplementations(module, it, moduleName, writer)
SqlDelightCompiler.writeImplementations(module, it, writer)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,12 @@ abstract class GenerateMigrationOutputTask : SqlDelightWorkerTask() {
override fun execute() {
val properties = parameters.properties.get()
val environment = SqlDelightEnvironment(
sourceFolders = sourceFolders.filter { it.exists() },
dependencyFolders = emptyList(),
moduleName = parameters.moduleName.get(),
properties = properties,
verifyMigrations = false,
compilationUnit = parameters.compilationUnit.get(),
verifyMigrations = false,
dialect = ServiceLoader.load(SqlDelightDialect::class.java).first(),
sourceFolders = sourceFolders.filter { it.exists() },
dependencyFolders = emptyList(),
)

val outputDirectory = parameters.outputDirectory.get().asFile
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,13 +74,12 @@ abstract class GenerateSchemaTask : SqlDelightWorkerTask() {

override fun execute() {
val environment = SqlDelightEnvironment(
sourceFolders = sourceFolders.filter { it.exists() },
dependencyFolders = emptyList(),
moduleName = parameters.moduleName.get(),
properties = parameters.properties.get(),
verifyMigrations = parameters.verifyMigrations.get(),
compilationUnit = parameters.compilationUnit.get(),
verifyMigrations = parameters.verifyMigrations.get(),
dialect = ServiceLoader.load(SqlDelightDialect::class.java).first(),
sourceFolders = sourceFolders.filter { it.exists() },
dependencyFolders = emptyList(),
)

var maxVersion = 1L
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,8 @@ abstract class SqlDelightTask : SqlDelightWorkerTask() {
override fun execute() {
parameters.outputDirectory.get().asFile.deleteRecursively()
val environment = SqlDelightEnvironment(
compilationUnit = parameters.compilationUnit.get(),
properties = parameters.properties.get(),
moduleName = parameters.projectName.get(),
compilationUnit = parameters.compilationUnit.get(),
verifyMigrations = parameters.verifyMigrations.get(),
dialect = ServiceLoader.load(SqlDelightDialect::class.java).first(),
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,12 @@ abstract class VerifyMigrationTask : SqlDelightWorkerTask() {

private val environment by lazy {
SqlDelightEnvironment(
sourceFolders = sourceFolders.filter { it.exists() },
dependencyFolders = emptyList(),
moduleName = parameters.projectName.get(),
properties = parameters.properties.get(),
verifyMigrations = parameters.verifyMigrations.get(),
compilationUnit = parameters.compilationUnit.get(),
verifyMigrations = parameters.verifyMigrations.get(),
dialect = ServiceLoader.load(SqlDelightDialect::class.java).first(),
sourceFolders = sourceFolders.filter { it.exists() },
dependencyFolders = emptyList(),
)
}

Expand Down
Loading