diff --git a/graphql-java-support/src/main/java/com/apollographql/federation/graphqljava/FederationSdlPrinter.java b/graphql-java-support/src/main/java/com/apollographql/federation/graphqljava/FederationSdlPrinter.java index 739ffe50..86195d36 100644 --- a/graphql-java-support/src/main/java/com/apollographql/federation/graphqljava/FederationSdlPrinter.java +++ b/graphql-java-support/src/main/java/com/apollographql/federation/graphqljava/FederationSdlPrinter.java @@ -11,8 +11,8 @@ import graphql.Assert; import graphql.PublicApi; +import graphql.execution.ValuesResolver; import graphql.language.AstPrinter; -import graphql.language.AstValueHelper; import graphql.language.Description; import graphql.language.Document; import graphql.language.EnumTypeDefinition; @@ -47,6 +47,7 @@ import graphql.schema.GraphQLUnionType; import graphql.schema.GraphqlTypeComparatorEnvironment; import graphql.schema.GraphqlTypeComparatorRegistry; +import graphql.schema.InputValueWithState; import graphql.schema.idl.ScalarInfo; import graphql.schema.idl.SchemaParser; import graphql.schema.idl.TypeDefinitionRegistry; @@ -810,8 +811,8 @@ private TypePrinter inputObjectPrinter() { fd -> { printComments(out, fd, " "); out.format(" %s: %s", fd.getName(), typeString(fd.getType())); - Object defaultValue = fd.getDefaultValue(); - if (defaultValue != null) { + InputValueWithState defaultValue = fd.getInputFieldDefaultValue(); + if (defaultValue != null && defaultValue.isSet()) { String astValue = printAst(defaultValue, fd.getType()); out.format(" = %s", astValue); } @@ -854,8 +855,9 @@ private void printAsAst( out.println(); } - private static String printAst(Object value, GraphQLInputType type) { - return AstPrinter.printAst(AstValueHelper.astFromValue(value, type)); + private static String printAst(InputValueWithState inputValueWithState, GraphQLInputType type) { + return AstPrinter.printAst( + ValuesResolver.valueToLiteral(DEFAULT_FIELD_VISIBILITY, inputValueWithState, type)); } private TypePrinter schemaPrinter() { @@ -954,8 +956,8 @@ String argsString(Class parent, List