From 5e86942bd329134a199108f4ce591ca77545c9a4 Mon Sep 17 00:00:00 2001 From: An Phi Date: Thu, 6 Apr 2023 14:44:07 -0400 Subject: [PATCH] attempt to use custom JacksonJsonProvider --- legend-sdlc-server-shared/pom.xml | 4 + .../finos/legend/sdlc/server/BaseServer.java | 2 +- .../server/BaseServerJacksonJsonProvider.java | 2 + legend-sdlc-server/pom.xml | 4 + legend-sdlc-server/src/main/Pipeline.md | 3 - .../legend/sdlc/server/LegendSDLCServer.java | 7 -- ...dSDLCServerForTestJacksonJsonProvider.java | 4 + .../resources/SDLCServerClientRule.java | 2 + .../src/test/resources/config-local.yml | 119 ++++++++++++++++++ pom.xml | 5 + 10 files changed, 141 insertions(+), 11 deletions(-) delete mode 100644 legend-sdlc-server/src/main/Pipeline.md create mode 100644 legend-sdlc-server/src/test/resources/config-local.yml diff --git a/legend-sdlc-server-shared/pom.xml b/legend-sdlc-server-shared/pom.xml index f35d3920b9..ee53e4b8b8 100644 --- a/legend-sdlc-server-shared/pom.xml +++ b/legend-sdlc-server-shared/pom.xml @@ -158,6 +158,10 @@ com.fasterxml.jackson.jaxrs jackson-jaxrs-json-provider + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + diff --git a/legend-sdlc-server-shared/src/main/java/org/finos/legend/sdlc/server/BaseServer.java b/legend-sdlc-server-shared/src/main/java/org/finos/legend/sdlc/server/BaseServer.java index 5fc2b0ceee..864bfa034f 100644 --- a/legend-sdlc-server-shared/src/main/java/org/finos/legend/sdlc/server/BaseServer.java +++ b/legend-sdlc-server-shared/src/main/java/org/finos/legend/sdlc/server/BaseServer.java @@ -121,7 +121,7 @@ public void run(C configuration, Environment environment) environment.jersey().register(new CatchAllExceptionMapper(includeStackTraces)); // Serialization - environment.jersey().register(new BaseServerJacksonJsonProvider()); + environment.jersey().register(BaseServerJacksonJsonProvider.class); } public ServerInfo getServerInfo() diff --git a/legend-sdlc-server-shared/src/main/java/org/finos/legend/sdlc/server/BaseServerJacksonJsonProvider.java b/legend-sdlc-server-shared/src/main/java/org/finos/legend/sdlc/server/BaseServerJacksonJsonProvider.java index 319008da34..8ebbe23543 100644 --- a/legend-sdlc-server-shared/src/main/java/org/finos/legend/sdlc/server/BaseServerJacksonJsonProvider.java +++ b/legend-sdlc-server-shared/src/main/java/org/finos/legend/sdlc/server/BaseServerJacksonJsonProvider.java @@ -16,6 +16,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import javax.ws.rs.ext.ContextResolver; @@ -27,6 +28,7 @@ public class BaseServerJacksonJsonProvider extends JacksonJsonProvider implement public BaseServerJacksonJsonProvider() { objectMapper = new ObjectMapper(); + objectMapper.registerModule(new JavaTimeModule()); objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); } diff --git a/legend-sdlc-server/pom.xml b/legend-sdlc-server/pom.xml index d696dcea98..3dadfcb155 100644 --- a/legend-sdlc-server/pom.xml +++ b/legend-sdlc-server/pom.xml @@ -177,6 +177,10 @@ + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + com.google.inject diff --git a/legend-sdlc-server/src/main/Pipeline.md b/legend-sdlc-server/src/main/Pipeline.md deleted file mode 100644 index 2030595819..0000000000 --- a/legend-sdlc-server/src/main/Pipeline.md +++ /dev/null @@ -1,3 +0,0 @@ -### Project Structure and Pipeline Configuration - -TODO diff --git a/legend-sdlc-server/src/main/java/org/finos/legend/sdlc/server/LegendSDLCServer.java b/legend-sdlc-server/src/main/java/org/finos/legend/sdlc/server/LegendSDLCServer.java index 82595417cd..9e3d712a0a 100644 --- a/legend-sdlc-server/src/main/java/org/finos/legend/sdlc/server/LegendSDLCServer.java +++ b/legend-sdlc-server/src/main/java/org/finos/legend/sdlc/server/LegendSDLCServer.java @@ -14,7 +14,6 @@ package org.finos.legend.sdlc.server; -import io.dropwizard.setup.Environment; import org.finos.legend.sdlc.server.config.LegendSDLCServerConfiguration; public class LegendSDLCServer extends BaseLegendSDLCServer @@ -24,12 +23,6 @@ public LegendSDLCServer(String mode) super(mode); } - @Override - public void run(LegendSDLCServerConfiguration configuration, Environment environment) - { - super.run(configuration, environment); - } - @Override protected ServerPlatformInfo newServerPlatformInfo() { diff --git a/legend-sdlc-server/src/test/java/org/finos/legend/sdlc/server/LegendSDLCServerForTestJacksonJsonProvider.java b/legend-sdlc-server/src/test/java/org/finos/legend/sdlc/server/LegendSDLCServerForTestJacksonJsonProvider.java index ef06266603..9d56bba18e 100644 --- a/legend-sdlc-server/src/test/java/org/finos/legend/sdlc/server/LegendSDLCServerForTestJacksonJsonProvider.java +++ b/legend-sdlc-server/src/test/java/org/finos/legend/sdlc/server/LegendSDLCServerForTestJacksonJsonProvider.java @@ -15,6 +15,8 @@ package org.finos.legend.sdlc.server; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import org.finos.legend.sdlc.domain.model.entity.Entity; import org.finos.legend.sdlc.domain.model.project.Project; @@ -36,6 +38,8 @@ public class LegendSDLCServerForTestJacksonJsonProvider extends JacksonJsonProvi public LegendSDLCServerForTestJacksonJsonProvider() { objectMapper = new ObjectMapper(); + objectMapper.registerModule(new JavaTimeModule()); + objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); objectMapper.addMixIn(Project.class, InMemoryMixins.Project.class); objectMapper.addMixIn(Workspace.class, InMemoryMixins.Workspace.class); objectMapper.addMixIn(Entity.class, InMemoryMixins.Entity.class); diff --git a/legend-sdlc-server/src/test/java/org/finos/legend/sdlc/server/resources/SDLCServerClientRule.java b/legend-sdlc-server/src/test/java/org/finos/legend/sdlc/server/resources/SDLCServerClientRule.java index 1fdfdf5ac3..e134b23583 100644 --- a/legend-sdlc-server/src/test/java/org/finos/legend/sdlc/server/resources/SDLCServerClientRule.java +++ b/legend-sdlc-server/src/test/java/org/finos/legend/sdlc/server/resources/SDLCServerClientRule.java @@ -17,6 +17,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import org.finos.legend.sdlc.domain.model.entity.Entity; import org.finos.legend.sdlc.domain.model.project.Project; @@ -78,6 +79,7 @@ static class SDLCServerClientRuleJacksonJsonProvider extends JacksonJsonProvider public SDLCServerClientRuleJacksonJsonProvider() { objectMapper = new ObjectMapper(); + objectMapper.registerModule(new JavaTimeModule()); this.objectMapper.enable(SerializationFeature.INDENT_OUTPUT); this.objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); this.objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); diff --git a/legend-sdlc-server/src/test/resources/config-local.yml b/legend-sdlc-server/src/test/resources/config-local.yml new file mode 100644 index 0000000000..42139b275a --- /dev/null +++ b/legend-sdlc-server/src/test/resources/config-local.yml @@ -0,0 +1,119 @@ +# Copyright 2020 Goldman Sachs +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +applicationName: Legend SDLC + +sessionCookie: LEGEND_SDLC_JSESSIONID + +server: + applicationConnectors: + - type: http + port: 6100 + maxRequestHeaderSize: 128KiB + adminConnectors: + - type: http + port: 6101 + gzip: + includedMethods: + - GET + - POST + requestLog: + type: classic + appenders: + - type: file + currentLogFilename: ./logs/access.log + threshold: ALL + archive: true + archivedLogFilenamePattern: ./logs/access-%d.log + archivedFileCount: 5 + timeZone: UTC + rootPath: /api + +features: + canCreateProject: true + canCreateVersion: true + +filterPriorities: + GitLab: 1 + org.pac4j.j2e.filter.CallbackFilter: 2 + org.pac4j.j2e.filter.SecurityFilter: 3 + CORS: 4 + +pac4j: + callbackPrefix: /api/pac4j/login + clients: + - org.finos.legend.server.pac4j.gitlab.GitlabClient: + name: gitlab + clientId: 6259b5d9b6ddb85d3a0224d7bec3ffb41fb48f751150152c1eb142fe8c455ab5 + secret: 8c4afdc49d41126408819a703e8a8ee130313c379035dbb696d5f435728b990d + discoveryUri: https://gitlab.com/.well-known/openid-configuration + scope: openid profile api + bypassPaths: + - /api/info + mongoUri: mongodb://localhost:27017 + mongoDb: legend + mongoSession: + enabled: true + collection: userSessions + + +gitLab: + newProjectVisibility: public + projectTag: legend + prod: + server: + scheme: https + host: gitlab.com + app: + id: 6259b5d9b6ddb85d3a0224d7bec3ffb41fb48f751150152c1eb142fe8c455ab5 + secret: 8c4afdc49d41126408819a703e8a8ee130313c379035dbb696d5f435728b990d + redirectURI: http://localhost:6100/api/auth/callback + +projectStructure: + extensionProvider: + org.finos.legend.sdlc.server.gitlab.finos.FinosGitlabProjectStructureExtensionProvider: {} + platforms: + legend-engine: + groupId: org.finos.legend.engine + platformVersion: + version: 4.4.2 + fromPackage: legend-engine-protocol-pure + legend-sdlc: + groupId: org.finos.legend.sdlc + platformVersion: + version: 0.120.2 + fromPackage: legend-sdlc-server + +logging: + # Change this to affect library class logging + level: INFO + loggers: + # Change this to affect application class logging + org.finos.legend.sdlc: INFO + appenders: + - type: file + logFormat: "%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p [%thread] %c - %m%n" + currentLogFilename: ./logs/service.log + threshold: ALL + archive: true + archivedLogFilenamePattern: ./logs/service-%d.log + archivedFileCount: 5 + timeZone: UTC + - type: console + logFormat: "%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p [%thread] %c - %m%n" + +swagger: + resourcePackage: org.finos.legend.sdlc.server.resources + title: Legend SDLC + schemes: [] diff --git a/pom.xml b/pom.xml index 2dfb50d315..64345bc11e 100644 --- a/pom.xml +++ b/pom.xml @@ -832,6 +832,11 @@ ${legend.engine.version} + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + ${jackson.version} + com.fasterxml.jackson.core jackson-annotations