Class GeneratePojoMojo
java.lang.Object
org.apache.maven.plugin.AbstractMojo
com.graphql_java_generator.mavenplugin.AbstractCommonMojo
com.graphql_java_generator.mavenplugin.AbstractGenerateCodeCommonMojo
com.graphql_java_generator.mavenplugin.AbstractGenerateServerCodeMojo
com.graphql_java_generator.mavenplugin.AbstractGraphQLMojo
com.graphql_java_generator.mavenplugin.AbstractGeneratePojoMojo
com.graphql_java_generator.mavenplugin.GeneratePojoMojo
- All Implemented Interfaces:
CommonConfiguration
,GenerateClientCodeConfiguration
,GenerateCodeCommonConfiguration
,GeneratePojoConfiguration
,GenerateServerCodeConfiguration
,GraphQLConfiguration
,org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
@Mojo(name="generatePojo",
defaultPhase=GENERATE_SOURCES,
requiresProject=true,
threadSafe=true)
@ThreadSafe
public class GeneratePojoMojo
extends AbstractGeneratePojoMojo
The generatePojo goal generates all the java objects that match the provided GraphQL schema. It allows to work in Java with graphQL, in a schema first approach.
This goal generates:- One java interface for each GraphQL `union` and `interface`
- One java class for each GraphQL `type` and `input` type, including the query, mutation and subscription (if any). If the GraphQL type implements an interface, then its java class implements this same interface
- One java enum for each GraphQL enum
Every class, interface and their attributes are marked with the annotation from the GraphQL annotation package. This allows to retrieve the GraphQL information for every class, interface and attribute, at runtime.
It can run in two modes (see the mode plugin parameter for more information):
- server: In the server mode, only the GraphQL annotation are added. You can add the JPA annotation, with the generateJPAAnnotation plugin parameter set to true.
- client: The client mode is the default one. This mode generates the same POJO as in server mode, with the addition of the Jackson annotations. These annotations allows to serialize and unserialize the GraphQL POJO to and from JSON. And the CustomJacksonDeserializers utility class is generated, that allows to deserialize custom scalars and arrays.
To avoid to add plugin dependencies, the recommended value for copyRuntimeSources is true. Please note that the default value changed from true to false since 2.0.
In other word, since 2.0, it is a recommended to set the copyRuntimeSources plugin parameter to true.
- Author:
- etienne-sf
-
Nested Class Summary
-
Field Summary
Fields inherited from class com.graphql_java_generator.mavenplugin.AbstractGeneratePojoMojo
generateJacksonAnnotations
Fields inherited from class com.graphql_java_generator.mavenplugin.AbstractGenerateServerCodeMojo
batchMappingDataFetcherReturnType, generateBatchLoaderEnvironment, generateBatchMappingDataFetchers, generateDataFetcherForEveryFieldsWithArguments, ignoredSpringMappings, javaTypeForIDType
Fields inherited from class com.graphql_java_generator.mavenplugin.AbstractCommonMojo
buildContext, ctx, enumPrefix, enumSuffix, inputPrefix, inputSuffix, interfacePrefix, interfaceSuffix, jsonGraphqlSchemaFilename, maxTokens, projectHelper, springConfigurationClass, typePrefix, typeSuffix, unionPrefix, unionSuffix
Fields inherited from interface com.graphql_java_generator.plugin.conf.CommonConfiguration
DEFAULT_ADD_RELAY_CONNECTIONS, DEFAULT_JSON_GRAPHQL_SCHEMA_FILE, DEFAULT_MAX_TOKENS, DEFAULT_PACKAGE_NAME, DEFAULT_PREFIX, DEFAULT_SCHEMA_FILE_FOLDER, DEFAULT_SCHEMA_FILE_PATTERN, DEFAULT_SCHEMA_SUB_FOLDER, DEFAULT_SKIP_GENERATION_IF_SCHEMA_HAS_NOT_CHANGED, DEFAULT_SUFFIX
Fields inherited from interface com.graphql_java_generator.plugin.conf.GenerateClientCodeConfiguration
DEFAULT_GENERATE_DEPRECATED_REQUEST_RESPONSE
Fields inherited from interface com.graphql_java_generator.plugin.conf.GenerateCodeCommonConfiguration
DEFAULT_COPY_RUNTIME_SOURCES, DEFAULT_QUERY_MUTATION_EXECUTION_PROTOCOL, DEFAULT_SCHEMA_PERSONALIZATION_FILE, DEFAULT_SEPARATE_UTIL_CLASSES, DEFAULT_SOURCE_ENCODING, DEFAULT_SPRING_BEAN_SUFFIX, DEFAULT_TARGET_RESOURCE_FOLDER, DEFAULT_TARGET_SOURCE_FOLDER, DEFAULT_USE_JAKARTA_EE9
Fields inherited from interface com.graphql_java_generator.plugin.conf.GeneratePojoConfiguration
DEFAULT_GENERATE_JACKSON_ANNOTATIONS
Fields inherited from interface com.graphql_java_generator.plugin.conf.GenerateServerCodeConfiguration
DEFAULT_BATCH_MAPPING_DATA_FETCHER_RETURN_TYPE, DEFAULT_BATCH_MAPPING_DATA_FETCHER_RETURN_TYPE_STR, DEFAULT_GENERATE_BATCH_LOADER_ENVIRONMENT, DEFAULT_GENERATE_BATCH_MAPPING_DATA_FETCHERS, DEFAULT_GENERATE_DATA_FETCHER_FOR_EVERY_FIELD_WITH_ARGUMENT, DEFAULT_GENERATE_DATA_LOADER_FOR_LISTS, DEFAULT_GENERATE_JPA_ANNOTATION, DEFAULT_IGNORED_SPRING_MAPPINGS, DEFAULT_JAVA_TYPE_FOR_ID_TYPE, DEFAULT_SCAN_BASE_PACKAGES
Fields inherited from interface com.graphql_java_generator.plugin.conf.GraphQLConfiguration
DEFAULT_MODE
Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
-
Constructor Summary
-
Method Summary
Methods inherited from class com.graphql_java_generator.mavenplugin.AbstractGeneratePojoMojo
isGenerateJacksonAnnotations
Methods inherited from class com.graphql_java_generator.mavenplugin.AbstractGraphQLMojo
getMode, isGenerateDeprecatedRequestResponse
Methods inherited from class com.graphql_java_generator.mavenplugin.AbstractGenerateServerCodeMojo
getBatchMappingDataFetcherReturnType, getIgnoredSpringMappings, getJavaTypeForIDType, getPackaging, getScanBasePackages, isGenerateBatchLoaderEnvironment, isGenerateBatchMappingDataFetchers, isGenerateDataFetcherForEveryFieldsWithArguments, isGenerateDataLoaderForLists, isGenerateJPAAnnotation
Methods inherited from class com.graphql_java_generator.mavenplugin.AbstractGenerateCodeCommonMojo
executePostExecutionTask, getCustomScalars, getPackageName, getQueryMutationExecutionProtocol, getSchemaPersonalizationFile, getSourceEncoding, getSpringBeanSuffix, getTargetClassFolder, getTargetFolder, getTargetResourceFolder, getTargetSourceFolder, isAddRelayConnections, isCopyRuntimeSources, isSeparateUtilityClasses, isUseJakartaEE9
Methods inherited from class com.graphql_java_generator.mavenplugin.AbstractCommonMojo
execute, getEnumPrefix, getEnumSuffix, getInputPrefix, getInputSuffix, getInterfacePrefix, getInterfaceSuffix, getJsonGraphqlSchemaFilename, getMaxTokens, getProjectDir, getSchemaFileFolder, getSchemaFilePattern, getTemplates, getTypePrefix, getTypeSuffix, getUnionPrefix, getUnionSuffix, isSkipGenerationIfSchemaHasNotChanged
Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.graphql_java_generator.plugin.conf.CommonConfiguration
getDefaultTargetSchemaFileName, getEnumPrefix, getEnumSuffix, getInputPrefix, getInputSuffix, getInterfacePrefix, getInterfaceSuffix, getJsonGraphqlSchemaFilename, getMaxTokens, getProjectDir, getSchemaFileFolder, getSchemaFilePattern, getTargetSchemaSubFolder, getTemplates, getTypePrefix, getTypeSuffix, getUnionPrefix, getUnionSuffix, isAddRelayConnections, isSkipGenerationIfSchemaHasNotChanged, logCommonConfiguration
Methods inherited from interface com.graphql_java_generator.plugin.conf.GenerateClientCodeConfiguration
isGenerateDeprecatedRequestResponse
Methods inherited from interface com.graphql_java_generator.plugin.conf.GenerateCodeCommonConfiguration
getCustomScalars, getPackageName, getQueryMutationExecutionProtocol, getSchemaPersonalizationFile, getSourceEncoding, getSpringAutoConfigurationPackage, getSpringBeanSuffix, getTargetClassFolder, getTargetResourceFolder, getTargetSourceFolder, isCopyRuntimeSources, isUseJakartaEE9, logGenerateCodeCommonConfiguration
Methods inherited from interface com.graphql_java_generator.plugin.conf.GeneratePojoConfiguration
getMode, isGenerateUtilityClasses, isSeparateUtilityClasses
Methods inherited from interface com.graphql_java_generator.plugin.conf.GenerateServerCodeConfiguration
getBatchMappingDataFetcherReturnType, getIgnoredSpringMappings, getJavaTypeForIDType, getPackaging, getQuotedScanBasePackages, getScanBasePackages, isGenerateBatchLoaderEnvironment, isGenerateBatchMappingDataFetchers, isGenerateDataFetcherForEveryFieldsWithArguments, isGenerateDataLoaderForLists, isGenerateJPAAnnotation, logConfiguration, logGenerateServerCodeConfiguration
Methods inherited from interface com.graphql_java_generator.plugin.conf.GraphQLConfiguration
logConfiguration
-
Constructor Details
-
GeneratePojoMojo
public GeneratePojoMojo()
-