Skip to content

Commit 0a995c3

Browse files
smyricktapaderster
authored andcommitted
Fix GH actions PR check (#451)
* Migrate GH actions to java 11 * Update maven.yml * Update maven.yml * Trying to fix classloader for SubTypeMapper * Close scan result on generator complete * Close results in federation scanning
1 parent 900db2b commit 0a995c3

File tree

6 files changed

+34
-7
lines changed

6 files changed

+34
-7
lines changed

.github/workflows/maven.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ jobs:
1212

1313
steps:
1414
- uses: actions/checkout@v1
15-
- name: Set up JDK 1.8
15+
- name: Set up Java 11
1616
uses: actions/setup-java@v1
1717
with:
18-
java-version: 1.8
18+
java-version: '11.0.2'
1919
- name: Build with Maven
20-
run: mvn clean verify -PdefaultBuild -P!jdk8
20+
run: ./mvnw clean verify -PdefaultBuild

graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/federation/FederatedSchemaGenerator.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ open class FederatedSchemaGenerator(generatorConfig: FederatedSchemaGeneratorCon
6161
.forEach {
6262
this.additionalType(it)
6363
}
64+
65+
scanResult.close()
66+
6467
return this
6568
}
6669
}

graphql-kotlin-schema-generator/src/main/kotlin/com/expediagroup/graphql/generator/SchemaGenerator.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,13 @@ open class SchemaGenerator(val config: SchemaGeneratorConfig) {
8686

8787
builder.additionalDirectives(state.directives.values.toSet())
8888
builder.codeRegistry(codeRegistry.build())
89-
return config.hooks.willBuildSchema(builder).build()
89+
90+
val schema = config.hooks.willBuildSchema(builder).build()
91+
92+
// Clean up the classpath scanner
93+
subTypeMapper.close()
94+
95+
return schema
9096
}
9197

9298
open fun function(fn: KFunction<*>, parentName: String, target: Any? = null, abstract: Boolean = false) =

graphql-kotlin-schema-generator/src/main/kotlin/com/expediagroup/graphql/generator/SubTypeMapper.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ internal class SubTypeMapper(supportedPackages: List<String>) {
3939
.filterNot { it.isAbstract }
4040
}
4141

42+
fun close() = scanResult.close()
43+
4244
@Suppress("Detekt.SwallowedException")
4345
private fun getImplementingClasses(classInfo: ClassInfo) =
4446
try {

graphql-kotlin-schema-generator/src/main/kotlin/com/expediagroup/graphql/generator/state/TypesCache.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ internal class TypesCache(private val supportedPackages: List<String>) {
6262
return null
6363
}
6464

65+
/**
66+
* Clear the map of all saved values
67+
*/
68+
internal fun clear() = cache.clear()
69+
6570
fun doesNotContainGraphQLType(graphQLType: GraphQLType) =
6671
cache.none { (_, v) -> v.graphQLType.name == graphQLType.name }
6772

graphql-kotlin-schema-generator/src/test/kotlin/com/expediagroup/graphql/generator/types/TypeTestHelper.kt

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,29 @@ import graphql.schema.GraphQLCodeRegistry
3030
import io.mockk.every
3131
import io.mockk.mockk
3232
import io.mockk.spyk
33+
import org.junit.jupiter.api.AfterAll
34+
import org.junit.jupiter.api.BeforeEach
35+
import org.junit.jupiter.api.TestInstance
36+
import org.junit.jupiter.api.TestInstance.Lifecycle
3337
import java.lang.reflect.Field
3438
import kotlin.reflect.KAnnotatedElement
3539
import kotlin.reflect.KClass
3640
import kotlin.reflect.KFunction
3741
import kotlin.reflect.KParameter
3842
import kotlin.reflect.KProperty
3943
import kotlin.reflect.KType
40-
import kotlin.test.BeforeTest
4144

4245
@Suppress(
4346
"Detekt.UnsafeCast",
4447
"Detekt.UnsafeCallOnNullableType",
4548
"Detekt.LongMethod"
4649
)
50+
@TestInstance(Lifecycle.PER_CLASS)
4751
internal open class TypeTestHelper {
52+
private val subTypeMapper = SubTypeMapper(listOf("com.expediagroup.graphql"))
4853
var generator = mockk<SchemaGenerator>()
4954
var config = mockk<SchemaGeneratorConfig>()
5055
var state = spyk(SchemaGeneratorState(listOf("com.expediagroup.graphql")))
51-
var subTypeMapper = spyk(SubTypeMapper(listOf("com.expediagroup.graphql")))
5256
var cache = spyk(TypesCache(listOf("com.expediagroup.graphql")))
5357
val spyWiringFactory = spyk(KotlinDirectiveWiringFactory())
5458
var hooks: SchemaGeneratorHooks = object : SchemaGeneratorHooks {
@@ -69,10 +73,12 @@ internal open class TypeTestHelper {
6973
private var argumentBuilder: ArgumentBuilder? = null
7074
private var inputObjectBuilder: InputObjectBuilder? = null
7175

72-
@BeforeTest
76+
@BeforeEach
7377
fun setup() {
7478
beforeSetup()
7579

80+
cache.clear()
81+
7682
every { generator.state } returns state
7783
every { state.cache } returns cache
7884
every { generator.config } returns config
@@ -157,6 +163,11 @@ internal open class TypeTestHelper {
157163
beforeTest()
158164
}
159165

166+
@AfterAll
167+
fun cleanup() {
168+
subTypeMapper.close()
169+
}
170+
160171
open fun beforeTest() {}
161172

162173
open fun beforeSetup() {}

0 commit comments

Comments
 (0)