From 113b4f4f3a4a3301a3e0211f8d1a5c5b84310645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Ortiz?= Date: Wed, 3 Jul 2024 14:38:39 -0300 Subject: [PATCH] Added functionality to handle the "any" type for both function arguments and return types. --- README.md | 6 +++--- commons/pom.xml | 2 +- library/pom.xml | 2 +- parent-pom/pom.xml | 2 +- polyapi-maven-plugin/pom.xml | 2 +- .../io/polyapi/plugin/model/ParsedType.java | 2 +- .../io/polyapi/plugin/model/type/PolyType.java | 4 +++- .../plugin/model/type/basic/AnyPolyType.java | 18 ++++++++++++++++++ .../plugin/model/visitor/TypeVisitor.java | 6 ++++++ .../plugin/service/DeploymentServiceImpl.java | 13 ++++++++++--- .../polyapi/plugin/service/MavenService.java | 2 +- .../visitor/ImportsCollectorVisitor.java | 6 +++++- .../service/visitor/TypeExtractionVisitor.java | 4 +++- .../src/main/resources/templates/Poly.hbs | 2 ++ .../resources/templates/PropertiesObject.hbs | 2 ++ .../ResolvedApiFunctionSpecification.hbs | 2 ++ .../resources/templates/ResolvedContext.hbs | 2 ++ .../ResolvedCustomFunctionSpecification.hbs | 2 ++ .../ResolvedServerFunctionSpecification.hbs | 2 ++ .../ResolvedServerVariableSpecification.hbs | 2 ++ ...solvedStandardAuthFunctionSpecification.hbs | 2 ++ ...vedSubresourceAuthFunctionSpecification.hbs | 2 ++ .../ResolvedWebhookHandleSpecification.hbs | 2 ++ .../src/main/resources/templates/Vari.hbs | 2 ++ pom.xml | 2 +- 25 files changed, 77 insertions(+), 16 deletions(-) create mode 100644 polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/type/basic/AnyPolyType.java diff --git a/README.md b/README.md index 49fe8a9d..24003fab 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Java Client Library (beta) -* Latest released version 0.13.0 -* Latest snapshot version 0.13.1-SNAPSHOT +* Latest released version 0.14.0 +* Latest snapshot version 0.14.1-SNAPSHOT ## Introduction Welcome my friends! This is the Poly API Java client GitHub page. If you are here, then it means you're familiar with what we do at Poly. If you aren't, you can always check [here](https://github.com/polyapi/poly-alpha). @@ -55,7 +55,7 @@ Nice to have some customers looking around here! So, you'll need to run the foll 2. **Update the project.** Add the following to your project's `pom.xml`: ```xml - 0.12.0 + 0.13.1 diff --git a/commons/pom.xml b/commons/pom.xml index ee731e16..d94f93c6 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -4,7 +4,7 @@ io.polyapi parent-pom - 0.13.2-SNAPSHOT + 0.14.0-SNAPSHOT ../parent-pom diff --git a/library/pom.xml b/library/pom.xml index b2b8de6c..b70b7173 100644 --- a/library/pom.xml +++ b/library/pom.xml @@ -4,7 +4,7 @@ io.polyapi parent-pom - 0.13.2-SNAPSHOT + 0.14.0-SNAPSHOT ../parent-pom library diff --git a/parent-pom/pom.xml b/parent-pom/pom.xml index c3e562a2..6af5592c 100644 --- a/parent-pom/pom.xml +++ b/parent-pom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 io.polyapi parent-pom - 0.13.2-SNAPSHOT + 0.14.0-SNAPSHOT pom Poly API Java parent POM https://polyapi.io diff --git a/polyapi-maven-plugin/pom.xml b/polyapi-maven-plugin/pom.xml index 8a2d4977..895da1e2 100644 --- a/polyapi-maven-plugin/pom.xml +++ b/polyapi-maven-plugin/pom.xml @@ -4,7 +4,7 @@ io.polyapi parent-pom - 0.13.2-SNAPSHOT + 0.14.0-SNAPSHOT ../parent-pom polyapi-maven-plugin diff --git a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/ParsedType.java b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/ParsedType.java index 2ee5a963..7afd5eb3 100644 --- a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/ParsedType.java +++ b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/ParsedType.java @@ -25,7 +25,7 @@ public ParsedType(String baseClass) { public ParsedType(Type type) { if (type instanceof ParameterizedType parameterizedType) { - this.baseClass = parameterizedType.getTypeName(); + this.baseClass = parameterizedType.getRawType().getTypeName(); this.typeParameters = Arrays.stream(parameterizedType.getActualTypeArguments()).map(ParsedType::new).toList(); } else { this.baseClass = type.getTypeName(); diff --git a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/type/PolyType.java b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/type/PolyType.java index 850b1623..531eb42c 100644 --- a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/type/PolyType.java +++ b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/type/PolyType.java @@ -6,6 +6,7 @@ import io.polyapi.commons.api.model.PolyObject; import io.polyapi.plugin.model.type.basic.ArrayPolyType; import io.polyapi.plugin.model.type.basic.PlainPolyType; +import io.polyapi.plugin.model.type.basic.AnyPolyType; import io.polyapi.plugin.model.type.basic.VoidPolyType; import io.polyapi.plugin.model.type.complex.ObjectPolyType; import io.polyapi.plugin.model.type.function.FunctionPolyType; @@ -17,7 +18,8 @@ @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, property = "kind", - visible = true + visible = true, + defaultImpl = AnyPolyType.class ) @JsonSubTypes({ @JsonSubTypes.Type(value = VoidPolyType.class, name = "void"), diff --git a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/type/basic/AnyPolyType.java b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/type/basic/AnyPolyType.java new file mode 100644 index 00000000..a9ee537b --- /dev/null +++ b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/type/basic/AnyPolyType.java @@ -0,0 +1,18 @@ +package io.polyapi.plugin.model.type.basic; + +import io.polyapi.plugin.model.type.PolyType; +import io.polyapi.plugin.model.type.complex.MapObjectPolyType; +import io.polyapi.plugin.model.visitor.TypeVisitor; + +public class AnyPolyType extends PolyType implements MapObjectPolyType { + + @Override + public void accept(TypeVisitor visitor) { + visitor.visit(MapObjectPolyType.class.cast(this)); + } + + @Override + public String getTypeName() { + return "any"; + } +} diff --git a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/visitor/TypeVisitor.java b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/visitor/TypeVisitor.java index c514f239..35f19a9f 100644 --- a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/visitor/TypeVisitor.java +++ b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/model/visitor/TypeVisitor.java @@ -5,6 +5,7 @@ import io.polyapi.plugin.model.type.PropertyPolyType; import io.polyapi.plugin.model.type.basic.ArrayPolyType; import io.polyapi.plugin.model.type.basic.PlainPolyType; +import io.polyapi.plugin.model.type.basic.AnyPolyType; import io.polyapi.plugin.model.type.basic.VoidPolyType; import io.polyapi.plugin.model.type.complex.*; import io.polyapi.plugin.model.type.complex.MapObjectPolyType; @@ -84,4 +85,9 @@ default void visit(PrimitivePolyType type) { log.trace("Visiting PrimitivePolyType."); visit((PolyType) type); } + + default void visit(AnyPolyType type) { + log.trace("Visiting AnyPolyType."); + visit((MapObjectPolyType) type); + } } diff --git a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/DeploymentServiceImpl.java b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/DeploymentServiceImpl.java index b43add77..2bb72398 100644 --- a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/DeploymentServiceImpl.java +++ b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/DeploymentServiceImpl.java @@ -122,8 +122,12 @@ public List deployFunctions(List functionFilters, boolean Arrays.stream(method.getParameters()).map(parameter -> { log.debug("Processing parameter {}", parameter); PolyFunctionArgument argument = new PolyFunctionArgument(); - argument.setType(parameter.getParameterizedType().getTypeName()); - argument.setTypeSchema(jsonParser.toJsonSchema(parameter.getParameterizedType())); + if (parameter.getType().equals(Map.class)) { + argument.setType("any"); + } else { + argument.setType(parameter.getParameterizedType().getTypeName()); + argument.setTypeSchema(jsonParser.toJsonSchema(parameter.getParameterizedType())); + } argument.setRequired(true); argument.setKey(parameter.getName()); argument.setName(parameter.getName()); @@ -137,10 +141,13 @@ public List deployFunctions(List functionFilters, boolean "java.lang.Short", "java.lang.Byte" -> "number"; case "java.lang.Boolean" -> "boolean"; case "java.lang.String", "java.lang.Character" -> "string"; + case "java.util.Map" -> "any"; case "void" -> "void"; default -> "object"; }); - Optional.of(method.getGenericReturnType()).filter(not(isEqual(Void.TYPE))).map(jsonParser::toJsonSchema).map(schema -> jsonParser.>parseString(schema, defaultInstance().constructMapType(HashMap.class, String.class, Object.class))).ifPresent(polyFunction::setReturnTypeSchema); + if (!(polyFunction.getReturnType().equals("any") || polyFunction.getReturnType().equals("void"))) { + Optional.of(method.getGenericReturnType()).map(jsonParser::toJsonSchema).map(schema -> jsonParser.>parseString(schema, defaultInstance().constructMapType(HashMap.class, String.class, Object.class))).ifPresent(polyFunction::setReturnTypeSchema); + } String type = annotation.type(); PolyFunction result = null; if (dryRun) { diff --git a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/MavenService.java b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/MavenService.java index 2ab640a2..99d76d93 100644 --- a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/MavenService.java +++ b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/MavenService.java @@ -126,6 +126,7 @@ public Set scanPolyFunctions(Predicate filter) { Set methods = Stream.concat(reflections.getMethodsAnnotatedWith(PolyServerFunction.class).stream(), reflections.getMethodsAnnotatedWith(PolyClientFunction.class).stream()) .filter(filter) + .filter(not(method -> method.getDeclaringClass().isAnnotationPresent(PolyGeneratedClass.class))) .collect(toSet()); log.info("Found {} methods to convert.", methods.size()); List.of(RequiredDependency.class, RequiredDependencies.class).forEach(annotation -> @@ -133,7 +134,6 @@ public Set scanPolyFunctions(Predicate filter) { .filter(not(methods::contains)) .forEach(misusedMethod -> log.warn("Method {} is annotated with {} but is ignored as it needs to be annotated with either {} or {} to be scanned.", misusedMethod, misusedMethod.getAnnotation(annotation).getClass().getSimpleName(), PolyServerFunction.class.getSimpleName(), PolyClientFunction.class.getSimpleName()))); Set validatedMethods = methods.stream() - .filter(not(method -> method.getDeclaringClass().isAnnotationPresent(PolyGeneratedClass.class))) .filter(method -> { boolean result = true; PolyFunctionAnnotationRecord polyFunction = PolyFunctionAnnotationRecord.createFrom(method); diff --git a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/visitor/ImportsCollectorVisitor.java b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/visitor/ImportsCollectorVisitor.java index 7676dc78..8ade3a97 100644 --- a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/visitor/ImportsCollectorVisitor.java +++ b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/visitor/ImportsCollectorVisitor.java @@ -19,7 +19,11 @@ import lombok.Getter; import lombok.extern.slf4j.Slf4j; -import java.util.*; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; import java.util.function.Consumer; import static java.lang.String.format; diff --git a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/visitor/TypeExtractionVisitor.java b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/visitor/TypeExtractionVisitor.java index aef46d9e..20c2b5cb 100644 --- a/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/visitor/TypeExtractionVisitor.java +++ b/polyapi-maven-plugin/src/main/java/io/polyapi/plugin/service/visitor/TypeExtractionVisitor.java @@ -3,6 +3,7 @@ import com.fasterxml.jackson.databind.type.TypeFactory; import io.polyapi.plugin.model.ParsedType; import io.polyapi.plugin.model.type.PolyType; +import io.polyapi.plugin.model.type.basic.AnyPolyType; import io.polyapi.plugin.model.type.basic.ArrayPolyType; import io.polyapi.plugin.model.type.basic.PlainPolyType; import io.polyapi.plugin.model.type.basic.VoidPolyType; @@ -14,6 +15,7 @@ import io.polyapi.plugin.service.schema.JsonSchemaParser; import lombok.Getter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.reflect.TypeUtils; import java.util.List; import java.util.Map; @@ -69,7 +71,7 @@ public void visit(PlainPolyType type) { result = Optional.ofNullable(type) .map(PlainPolyType::getValue) .filter(not(isEqual("void"))) - .map(plainType -> new ParsedType(Object.class)) + .map(plainType -> new ParsedType(plainType.equals("any")? TypeUtils.parameterize(Map.class, String.class, Object.class) : Object.class)) .orElse(new ParsedType(Void.class)); } diff --git a/polyapi-maven-plugin/src/main/resources/templates/Poly.hbs b/polyapi-maven-plugin/src/main/resources/templates/Poly.hbs index 5c2abbc2..eb60f61f 100644 --- a/polyapi-maven-plugin/src/main/resources/templates/Poly.hbs +++ b/polyapi-maven-plugin/src/main/resources/templates/Poly.hbs @@ -8,11 +8,13 @@ import io.polyapi.client.api.AuthTokenOptions; import io.polyapi.commons.api.websocket.Handle; import java.util.function.Consumer; import io.polyapi.commons.api.model.PolyErrorEvent; +import io.polyapi.commons.api.model.PolyGeneratedClass; {{~#each this.imports}} import {{{this}}}; {{~/each}} +@PolyGeneratedClass public class {{className}} extends PolyContext { {{~#each specifications}} private static {{this.className}} {{this.name}}; diff --git a/polyapi-maven-plugin/src/main/resources/templates/PropertiesObject.hbs b/polyapi-maven-plugin/src/main/resources/templates/PropertiesObject.hbs index 2fe15ac5..3c8f163a 100644 --- a/polyapi-maven-plugin/src/main/resources/templates/PropertiesObject.hbs +++ b/polyapi-maven-plugin/src/main/resources/templates/PropertiesObject.hbs @@ -2,12 +2,14 @@ package {{packageName}}; import lombok.Getter; import io.polyapi.commons.api.model.PolyObject; +import io.polyapi.commons.api.model.PolyGeneratedClass; {{~#each imports}} import {{this}}; {{~/each}} @Getter +@PolyGeneratedClass public class {{className}} implements PolyObject { {{~#each properties}} diff --git a/polyapi-maven-plugin/src/main/resources/templates/ResolvedApiFunctionSpecification.hbs b/polyapi-maven-plugin/src/main/resources/templates/ResolvedApiFunctionSpecification.hbs index 681ab83b..6e373a51 100644 --- a/polyapi-maven-plugin/src/main/resources/templates/ResolvedApiFunctionSpecification.hbs +++ b/polyapi-maven-plugin/src/main/resources/templates/ResolvedApiFunctionSpecification.hbs @@ -3,6 +3,7 @@ package {{packageName}}; import io.polyapi.client.api.model.function.PolyApiFunction; import io.polyapi.client.api.model.PolyEntity; import io.polyapi.client.api.model.PolyMetadata; +import io.polyapi.commons.api.model.PolyGeneratedClass; {{~#each imports}} import {{this}}; {{~/each}} @@ -13,6 +14,7 @@ import {{this}}; @PolyEntity("{{id}}") @PolyMetadata(paramNames = { {{{paramNames}}} }, paramTypes = { {{{paramTypes}}} }) +@PolyGeneratedClass public interface {{className}} extends PolyApiFunction { {{{returnType}}} {{{methodSignature}}}; diff --git a/polyapi-maven-plugin/src/main/resources/templates/ResolvedContext.hbs b/polyapi-maven-plugin/src/main/resources/templates/ResolvedContext.hbs index 9ea1550d..9765b8fd 100644 --- a/polyapi-maven-plugin/src/main/resources/templates/ResolvedContext.hbs +++ b/polyapi-maven-plugin/src/main/resources/templates/ResolvedContext.hbs @@ -6,10 +6,12 @@ import io.polyapi.client.internal.model.PolyContext; import io.polyapi.client.api.AuthTokenEventConsumer; import io.polyapi.client.api.model.PolyEntity; import io.polyapi.client.api.AuthTokenOptions; +import io.polyapi.commons.api.model.PolyGeneratedClass; {{~#each this.imports}} import {{{this}}}; {{~/each}} +@PolyGeneratedClass public class {{className}} extends PolyContext { {{~#each functionSpecifications}} private final {{this.className}} {{this.name}}; diff --git a/polyapi-maven-plugin/src/main/resources/templates/ResolvedCustomFunctionSpecification.hbs b/polyapi-maven-plugin/src/main/resources/templates/ResolvedCustomFunctionSpecification.hbs index b071f288..253eea88 100644 --- a/polyapi-maven-plugin/src/main/resources/templates/ResolvedCustomFunctionSpecification.hbs +++ b/polyapi-maven-plugin/src/main/resources/templates/ResolvedCustomFunctionSpecification.hbs @@ -3,6 +3,7 @@ package {{packageName}}; import io.polyapi.client.api.model.function.PolyCustomFunction; import io.polyapi.client.api.model.PolyEntity; import io.polyapi.client.api.model.PolyMetadata; +import io.polyapi.commons.api.model.PolyGeneratedClass; {{~#each imports}} import {{this}}; {{~/each}} @@ -14,6 +15,7 @@ import {{this}}; @PolyMetadata(delegate = "{{{delegate}}}", paramNames = { {{{paramNames}}} }, paramTypes = { {{{paramTypes}}} }) +@PolyGeneratedClass public interface {{className}} extends PolyCustomFunction { {{{returnType}}} {{{methodSignature}}}; diff --git a/polyapi-maven-plugin/src/main/resources/templates/ResolvedServerFunctionSpecification.hbs b/polyapi-maven-plugin/src/main/resources/templates/ResolvedServerFunctionSpecification.hbs index a13b28bf..33ee17f5 100644 --- a/polyapi-maven-plugin/src/main/resources/templates/ResolvedServerFunctionSpecification.hbs +++ b/polyapi-maven-plugin/src/main/resources/templates/ResolvedServerFunctionSpecification.hbs @@ -3,6 +3,7 @@ package {{packageName}}; import io.polyapi.client.api.model.function.PolyServerFunction; import io.polyapi.client.api.model.PolyEntity; import io.polyapi.client.api.model.PolyMetadata; +import io.polyapi.commons.api.model.PolyGeneratedClass; {{~#each imports}} import {{this}}; {{~/each}} @@ -13,6 +14,7 @@ import {{this}}; @PolyEntity("{{id}}") @PolyMetadata(paramNames = { {{{paramNames}}} }, paramTypes = { {{{paramTypes}}} }) +@PolyGeneratedClass public interface {{className}} extends PolyServerFunction { {{{returnType}}} {{{methodSignature}}}; diff --git a/polyapi-maven-plugin/src/main/resources/templates/ResolvedServerVariableSpecification.hbs b/polyapi-maven-plugin/src/main/resources/templates/ResolvedServerVariableSpecification.hbs index 1a5de70e..4ee48e77 100644 --- a/polyapi-maven-plugin/src/main/resources/templates/ResolvedServerVariableSpecification.hbs +++ b/polyapi-maven-plugin/src/main/resources/templates/ResolvedServerVariableSpecification.hbs @@ -3,6 +3,7 @@ package {{packageName}}; import io.polyapi.client.api.model.PolyEntity; import io.polyapi.client.api.model.PolyMetadata; import io.polyapi.client.api.model.variable.{{~#if secret}}ServerVariable{{~else}}RetrievableServerVariable{{/if}}Handler; +import io.polyapi.commons.api.model.PolyGeneratedClass; {{~#each imports}} import {{this}}; {{~/each}} @@ -12,6 +13,7 @@ import {{this}}; */ @PolyEntity("{{id}}") @PolyMetadata(paramTypes = "{{{valueType}}}") +@PolyGeneratedClass public interface {{className}} extends{{~#if secret}} ServerVariable{{~else}} RetrievableServerVariable{{/if}}Handler<{{valueType}}> { {{~#if secret}} {{~else}} diff --git a/polyapi-maven-plugin/src/main/resources/templates/ResolvedStandardAuthFunctionSpecification.hbs b/polyapi-maven-plugin/src/main/resources/templates/ResolvedStandardAuthFunctionSpecification.hbs index e86cad14..84c8c6f1 100644 --- a/polyapi-maven-plugin/src/main/resources/templates/ResolvedStandardAuthFunctionSpecification.hbs +++ b/polyapi-maven-plugin/src/main/resources/templates/ResolvedStandardAuthFunctionSpecification.hbs @@ -3,6 +3,7 @@ package {{packageName}}; import io.polyapi.client.api.model.PolyEntity; import io.polyapi.client.api.model.PolyMetadata; import io.polyapi.client.api.model.function.{{#if this.audienceRequired}}Audience{{/if}}TokenAuthFunction; +import io.polyapi.commons.api.model.PolyGeneratedClass; /** * Poly auth function with ID {{id}}. @@ -10,5 +11,6 @@ import io.polyapi.client.api.model.function.{{#if this.audienceRequired}}Audienc @PolyEntity("{{id}}") @PolyMetadata(paramNames = { {{{paramNames}}} }, paramTypes = { {{{paramTypes}}} }) +@PolyGeneratedClass public interface {{className}} extends {{#if this.audienceRequired}}Audience{{/if}}TokenAuthFunction { } diff --git a/polyapi-maven-plugin/src/main/resources/templates/ResolvedSubresourceAuthFunctionSpecification.hbs b/polyapi-maven-plugin/src/main/resources/templates/ResolvedSubresourceAuthFunctionSpecification.hbs index 21b50199..4773e944 100644 --- a/polyapi-maven-plugin/src/main/resources/templates/ResolvedSubresourceAuthFunctionSpecification.hbs +++ b/polyapi-maven-plugin/src/main/resources/templates/ResolvedSubresourceAuthFunctionSpecification.hbs @@ -4,6 +4,7 @@ import io.polyapi.client.api.model.PolyEntity; import io.polyapi.client.api.model.PolyMetadata; import io.polyapi.client.api.model.function.SubresourceAuthFunction; import io.polyapi.client.api.model.function.PolyAuthSubresource; +import io.polyapi.commons.api.model.PolyGeneratedClass; /** * Poly auth function with ID {{id}}. @@ -12,6 +13,7 @@ import io.polyapi.client.api.model.function.PolyAuthSubresource; @PolyMetadata(paramNames = { {{{paramNames}}} }, paramTypes = { {{{paramTypes}}} }) @PolyAuthSubresource("{{{subResource}}}") +@PolyGeneratedClass public interface {{className}} extends SubresourceAuthFunction { {{{returnType}}} {{{methodSignature}}}; diff --git a/polyapi-maven-plugin/src/main/resources/templates/ResolvedWebhookHandleSpecification.hbs b/polyapi-maven-plugin/src/main/resources/templates/ResolvedWebhookHandleSpecification.hbs index bc9a40e5..4ee3fbf0 100644 --- a/polyapi-maven-plugin/src/main/resources/templates/ResolvedWebhookHandleSpecification.hbs +++ b/polyapi-maven-plugin/src/main/resources/templates/ResolvedWebhookHandleSpecification.hbs @@ -6,12 +6,14 @@ import io.polyapi.client.api.model.websocket.PolyTrigger; import io.polyapi.commons.api.model.PolyEventConsumer; import io.polyapi.commons.api.websocket.Handle; import java.util.function.Consumer; +import io.polyapi.commons.api.model.PolyGeneratedClass; /** * Poly webhook handler with ID {{id}}. */ @PolyEntity("{{id}}") @PolyMetadata(paramTypes="{{{eventType}}}") +@PolyGeneratedClass public interface {{className}} extends PolyTrigger { Handle handle{{className}}(PolyEventConsumer<{{{eventType}}}> trigger); diff --git a/polyapi-maven-plugin/src/main/resources/templates/Vari.hbs b/polyapi-maven-plugin/src/main/resources/templates/Vari.hbs index 7467a58b..db010d2f 100644 --- a/polyapi-maven-plugin/src/main/resources/templates/Vari.hbs +++ b/polyapi-maven-plugin/src/main/resources/templates/Vari.hbs @@ -5,10 +5,12 @@ import io.polyapi.client.internal.model.PolyContext; import io.polyapi.client.api.AuthTokenEventConsumer; import io.polyapi.client.api.model.PolyEntity; import io.polyapi.client.api.AuthTokenOptions; +import io.polyapi.commons.api.model.PolyGeneratedClass; {{~#each this.imports}} import {{{this}}}; {{~/each}} +@PolyGeneratedClass public class {{className}} extends PolyContext { {{~#each serverVariableSpecifications}} diff --git a/pom.xml b/pom.xml index d78f80c6..83d26d73 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 io.polyapi polyapi-java - 0.13.2-SNAPSHOT + 0.14.0-SNAPSHOT pom parent-pom