Skip to content

Commit 0de6ef6

Browse files
committed
Address PR comments
1 parent 04966b6 commit 0de6ef6

File tree

5 files changed

+63
-18
lines changed

5 files changed

+63
-18
lines changed

plugins/maven/graphql-java-codegen-maven-plugin/src/main/java/io/github/kobylynskyi/graphql/codegen/GraphQLCodegenMojo.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -744,7 +744,10 @@ private static Map<String, String> convertToMap(Properties properties) {
744744

745745
@Override
746746
public Map<FreeMarkerTemplateType, String> getCustomTemplates() {
747-
return customTemplates;
747+
if (customTemplates == null) {
748+
return new HashMap<>();
749+
}
750+
return customTemplates;
748751
}
749752

750753
}

src/main/java/com/kobylynskyi/graphql/codegen/generators/FreeMarkerTemplateFilesCreator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ public static File create(MappingContext mappingContext,
4949

5050
try (FileWriter fileWriter = new FileWriter(javaSourceFile)) {
5151
Template template;
52-
if (mappingContext.getCustomTemplates().containsKey(templateType)) {
53-
template = FreeMarkerTemplatesRegistry.getCustomTemplates(mappingContext.getCustomTemplates().get(templateType));
52+
String templatePath = mappingContext.getCustomTemplates().get(templateType);
53+
if (templatePath != null) {
54+
template = FreeMarkerTemplatesRegistry.getCustomTemplates(templatePath);
5455
} else {
55-
template =
56-
FreeMarkerTemplatesRegistry.getTemplateWithLang(language, templateType);
56+
template = FreeMarkerTemplatesRegistry.getTemplateWithLang(language, templateType);
5757
}
5858
template.process(dataModel, fileWriter);
5959
} catch (Exception e) {

src/main/java/com/kobylynskyi/graphql/codegen/model/MappingConfig.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.kobylynskyi.graphql.codegen.model;
22

33
import com.kobylynskyi.graphql.codegen.generators.FreeMarkerTemplateType;
4-
import java.util.EnumMap;
54
import java.util.HashMap;
65
import java.util.HashSet;
76
import java.util.List;
@@ -256,7 +255,7 @@ public void setCustomTypesMapping(Map<String, String> customTypesMapping) {
256255
*/
257256
public void putCustomTemplatesIfAbsent(FreeMarkerTemplateType from, String to) {
258257
if (customTemplates == null) {
259-
customTemplates = new HashMap<>();
258+
customTemplates = new HashMap<>();
260259
}
261260
customTemplates.computeIfAbsent(from, k -> to);
262261
}

src/test/java/com/kobylynskyi/graphql/codegen/GraphQLCodegenAnnotationsTest.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.kobylynskyi.graphql.codegen;
22

3-
import com.kobylynskyi.graphql.codegen.generators.FreeMarkerTemplateType;
43
import com.kobylynskyi.graphql.codegen.java.JavaGraphQLCodegen;
54
import com.kobylynskyi.graphql.codegen.model.MappingConfig;
65
import com.kobylynskyi.graphql.codegen.utils.Utils;
@@ -328,14 +327,4 @@ private void generate(String path) throws IOException {
328327
TestUtils.getStaticGeneratedInfo(mappingConfig)).generate();
329328
}
330329

331-
@Test
332-
void generate_CustomTemplates_Type() throws Exception {
333-
mappingConfig.putCustomTemplatesIfAbsent(FreeMarkerTemplateType.TYPE, "/template/record_type.ftl");
334-
335-
generate("src/test/resources/schemas/test.graphqls");
336-
337-
File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles());
338-
assertFileContainsElements(files, "Event.java",
339-
"public record Event (");
340-
}
341330
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.kobylynskyi.graphql.codegen;
2+
3+
import com.kobylynskyi.graphql.codegen.generators.FreeMarkerTemplateType;
4+
import com.kobylynskyi.graphql.codegen.java.JavaGraphQLCodegen;
5+
import com.kobylynskyi.graphql.codegen.model.MappingConfig;
6+
import com.kobylynskyi.graphql.codegen.utils.Utils;
7+
import org.junit.jupiter.api.AfterEach;
8+
import org.junit.jupiter.api.BeforeEach;
9+
import org.junit.jupiter.api.Test;
10+
11+
import java.io.File;
12+
import java.io.IOException;
13+
import java.util.Objects;
14+
15+
import static com.kobylynskyi.graphql.codegen.TestUtils.assertFileContainsElements;
16+
import static java.util.Collections.singletonList;
17+
18+
class GraphQLCodegenCustomTemplatesTest {
19+
20+
private final File outputBuildDir = new File("build/generated");
21+
private final File outputJavaClassesDir = new File("build/generated/com/kobylynskyi/graphql/test1");
22+
23+
private MappingConfig mappingConfig;
24+
25+
@BeforeEach
26+
void init() {
27+
mappingConfig = new MappingConfig();
28+
mappingConfig.setPackageName("com.kobylynskyi.graphql.test1");
29+
mappingConfig.setGenerateClient(true);
30+
}
31+
32+
@AfterEach
33+
void cleanup() {
34+
Utils.deleteDir(outputBuildDir);
35+
}
36+
37+
@Test
38+
void generate_CustomTemplates_Type() throws Exception {
39+
mappingConfig.putCustomTemplatesIfAbsent(FreeMarkerTemplateType.TYPE, "/template/record_type.ftl");
40+
41+
generate("src/test/resources/schemas/test.graphqls");
42+
43+
File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles());
44+
assertFileContainsElements(files, "Event.java",
45+
"public record Event (");
46+
}
47+
48+
private void generate(String path) throws IOException {
49+
new JavaGraphQLCodegen(singletonList(path),
50+
outputBuildDir, mappingConfig, TestUtils.getStaticGeneratedInfo(mappingConfig))
51+
.generate();
52+
}
53+
54+
}

0 commit comments

Comments
 (0)