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 public class GeneratePojoMojo extends AbstractGeneratePojoMojoThe 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. In this mode, as with the generateServerCode, you need to either add the graphql-java-server-dependencies dependencies, or set the copyRuntimeSources plugin parameter to false and add the graphql-java-runtime.
- 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. In this mode, as with the generateServerCode, you need to either add the graphql-java-client-dependencies dependencies, or set the copyRuntimeSources plugin parameter to false and add the graphql-java-runtime.
Note: in this mode, copyRuntimeSources must be set to false. Some dependencies must be copied for the code to compile (exceptions, annotations...)
- Author:
- etienne-sf
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classGeneratePojoMojo.SpringConfiguration
-
Field Summary
-
Fields inherited from class com.graphql_java_generator.mavenplugin.AbstractGeneratePojoMojo
generateJacksonAnnotations
-
Fields inherited from class com.graphql_java_generator.mavenplugin.AbstractGenerateServerCodeMojo
generateBatchLoaderEnvironment, javaTypeForIDType
-
Fields inherited from class com.graphql_java_generator.mavenplugin.AbstractCommonMojo
buildContext, ctx, enumPrefix, enumSuffix, inputPrefix, inputSuffix, interfacePrefix, interfaceSuffix, maxTokens, projectHelper, springConfigurationClass, typePrefix, typeSuffix, unionPrefix, unionSuffix
-
Fields inherited from interface com.graphql_java_generator.plugin.conf.CommonConfiguration
DEFAULT_ADD_RELAY_CONNECTIONS, DEFAULT_MAX_TOKENS, DEFAULT_PACKAGE_NAME, DEFAULT_PREFIX, DEFAULT_SCHEMA_FILE_FOLDER, DEFAULT_SCHEMA_FILE_PATTERN, 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_SEPARATE_UTIL_CLASSES, DEFAULT_SOURCE_ENCODING, DEFAULT_SPRING_BEAN_SUFFIX, DEFAULT_TARGET_RESOURCE_FOLDER, DEFAULT_TARGET_SOURCE_FOLDER
-
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_GENERATE_BATCH_LOADER_ENVIRONMENT, DEFAULT_GENERATE_DATA_LOADER_FOR_LISTS, DEFAULT_GENERATE_JPA_ANNOTATION, DEFAULT_JAVA_TYPE_FOR_ID_TYPE, DEFAULT_SCAN_BASE_PACKAGES, DEFAULT_SCHEMA_PERSONALIZATION_FILE
-
Fields inherited from interface com.graphql_java_generator.plugin.conf.GraphQLConfiguration
DEFAULT_MODE
-
-
Constructor Summary
Constructors Constructor Description GeneratePojoMojo()
-
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
getJavaTypeForIDType, getPackaging, getScanBasePackages, getSchemaPersonalizationFile, isGenerateBatchLoaderEnvironment, isGenerateDataLoaderForLists, isGenerateJPAAnnotation
-
Methods inherited from class com.graphql_java_generator.mavenplugin.AbstractGenerateCodeCommonMojo
executePostExecutionTask, getCustomScalars, getPackageName, getSourceEncoding, getSpringBeanSuffix, getTargetClassFolder, getTargetFolder, getTargetResourceFolder, getTargetSourceFolder, isAddRelayConnections, isCopyRuntimeSources, isSeparateUtilityClasses
-
Methods inherited from class com.graphql_java_generator.mavenplugin.AbstractCommonMojo
execute, getEnumPrefix, getEnumSuffix, getInputPrefix, getInputSuffix, getInterfacePrefix, getInterfaceSuffix, 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, getMaxTokens, getProjectDir, getSchemaFileFolder, getSchemaFilePattern, 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, getSourceEncoding, getSpringAutoConfigurationPackage, getSpringBeanSuffix, getTargetClassFolder, getTargetResourceFolder, getTargetSourceFolder, isCopyRuntimeSources, 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
getJavaTypeForIDType, getPackaging, getQuotedScanBasePackages, getScanBasePackages, getSchemaPersonalizationFile, isGenerateBatchLoaderEnvironment, isGenerateDataLoaderForLists, isGenerateJPAAnnotation, logConfiguration, logGenerateServerCodeConfiguration
-
Methods inherited from interface com.graphql_java_generator.plugin.conf.GraphQLConfiguration
logConfiguration
-
-