From b6e18f96072b09dbdde973f896ccda3913291e69 Mon Sep 17 00:00:00 2001 From: Steve Hu Date: Wed, 3 Mar 2021 14:17:38 -0500 Subject: [PATCH 1/2] fixes #548 Generate light-4j mutliple-module project with service injection to hide Undertow exchange --- .../codegen/rest/OpenApiGenerator.java | 2 + .../codegen/rest/OpenApiLightGenerator.java | 22 +++++-- .../rest/domain/buildGradleKts.rocker.raw | 23 +++++++ .../templates/rest/domain/pom.xml.rocker.raw | 55 ++++++++++++++++ .../rest/domain/settingsGradleKts.rocker.raw | 1 + .../templates/rest/handler.rocker.raw | 30 ++++++--- .../templates/rest/handlerService.rocker.raw | 10 +++ .../rest/handlerServiceImpl.rocker.raw | 29 +++++++++ .../rest/parent/buildGradleKts.rocker.raw | 5 ++ .../rest/parent/gradleProperties.rocker.raw | 3 + .../templates/rest/parent/pom.xml.rocker.raw | 17 +++++ .../rest/parent/settingsGradleKts.rocker.raw | 2 +- .../rest/server/buildGradleKts.rocker.raw | 1 + .../templates/rest/server/pom.xml.rocker.raw | 64 +++---------------- .../rest/service/buildGradleKts.rocker.raw | 5 +- .../templates/rest/service/pom.xml.rocker.raw | 14 +++- .../templates/rest/serviceYml.rocker.raw | 8 ++- 17 files changed, 216 insertions(+), 75 deletions(-) create mode 100644 light-rest-4j/src/main/resources/templates/rest/domain/buildGradleKts.rocker.raw create mode 100644 light-rest-4j/src/main/resources/templates/rest/domain/pom.xml.rocker.raw create mode 100644 light-rest-4j/src/main/resources/templates/rest/domain/settingsGradleKts.rocker.raw create mode 100644 light-rest-4j/src/main/resources/templates/rest/handlerService.rocker.raw create mode 100644 light-rest-4j/src/main/resources/templates/rest/handlerServiceImpl.rocker.raw diff --git a/light-rest-4j/src/main/java/com/networknt/codegen/rest/OpenApiGenerator.java b/light-rest-4j/src/main/java/com/networknt/codegen/rest/OpenApiGenerator.java index fa62fe438..0f73bd4e4 100644 --- a/light-rest-4j/src/main/java/com/networknt/codegen/rest/OpenApiGenerator.java +++ b/light-rest-4j/src/main/java/com/networknt/codegen/rest/OpenApiGenerator.java @@ -316,6 +316,8 @@ default List> getOperationList(Object model, JsonNode config flattened.put("path", basePath + path); String normalizedPath = path.replace("{", "").replace("}", ""); flattened.put("handlerName", Utils.camelize(normalizedPath) + Utils.camelize(entryOps.getKey()) + "Handler"); + flattened.put("serviceName", Utils.camelize(normalizedPath) + Utils.camelize(entryOps.getKey()) + "Service"); + flattened.put("serviceImpl", Utils.camelize(normalizedPath) + Utils.camelize(entryOps.getKey()) + "ServiceImpl"); flattened.put("functionName", Utils.camelize(normalizedPath) + Utils.camelize(entryOps.getKey()) + "Function"); flattened.put("endpoint", path + "@" + entryOps.getKey().toLowerCase()); flattened.put("apiName", Utils.camelize(normalizedPath) + Utils.camelize(entryOps.getKey())); diff --git a/light-rest-4j/src/main/java/com/networknt/codegen/rest/OpenApiLightGenerator.java b/light-rest-4j/src/main/java/com/networknt/codegen/rest/OpenApiLightGenerator.java index 27425c72e..62a1d3b23 100644 --- a/light-rest-4j/src/main/java/com/networknt/codegen/rest/OpenApiLightGenerator.java +++ b/light-rest-4j/src/main/java/com/networknt/codegen/rest/OpenApiLightGenerator.java @@ -86,9 +86,10 @@ public void generate(final String targetPath, Object model, JsonNode config) thr if (!skipPomFile) { transfer(targetPath, "", "pom.xml", templates.rest.parent.pom.template(config)); transfer(targetPath, "model", "pom.xml", templates.rest.model.pom.template(config)); + transfer(targetPath, "service", "pom.xml", templates.rest.service.pom.template(config)); + transfer(targetPath, "domain", "pom.xml", templates.rest.domain.pom.template(config)); transfer(targetPath, "server", "pom.xml", templates.rest.server.pom.template(config)); transfer(targetPath, "client", "pom.xml", templates.rest.client.pom.template(config)); - transfer(targetPath, "service", "pom.xml", templates.rest.service.pom.template(config)); } transferMaven(targetPath); } else { @@ -100,14 +101,18 @@ public void generate(final String targetPath, Object model, JsonNode config) thr transfer(targetPath, "model", "build.gradle.kts", templates.rest.model.buildGradleKts.template(config)); transfer(targetPath, "model", "settings.gradle.kts", templates.rest.model.settingsGradleKts.template()); + transfer(targetPath, "service", "build.gradle.kts", templates.rest.service.buildGradleKts.template(config)); + transfer(targetPath, "service", "settings.gradle.kts", templates.rest.service.settingsGradleKts.template()); + + transfer(targetPath, "domain", "build.gradle.kts", templates.rest.domain.buildGradleKts.template(config)); + transfer(targetPath, "domain", "settings.gradle.kts", templates.rest.domain.settingsGradleKts.template()); + transfer(targetPath, "server", "build.gradle.kts", templates.rest.server.buildGradleKts.template(config)); transfer(targetPath, "server", "settings.gradle.kts", templates.rest.server.settingsGradleKts.template()); transfer(targetPath, "client", "build.gradle.kts", templates.rest.client.buildGradleKts.template(config)); transfer(targetPath, "client", "settings.gradle.kts", templates.rest.client.settingsGradleKts.template()); - transfer(targetPath, "service", "build.gradle.kts", templates.rest.service.buildGradleKts.template(config)); - transfer(targetPath, "service", "settings.gradle.kts", templates.rest.service.settingsGradleKts.template()); transferGradle(targetPath); } @@ -133,7 +138,7 @@ public void generate(final String targetPath, Object model, JsonNode config) thr transfer(targetPath, "", ".project", templates.rest.project.template(config)); } // config - transfer(targetPath, ("server.src.main.resources.config").replace(".", separator), "service.yml", templates.rest.serviceYml.template(config)); + transfer(targetPath, ("server.src.main.resources.config").replace(".", separator), "service.yml", templates.rest.serviceYml.template(config, operationList)); transfer(targetPath, ("server.src.main.resources.config").replace(".", separator), "server.yml", templates.rest.serverYml.template(serviceId, enableHttp, httpPort, enableHttps, httpsPort, enableHttp2, enableRegistry, version)); @@ -222,16 +227,21 @@ public void generate(final String targetPath, Object model, JsonNode config) thr // handler for (Map op : operationList) { String className = op.get("handlerName").toString(); + String serviceName = op.get("serviceName").toString(); + String serviceImpl = op.get("serviceImpl").toString(); @SuppressWarnings("unchecked") List parameters = (List)op.get("parameters"); Map responseExample = (Map)op.get("responseExample"); String example = responseExample.get("example"); String statusCode = responseExample.get("statusCode"); statusCode = StringUtils.isBlank(statusCode) || statusCode.equals("default") ? "-1" : statusCode; - if (checkExist(targetPath, ("server.src.main.java." + handlerPackage).replace(".", separator), className + ".java") && !overwriteHandler) { + transfer(targetPath, ("server.src.main.java." + handlerPackage).replace(".", separator), className + ".java", templates.rest.handler.template(handlerPackage, className, serviceName, parameters)); + transfer(targetPath, ("service.src.main.java." + handlerPackage).replace(".", separator), serviceName + ".java", templates.rest.handlerService.template(handlerPackage, serviceName)); + + if (checkExist(targetPath, ("domain.src.main.java." + handlerPackage).replace(".", separator), serviceImpl + ".java") && !overwriteHandler) { continue; } - transfer(targetPath, ("server.src.main.java." + handlerPackage).replace(".", separator), className + ".java", templates.rest.handler.template(handlerPackage, className, statusCode, example, parameters)); + transfer(targetPath, ("domain.src.main.java." + handlerPackage).replace(".", separator), serviceImpl + ".java", templates.rest.handlerServiceImpl.template(handlerPackage, serviceImpl, serviceName, statusCode, example, parameters)); } // handler test cases diff --git a/light-rest-4j/src/main/resources/templates/rest/domain/buildGradleKts.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/domain/buildGradleKts.rocker.raw new file mode 100644 index 000000000..e0237051f --- /dev/null +++ b/light-rest-4j/src/main/resources/templates/rest/domain/buildGradleKts.rocker.raw @@ -0,0 +1,23 @@ +@import com.fasterxml.jackson.databind.JsonNode +@args (JsonNode config) +plugins { + java +} + +dependencies { + implementation(project(":model")) + implementation(project(":service")) + val light4jVersion: String by project + implementation("com.networknt", "utility", light4jVersion) + implementation("com.networknt", "http-entity", light4jVersion) + val jacksonVersion: String by project + implementation("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) + val slf4jVersion: String by project + implementation("org.slf4j", "slf4j-api", slf4jVersion) + val undertowVersion: String by project + implementation("io.undertow", "undertow-core", undertowVersion) + val logbackVersion: String by project + implementation("ch.qos.logback", "logback-classic", logbackVersion) + val junitVersion: String by project + testImplementation("junit", "junit", junitVersion) +} diff --git a/light-rest-4j/src/main/resources/templates/rest/domain/pom.xml.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/domain/pom.xml.rocker.raw new file mode 100644 index 000000000..08314861c --- /dev/null +++ b/light-rest-4j/src/main/resources/templates/rest/domain/pom.xml.rocker.raw @@ -0,0 +1,55 @@ +@import com.fasterxml.jackson.databind.JsonNode +@args (JsonNode config) + + + + @config.get("groupId").textValue() + @config.get("artifactId").textValue() + @config.get("version").textValue() + .. + + 4.0.0 + + service + jar + The generated sub for handler service implementations that will be invoked by the server. Add business logic here. + + + + @config.get("groupId").textValue() + model + + + @config.get("groupId").textValue() + service + + + com.networknt + utility + + + com.networknt + http-entity + + + com.fasterxml.jackson.core + jackson-databind + + + org.slf4j + slf4j-api + + + ch.qos.logback + logback-classic + test + + + junit + junit + test + + + diff --git a/light-rest-4j/src/main/resources/templates/rest/domain/settingsGradleKts.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/domain/settingsGradleKts.rocker.raw new file mode 100644 index 000000000..0b63b700d --- /dev/null +++ b/light-rest-4j/src/main/resources/templates/rest/domain/settingsGradleKts.rocker.raw @@ -0,0 +1 @@ +// Mark the folder as a Gradle project diff --git a/light-rest-4j/src/main/resources/templates/rest/handler.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/handler.rocker.raw index ee53f35f8..a854b6a31 100644 --- a/light-rest-4j/src/main/resources/templates/rest/handler.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/handler.rocker.raw @@ -2,13 +2,18 @@ @import java.util.Map @import java.util.List @option discardLogicWhitespace=true -@args (String handlerPackage, String className, String statusCode, String example, List parameters) +@args (String handlerPackage, String className, String serviceName, List parameters) package @handlerPackage; import com.networknt.handler.LightHttpHandler; +import com.networknt.http.HttpMethod; +import com.networknt.http.RequestEntity; +import com.networknt.http.ResponseEntity; +import com.networknt.service.SingletonServiceFactory; import io.undertow.server.HttpServerExchange; -import io.undertow.util.HttpString; -import java.util.HashMap; +import io.undertow.util.HeaderMap; + +import java.util.Deque; import java.util.Map; /** @@ -24,12 +29,17 @@ public class @className implements LightHttpHandler { */} @@Override public void handleRequest(HttpServerExchange exchange) throws Exception { - @if(example != null) { - exchange.getResponseHeaders().add(new HttpString("Content-Type"), "application/json"); - exchange.setStatusCode(@statusCode); - @with (e = StringEscapeUtils.escapeJson(example)) {exchange.getResponseSender().send("@e");} - } else { - exchange.endExchange(); - } + HeaderMap requestHeaders = exchange.getRequestHeaders(); + Map> queryParameters = exchange.getQueryParameters(); + Map> pathParameters = exchange.getPathParameters(); + HttpMethod httpMethod = HttpMethod.resolve(exchange.getRequestMethod().toString()); + RequestEntity requestEntity = new RequestEntity<>(null, requestHeaders, httpMethod, null, null, queryParameters, pathParameters); + @serviceName service = SingletonServiceFactory.getBean(@with(name=serviceName + ".class"){@name}); + ResponseEntity responseEntity = service.apply(requestEntity); + responseEntity.getHeaders().forEach(values -> { + exchange.getResponseHeaders().add(values.getHeaderName(), values.getFirst()); + }); + exchange.setStatusCode(responseEntity.getStatusCodeValue()); + exchange.getResponseSender().send(responseEntity.getBody()); } } diff --git a/light-rest-4j/src/main/resources/templates/rest/handlerService.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/handlerService.rocker.raw new file mode 100644 index 000000000..9cc229dfe --- /dev/null +++ b/light-rest-4j/src/main/resources/templates/rest/handlerService.rocker.raw @@ -0,0 +1,10 @@ +@option discardLogicWhitespace=true +@args (String handlerPackage, String className) +package @handlerPackage; + +import com.networknt.http.RequestEntity; +import com.networknt.http.ResponseEntity; + +public interface @className { + ResponseEntity apply(RequestEntity requestEntity); +} diff --git a/light-rest-4j/src/main/resources/templates/rest/handlerServiceImpl.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/handlerServiceImpl.rocker.raw new file mode 100644 index 000000000..8264c8835 --- /dev/null +++ b/light-rest-4j/src/main/resources/templates/rest/handlerServiceImpl.rocker.raw @@ -0,0 +1,29 @@ +@import org.apache.commons.text.StringEscapeUtils +@import java.util.Map +@import java.util.List +@option discardLogicWhitespace=true +@args (String handlerPackage, String serviceImpl, String serviceName, String statusCode, String example, List parameters) +package @handlerPackage; + +import com.networknt.http.HttpStatus; +import com.networknt.http.MediaType; +import com.networknt.http.RequestEntity; +import com.networknt.http.ResponseEntity; +import io.undertow.util.HeaderMap; +import io.undertow.util.Headers; +import io.undertow.util.HttpString; + +public class @serviceImpl implements @serviceName { + @@Override + public ResponseEntity apply(RequestEntity requestEntity) { + HeaderMap responseHeaders = new HeaderMap(); + responseHeaders.add(Headers.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); + @if(example != null) { + @with (e = StringEscapeUtils.escapeJson(example)) {String body = "@e";} + } else { + String body = ""; + } + ResponseEntity responseEntity = new ResponseEntity<>(body, responseHeaders, HttpStatus.OK); + return responseEntity; + } +} diff --git a/light-rest-4j/src/main/resources/templates/rest/parent/buildGradleKts.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/parent/buildGradleKts.rocker.raw index 37fd21585..982174035 100644 --- a/light-rest-4j/src/main/resources/templates/rest/parent/buildGradleKts.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/parent/buildGradleKts.rocker.raw @@ -16,6 +16,11 @@ allprojects { repositories { mavenLocal() // mavenLocal must be added first. jcenter() + @if(config.get("supportAvro").booleanValue()){ + maven { + url = uri("http://packages.confluent.io/maven/") + } + } } } diff --git a/light-rest-4j/src/main/resources/templates/rest/parent/gradleProperties.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/parent/gradleProperties.rocker.raw index eb31ec9a1..e6aa794ed 100644 --- a/light-rest-4j/src/main/resources/templates/rest/parent/gradleProperties.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/parent/gradleProperties.rocker.raw @@ -24,3 +24,6 @@ postgresVersion=42.1.1 @if(config.get("supportH2ForTest").booleanValue()){ h2Version=1.3.176 } +@if(config.get("supportAvro").booleanValue()){ +avroVersion=5.3.3 +} diff --git a/light-rest-4j/src/main/resources/templates/rest/parent/pom.xml.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/parent/pom.xml.rocker.raw index 2da28b2c8..d4c70e816 100644 --- a/light-rest-4j/src/main/resources/templates/rest/parent/pom.xml.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/parent/pom.xml.rocker.raw @@ -55,8 +55,10 @@ model + interface service server + client @@ -66,11 +68,26 @@ model ${project.version} + + @config.get("groupId").textValue() + interface + ${project.version} + @config.get("groupId").textValue() service ${project.version} + + @config.get("groupId").textValue() + server + ${project.version} + + + @config.get("groupId").textValue() + client + ${project.version} + com.networknt diff --git a/light-rest-4j/src/main/resources/templates/rest/parent/settingsGradleKts.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/parent/settingsGradleKts.rocker.raw index bf6527d3f..11c8dacfe 100644 --- a/light-rest-4j/src/main/resources/templates/rest/parent/settingsGradleKts.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/parent/settingsGradleKts.rocker.raw @@ -1 +1 @@ -include("model", "service", "client", "server") \ No newline at end of file +include("model", "service", "domain", "client", "server") \ No newline at end of file diff --git a/light-rest-4j/src/main/resources/templates/rest/server/buildGradleKts.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/server/buildGradleKts.rocker.raw index 5c5f640e9..0e708ead3 100644 --- a/light-rest-4j/src/main/resources/templates/rest/server/buildGradleKts.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/server/buildGradleKts.rocker.raw @@ -46,6 +46,7 @@ dependencies { implementation("com.networknt", "openapi-security", light4jVersion) implementation("com.networknt", "openapi-validator", light4jVersion) implementation("com.networknt", "specification", light4jVersion) + implementation("com.networknt", "http-entity", light4jVersion) @if(config.get("kafkaProducer").booleanValue() ||config.get("kafkaConsumer").booleanValue()){ implementation("com.networknt", "kafka-common", light4jVersion) } diff --git a/light-rest-4j/src/main/resources/templates/rest/server/pom.xml.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/server/pom.xml.rocker.raw index 80e571c57..959ab8d4e 100644 --- a/light-rest-4j/src/main/resources/templates/rest/server/pom.xml.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/server/pom.xml.rocker.raw @@ -29,266 +29,222 @@ com.networknt config - ${version.light-4j} com.networknt utility - ${version.light-4j} com.networknt security - ${version.light-4j} com.networknt client - ${version.light-4j} com.networknt audit - ${version.light-4j} com.networknt info - ${version.light-4j} com.networknt health - ${version.light-4j} com.networknt status - ${version.light-4j} com.networknt exception - ${version.light-4j} com.networknt body - ${version.light-4j} com.networknt dump - ${version.light-4j} com.networknt mask - ${version.light-4j} com.networknt metrics - ${version.light-4j} @if(config.get("prometheusMetrics").booleanValue()){ com.networknt prometheus - ${version.light-4j} } com.networknt handler - ${version.light-4j} com.networknt sanitizer - ${version.light-4j} com.networknt traceability - ${version.light-4j} com.networknt correlation - ${version.light-4j} com.networknt service - ${version.light-4j} com.networknt registry - ${version.light-4j} com.networknt balance - ${version.light-4j} com.networknt cluster - ${version.light-4j} com.networknt portal-registry - ${version.light-4j} com.networknt logger-config - ${version.light-4j} com.networknt decryptor - ${version.light-4j} com.networknt server - ${version.light-4j} com.networknt json-schema-validator - ${version.json-schema-validator} com.networknt openapi-parser - ${version.light-4j} com.networknt openapi-meta - ${version.light-4j} com.networknt openapi-security - ${version.light-4j} com.networknt openapi-validator - ${version.light-4j} com.networknt specification - ${version.light-4j} + + + com.networknt + http-entity @if(config.get("kafkaProducer").booleanValue() ||config.get("kafkaConsumer").booleanValue()){ com.networknt kafka-common - ${version.light-4j} } @if(config.get("kafkaProducer").booleanValue()){ com.networknt kafka-producer - ${version.light-4j} } @if(config.get("kafkaConsumer").booleanValue()){ com.networknt kafka-consumer - ${version.light-4j} org.apache.kafka kafka-streams - ${version.kafka} } com.fasterxml.jackson.core jackson-databind - ${version.jackson} com.fasterxml.jackson.core jackson-core - ${version.jackson} com.fasterxml.jackson.datatype jackson-datatype-jsr310 - ${version.jackson} ch.qos.logback logback-classic - ${version.logback} io.undertow undertow-core - ${version.undertow} @if(config.get("supportDb").booleanValue() || config.get("supportH2ForTest").booleanValue()){ com.zaxxer HikariCP - ${version.hikaricp} } @if(config.get("supportDb").booleanValue() && "oracle".equalsIgnoreCase(config.path("dbInfo").path("name").textValue())){ com.oracle ojdbc6 - ${version.oracle} } @if(config.get("supportDb").booleanValue() && "mysql".equalsIgnoreCase(config.path("dbInfo").path("name").textValue())){ mysql mysql-connector-java - ${version.mysql} } @if(config.get("supportDb").booleanValue() && "postgres".equalsIgnoreCase(config.path("dbInfo").path("name").textValue())){ org.postgresql postgresql - ${version.postgres} + + } + @if(config.get("supportAvro").booleanValue()){ + + io.confluent + kafka-schema-registry-client } junit junit - ${version.junit} test @if(config.get("supportH2ForTest").booleanValue()){ com.h2database h2 - ${version.h2} test } - @if(config.get("supportAvro").booleanValue()){ - - io.confluent - kafka-schema-registry-client - ${version.confluent} - - } diff --git a/light-rest-4j/src/main/resources/templates/rest/service/buildGradleKts.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/service/buildGradleKts.rocker.raw index a89548de2..8af779c32 100644 --- a/light-rest-4j/src/main/resources/templates/rest/service/buildGradleKts.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/service/buildGradleKts.rocker.raw @@ -5,9 +5,10 @@ plugins { } dependencies { + implementation(project(":model")) val light4jVersion: String by project - implementation("com.networknt", "service", light4jVersion) - implementation("com.networknt", "client", light4jVersion) + implementation("com.networknt", "utility", light4jVersion) + implementation("com.networknt", "http-entity", light4jVersion) val jacksonVersion: String by project implementation("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) val slf4jVersion: String by project diff --git a/light-rest-4j/src/main/resources/templates/rest/service/pom.xml.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/service/pom.xml.rocker.raw index 9894da7b4..a55602eb1 100644 --- a/light-rest-4j/src/main/resources/templates/rest/service/pom.xml.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/service/pom.xml.rocker.raw @@ -14,9 +14,21 @@ service jar - The generated empty services that will be invoked by the api. Add business logic here. + The generated handler service interfaces that will be implemented by the service implementations in domain with business logic. + + @config.get("groupId").textValue() + model + + + com.networknt + utility + + + com.networknt + http-entity + com.fasterxml.jackson.core jackson-databind diff --git a/light-rest-4j/src/main/resources/templates/rest/serviceYml.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/serviceYml.rocker.raw index 6587418de..f99ca92a2 100644 --- a/light-rest-4j/src/main/resources/templates/rest/serviceYml.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/serviceYml.rocker.raw @@ -1,5 +1,7 @@ @import com.fasterxml.jackson.databind.JsonNode -@args (JsonNode config) +@import java.util.Map +@import java.util.List +@args (JsonNode config, List> operationList) # Singleton service factory configuration/IoC injection singletons: - com.networknt.registry.URL: @@ -64,3 +66,7 @@ singletons: connectionTimeout: 2000 } } +@for(op : operationList) { +@with(s = "-" + config.get("handlerPackage").textValue() + "." + op.get("serviceName")){@s} +@with(s = " -" + config.get("handlerPackage").textValue() + "." + op.get("serviceImpl")){@s} +} From 34268dd0d69c7f0a49bfd9a177c2897ae2f5a3fa Mon Sep 17 00:00:00 2001 From: Steve Hu Date: Wed, 3 Mar 2021 14:48:12 -0500 Subject: [PATCH 2/2] fixes #548 update the dependency to compile to generate the farjar --- .../rest/client/buildGradleKts.rocker.raw | 12 +-- .../rest/domain/buildGradleKts.rocker.raw | 16 ++-- .../rest/model/buildGradleKts.rocker.raw | 4 +- .../rest/server/buildGradleKts.rocker.raw | 94 +++++++++---------- .../rest/service/buildGradleKts.rocker.raw | 14 +-- 5 files changed, 70 insertions(+), 70 deletions(-) diff --git a/light-rest-4j/src/main/resources/templates/rest/client/buildGradleKts.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/client/buildGradleKts.rocker.raw index a89548de2..3bd41dcdd 100644 --- a/light-rest-4j/src/main/resources/templates/rest/client/buildGradleKts.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/client/buildGradleKts.rocker.raw @@ -6,16 +6,16 @@ plugins { dependencies { val light4jVersion: String by project - implementation("com.networknt", "service", light4jVersion) - implementation("com.networknt", "client", light4jVersion) + compile("com.networknt", "service", light4jVersion) + compile("com.networknt", "client", light4jVersion) val jacksonVersion: String by project - implementation("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) + compile("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) val slf4jVersion: String by project - implementation("org.slf4j", "slf4j-api", slf4jVersion) + compile("org.slf4j", "slf4j-api", slf4jVersion) val undertowVersion: String by project - implementation("io.undertow", "undertow-core", undertowVersion) + compile("io.undertow", "undertow-core", undertowVersion) val logbackVersion: String by project - implementation("ch.qos.logback", "logback-classic", logbackVersion) + compile("ch.qos.logback", "logback-classic", logbackVersion) val junitVersion: String by project testImplementation("junit", "junit", junitVersion) } diff --git a/light-rest-4j/src/main/resources/templates/rest/domain/buildGradleKts.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/domain/buildGradleKts.rocker.raw index e0237051f..515257530 100644 --- a/light-rest-4j/src/main/resources/templates/rest/domain/buildGradleKts.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/domain/buildGradleKts.rocker.raw @@ -5,19 +5,19 @@ plugins { } dependencies { - implementation(project(":model")) - implementation(project(":service")) + compile(project(":model")) + compile(project(":service")) val light4jVersion: String by project - implementation("com.networknt", "utility", light4jVersion) - implementation("com.networknt", "http-entity", light4jVersion) + compile("com.networknt", "utility", light4jVersion) + compile("com.networknt", "http-entity", light4jVersion) val jacksonVersion: String by project - implementation("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) + compile("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) val slf4jVersion: String by project - implementation("org.slf4j", "slf4j-api", slf4jVersion) + compile("org.slf4j", "slf4j-api", slf4jVersion) val undertowVersion: String by project - implementation("io.undertow", "undertow-core", undertowVersion) + compile("io.undertow", "undertow-core", undertowVersion) val logbackVersion: String by project - implementation("ch.qos.logback", "logback-classic", logbackVersion) + compile("ch.qos.logback", "logback-classic", logbackVersion) val junitVersion: String by project testImplementation("junit", "junit", junitVersion) } diff --git a/light-rest-4j/src/main/resources/templates/rest/model/buildGradleKts.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/model/buildGradleKts.rocker.raw index ba30b2b03..1160e554b 100644 --- a/light-rest-4j/src/main/resources/templates/rest/model/buildGradleKts.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/model/buildGradleKts.rocker.raw @@ -6,9 +6,9 @@ plugins { dependencies { val jacksonVersion: String by project - implementation("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) + compile("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) val slf4jVersion: String by project - implementation("org.slf4j", "slf4j-api", slf4jVersion) + compile("org.slf4j", "slf4j-api", slf4jVersion) val junitVersion: String by project testImplementation("junit", "junit", junitVersion) } diff --git a/light-rest-4j/src/main/resources/templates/rest/server/buildGradleKts.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/server/buildGradleKts.rocker.raw index 0e708ead3..55387ed1f 100644 --- a/light-rest-4j/src/main/resources/templates/rest/server/buildGradleKts.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/server/buildGradleKts.rocker.raw @@ -9,81 +9,81 @@ application { } dependencies { - implementation(project(":model")) - implementation(project(":service")) + compile(project(":model")) + compile(project(":service")) val light4jVersion: String by project - implementation("com.networknt", "config", light4jVersion) - implementation("com.networknt", "utility", light4jVersion) - implementation("com.networknt", "security", light4jVersion) - implementation("com.networknt", "client", light4jVersion) - implementation("com.networknt", "audit", light4jVersion) - implementation("com.networknt", "info", light4jVersion) - implementation("com.networknt", "health", light4jVersion) - implementation("com.networknt", "status", light4jVersion) - implementation("com.networknt", "exception", light4jVersion) - implementation("com.networknt", "body", light4jVersion) - implementation("com.networknt", "dump", light4jVersion) - implementation("com.networknt", "mask", light4jVersion) + compile("com.networknt", "config", light4jVersion) + compile("com.networknt", "utility", light4jVersion) + compile("com.networknt", "security", light4jVersion) + compile("com.networknt", "client", light4jVersion) + compile("com.networknt", "audit", light4jVersion) + compile("com.networknt", "info", light4jVersion) + compile("com.networknt", "health", light4jVersion) + compile("com.networknt", "status", light4jVersion) + compile("com.networknt", "exception", light4jVersion) + compile("com.networknt", "body", light4jVersion) + compile("com.networknt", "dump", light4jVersion) + compile("com.networknt", "mask", light4jVersion) @if(config.get("prometheusMetrics").booleanValue()){ - implementation("com.networknt", "prometheus", light4jVersion) + compile("com.networknt", "prometheus", light4jVersion) }else{ - implementation("com.networknt", "metrics", light4jVersion) + compile("com.networknt", "metrics", light4jVersion) } - implementation("com.networknt", "handler", light4jVersion) - implementation("com.networknt", "sanitizer", light4jVersion) - implementation("com.networknt", "traceability", light4jVersion) - implementation("com.networknt", "correlation", light4jVersion) - implementation("com.networknt", "service", light4jVersion) - implementation("com.networknt", "registry", light4jVersion) - implementation("com.networknt", "balance", light4jVersion) - implementation("com.networknt", "cluster", light4jVersion) - implementation("com.networknt", "portal-registry", light4jVersion) - implementation("com.networknt", "logger-config", light4jVersion) - implementation("com.networknt", "decryptor", light4jVersion) - implementation("com.networknt", "server", light4jVersion) - implementation("com.networknt", "openapi-parser", light4jVersion) - implementation("com.networknt", "openapi-meta", light4jVersion) - implementation("com.networknt", "openapi-security", light4jVersion) - implementation("com.networknt", "openapi-validator", light4jVersion) - implementation("com.networknt", "specification", light4jVersion) - implementation("com.networknt", "http-entity", light4jVersion) + compile("com.networknt", "handler", light4jVersion) + compile("com.networknt", "sanitizer", light4jVersion) + compile("com.networknt", "traceability", light4jVersion) + compile("com.networknt", "correlation", light4jVersion) + compile("com.networknt", "service", light4jVersion) + compile("com.networknt", "registry", light4jVersion) + compile("com.networknt", "balance", light4jVersion) + compile("com.networknt", "cluster", light4jVersion) + compile("com.networknt", "portal-registry", light4jVersion) + compile("com.networknt", "logger-config", light4jVersion) + compile("com.networknt", "decryptor", light4jVersion) + compile("com.networknt", "server", light4jVersion) + compile("com.networknt", "openapi-parser", light4jVersion) + compile("com.networknt", "openapi-meta", light4jVersion) + compile("com.networknt", "openapi-security", light4jVersion) + compile("com.networknt", "openapi-validator", light4jVersion) + compile("com.networknt", "specification", light4jVersion) + compile("com.networknt", "http-entity", light4jVersion) @if(config.get("kafkaProducer").booleanValue() ||config.get("kafkaConsumer").booleanValue()){ - implementation("com.networknt", "kafka-common", light4jVersion) + compile("com.networknt", "kafka-common", light4jVersion) } @if(config.get("kafkaProducer").booleanValue()){ - implementation("com.networknt", "kafka-producer", light4jVersion) + compile("com.networknt", "kafka-producer", light4jVersion) } @if(config.get("kafkaConsumer").booleanValue()){ - implementation("com.networknt", "kafka-consumer", light4jVersion) - implementation("com.networknt", "kafka-streams", light4jVersion) + compile("com.networknt", "kafka-consumer", light4jVersion) + compile("com.networknt", "kafka-streams", light4jVersion) } val jacksonVersion: String by project - implementation("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) + compile("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) val jsonSchemaValidatorVersion: String by project - implementation("com.networknt", "json-schema-validator", jsonSchemaValidatorVersion) + compile("com.networknt", "json-schema-validator", jsonSchemaValidatorVersion) val logbackVersion: String by project - implementation("ch.qos.logback", "logback-classic", logbackVersion) + compile("ch.qos.logback", "logback-classic", logbackVersion) val undertowVersion: String by project - implementation("io.undertow", "undertow-core", undertowVersion) + compile("io.undertow", "undertow-core", undertowVersion) @if(config.get("supportDb").booleanValue() || config.get("supportH2ForTest").booleanValue()){ val hikaricpVersion: String by project - implementation("com.zaxxer", "HikariCP", hikaricpVersion) + compile("com.zaxxer", "HikariCP", hikaricpVersion) } @if(config.get("supportDb").booleanValue() && "oracle".equalsIgnoreCase(config.path("dbInfo").path("name").textValue())){ val oracleVersion: String by project - implementation("com.oracle", "ojdbc6", oracleVersion) + compile("com.oracle", "ojdbc6", oracleVersion) } @if(config.get("supportDb").booleanValue() && "mysql".equalsIgnoreCase(config.path("dbInfo").path("name").textValue())){ val mysqlVersion: String by project - implementation("mysql", "mysql-connector-java", mysqlVersion) + compile("mysql", "mysql-connector-java", mysqlVersion) } @if(config.get("supportDb").booleanValue() && "postgres".equalsIgnoreCase(config.path("dbInfo").path("name").textValue())){ val postgresVersion: String by project - implementation("org.postgresql", "postgresql", postgresVersion) + compile("org.postgresql", "postgresql", postgresVersion) } @if(config.get("supportAvro").booleanValue()){ val avroVersion: String by project - implementation("io.confluent", "kafka-schema-registry-client", avroVersion) + compile("io.confluent", "kafka-schema-registry-client", avroVersion) } val junitVersion: String by project testImplementation("junit", "junit", junitVersion) diff --git a/light-rest-4j/src/main/resources/templates/rest/service/buildGradleKts.rocker.raw b/light-rest-4j/src/main/resources/templates/rest/service/buildGradleKts.rocker.raw index 8af779c32..4f78929ea 100644 --- a/light-rest-4j/src/main/resources/templates/rest/service/buildGradleKts.rocker.raw +++ b/light-rest-4j/src/main/resources/templates/rest/service/buildGradleKts.rocker.raw @@ -5,18 +5,18 @@ plugins { } dependencies { - implementation(project(":model")) + compile(project(":model")) val light4jVersion: String by project - implementation("com.networknt", "utility", light4jVersion) - implementation("com.networknt", "http-entity", light4jVersion) + compile("com.networknt", "utility", light4jVersion) + compile("com.networknt", "http-entity", light4jVersion) val jacksonVersion: String by project - implementation("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) + compile("com.fasterxml.jackson.core", "jackson-databind", jacksonVersion) val slf4jVersion: String by project - implementation("org.slf4j", "slf4j-api", slf4jVersion) + compile("org.slf4j", "slf4j-api", slf4jVersion) val undertowVersion: String by project - implementation("io.undertow", "undertow-core", undertowVersion) + compile("io.undertow", "undertow-core", undertowVersion) val logbackVersion: String by project - implementation("ch.qos.logback", "logback-classic", logbackVersion) + compile("ch.qos.logback", "logback-classic", logbackVersion) val junitVersion: String by project testImplementation("junit", "junit", junitVersion) }