diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 04a30a9ee..5ca63c29a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -67,11 +67,11 @@ jobs: theme: dark - name: Build + Test - if: (github.repository != 'finos/legend-depot') || (github.ref != 'refs/heads/master') + if: (github.repository != 'finos/legend-depot') || (github.ref != 'refs/heads/master') || (github.ref != 'refs/heads/integration') run: mvn install javadoc:javadoc - name: Build + Test + Sonar + Maven Deploy - if: (github.repository == 'finos/legend-depot') && (github.ref == 'refs/heads/master') + if: (github.repository == 'finos/legend-depot') && ((github.ref == 'refs/heads/master') || (github.ref == 'refs/heads/integration')) env: DOCKER_USERNAME: finos DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} diff --git a/.github/workflows/clean-after-failed-release.yml b/.github/workflows/clean-after-failed-release.yml index 0f1f9f697..cdbb4b745 100644 --- a/.github/workflows/clean-after-failed-release.yml +++ b/.github/workflows/clean-after-failed-release.yml @@ -28,6 +28,7 @@ jobs: uses: actions/checkout@v3 with: fetch-depth: 0 + ref: 'master' token: ${{ secrets.FINOS_GITHUB_TOKEN }} - name: Configure git diff --git a/.github/workflows/legend-stack-release.yml b/.github/workflows/legend-stack-release.yml index 2f1533305..0555c4e30 100644 --- a/.github/workflows/legend-stack-release.yml +++ b/.github/workflows/legend-stack-release.yml @@ -33,6 +33,7 @@ jobs: - name: Checkout repo uses: actions/checkout@v3 with: + ref: 'master' token: ${{ secrets.FINOS_GITHUB_TOKEN }} - name: Configure git diff --git a/.github/workflows/ossrh-close-staging-repo.yml b/.github/workflows/ossrh-close-staging-repo.yml index 2bb6e20a5..71a1c84c2 100644 --- a/.github/workflows/ossrh-close-staging-repo.yml +++ b/.github/workflows/ossrh-close-staging-repo.yml @@ -40,6 +40,7 @@ jobs: - name: Checkout repo uses: actions/checkout@v3 with: + ref: 'master' token: ${{ secrets.FINOS_GITHUB_TOKEN }} - name: Configure git diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9b3570dd5..76c2c74e4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,6 +36,7 @@ jobs: - name: Checkout repo uses: actions/checkout@v3 with: + ref: 'master' token: ${{ secrets.FINOS_GITHUB_TOKEN }} - name: Configure git diff --git a/legend-depot-artifacts-purge/pom.xml b/legend-depot-artifacts-purge/pom.xml index 8f590cbe1..37d1da15d 100644 --- a/legend-depot-artifacts-purge/pom.xml +++ b/legend-depot-artifacts-purge/pom.xml @@ -20,7 +20,7 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 @@ -31,23 +31,36 @@ org.finos.legend.depot - legend-depot-artifacts-refresh + legend-depot-model org.finos.legend.depot - legend-depot-core-authorisation + legend-depot-core-services + org.finos.legend.depot - legend-depot-core-services + legend-depot-artifacts-refresh + - org.finos.legend.depot - legend-depot-store-metrics + com.google.inject + guice + + + commons-codec + commons-codec + + com.fasterxml.jackson.core + jackson-annotations + + + org.finos.legend.depot - legend-depot-core-schedules + legend-depot-generations-services + test org.finos.legend.depot @@ -56,28 +69,22 @@ test-jar test - - - - com.fasterxml.jackson.core - jackson-annotations - - - com.fasterxml.jackson.core - jackson-core - - - com.fasterxml.jackson.core - jackson-databind + org.finos.legend.depot + legend-depot-generations-store-mongo + test - com.google.inject - guice + org.finos.legend.depot + legend-depot-generations-store-mongo + tests + test-jar + test - commons-codec - commons-codec + de.bwaldvogel + mongo-java-server + test ${junit.groupId} @@ -89,10 +96,5 @@ mockito-core test - - de.bwaldvogel - mongo-java-server - test - diff --git a/legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/ArtifactsPurgeModule.java b/legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/guice/ArtifactsPurgeModule.java similarity index 92% rename from legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/ArtifactsPurgeModule.java rename to legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/guice/ArtifactsPurgeModule.java index 166c4f489..b5f783cfa 100644 --- a/legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/ArtifactsPurgeModule.java +++ b/legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/guice/ArtifactsPurgeModule.java @@ -13,16 +13,16 @@ // limitations under the License. // -package org.finos.legend.depot.store.artifacts.purge; +package org.finos.legend.depot.store.artifacts.purge.guice; import com.google.inject.PrivateModule; import com.google.inject.Provides; import com.google.inject.Singleton; import com.google.inject.name.Named; -import org.finos.legend.depot.schedules.services.SchedulesFactory; +import org.finos.legend.depot.services.schedules.SchedulesFactory; import org.finos.legend.depot.store.artifacts.configuration.ArtifactsRetentionPolicyConfiguration; import org.finos.legend.depot.store.artifacts.purge.api.ArtifactsPurgeService; -import org.finos.legend.depot.store.artifacts.purge.resources.ArtifactsPurgeResource; +import org.finos.legend.depot.store.resources.artifacts.ArtifactsPurgeResource; import org.finos.legend.depot.store.artifacts.purge.services.ArtifactsPurgeServiceImpl; public class ArtifactsPurgeModule extends PrivateModule diff --git a/legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/services/ArtifactsPurgeServiceImpl.java b/legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/services/ArtifactsPurgeServiceImpl.java index 0bd0e8918..a84e40a1d 100644 --- a/legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/services/ArtifactsPurgeServiceImpl.java +++ b/legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/services/ArtifactsPurgeServiceImpl.java @@ -15,7 +15,7 @@ package org.finos.legend.depot.store.artifacts.purge.services; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; import org.finos.legend.depot.domain.VersionedData; import org.finos.legend.depot.domain.api.MetadataEventResponse; import org.finos.legend.depot.domain.project.ProjectVersion; diff --git a/legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/resources/ArtifactsPurgeResource.java b/legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/resources/artifacts/ArtifactsPurgeResource.java similarity index 98% rename from legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/resources/ArtifactsPurgeResource.java rename to legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/resources/artifacts/ArtifactsPurgeResource.java index 2e3f88e0a..b0886d153 100644 --- a/legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/artifacts/purge/resources/ArtifactsPurgeResource.java +++ b/legend-depot-artifacts-purge/src/main/java/org/finos/legend/depot/store/resources/artifacts/ArtifactsPurgeResource.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.store.artifacts.purge.resources; +package org.finos.legend.depot.store.resources.artifacts; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/legend-depot-artifacts-purge/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsPurgeService.java b/legend-depot-artifacts-purge/src/test/java/org/finos/legend/depot/store/artifacts/purge/services/TestArtifactsPurgeService.java similarity index 95% rename from legend-depot-artifacts-purge/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsPurgeService.java rename to legend-depot-artifacts-purge/src/test/java/org/finos/legend/depot/store/artifacts/purge/services/TestArtifactsPurgeService.java index e99e2a73c..235b4ec49 100644 --- a/legend-depot-artifacts-purge/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsPurgeService.java +++ b/legend-depot-artifacts-purge/src/test/java/org/finos/legend/depot/store/artifacts/purge/services/TestArtifactsPurgeService.java @@ -13,10 +13,10 @@ // limitations under the License. // -package org.finos.legend.depot.store.artifacts.services; +package org.finos.legend.depot.store.artifacts.purge.services; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; import org.finos.legend.depot.domain.version.VersionMismatch; import org.finos.legend.depot.domain.DatesHandler; import org.finos.legend.depot.domain.api.MetadataEventResponse; @@ -26,16 +26,16 @@ import org.finos.legend.depot.services.api.entities.ManageEntitiesService; import org.finos.legend.depot.services.api.projects.ManageProjectsService; import org.finos.legend.depot.services.entities.ManageEntitiesServiceImpl; -import org.finos.legend.depot.services.generation.file.ManageFileGenerationsServiceImpl; +import org.finos.legend.depot.services.generations.impl.ManageFileGenerationsServiceImpl; import org.finos.legend.depot.services.projects.ManageProjectsServiceImpl; import org.finos.legend.depot.services.projects.configuration.ProjectsConfiguration; import org.finos.legend.depot.store.admin.domain.metrics.VersionQueryMetric; import org.finos.legend.depot.store.api.entities.UpdateEntities; -import org.finos.legend.depot.store.api.generation.file.UpdateFileGenerations; +import org.finos.legend.depot.store.api.generations.UpdateFileGenerations; import org.finos.legend.depot.store.api.projects.UpdateProjects; import org.finos.legend.depot.store.api.projects.UpdateProjectsVersions; import org.finos.legend.depot.store.artifacts.purge.api.ArtifactsPurgeService; -import org.finos.legend.depot.store.artifacts.purge.services.ArtifactsPurgeServiceImpl; +import org.finos.legend.depot.store.artifacts.services.ProjectArtifactHandlerFactory; import org.finos.legend.depot.store.artifacts.services.entities.EntitiesHandlerImpl; import org.finos.legend.depot.store.artifacts.services.entities.EntityProvider; import org.finos.legend.depot.store.artifacts.services.file.FileGenerationHandlerImpl; @@ -46,10 +46,11 @@ import org.finos.legend.depot.store.mongo.TestStoreMongo; import org.finos.legend.depot.store.metrics.store.mongo.QueryMetricsMongo; import org.finos.legend.depot.store.mongo.entities.EntitiesMongo; -import org.finos.legend.depot.store.mongo.generation.file.FileGenerationsMongo; +import org.finos.legend.depot.store.mongo.generations.FileGenerationsMongo; import org.finos.legend.depot.store.mongo.projects.ProjectsMongo; import org.finos.legend.depot.store.mongo.projects.ProjectsVersionsMongo; import org.finos.legend.depot.store.notifications.queue.api.Queue; +import org.finos.legend.depot.store.mongo.generations.TestGenerationsStoreMongo; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -99,7 +100,7 @@ public void setUpData() Assert.assertEquals(3, projectsStore.getAll().size()); setUpEntitiesDataFromFile(TestArtifactsPurgeService.class.getClassLoader().getResource("data/entities.json")); - setUpFileGenerationFromFile(TestArtifactsPurgeService.class.getClassLoader().getResource("data/generations.json")); + TestGenerationsStoreMongo.setUpFileGenerationFromFile(TestArtifactsPurgeService.class.getClassLoader().getResource("data/generations.json"),mongoProvider); } diff --git a/legend-depot-artifacts-refresh/pom.xml b/legend-depot-artifacts-refresh/pom.xml index f23e21ebd..9425fec99 100644 --- a/legend-depot-artifacts-refresh/pom.xml +++ b/legend-depot-artifacts-refresh/pom.xml @@ -20,7 +20,7 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 @@ -35,14 +35,7 @@ org.finos.legend.depot - legend-depot-artifacts-repository-maven-impl - - - org.finos.legend.depot - legend-depot-artifacts-repository-maven-impl - tests - test-jar - test + legend-depot-artifacts-repository-api org.finos.legend.depot @@ -50,17 +43,21 @@ org.finos.legend.depot - legend-depot-store-mongo - tests - test-jar - test + legend-depot-generations-api org.finos.legend.depot legend-depot-store-notifications - + + commons-codec + commons-codec + + + commons-io + commons-io + org.finos.legend.sdlc @@ -68,25 +65,42 @@ + + + + + org.finos.legend.depot + legend-depot-generations-services + test + - com.fasterxml.jackson.core - jackson-annotations + org.finos.legend.depot + legend-depot-artifacts-repository-maven-impl + test - com.fasterxml.jackson.core - jackson-core + org.finos.legend.depot + legend-depot-artifacts-repository-maven-impl + tests + test-jar + test - com.fasterxml.jackson.core - jackson-databind + org.finos.legend.depot + legend-depot-store-mongo + tests + test-jar + test - com.google.inject - guice + org.finos.legend.depot + legend-depot-generations-store-mongo + test - commons-codec - commons-codec + de.bwaldvogel + mongo-java-server + test ${junit.groupId} @@ -98,10 +112,7 @@ mockito-core test - - de.bwaldvogel - mongo-java-server - test - + + diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/ArtifactLoadingException.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/ArtifactLoadingException.java similarity index 93% rename from legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/ArtifactLoadingException.java rename to legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/ArtifactLoadingException.java index 318d75ab6..f7b296db3 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/ArtifactLoadingException.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/ArtifactLoadingException.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.store.artifacts; +package org.finos.legend.depot.store.artifacts.api; public class ArtifactLoadingException extends RuntimeException { diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/ArtifactsExtractor.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/ArtifactsExtractor.java index 56810bf26..338b51f19 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/ArtifactsExtractor.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/ArtifactsExtractor.java @@ -15,7 +15,7 @@ package org.finos.legend.depot.store.artifacts.api; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; import java.io.File; import java.util.List; diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/ProjectArtifactsHandler.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/ProjectArtifactsHandler.java index f0f72e939..f457a039a 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/ProjectArtifactsHandler.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/ProjectArtifactsHandler.java @@ -16,7 +16,6 @@ package org.finos.legend.depot.store.artifacts.api; import org.finos.legend.depot.domain.api.MetadataEventResponse; -import org.finos.legend.depot.domain.project.StoreProjectData; import java.io.File; import java.util.List; @@ -24,7 +23,7 @@ public interface ProjectArtifactsHandler { - MetadataEventResponse refreshProjectVersionArtifacts(StoreProjectData projectData, String versionId, List files); + MetadataEventResponse refreshProjectVersionArtifacts(String groupId,String artifactId, String versionId, List files); void delete(String groupId, String artifactId, String versionId); } diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/generation/file/FileGenerationsArtifactsProvider.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/generation/file/FileGenerationsArtifactsProvider.java index 54b16cae0..734283492 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/generation/file/FileGenerationsArtifactsProvider.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/api/generation/file/FileGenerationsArtifactsProvider.java @@ -15,9 +15,9 @@ package org.finos.legend.depot.store.artifacts.api.generation.file; -import org.finos.legend.depot.domain.generation.file.FileGeneration; +import org.finos.legend.depot.domain.generation.DepotGeneration; import org.finos.legend.depot.store.artifacts.api.ArtifactsExtractor; -public interface FileGenerationsArtifactsProvider extends ArtifactsExtractor +public interface FileGenerationsArtifactsProvider extends ArtifactsExtractor { } diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/ArtifactsHandlersModule.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/guice/ArtifactsHandlersModule.java similarity index 96% rename from legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/ArtifactsHandlersModule.java rename to legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/guice/ArtifactsHandlersModule.java index a884ed870..e6fa0bd0d 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/ArtifactsHandlersModule.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/guice/ArtifactsHandlersModule.java @@ -13,12 +13,12 @@ // limitations under the License. // -package org.finos.legend.depot.store.artifacts; +package org.finos.legend.depot.store.artifacts.guice; import com.google.inject.PrivateModule; import com.google.inject.Provides; import com.google.inject.Singleton; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; import org.finos.legend.depot.store.artifacts.api.entities.EntitiesArtifactsHandler; import org.finos.legend.depot.store.artifacts.api.entities.EntityArtifactsProvider; import org.finos.legend.depot.store.artifacts.api.entities.VersionedEntitiesArtifactsHandler; diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/ArtifactsRefreshModule.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/guice/ArtifactsRefreshModule.java similarity index 83% rename from legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/ArtifactsRefreshModule.java rename to legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/guice/ArtifactsRefreshModule.java index 0d21817e5..fcf1ee263 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/ArtifactsRefreshModule.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/guice/ArtifactsRefreshModule.java @@ -13,17 +13,17 @@ // limitations under the License. // -package org.finos.legend.depot.store.artifacts; +package org.finos.legend.depot.store.artifacts.guice; import com.google.inject.PrivateModule; import com.google.inject.Provides; import com.google.inject.Singleton; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; -import org.finos.legend.depot.schedules.services.SchedulesFactory; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; +import org.finos.legend.depot.services.schedules.SchedulesFactory; import org.finos.legend.depot.store.artifacts.api.ArtifactsRefreshService; import org.finos.legend.depot.store.artifacts.api.ParentEvent; import org.finos.legend.depot.store.artifacts.configuration.ArtifactsRetentionPolicyConfiguration; -import org.finos.legend.depot.store.artifacts.resources.ArtifactsRefreshResource; +import org.finos.legend.depot.store.resources.artifacts.ArtifactsRefreshResource; import org.finos.legend.depot.store.artifacts.services.ArtifactsRefreshServiceImpl; import org.finos.legend.depot.store.artifacts.services.ProjectVersionRefreshHandler; import org.finos.legend.depot.store.notifications.api.NotificationEventHandler; @@ -69,7 +69,7 @@ boolean registerMetrics(PrometheusMetricsHandler metricsHandler) @Named("refresh-all-versions") boolean initVersions(SchedulesFactory schedulesFactory, ArtifactsRefreshService artifactsRefreshService, ArtifactRepositoryProviderConfiguration configuration) { - schedulesFactory.registerSingleInstance(ParentEvent.REFRESH_ALL_VERSION_ARTIFACTS_SCHEDULE.name(), configuration.getVersionsUpdateIntervalInMillis(), configuration.getVersionsUpdateIntervalInMillis(),() -> artifactsRefreshService.refreshAllVersionsForAllProjects(false,false,false, ParentEvent.REFRESH_ALL_VERSION_ARTIFACTS_SCHEDULE.name())); + schedulesFactory.registerExternalTriggerSchedule(ParentEvent.REFRESH_ALL_VERSION_ARTIFACTS_SCHEDULE.name(), configuration.getVersionsUpdateIntervalInMillis(), true, () -> artifactsRefreshService.refreshAllVersionsForAllProjects(false,false,false, ParentEvent.REFRESH_ALL_VERSION_ARTIFACTS_SCHEDULE.name())); return true; } diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/ArtifactsRefreshServiceImpl.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/ArtifactsRefreshServiceImpl.java index 5faddb9c4..e22c9dabf 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/ArtifactsRefreshServiceImpl.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/ArtifactsRefreshServiceImpl.java @@ -16,8 +16,8 @@ package org.finos.legend.depot.store.artifacts.services; import org.eclipse.collections.impl.parallel.ParallelIterate; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryException; -import org.finos.legend.depot.artifacts.repository.services.RepositoryServices; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryException; +import org.finos.legend.depot.store.artifacts.repository.services.RepositoryServices; import org.finos.legend.depot.domain.api.MetadataEventResponse; import org.finos.legend.depot.domain.notifications.MetadataNotification; import org.finos.legend.depot.domain.project.StoreProjectData; diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/ProjectArtifactHandlerFactory.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/ProjectArtifactHandlerFactory.java index 6e9978345..ce3b0e761 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/ProjectArtifactHandlerFactory.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/ProjectArtifactHandlerFactory.java @@ -15,7 +15,7 @@ package org.finos.legend.depot.store.artifacts.services; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; import org.finos.legend.depot.store.artifacts.api.ProjectArtifactsHandler; import javax.inject.Singleton; diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/ProjectVersionRefreshHandler.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/ProjectVersionRefreshHandler.java index 84d0935a7..036a98cb0 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/ProjectVersionRefreshHandler.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/ProjectVersionRefreshHandler.java @@ -19,9 +19,9 @@ import org.apache.commons.codec.digest.DigestUtils; import org.apache.maven.model.Model; import org.eclipse.collections.impl.parallel.ParallelIterate; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryException; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; -import org.finos.legend.depot.artifacts.repository.services.RepositoryServices; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryException; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.services.RepositoryServices; import org.finos.legend.depot.domain.CoordinateValidator; import org.finos.legend.depot.domain.api.MetadataEventResponse; import org.finos.legend.depot.domain.notifications.MetadataNotification; @@ -394,7 +394,7 @@ private MetadataEventResponse handleArtifacts(ArtifactType artifactType, StorePr if (files != null && !files.isEmpty()) { response.addMessage(String.format("[%s] files found [%s] artifacts to process [%s-%s-%s], processUnChangedFiles: %s",files.size(),artifactType,project.getGroupId(),project.getArtifactId(),versionId,processUnchangedFiles)); - response.combine(refreshHandler.refreshProjectVersionArtifacts(project, versionId, files)); + response.combine(refreshHandler.refreshProjectVersionArtifacts(project.getGroupId(),project.getArtifactId(), versionId, files)); } else { diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/AbstractEntityRefreshHandlerImpl.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/AbstractEntityRefreshHandlerImpl.java index 2eb063f43..00dff3965 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/AbstractEntityRefreshHandlerImpl.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/AbstractEntityRefreshHandlerImpl.java @@ -16,7 +16,6 @@ package org.finos.legend.depot.store.artifacts.services.entities; import org.finos.legend.depot.domain.api.MetadataEventResponse; -import org.finos.legend.depot.domain.project.StoreProjectData; import org.finos.legend.depot.domain.version.VersionValidator; import org.finos.legend.depot.services.api.entities.ManageEntitiesService; import org.finos.legend.depot.store.artifacts.api.entities.EntityArtifactsProvider; @@ -59,19 +58,19 @@ protected long deleteByVersion(String groupId, String artifactId, String version } - private String getGAVCoordinates(StoreProjectData projectConfig, String versionId) + private String getGAVCoordinates(String groupId,String artifactId, String versionId) { - return String.format("%s-%s-%s", projectConfig.getGroupId(), projectConfig.getArtifactId(), versionId); + return String.format("%s-%s-%s", groupId, artifactId, versionId); } - public MetadataEventResponse refreshVersionArtifacts(StoreProjectData projectData, String versionId, List files) + public MetadataEventResponse refreshVersionArtifacts(String groupId, String artifactId,String versionId, List files) { MetadataEventResponse response = new MetadataEventResponse(); try { - String gavCoordinates = getGAVCoordinates(projectData, versionId); + String gavCoordinates = getGAVCoordinates(groupId, artifactId, versionId); List entityList = getEntities(files); if (entityList != null && !entityList.isEmpty()) { @@ -82,10 +81,10 @@ public MetadataEventResponse refreshVersionArtifacts(StoreProjectData projectDat { message = String.format("removing prior %s artifacts for [%s-%s]",this.entitiesProvider.getType(),gavCoordinates,versionId); response.addMessage(message); - response.addMessage("deleted " + getEntitiesApi().delete(projectData.getGroupId(), projectData.getArtifactId(),versionId)); + response.addMessage("deleted " + getEntitiesApi().delete(groupId, artifactId,versionId)); LOGGER.info(message); } - getEntitiesApi().createOrUpdate(projectData.getGroupId(), projectData.getArtifactId(), versionId, entityList); + getEntitiesApi().createOrUpdate(groupId, artifactId, versionId, entityList); } else { @@ -97,7 +96,7 @@ public MetadataEventResponse refreshVersionArtifacts(StoreProjectData projectDat } catch (Exception e) { - String errorMessage = String.format("Unexpected exception refreshing %s %s-%s-%s , %s",entitiesProvider.getType(),projectData.getGroupId(),projectData.getArtifactId(),versionId,e.getMessage()); + String errorMessage = String.format("Unexpected exception refreshing %s %s-%s-%s , %s",entitiesProvider.getType(),groupId,artifactId,versionId,e.getMessage()); response.addError(errorMessage); LOGGER.error(errorMessage); } diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/EntitiesHandlerImpl.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/EntitiesHandlerImpl.java index 00b7bbfbf..b10fa0a50 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/EntitiesHandlerImpl.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/EntitiesHandlerImpl.java @@ -16,7 +16,6 @@ package org.finos.legend.depot.store.artifacts.services.entities; import org.finos.legend.depot.domain.api.MetadataEventResponse; -import org.finos.legend.depot.domain.project.StoreProjectData; import org.finos.legend.depot.services.api.entities.ManageEntitiesService; import org.finos.legend.depot.store.artifacts.api.entities.EntitiesArtifactsHandler; import org.finos.legend.depot.store.artifacts.api.entities.EntityArtifactsProvider; @@ -34,9 +33,9 @@ public EntitiesHandlerImpl(ManageEntitiesService entitiesService, EntityArtifact } @Override - public MetadataEventResponse refreshProjectVersionArtifacts(StoreProjectData projectData, String versionId, List files) + public MetadataEventResponse refreshProjectVersionArtifacts(String groupId, String artifactId, String versionId, List files) { - return super.refreshVersionArtifacts(projectData, versionId, files); + return super.refreshVersionArtifacts(groupId, artifactId, versionId, files); } @Override diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/EntityProvider.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/EntityProvider.java index c86842829..2974aa782 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/EntityProvider.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/EntityProvider.java @@ -15,8 +15,8 @@ package org.finos.legend.depot.store.artifacts.services.entities; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; -import org.finos.legend.depot.store.artifacts.ArtifactLoadingException; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.api.ArtifactLoadingException; import org.finos.legend.depot.store.artifacts.api.entities.EntityArtifactsProvider; import org.finos.legend.sdlc.domain.model.entity.Entity; import org.finos.legend.sdlc.serialization.EntityLoader; diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/VersionedEntityProvider.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/VersionedEntityProvider.java index f12059a2c..82a9ecb3f 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/VersionedEntityProvider.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/entities/VersionedEntityProvider.java @@ -15,7 +15,7 @@ package org.finos.legend.depot.store.artifacts.services.entities; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; import org.finos.legend.depot.store.artifacts.api.entities.VersionedEntityArtifactsProvider; import javax.inject.Inject; diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/file/FileGenerationHandlerImpl.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/file/FileGenerationHandlerImpl.java index 862d54cde..c5f45c075 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/file/FileGenerationHandlerImpl.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/file/FileGenerationHandlerImpl.java @@ -16,14 +16,13 @@ package org.finos.legend.depot.store.artifacts.services.file; import org.apache.commons.io.FilenameUtils; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; import org.finos.legend.depot.domain.api.MetadataEventResponse; -import org.finos.legend.depot.domain.generation.file.FileGeneration; -import org.finos.legend.depot.domain.generation.file.StoredFileGeneration; -import org.finos.legend.depot.domain.project.StoreProjectData; +import org.finos.legend.depot.domain.generation.DepotGeneration; +import org.finos.legend.depot.store.model.generations.StoredFileGeneration; import org.finos.legend.depot.domain.version.VersionValidator; -import org.finos.legend.depot.services.api.generation.file.ManageFileGenerationsService; +import org.finos.legend.depot.services.api.generations.ManageFileGenerationsService; import org.finos.legend.depot.store.artifacts.api.generation.file.FileGenerationsArtifactsHandler; import org.finos.legend.depot.store.artifacts.api.generation.file.FileGenerationsArtifactsProvider; import org.finos.legend.sdlc.domain.model.entity.Entity; @@ -32,6 +31,7 @@ import javax.inject.Inject; import java.io.File; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -42,7 +42,8 @@ import java.util.Map; import java.util.Set; -import static org.finos.legend.depot.domain.generation.file.FileGeneration.GENERATION_CONFIGURATION; +import static org.finos.legend.depot.domain.generation.DepotGeneration.GENERATION_CONFIGURATION; + public class FileGenerationHandlerImpl implements FileGenerationsArtifactsHandler { @@ -70,24 +71,26 @@ public FileGenerationHandlerImpl(ArtifactRepository repository, FileGenerationsA - public MetadataEventResponse refreshProjectVersionArtifacts(StoreProjectData projectData, String versionId, List files) + public MetadataEventResponse refreshProjectVersionArtifacts(String groupId,String artifactId, String versionId, List files) { MetadataEventResponse response = new MetadataEventResponse(); try { - List projectEntities = getAllNonVersionedEntities(projectData.getGroupId(), projectData.getArtifactId(), versionId); + List newGenerations = new ArrayList<>(); + List projectEntities = getAllNonVersionedEntities(groupId, artifactId, versionId); List fileGenerationEntities = filterEntitiesByFileGenerationEntities(projectEntities); - List generatedFiles = provider.extractArtifacts(files); + List generatedFiles = provider.extractArtifacts(files); + //handle files generated when a new master snapshot comes into picture if (VersionValidator.isSnapshotVersion(versionId)) { - String message = String.format("removing prior %s artifacts for [%s-%s-%s]",provider.getType(),projectData.getGroupId(),projectData.getArtifactId(),versionId); + String message = String.format("removing prior %s artifacts for [%s-%s-%s]",provider.getType(), groupId, artifactId, versionId); response.addMessage(message); - generations.delete(projectData.getGroupId(), projectData.getArtifactId(), versionId); + generations.delete(groupId, artifactId, versionId); LOGGER.info(message); } // handle files generated by FileGeneration Element - HashSet processedGeneratedFiles = new HashSet<>(); + HashSet processedGeneratedFiles = new HashSet<>(); fileGenerationEntities.forEach(entity -> { String generationPath = (String) entity.getContent().get(GENERATION_OUTPUT_PATH); @@ -96,8 +99,8 @@ public MetadataEventResponse refreshProjectVersionArtifacts(StoreProjectData pro generatedFiles.stream().filter(gen -> gen.getPath().startsWith(elementPath)).forEach(gen -> { - FileGeneration generation = new FileGeneration(gen.getPath().replace(elementPath, BLANK), gen.getContent()); - generations.createOrUpdate(new StoredFileGeneration(projectData.getGroupId(), projectData.getArtifactId(), versionId, entity.getPath(), codeSchemaGenerationType, generation)); + DepotGeneration generation = new DepotGeneration(gen.getPath().replace(elementPath, BLANK), gen.getContent()); + newGenerations.add(new StoredFileGeneration(groupId, artifactId, versionId, entity.getPath(), codeSchemaGenerationType, generation)); processedGeneratedFiles.add(gen); }); }); @@ -118,23 +121,24 @@ public MetadataEventResponse refreshProjectVersionArtifacts(StoreProjectData pro else { String elementPath = entityMap.get(entityPath.get()).getPath(); - FileGeneration generation = new FileGeneration(generatedFile.getPath(), generatedFile.getContent()); + DepotGeneration generation = new DepotGeneration(generatedFile.getPath(), generatedFile.getContent()); String type = this.getExtensionKeyFromGeneration(generation.getPath(), entityPath.get()); if (type.equals(UNKNOWN_TYPE)) { response.addError(String.format("Generation type for file %s is not present", generation.getPath())); } - generations.createOrUpdate(new StoredFileGeneration(projectData.getGroupId(), projectData.getArtifactId(), versionId, elementPath, type, generation)); + newGenerations.add(new StoredFileGeneration(groupId, artifactId, versionId, elementPath, type, generation)); } } }); - String message = String.format("processed [%s] generations for [%s-%s-%s] ", processedGeneratedFiles.size(), projectData.getGroupId(), projectData.getArtifactId(), versionId); + generations.createOrUpdate(newGenerations); + String message = String.format("new [%s] generations for [%s-%s-%s] ", newGenerations.size(), groupId,artifactId, versionId); LOGGER.info(message); response.addMessage(message); } catch (Exception e) { - String message = String.format("Error processing generations update for %s-%s-%s , ERROR: [%s]", projectData.getGroupId(),projectData.getArtifactId(),versionId,e.getMessage()); + String message = String.format("Error processing generations update for %s-%s-%s , ERROR: [%s]", groupId,artifactId,versionId,e.getMessage()); LOGGER.error(message); response.addError(message); } diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/file/FileGenerationsProvider.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/file/FileGenerationsProvider.java index bafd0369a..30ff023b8 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/file/FileGenerationsProvider.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/services/file/FileGenerationsProvider.java @@ -15,10 +15,10 @@ package org.finos.legend.depot.store.artifacts.services.file; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; -import org.finos.legend.depot.domain.generation.file.FileGeneration; -import org.finos.legend.depot.services.generation.file.FileGenerationLoader; -import org.finos.legend.depot.store.artifacts.ArtifactLoadingException; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.domain.generation.DepotGeneration; +import org.finos.legend.depot.services.generations.loader.FileGenerationLoader; +import org.finos.legend.depot.store.artifacts.api.ArtifactLoadingException; import org.finos.legend.depot.store.artifacts.api.generation.file.FileGenerationsArtifactsProvider; import javax.inject.Inject; @@ -39,14 +39,14 @@ public FileGenerationsProvider() } @Override - public List extractArtifactsForType(Stream files) + public List extractArtifactsForType(Stream files) { - List generations = new ArrayList<>(); + List generations = new ArrayList<>(); files.forEach(f -> { try (FileGenerationLoader loader = FileGenerationLoader.newFileGenerationsLoader(f)) { - List fileGenerations = loader.getAllFileGenerations().collect(Collectors.toList()); + List fileGenerations = loader.getAllFileGenerations().collect(Collectors.toList()); generations.addAll(fileGenerations); } catch (Exception e) diff --git a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/resources/ArtifactsRefreshResource.java b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/resources/artifacts/ArtifactsRefreshResource.java similarity index 99% rename from legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/resources/ArtifactsRefreshResource.java rename to legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/resources/artifacts/ArtifactsRefreshResource.java index c17ac8c83..a28480d44 100644 --- a/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/artifacts/resources/ArtifactsRefreshResource.java +++ b/legend-depot-artifacts-refresh/src/main/java/org/finos/legend/depot/store/resources/artifacts/ArtifactsRefreshResource.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.store.artifacts.resources; +package org.finos.legend.depot.store.resources.artifacts; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsRefreshService.java b/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsRefreshService.java index 6cbc1574a..23c27201e 100644 --- a/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsRefreshService.java +++ b/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsRefreshService.java @@ -15,34 +15,35 @@ package org.finos.legend.depot.store.artifacts.services; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; -import org.finos.legend.depot.artifacts.repository.maven.impl.TestMavenArtifactsRepository; -import org.finos.legend.depot.artifacts.repository.services.RepositoryServices; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.maven.impl.TestMavenArtifactsRepository; +import org.finos.legend.depot.store.artifacts.repository.services.RepositoryServices; import org.finos.legend.depot.domain.api.MetadataEventResponse; import org.finos.legend.depot.domain.api.status.MetadataEventStatus; import org.finos.legend.depot.domain.notifications.MetadataNotification; -import org.finos.legend.depot.services.api.dependencies.ManageDependenciesService; -import org.finos.legend.depot.services.dependencies.ManageDependenciesServiceImpl; -import org.finos.legend.depot.store.artifacts.configuration.IncludeProjectPropertiesConfiguration; import org.finos.legend.depot.domain.project.ProjectVersion; import org.finos.legend.depot.domain.project.ProjectVersionData; import org.finos.legend.depot.domain.project.StoreProjectData; import org.finos.legend.depot.domain.project.StoreProjectVersionData; +import org.finos.legend.depot.services.api.dependencies.ManageDependenciesService; import org.finos.legend.depot.services.api.entities.ManageEntitiesService; import org.finos.legend.depot.services.api.projects.ManageProjectsService; +import org.finos.legend.depot.services.dependencies.ManageDependenciesServiceImpl; import org.finos.legend.depot.services.entities.ManageEntitiesServiceImpl; -import org.finos.legend.depot.services.generation.file.ManageFileGenerationsServiceImpl; +import org.finos.legend.depot.services.generations.impl.ManageFileGenerationsServiceImpl; +import org.finos.legend.depot.store.api.generations.UpdateFileGenerations; +import org.finos.legend.depot.store.mongo.generations.FileGenerationsMongo; import org.finos.legend.depot.services.projects.ManageProjectsServiceImpl; import org.finos.legend.depot.services.projects.configuration.ProjectsConfiguration; import org.finos.legend.depot.store.admin.api.artifacts.ArtifactsFilesStore; import org.finos.legend.depot.store.api.entities.UpdateEntities; -import org.finos.legend.depot.store.api.generation.file.UpdateFileGenerations; import org.finos.legend.depot.store.api.projects.UpdateProjects; import org.finos.legend.depot.store.api.projects.UpdateProjectsVersions; import org.finos.legend.depot.store.artifacts.api.ArtifactsRefreshService; import org.finos.legend.depot.store.artifacts.api.entities.EntityArtifactsProvider; import org.finos.legend.depot.store.artifacts.api.generation.file.FileGenerationsArtifactsProvider; +import org.finos.legend.depot.store.artifacts.configuration.IncludeProjectPropertiesConfiguration; import org.finos.legend.depot.store.artifacts.services.entities.EntitiesHandlerImpl; import org.finos.legend.depot.store.artifacts.services.entities.EntityProvider; import org.finos.legend.depot.store.artifacts.services.file.FileGenerationHandlerImpl; @@ -51,13 +52,12 @@ import org.finos.legend.depot.store.mongo.TestStoreMongo; import org.finos.legend.depot.store.mongo.admin.artifacts.ArtifactsFilesMongo; import org.finos.legend.depot.store.mongo.entities.EntitiesMongo; -import org.finos.legend.depot.store.mongo.generation.file.FileGenerationsMongo; import org.finos.legend.depot.store.mongo.projects.ProjectsMongo; import org.finos.legend.depot.store.mongo.projects.ProjectsVersionsMongo; import org.finos.legend.depot.store.notifications.queue.api.Queue; +import org.finos.legend.depot.store.notifications.queue.store.mongo.NotificationsQueueMongo; import org.finos.legend.depot.store.notifications.services.NotificationsQueueManager; import org.finos.legend.depot.store.notifications.store.mongo.NotificationsMongo; -import org.finos.legend.depot.store.notifications.queue.store.mongo.NotificationsQueueMongo; import org.finos.legend.sdlc.domain.model.entity.Entity; import org.junit.After; import org.junit.Assert; diff --git a/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsRefreshServiceExceptionEscenarios.java b/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsRefreshServiceExceptionEscenarios.java index ce3b43048..a88df6548 100644 --- a/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsRefreshServiceExceptionEscenarios.java +++ b/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsRefreshServiceExceptionEscenarios.java @@ -15,22 +15,22 @@ package org.finos.legend.depot.store.artifacts.services; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryException; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; -import org.finos.legend.depot.artifacts.repository.services.RepositoryServices; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryException; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.services.RepositoryServices; import org.finos.legend.depot.domain.api.MetadataEventResponse; import org.finos.legend.depot.domain.api.status.MetadataEventStatus; import org.finos.legend.depot.domain.project.StoreProjectData; import org.finos.legend.depot.services.api.entities.ManageEntitiesService; import org.finos.legend.depot.services.api.projects.ManageProjectsService; import org.finos.legend.depot.services.entities.ManageEntitiesServiceImpl; -import org.finos.legend.depot.services.generation.file.ManageFileGenerationsServiceImpl; +import org.finos.legend.depot.services.generations.impl.ManageFileGenerationsServiceImpl; +import org.finos.legend.depot.store.api.generations.UpdateFileGenerations; import org.finos.legend.depot.services.projects.ManageProjectsServiceImpl; import org.finos.legend.depot.services.projects.configuration.ProjectsConfiguration; import org.finos.legend.depot.store.admin.api.artifacts.ArtifactsFilesStore; import org.finos.legend.depot.store.api.entities.UpdateEntities; -import org.finos.legend.depot.store.api.generation.file.UpdateFileGenerations; import org.finos.legend.depot.store.api.projects.UpdateProjects; import org.finos.legend.depot.store.api.projects.UpdateProjectsVersions; import org.finos.legend.depot.store.artifacts.api.ArtifactsRefreshService; diff --git a/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsRefreshServiceWithMocks.java b/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsRefreshServiceWithMocks.java index f96c4fced..33c1f1286 100644 --- a/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsRefreshServiceWithMocks.java +++ b/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestArtifactsRefreshServiceWithMocks.java @@ -15,21 +15,21 @@ package org.finos.legend.depot.store.artifacts.services; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryException; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; -import org.finos.legend.depot.artifacts.repository.services.RepositoryServices; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryException; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.services.RepositoryServices; import org.finos.legend.depot.domain.project.StoreProjectData; import org.finos.legend.depot.domain.project.StoreProjectVersionData; import org.finos.legend.depot.services.api.entities.ManageEntitiesService; import org.finos.legend.depot.services.api.projects.ManageProjectsService; import org.finos.legend.depot.services.entities.ManageEntitiesServiceImpl; -import org.finos.legend.depot.services.generation.file.ManageFileGenerationsServiceImpl; +import org.finos.legend.depot.services.generations.impl.ManageFileGenerationsServiceImpl; import org.finos.legend.depot.services.projects.ManageProjectsServiceImpl; import org.finos.legend.depot.services.projects.configuration.ProjectsConfiguration; import org.finos.legend.depot.store.admin.api.artifacts.ArtifactsFilesStore; import org.finos.legend.depot.store.api.entities.UpdateEntities; -import org.finos.legend.depot.store.api.generation.file.UpdateFileGenerations; +import org.finos.legend.depot.store.api.generations.UpdateFileGenerations; import org.finos.legend.depot.store.api.projects.UpdateProjects; import org.finos.legend.depot.store.api.projects.UpdateProjectsVersions; import org.finos.legend.depot.store.artifacts.api.entities.EntityArtifactsProvider; diff --git a/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestProjectVersionRefreshHandler.java b/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestProjectVersionRefreshHandler.java index 1cecf287c..11b7d6a95 100644 --- a/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestProjectVersionRefreshHandler.java +++ b/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/TestProjectVersionRefreshHandler.java @@ -15,10 +15,10 @@ package org.finos.legend.depot.store.artifacts.services; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryException; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactDependency; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; -import org.finos.legend.depot.artifacts.repository.services.RepositoryServices; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryException; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactDependency; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.services.RepositoryServices; import org.finos.legend.depot.domain.api.MetadataEventResponse; import org.finos.legend.depot.domain.api.status.MetadataEventStatus; import org.finos.legend.depot.domain.notifications.MetadataNotification; diff --git a/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/entities/TestEntityProvider.java b/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/entities/TestEntityProvider.java index ca374cf29..272799240 100644 --- a/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/entities/TestEntityProvider.java +++ b/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/entities/TestEntityProvider.java @@ -16,10 +16,10 @@ package org.finos.legend.depot.store.artifacts.services.entities; import org.apache.maven.model.Model; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactDependency; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; -import org.finos.legend.depot.artifacts.repository.maven.impl.TestMavenArtifactsRepository; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactDependency; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.maven.impl.TestMavenArtifactsRepository; import org.finos.legend.depot.store.artifacts.api.entities.EntityArtifactsProvider; import org.finos.legend.sdlc.domain.model.entity.Entity; import org.junit.Assert; diff --git a/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/generation/file/TestGenerationsProvider.java b/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/generation/file/TestGenerationsProvider.java index e37808523..acd451476 100644 --- a/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/generation/file/TestGenerationsProvider.java +++ b/legend-depot-artifacts-refresh/src/test/java/org/finos/legend/depot/store/artifacts/services/generation/file/TestGenerationsProvider.java @@ -15,16 +15,16 @@ package org.finos.legend.depot.store.artifacts.services.generation.file; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; -import org.finos.legend.depot.artifacts.repository.maven.impl.TestMavenArtifactsRepository; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.maven.impl.TestMavenArtifactsRepository; import org.finos.legend.depot.domain.api.MetadataEventResponse; -import org.finos.legend.depot.domain.generation.file.FileGeneration; -import org.finos.legend.depot.domain.generation.file.StoredFileGeneration; +import org.finos.legend.depot.domain.generation.DepotGeneration; +import org.finos.legend.depot.store.model.generations.StoredFileGeneration; import org.finos.legend.depot.domain.project.StoreProjectData; import org.finos.legend.depot.domain.project.StoreProjectVersionData; -import org.finos.legend.depot.services.api.generation.file.ManageFileGenerationsService; -import org.finos.legend.depot.services.generation.file.ManageFileGenerationsServiceImpl; +import org.finos.legend.depot.services.api.generations.ManageFileGenerationsService; +import org.finos.legend.depot.services.generations.impl.ManageFileGenerationsServiceImpl; import org.finos.legend.depot.services.projects.ProjectsServiceImpl; import org.finos.legend.depot.services.projects.configuration.ProjectsConfiguration; import org.finos.legend.depot.store.api.entities.UpdateEntities; @@ -36,7 +36,7 @@ import org.finos.legend.depot.store.metrics.api.QueryMetricsRegistry; import org.finos.legend.depot.store.mongo.TestStoreMongo; import org.finos.legend.depot.store.mongo.entities.EntitiesMongo; -import org.finos.legend.depot.store.mongo.generation.file.FileGenerationsMongo; +import org.finos.legend.depot.store.mongo.generations.FileGenerationsMongo; import org.finos.legend.depot.store.notifications.queue.api.Queue; import org.junit.Assert; import org.junit.Before; @@ -73,7 +73,7 @@ public void setup() { when(projects.find(TEST_GROUP_ID, TEST_ARTIFACT_ID)).thenReturn(Optional.of(new StoreProjectData(PRODUCT_A, TEST_GROUP_ID, TEST_ARTIFACT_ID))); when(projectsVersions.find(TEST_GROUP_ID, TEST_ARTIFACT_ID, BRANCH_SNAPSHOT("master"))).thenReturn(Optional.of(new StoreProjectVersionData(TEST_GROUP_ID, TEST_ARTIFACT_ID, BRANCH_SNAPSHOT("master")))); - when(projectsVersions.find(TEST_GROUP_ID, TEST_ARTIFACT_ID, "2.0.0")).thenReturn(Optional.of(new StoreProjectVersionData(TEST_GROUP_ID, TEST_ARTIFACT_ID, "2.0.0"))); + when(projectsVersions.find(TEST_GROUP_ID, TEST_ARTIFACT_ID, "2.0.0")).thenReturn(Optional.of(new StoreProjectVersionData(TEST_GROUP_ID, TEST_ARTIFACT_ID, "2.0.0"))); } private List getFiles(String versionId) @@ -96,7 +96,7 @@ public void canResolveGenerationsInJar() Assert.assertEquals(0, getDependenciesFiles("2.0.0").size()); - List gens = fileGenerationsProvider.extractArtifacts(files); + List gens = fileGenerationsProvider.extractArtifacts(files); Assert.assertFalse(gens.isEmpty()); } @@ -107,7 +107,7 @@ public void canRefreshRevisions() Assert.assertTrue(generations.getAll().isEmpty()); FileGenerationHandlerImpl handler = new FileGenerationHandlerImpl(repository, fileGenerationsProvider, generations); StoreProjectData projectData = projects.find(TEST_GROUP_ID, TEST_ARTIFACT_ID).get(); - MetadataEventResponse response = handler.refreshProjectVersionArtifacts(projectData, BRANCH_SNAPSHOT("master"), getFiles(BRANCH_SNAPSHOT("master"))); + MetadataEventResponse response = handler.refreshProjectVersionArtifacts(projectData.getGroupId(),projectData.getArtifactId(), BRANCH_SNAPSHOT("master"), getFiles(BRANCH_SNAPSHOT("master"))); Assert.assertNotNull(response); Assert.assertFalse(response.hasErrors()); List fileGenerations = generations.getAll(); @@ -124,7 +124,7 @@ public void canRefreshRevisionWithChangeInGenerations() FileGenerationHandlerImpl handler = new FileGenerationHandlerImpl(repository, fileGenerationsProvider, generations); StoreProjectData projectData = projects.find(TEST_GROUP_ID, TEST_ARTIFACT_ID).get(); //deleted one generation as part of new master snapshot version - MetadataEventResponse response = handler.refreshProjectVersionArtifacts(projectData, BRANCH_SNAPSHOT("master"),Arrays.asList(new File(filePath.getFile()))); + MetadataEventResponse response = handler.refreshProjectVersionArtifacts(projectData.getGroupId(),projectData.getArtifactId(), BRANCH_SNAPSHOT("master"),Arrays.asList(new File(filePath.getFile()))); Assert.assertNotNull(response); Assert.assertFalse(response.hasErrors()); List fileGenerations = generations.getAll(); @@ -139,7 +139,7 @@ public void canRefreshVersions() Assert.assertTrue(generations.getAll().isEmpty()); FileGenerationHandlerImpl handler = new FileGenerationHandlerImpl(repository, fileGenerationsProvider, generations); StoreProjectData projectData = projects.find(TEST_GROUP_ID, TEST_ARTIFACT_ID).get(); - MetadataEventResponse response = handler.refreshProjectVersionArtifacts(projectData, "2.0.0", getFiles("2.0.0")); + MetadataEventResponse response = handler.refreshProjectVersionArtifacts(projectData.getGroupId(),projectData.getArtifactId(), "2.0.0", getFiles("2.0.0")); Assert.assertNotNull(response); Assert.assertFalse(response.hasErrors()); List fileGenerations = generations.getAll(); @@ -155,7 +155,7 @@ public void canReadFileGenerationArtifactsWithMultipleGenerations() Assert.assertTrue(generations.getAll().isEmpty()); FileGenerationHandlerImpl handler = new FileGenerationHandlerImpl(repository, fileGenerationsProvider, generations); StoreProjectData projectData = projects.find(TEST_GROUP_ID, TEST_ARTIFACT_ID).get(); - MetadataEventResponse response = handler.refreshProjectVersionArtifacts(projectData, "2.0.0", getFiles("2.0.0")); + MetadataEventResponse response = handler.refreshProjectVersionArtifacts(projectData.getGroupId(),projectData.getArtifactId(), "2.0.0", getFiles("2.0.0")); Assert.assertNotNull(response); Assert.assertFalse(response.hasErrors()); diff --git a/legend-depot-artifacts-repository-api/pom.xml b/legend-depot-artifacts-repository-api/pom.xml index 70dfb9d58..e21ddcab9 100644 --- a/legend-depot-artifacts-repository-api/pom.xml +++ b/legend-depot-artifacts-repository-api/pom.xml @@ -20,7 +20,7 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 @@ -29,10 +29,6 @@ - - org.finos.legend.depot - legend-depot-model - org.finos.legend.depot legend-depot-core-http diff --git a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/ArtifactNotFoundException.java b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/ArtifactNotFoundException.java similarity index 92% rename from legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/ArtifactNotFoundException.java rename to legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/ArtifactNotFoundException.java index 4ea1918f0..83a4feb1a 100644 --- a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/ArtifactNotFoundException.java +++ b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/ArtifactNotFoundException.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.api; +package org.finos.legend.depot.store.artifacts.repository.api; public class ArtifactNotFoundException extends Exception { diff --git a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/ArtifactRepository.java b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/ArtifactRepository.java similarity index 88% rename from legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/ArtifactRepository.java rename to legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/ArtifactRepository.java index 0f34828e3..6e3490c54 100644 --- a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/ArtifactRepository.java +++ b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/ArtifactRepository.java @@ -13,11 +13,11 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.api; +package org.finos.legend.depot.store.artifacts.repository.api; import org.apache.maven.model.Model; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactDependency; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactDependency; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; import org.finos.legend.sdlc.domain.model.version.VersionId; import java.io.File; diff --git a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/ArtifactRepositoryException.java b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/ArtifactRepositoryException.java similarity index 93% rename from legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/ArtifactRepositoryException.java rename to legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/ArtifactRepositoryException.java index c81ad3114..168910477 100644 --- a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/ArtifactRepositoryException.java +++ b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/ArtifactRepositoryException.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.api; +package org.finos.legend.depot.store.artifacts.repository.api; public class ArtifactRepositoryException extends Exception { diff --git a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/ArtifactRepositoryProviderConfiguration.java b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/ArtifactRepositoryProviderConfiguration.java similarity index 96% rename from legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/ArtifactRepositoryProviderConfiguration.java rename to legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/ArtifactRepositoryProviderConfiguration.java index 0e57ee9a3..a0c9164c7 100644 --- a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/ArtifactRepositoryProviderConfiguration.java +++ b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/ArtifactRepositoryProviderConfiguration.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.api; +package org.finos.legend.depot.store.artifacts.repository.api; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; diff --git a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/VoidArtifactRepositoryConfiguration.java b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/VoidArtifactRepositoryConfiguration.java similarity index 93% rename from legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/VoidArtifactRepositoryConfiguration.java rename to legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/VoidArtifactRepositoryConfiguration.java index dbf8205ac..b03370810 100644 --- a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/VoidArtifactRepositoryConfiguration.java +++ b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/VoidArtifactRepositoryConfiguration.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.api; +package org.finos.legend.depot.store.artifacts.repository.api; public class VoidArtifactRepositoryConfiguration extends ArtifactRepositoryProviderConfiguration { diff --git a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/VoidArtifactRepositoryProvider.java b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/VoidArtifactRepositoryProvider.java similarity index 91% rename from legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/VoidArtifactRepositoryProvider.java rename to legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/VoidArtifactRepositoryProvider.java index 1dfdaafae..4a37e1f1b 100644 --- a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/api/VoidArtifactRepositoryProvider.java +++ b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/api/VoidArtifactRepositoryProvider.java @@ -13,11 +13,11 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.api; +package org.finos.legend.depot.store.artifacts.repository.api; import org.apache.maven.model.Model; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactDependency; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactDependency; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; import org.finos.legend.sdlc.domain.model.version.VersionId; import java.io.File; @@ -25,7 +25,6 @@ import java.util.List; import java.util.Optional; import java.util.Set; -import java.util.jar.Manifest; public class VoidArtifactRepositoryProvider implements ArtifactRepository { diff --git a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/domain/ArtifactDependency.java b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/domain/ArtifactDependency.java similarity index 96% rename from legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/domain/ArtifactDependency.java rename to legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/domain/ArtifactDependency.java index bcfd4cb2e..236e6c62c 100644 --- a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/domain/ArtifactDependency.java +++ b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/domain/ArtifactDependency.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.domain; +package org.finos.legend.depot.store.artifacts.repository.domain; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import org.apache.commons.lang.builder.EqualsBuilder; diff --git a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/domain/ArtifactType.java b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/domain/ArtifactType.java similarity index 93% rename from legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/domain/ArtifactType.java rename to legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/domain/ArtifactType.java index cab083923..98504c032 100644 --- a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/domain/ArtifactType.java +++ b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/domain/ArtifactType.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.domain; +package org.finos.legend.depot.store.artifacts.repository.domain; public enum ArtifactType { diff --git a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/RepositoryModule.java b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/guice/RepositoryModule.java similarity index 78% rename from legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/RepositoryModule.java rename to legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/guice/RepositoryModule.java index b4903915f..48da8e3a0 100644 --- a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/RepositoryModule.java +++ b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/guice/RepositoryModule.java @@ -13,16 +13,16 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository; +package org.finos.legend.depot.store.artifacts.repository.guice; import com.google.inject.PrivateModule; import com.google.inject.Provides; import com.google.inject.Singleton; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; -import org.finos.legend.depot.artifacts.repository.api.VoidArtifactRepositoryProvider; -import org.finos.legend.depot.artifacts.repository.resources.RepositoryResource; -import org.finos.legend.depot.artifacts.repository.services.RepositoryServices; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; +import org.finos.legend.depot.store.artifacts.repository.api.VoidArtifactRepositoryProvider; +import org.finos.legend.depot.store.resources.artifacts.RepositoryResource; +import org.finos.legend.depot.store.artifacts.repository.services.RepositoryServices; import org.slf4j.Logger; public class RepositoryModule extends PrivateModule diff --git a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/services/RepositoryServices.java b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/services/RepositoryServices.java similarity index 85% rename from legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/services/RepositoryServices.java rename to legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/services/RepositoryServices.java index caaa565c5..6c05af3c9 100644 --- a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/services/RepositoryServices.java +++ b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/artifacts/repository/services/RepositoryServices.java @@ -13,13 +13,13 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.services; +package org.finos.legend.depot.store.artifacts.repository.services; import org.apache.maven.model.Model; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryException; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactDependency; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryException; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactDependency; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; import org.finos.legend.sdlc.domain.model.version.VersionId; import javax.inject.Inject; diff --git a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/resources/RepositoryResource.java b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/resources/artifacts/RepositoryResource.java similarity index 86% rename from legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/resources/RepositoryResource.java rename to legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/resources/artifacts/RepositoryResource.java index 01fc83e42..9aae022c0 100644 --- a/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/artifacts/repository/resources/RepositoryResource.java +++ b/legend-depot-artifacts-repository-api/src/main/java/org/finos/legend/depot/store/resources/artifacts/RepositoryResource.java @@ -13,14 +13,13 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.resources; +package org.finos.legend.depot.store.resources.artifacts; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryException; -import org.finos.legend.depot.artifacts.repository.services.RepositoryServices; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryException; import org.finos.legend.depot.tracing.resources.BaseResource; import org.finos.legend.depot.tracing.resources.ResourceLoggingAndTracing; @@ -38,13 +37,12 @@ @Api("Repository") public class RepositoryResource extends BaseResource { - private final RepositoryServices repositoryServices; + private final ArtifactRepository artifactRepository; @Inject - public RepositoryResource(RepositoryServices repositoryServices,ArtifactRepository artifactRepository) + public RepositoryResource(ArtifactRepository artifactRepository) { - this.repositoryServices = repositoryServices; this.artifactRepository = artifactRepository; } diff --git a/legend-depot-artifacts-repository-maven-impl/pom.xml b/legend-depot-artifacts-repository-maven-impl/pom.xml index 06339970a..4af8a767d 100644 --- a/legend-depot-artifacts-repository-maven-impl/pom.xml +++ b/legend-depot-artifacts-repository-maven-impl/pom.xml @@ -20,11 +20,11 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 - Legend Depot - Artifacts - Repository - Maven Implementation + Legend Depot - Artifacts - Repository - Maven legend-depot-artifacts-repository-maven-impl @@ -37,13 +37,7 @@ org.finos.legend.depot legend-depot-artifacts-repository-api - - org.finos.legend.depot - legend-depot-store-mongo - tests - test-jar - test - + @@ -62,6 +56,7 @@ com.google.guava guava + ${junit.groupId} ${junit.artifactId} @@ -72,11 +67,6 @@ mockito-core test - - de.bwaldvogel - mongo-java-server - test - diff --git a/legend-depot-artifacts-repository-maven-impl/src/main/java/org/finos/legend/depot/artifacts/repository/maven/impl/MavenArtifactRepository.java b/legend-depot-artifacts-repository-maven-impl/src/main/java/org/finos/legend/depot/store/artifacts/repository/maven/impl/MavenArtifactRepository.java similarity index 96% rename from legend-depot-artifacts-repository-maven-impl/src/main/java/org/finos/legend/depot/artifacts/repository/maven/impl/MavenArtifactRepository.java rename to legend-depot-artifacts-repository-maven-impl/src/main/java/org/finos/legend/depot/store/artifacts/repository/maven/impl/MavenArtifactRepository.java index 9c81256c8..c4ebd3823 100644 --- a/legend-depot-artifacts-repository-maven-impl/src/main/java/org/finos/legend/depot/artifacts/repository/maven/impl/MavenArtifactRepository.java +++ b/legend-depot-artifacts-repository-maven-impl/src/main/java/org/finos/legend/depot/store/artifacts/repository/maven/impl/MavenArtifactRepository.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.maven.impl; +package org.finos.legend.depot.store.artifacts.repository.maven.impl; import org.apache.maven.model.Build; import org.apache.maven.model.Dependency; @@ -23,11 +23,11 @@ import org.apache.maven.settings.Settings; import org.apache.maven.settings.io.DefaultSettingsReader; import org.apache.maven.settings.io.SettingsReader; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryException; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactDependency; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryException; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactDependency; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; import org.finos.legend.depot.domain.version.VersionValidator; import org.finos.legend.depot.tracing.services.TracerFactory; import org.finos.legend.sdlc.domain.model.version.VersionId; diff --git a/legend-depot-artifacts-repository-maven-impl/src/main/java/org/finos/legend/depot/artifacts/repository/maven/impl/MavenArtifactRepositoryConfiguration.java b/legend-depot-artifacts-repository-maven-impl/src/main/java/org/finos/legend/depot/store/artifacts/repository/maven/impl/MavenArtifactRepositoryConfiguration.java similarity index 86% rename from legend-depot-artifacts-repository-maven-impl/src/main/java/org/finos/legend/depot/artifacts/repository/maven/impl/MavenArtifactRepositoryConfiguration.java rename to legend-depot-artifacts-repository-maven-impl/src/main/java/org/finos/legend/depot/store/artifacts/repository/maven/impl/MavenArtifactRepositoryConfiguration.java index 0df4a9a6c..866a6af6f 100644 --- a/legend-depot-artifacts-repository-maven-impl/src/main/java/org/finos/legend/depot/artifacts/repository/maven/impl/MavenArtifactRepositoryConfiguration.java +++ b/legend-depot-artifacts-repository-maven-impl/src/main/java/org/finos/legend/depot/store/artifacts/repository/maven/impl/MavenArtifactRepositoryConfiguration.java @@ -13,12 +13,12 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.maven.impl; +package org.finos.legend.depot.store.artifacts.repository.maven.impl; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; import javax.validation.constraints.NotNull; diff --git a/legend-depot-artifacts-repository-maven-impl/src/test/java/org/finos/legend/depot/artifacts/repository/maven/impl/TestMavenArtifactsRepository.java b/legend-depot-artifacts-repository-maven-impl/src/test/java/org/finos/legend/depot/store/artifacts/repository/maven/impl/TestMavenArtifactsRepository.java similarity index 94% rename from legend-depot-artifacts-repository-maven-impl/src/test/java/org/finos/legend/depot/artifacts/repository/maven/impl/TestMavenArtifactsRepository.java rename to legend-depot-artifacts-repository-maven-impl/src/test/java/org/finos/legend/depot/store/artifacts/repository/maven/impl/TestMavenArtifactsRepository.java index fb418a080..e93109a27 100644 --- a/legend-depot-artifacts-repository-maven-impl/src/test/java/org/finos/legend/depot/artifacts/repository/maven/impl/TestMavenArtifactsRepository.java +++ b/legend-depot-artifacts-repository-maven-impl/src/test/java/org/finos/legend/depot/store/artifacts/repository/maven/impl/TestMavenArtifactsRepository.java @@ -13,10 +13,10 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.maven.impl; +package org.finos.legend.depot.store.artifacts.repository.maven.impl; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryException; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryException; import org.finos.legend.sdlc.domain.model.version.VersionId; import org.slf4j.Logger; diff --git a/legend-depot-artifacts-repository-maven-impl/src/test/java/org/finos/legend/depot/artifacts/repository/maven/impl/TestRepository.java b/legend-depot-artifacts-repository-maven-impl/src/test/java/org/finos/legend/depot/store/artifacts/repository/maven/impl/TestRepository.java similarity index 89% rename from legend-depot-artifacts-repository-maven-impl/src/test/java/org/finos/legend/depot/artifacts/repository/maven/impl/TestRepository.java rename to legend-depot-artifacts-repository-maven-impl/src/test/java/org/finos/legend/depot/store/artifacts/repository/maven/impl/TestRepository.java index 6381c0e44..9016b60cd 100644 --- a/legend-depot-artifacts-repository-maven-impl/src/test/java/org/finos/legend/depot/artifacts/repository/maven/impl/TestRepository.java +++ b/legend-depot-artifacts-repository-maven-impl/src/test/java/org/finos/legend/depot/store/artifacts/repository/maven/impl/TestRepository.java @@ -13,13 +13,12 @@ // limitations under the License. // -package org.finos.legend.depot.artifacts.repository.maven.impl; +package org.finos.legend.depot.store.artifacts.repository.maven.impl; -import org.finos.legend.depot.artifacts.repository.api.ArtifactNotFoundException; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactDependency; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactType; -import org.finos.legend.depot.store.mongo.TestStoreMongo; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactNotFoundException; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactDependency; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactType; import org.finos.legend.sdlc.domain.model.version.VersionId; import org.junit.Assert; import org.junit.Test; @@ -28,7 +27,7 @@ import java.util.List; import java.util.Set; -public class TestRepository extends TestStoreMongo +public class TestRepository { public static final String GROUP_ID = "examples.metadata"; private ArtifactRepository repository = new TestMavenArtifactsRepository(); diff --git a/legend-depot-core-authorisation/pom.xml b/legend-depot-core-authorisation/pom.xml index 90fdded80..6b5aff36d 100644 --- a/legend-depot-core-authorisation/pom.xml +++ b/legend-depot-core-authorisation/pom.xml @@ -20,7 +20,7 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 diff --git a/legend-depot-core-http/pom.xml b/legend-depot-core-http/pom.xml index 024c56e41..e32e5ea66 100644 --- a/legend-depot-core-http/pom.xml +++ b/legend-depot-core-http/pom.xml @@ -20,11 +20,11 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 - Legend Depot - Core - HTTP Server + Legend Depot - Core - HTTP Components legend-depot-core-http diff --git a/legend-depot-core-schedules/pom.xml b/legend-depot-core-schedules/pom.xml index 0575963ff..b40003629 100644 --- a/legend-depot-core-schedules/pom.xml +++ b/legend-depot-core-schedules/pom.xml @@ -20,7 +20,7 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 diff --git a/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/schedules/services/SchedulesFactory.java b/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/services/schedules/SchedulesFactory.java similarity index 81% rename from legend-depot-core-schedules/src/main/java/org/finos/legend/depot/schedules/services/SchedulesFactory.java rename to legend-depot-core-schedules/src/main/java/org/finos/legend/depot/services/schedules/SchedulesFactory.java index ce97acfe6..1156eb99b 100644 --- a/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/schedules/services/SchedulesFactory.java +++ b/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/services/schedules/SchedulesFactory.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.schedules.services; +package org.finos.legend.depot.services.schedules; import org.eclipse.collections.api.factory.Maps; import org.eclipse.collections.impl.map.mutable.SynchronizedMutableMap; @@ -72,6 +72,11 @@ public void run() } } + public void registerExternalTriggerSchedule(String name, long intervalInMilliseconds, boolean isSingleInstance, Supplier function) + { + createScheduleInfo(name, intervalInMilliseconds, isSingleInstance, function); + } + public void registerSingleInstance(String name, long delayStartInMilliseconds, long intervalInMilliseconds, Supplier function) { register(name, delayStartInMilliseconds, intervalInMilliseconds, true, function); @@ -83,16 +88,21 @@ public void register(String name, long delayStartInMilliseconds, long intervalIn } private void register(String name, long delayStartInMilliseconds, long intervalInMilliseconds, boolean singleInstance, Supplier function) + { + createScheduleInfo(name, intervalInMilliseconds, singleInstance, function); + + TimerTask timerTask = createTimerTask(name); + tasksRegistry.put(name,timerTask); + timer.scheduleAtFixedRate(timerTask, delayStartInMilliseconds, intervalInMilliseconds); + } + + private void createScheduleInfo(String name, long intervalInMilliseconds, boolean singleInstance, Supplier function) { ScheduleInfo info = schedulesStore.get(name).orElse(new ScheduleInfo(name)); info.frequency = intervalInMilliseconds; info.singleInstance = singleInstance; functions.put(name,function); schedulesStore.createOrUpdate(info); - - TimerTask timerTask = createTimerTask(name); - tasksRegistry.put(name,timerTask); - timer.scheduleAtFixedRate(timerTask, delayStartInMilliseconds, intervalInMilliseconds); } private TimerTask createTimerTask(String name) @@ -122,7 +132,7 @@ public void run() LOGGER.info("Skipping {} execution", name); return; } - execute(schedule); + execute(schedule, true); } }; } @@ -159,10 +169,10 @@ public void deRegisterAll() }); } - public void trigger(String scheduleName) + public void trigger(String scheduleName, boolean forceRun) { Optional scheduleInfo = schedulesStore.get(scheduleName); - scheduleInfo.ifPresent(schedule -> execute(schedule)); + scheduleInfo.ifPresent(schedule -> execute(schedule, forceRun)); } void run(String scheduleName) @@ -184,21 +194,29 @@ public void toggleDisableAll(boolean toggle) schedulesStore.getAll().forEach(info -> toggleDisable(info.name, toggle)); } - private void execute(ScheduleInfo schedule) + private void execute(ScheduleInfo schedule, boolean forceRun) { try { - if (functions.containsKey(schedule.name)) + if (forceRun || !schedule.isDisabled()) { - this.instancesStore.insert(new ScheduleInstance(schedule.name,toDate(LocalDateTime.now().plusSeconds(schedule.frequency / 1000L)))); - LOGGER.info("Starting schedule {} ", schedule.name); - Object result = functions.get(schedule.name).get(); - LOGGER.info("Schedule {} result {}", schedule.name, result); + if (functions.containsKey(schedule.name)) + { + this.instancesStore.insert(new ScheduleInstance(schedule.name,toDate(LocalDateTime.now().plusSeconds(schedule.frequency / 1000L)))); + LOGGER.info("Starting schedule {} ", schedule.name); + Object result = functions.get(schedule.name).get(); + LOGGER.info("Schedule {} result {}", schedule.name, result); + } + else + { + LOGGER.warn("No function to execute {}", schedule.name); + } } else { - LOGGER.warn("No function to execute {}", schedule.name); + LOGGER.warn("Schedule {} is disabled and force run flag is false", schedule.name); } + } catch (Exception e) { diff --git a/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/schedules/AdminSchedulesModule.java b/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/services/schedules/guice/AdminSchedulesModule.java similarity index 85% rename from legend-depot-core-schedules/src/main/java/org/finos/legend/depot/schedules/AdminSchedulesModule.java rename to legend-depot-core-schedules/src/main/java/org/finos/legend/depot/services/schedules/guice/AdminSchedulesModule.java index b68b15d58..bff19a7ac 100644 --- a/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/schedules/AdminSchedulesModule.java +++ b/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/services/schedules/guice/AdminSchedulesModule.java @@ -13,12 +13,12 @@ // limitations under the License. // -package org.finos.legend.depot.schedules; +package org.finos.legend.depot.services.schedules.guice; import com.google.inject.Provides; import com.google.inject.Singleton; -import org.finos.legend.depot.schedules.resources.SchedulesResource; -import org.finos.legend.depot.schedules.services.SchedulesFactory; +import org.finos.legend.depot.store.resources.schedules.SchedulesResource; +import org.finos.legend.depot.services.schedules.SchedulesFactory; import javax.inject.Named; diff --git a/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/schedules/SchedulesModule.java b/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/services/schedules/guice/SchedulesModule.java similarity index 91% rename from legend-depot-core-schedules/src/main/java/org/finos/legend/depot/schedules/SchedulesModule.java rename to legend-depot-core-schedules/src/main/java/org/finos/legend/depot/services/schedules/guice/SchedulesModule.java index 209d8600a..0fa7713e8 100644 --- a/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/schedules/SchedulesModule.java +++ b/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/services/schedules/guice/SchedulesModule.java @@ -13,12 +13,12 @@ // limitations under the License. // -package org.finos.legend.depot.schedules; +package org.finos.legend.depot.services.schedules.guice; import com.google.inject.PrivateModule; import com.google.inject.Provides; import com.google.inject.Singleton; -import org.finos.legend.depot.schedules.services.SchedulesFactory; +import org.finos.legend.depot.services.schedules.SchedulesFactory; import org.finos.legend.depot.store.admin.api.schedules.ScheduleInstancesStore; import org.finos.legend.depot.store.admin.api.schedules.SchedulesStore; diff --git a/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/schedules/resources/SchedulesResource.java b/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/store/resources/schedules/SchedulesResource.java similarity index 93% rename from legend-depot-core-schedules/src/main/java/org/finos/legend/depot/schedules/resources/SchedulesResource.java rename to legend-depot-core-schedules/src/main/java/org/finos/legend/depot/store/resources/schedules/SchedulesResource.java index 257cb74c3..daf4f356f 100644 --- a/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/schedules/resources/SchedulesResource.java +++ b/legend-depot-core-schedules/src/main/java/org/finos/legend/depot/store/resources/schedules/SchedulesResource.java @@ -13,13 +13,14 @@ // limitations under the License. // -package org.finos.legend.depot.schedules.resources; +package org.finos.legend.depot.store.resources.schedules; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import org.finos.legend.depot.core.authorisation.api.AuthorisationProvider; import org.finos.legend.depot.core.authorisation.resources.BaseAuthorisedResource; -import org.finos.legend.depot.schedules.services.SchedulesFactory; +import org.finos.legend.depot.services.schedules.SchedulesFactory; import org.finos.legend.depot.store.admin.api.schedules.ScheduleInstancesStore; import org.finos.legend.depot.store.admin.api.schedules.SchedulesStore; import org.finos.legend.depot.store.admin.domain.schedules.ScheduleInfo; @@ -97,12 +98,13 @@ public List getSchedulerInstances() @Path("/schedules/{scheduleName}") @ApiOperation(ResourceLoggingAndTracing.TRIGGER_SCHEDULE) @Produces(MediaType.APPLICATION_JSON) - public Response forceScheduler(@PathParam("scheduleName") String scheduleName) + public Response forceScheduler(@PathParam("scheduleName") String scheduleName, + @QueryParam("forceRun") @DefaultValue("false") @ApiParam("Whether to run the schedule if disabled") boolean forceRun) { return handle(ResourceLoggingAndTracing.TRIGGER_SCHEDULE, () -> { validateUser(); - schedulesFactory.trigger(scheduleName); + schedulesFactory.trigger(scheduleName, forceRun); return Response.noContent().build(); }); } diff --git a/legend-depot-core-schedules/src/test/java/org/finos/legend/depot/schedules/services/MockInstancesStore.java b/legend-depot-core-schedules/src/test/java/org/finos/legend/depot/services/schedules/MockInstancesStore.java similarity index 96% rename from legend-depot-core-schedules/src/test/java/org/finos/legend/depot/schedules/services/MockInstancesStore.java rename to legend-depot-core-schedules/src/test/java/org/finos/legend/depot/services/schedules/MockInstancesStore.java index d7a3aad9d..350e9f477 100644 --- a/legend-depot-core-schedules/src/test/java/org/finos/legend/depot/schedules/services/MockInstancesStore.java +++ b/legend-depot-core-schedules/src/test/java/org/finos/legend/depot/services/schedules/MockInstancesStore.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.schedules.services; +package org.finos.legend.depot.services.schedules; import org.finos.legend.depot.store.admin.api.schedules.ScheduleInstancesStore; import org.finos.legend.depot.store.admin.domain.schedules.ScheduleInstance; diff --git a/legend-depot-core-schedules/src/test/java/org/finos/legend/depot/schedules/services/MockScheduleStore.java b/legend-depot-core-schedules/src/test/java/org/finos/legend/depot/services/schedules/MockScheduleStore.java similarity index 96% rename from legend-depot-core-schedules/src/test/java/org/finos/legend/depot/schedules/services/MockScheduleStore.java rename to legend-depot-core-schedules/src/test/java/org/finos/legend/depot/services/schedules/MockScheduleStore.java index 9cfd3d6b7..86aeae157 100644 --- a/legend-depot-core-schedules/src/test/java/org/finos/legend/depot/schedules/services/MockScheduleStore.java +++ b/legend-depot-core-schedules/src/test/java/org/finos/legend/depot/services/schedules/MockScheduleStore.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.schedules.services; +package org.finos.legend.depot.services.schedules; import org.finos.legend.depot.store.admin.api.schedules.SchedulesStore; import org.finos.legend.depot.store.admin.domain.schedules.ScheduleInfo; diff --git a/legend-depot-core-schedules/src/test/java/org/finos/legend/depot/schedules/services/TestSchedules.java b/legend-depot-core-schedules/src/test/java/org/finos/legend/depot/services/schedules/TestSchedules.java similarity index 97% rename from legend-depot-core-schedules/src/test/java/org/finos/legend/depot/schedules/services/TestSchedules.java rename to legend-depot-core-schedules/src/test/java/org/finos/legend/depot/services/schedules/TestSchedules.java index 3dbef3e0e..7ae9930d8 100644 --- a/legend-depot-core-schedules/src/test/java/org/finos/legend/depot/schedules/services/TestSchedules.java +++ b/legend-depot-core-schedules/src/test/java/org/finos/legend/depot/services/schedules/TestSchedules.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.schedules.services; +package org.finos.legend.depot.services.schedules; import org.finos.legend.depot.store.admin.domain.schedules.ScheduleInstance; import org.junit.After; @@ -27,7 +27,7 @@ public class TestSchedules { - private SchedulesFactory schedulesFactory; + private SchedulesFactory schedulesFactory; @Before public void setUp() diff --git a/legend-depot-core-services/pom.xml b/legend-depot-core-services/pom.xml index ddb02ab55..386f1d556 100644 --- a/legend-depot-core-services/pom.xml +++ b/legend-depot-core-services/pom.xml @@ -20,7 +20,7 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 @@ -54,7 +54,11 @@ test - + + de.bwaldvogel + mongo-java-server + test + com.fasterxml.jackson.core jackson-core @@ -81,11 +85,6 @@ mockito-core test - - de.bwaldvogel - mongo-java-server - test - diff --git a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/ManageServicesModule.java b/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/ManageServicesModule.java index c37b0ed4b..d3b99e8ff 100644 --- a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/ManageServicesModule.java +++ b/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/ManageServicesModule.java @@ -17,15 +17,13 @@ import com.google.inject.Provides; import com.google.inject.Singleton; -import org.finos.legend.depot.schedules.services.SchedulesFactory; +import org.finos.legend.depot.services.schedules.SchedulesFactory; import org.finos.legend.depot.services.api.dependencies.ManageDependenciesService; import org.finos.legend.depot.services.api.entities.ManageEntitiesService; -import org.finos.legend.depot.services.api.generation.file.ManageFileGenerationsService; import org.finos.legend.depot.services.api.projects.ManageProjectsService; import org.finos.legend.depot.services.api.versionedEntities.ManageVersionedEntitiesService; import org.finos.legend.depot.services.dependencies.ManageDependenciesServiceImpl; import org.finos.legend.depot.services.entities.ManageEntitiesServiceImpl; -import org.finos.legend.depot.services.generation.file.ManageFileGenerationsServiceImpl; import org.finos.legend.depot.services.projects.ManageProjectsServiceImpl; import org.finos.legend.depot.services.versionedEntities.ManageVersionedEntitiesServiceImpl; import org.finos.legend.depot.tracing.api.PrometheusMetricsHandler; @@ -52,7 +50,7 @@ protected void configure() bind(ManageProjectsService.class).to(ManageProjectsServiceImpl.class); bind(ManageEntitiesService.class).to(ManageEntitiesServiceImpl.class); bind(ManageVersionedEntitiesService.class).to(ManageVersionedEntitiesServiceImpl.class); - bind(ManageFileGenerationsService.class).to(ManageFileGenerationsServiceImpl.class); + bind(ManageDependenciesService.class).to(ManageDependenciesServiceImpl.class); bind(VersionsMismatchService.class); @@ -60,7 +58,7 @@ protected void configure() expose(ManageEntitiesService.class); expose(ManageDependenciesService.class); expose(ManageVersionedEntitiesService.class); - expose(ManageFileGenerationsService.class); + expose(VersionsMismatchService.class); } diff --git a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/ReadDataServicesModule.java b/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/ReadDataServicesModule.java index 1ce90c6ec..a18514d9f 100644 --- a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/ReadDataServicesModule.java +++ b/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/ReadDataServicesModule.java @@ -21,14 +21,12 @@ import com.google.inject.name.Names; import org.finos.legend.depot.services.api.entities.EntitiesService; import org.finos.legend.depot.services.api.entities.EntityClassifierService; -import org.finos.legend.depot.services.api.generation.file.FileGenerationsService; import org.finos.legend.depot.services.api.projects.ProjectsService; import org.finos.legend.depot.services.api.serverInfo.InfoService; import org.finos.legend.depot.services.api.versionedEntities.VersionedEntitiesService; import org.finos.legend.depot.services.dependencies.DependencyUtil; import org.finos.legend.depot.services.entities.EntitiesServiceImpl; import org.finos.legend.depot.services.entities.EntityClassifierServiceImpl; -import org.finos.legend.depot.services.generation.file.FileGenerationsServiceImpl; import org.finos.legend.depot.services.projects.ProjectsServiceImpl; import org.finos.legend.depot.services.versionedEntities.VersionedEntitiesServiceImpl; @@ -44,14 +42,12 @@ protected void configure() bind(VersionedEntitiesService.class).to(VersionedEntitiesServiceImpl.class); bind(EntityClassifierService.class).to(EntityClassifierServiceImpl.class); bind(ProjectsService.class).to(ProjectsServiceImpl.class); - bind(FileGenerationsService.class).to(FileGenerationsServiceImpl.class); bind(InfoService.class); expose(ProjectsService.class); expose(EntitiesService.class); expose(VersionedEntitiesService.class); expose(EntityClassifierService.class); - expose(FileGenerationsService.class); expose(InfoService.class); expose(DependencyUtil.class).annotatedWith(Names.named("dependencyUtil")); } diff --git a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/VersionsMismatchService.java b/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/VersionsMismatchService.java index 12a19ecc3..067d34813 100644 --- a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/VersionsMismatchService.java +++ b/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/VersionsMismatchService.java @@ -16,7 +16,7 @@ package org.finos.legend.depot.services; import org.eclipse.collections.impl.parallel.ParallelIterate; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; import org.finos.legend.depot.domain.project.StoreProjectData; import org.finos.legend.depot.domain.project.StoreProjectVersionData; import org.finos.legend.depot.domain.version.VersionMismatch; diff --git a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/dependencies/ManageDependenciesServiceImpl.java b/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/dependencies/ManageDependenciesServiceImpl.java index ba1e44092..530f4c6dd 100644 --- a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/dependencies/ManageDependenciesServiceImpl.java +++ b/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/dependencies/ManageDependenciesServiceImpl.java @@ -15,8 +15,8 @@ package org.finos.legend.depot.services.dependencies; -import org.finos.legend.depot.artifacts.repository.domain.ArtifactDependency; -import org.finos.legend.depot.artifacts.repository.services.RepositoryServices; +import org.finos.legend.depot.store.artifacts.repository.domain.ArtifactDependency; +import org.finos.legend.depot.store.artifacts.repository.services.RepositoryServices; import org.finos.legend.depot.domain.project.ProjectVersion; import org.finos.legend.depot.domain.project.StoreProjectVersionData; import org.finos.legend.depot.domain.project.dependencies.ProjectDependencyWithPlatformVersions; diff --git a/legend-depot-core-services/src/test/java/org/finos/legend/depot/services/TestVersionsMismatchService.java b/legend-depot-core-services/src/test/java/org/finos/legend/depot/services/TestVersionsMismatchService.java index 1783ce1b1..0f40034f5 100644 --- a/legend-depot-core-services/src/test/java/org/finos/legend/depot/services/TestVersionsMismatchService.java +++ b/legend-depot-core-services/src/test/java/org/finos/legend/depot/services/TestVersionsMismatchService.java @@ -15,8 +15,8 @@ package org.finos.legend.depot.services; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryException; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryException; import org.finos.legend.depot.domain.project.StoreProjectData; import org.finos.legend.depot.domain.project.StoreProjectVersionData; import org.finos.legend.depot.domain.version.VersionMismatch; diff --git a/legend-depot-core-services/src/test/java/org/finos/legend/depot/services/dependencies/TestManageDependenciesService.java b/legend-depot-core-services/src/test/java/org/finos/legend/depot/services/dependencies/TestManageDependenciesService.java index 80a97c406..9e9454a05 100644 --- a/legend-depot-core-services/src/test/java/org/finos/legend/depot/services/dependencies/TestManageDependenciesService.java +++ b/legend-depot-core-services/src/test/java/org/finos/legend/depot/services/dependencies/TestManageDependenciesService.java @@ -14,8 +14,8 @@ package org.finos.legend.depot.services.dependencies; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepository; -import org.finos.legend.depot.artifacts.repository.services.RepositoryServices; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepository; +import org.finos.legend.depot.store.artifacts.repository.services.RepositoryServices; import org.finos.legend.depot.domain.project.ProjectVersion; import org.finos.legend.depot.domain.project.StoreProjectData; import org.finos.legend.depot.domain.project.StoreProjectVersionData; diff --git a/legend-depot-core-services/src/test/resources/file-generation/test-file-generation-master-SNAPSHOT/examples/metadata/test/ClassWithDependency.avro b/legend-depot-core-services/src/test/resources/file-generation/test-file-generation-master-SNAPSHOT/examples/metadata/test/ClassWithDependency.avro deleted file mode 100644 index 6ba7b7cff..000000000 --- a/legend-depot-core-services/src/test/resources/file-generation/test-file-generation-master-SNAPSHOT/examples/metadata/test/ClassWithDependency.avro +++ /dev/null @@ -1,11 +0,0 @@ -{ - "fields": [ - { - "name": "Name", - "type": "string" - } - ], - "name": "ClassWithDependency", - "namespace": "examples.metadata.test", - "type": "record" -} \ No newline at end of file diff --git a/legend-depot-core-services/src/test/resources/file-generation/test-file-generation-master-SNAPSHOT/examples/metadata/test/ClientBasic.avro b/legend-depot-core-services/src/test/resources/file-generation/test-file-generation-master-SNAPSHOT/examples/metadata/test/ClientBasic.avro deleted file mode 100644 index 7b4ce524e..000000000 --- a/legend-depot-core-services/src/test/resources/file-generation/test-file-generation-master-SNAPSHOT/examples/metadata/test/ClientBasic.avro +++ /dev/null @@ -1,44 +0,0 @@ -{ - "fields": [ - { - "name": "Name", - "type": "string" - }, - { - "name": "EntityId", - "type": "long" - }, - { - "name": "IsActive", - "type": "boolean" - }, - { - "name": "RiskScore", - "type": "double" - }, - { - "name": "IncorporationDate", - "type": { - "logicalType": "date", - "type": "int" - } - }, - { - "name": "OptionalAlternativeName", - "type": [ - "null", - "string" - ] - }, - { - "name": "newProperty", - "type": [ - "null", - "string" - ] - } - ], - "name": "ClientBasic", - "namespace": "examples.metadata.test", - "type": "record" -} \ No newline at end of file diff --git a/legend-depot-core-services/src/test/resources/file-generation/test-file-generation-master-SNAPSHOT/examples/metadata/test/dependency/Dependency.avro b/legend-depot-core-services/src/test/resources/file-generation/test-file-generation-master-SNAPSHOT/examples/metadata/test/dependency/Dependency.avro deleted file mode 100644 index ea3dd9486..000000000 --- a/legend-depot-core-services/src/test/resources/file-generation/test-file-generation-master-SNAPSHOT/examples/metadata/test/dependency/Dependency.avro +++ /dev/null @@ -1,19 +0,0 @@ -{ - "fields": [ - { - "name": "Name", - "type": "string" - }, - { - "name": "EntityId", - "type": "long" - }, - { - "name": "IsActive", - "type": "boolean" - } - ], - "name": "Dependency", - "namespace": "examples.metadata.test.dependency", - "type": "record" -} \ No newline at end of file diff --git a/legend-depot-core-tracing/pom.xml b/legend-depot-core-tracing/pom.xml index 1196eaff3..d4aed38e0 100644 --- a/legend-depot-core-tracing/pom.xml +++ b/legend-depot-core-tracing/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.depot legend-depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 diff --git a/legend-depot-generations-api/pom.xml b/legend-depot-generations-api/pom.xml new file mode 100644 index 000000000..941abd3eb --- /dev/null +++ b/legend-depot-generations-api/pom.xml @@ -0,0 +1,48 @@ + + + + + + legend-depot + org.finos.legend.depot + 1.25.1-SNAPSHOT + + 4.0.0 + + Legend Depot - Generations - API + legend-depot-generations-api + jar + + + + + + org.finos.legend.depot + legend-depot-core-services + + + + ${junit.groupId} + ${junit.artifactId} + test + + + + + + diff --git a/legend-depot-model/src/main/java/org/finos/legend/depot/domain/generation/file/FileGeneration.java b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/domain/generation/DepotGeneration.java similarity index 88% rename from legend-depot-model/src/main/java/org/finos/legend/depot/domain/generation/file/FileGeneration.java rename to legend-depot-generations-api/src/main/java/org/finos/legend/depot/domain/generation/DepotGeneration.java index d8b6963fd..98ca4ba3b 100644 --- a/legend-depot-model/src/main/java/org/finos/legend/depot/domain/generation/file/FileGeneration.java +++ b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/domain/generation/DepotGeneration.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.domain.generation.file; +package org.finos.legend.depot.domain.generation; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -22,7 +22,7 @@ import org.apache.commons.lang.builder.HashCodeBuilder; @JsonIgnoreProperties(ignoreUnknown = true) -public class FileGeneration +public class DepotGeneration { public static final String GENERATION_CONFIGURATION = "meta::pure::generation::metamodel::GenerationConfiguration"; @@ -31,8 +31,9 @@ public class FileGeneration @JsonProperty private String path; + @JsonCreator - public FileGeneration(@JsonProperty(value = "path") String path, @JsonProperty(value = "content") String content) + public DepotGeneration(@JsonProperty(value = "path") String path, @JsonProperty(value = "content") String content) { this.content = content; this.path = path; @@ -48,6 +49,7 @@ public String getPath() return path; } + @Override public boolean equals(Object obj) { diff --git a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/api/generation/file/FileGenerationsService.java b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/services/api/generations/FileGenerationsService.java similarity index 68% rename from legend-depot-core-services/src/main/java/org/finos/legend/depot/services/api/generation/file/FileGenerationsService.java rename to legend-depot-generations-api/src/main/java/org/finos/legend/depot/services/api/generations/FileGenerationsService.java index beae2fbb3..6554f44af 100644 --- a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/api/generation/file/FileGenerationsService.java +++ b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/services/api/generations/FileGenerationsService.java @@ -13,10 +13,10 @@ // limitations under the License. // -package org.finos.legend.depot.services.api.generation.file; +package org.finos.legend.depot.services.api.generations; -import org.finos.legend.depot.domain.generation.file.FileGeneration; -import org.finos.legend.depot.domain.generation.file.StoredFileGeneration; +import org.finos.legend.depot.domain.generation.DepotGeneration; +import org.finos.legend.depot.store.model.generations.StoredFileGeneration; import org.finos.legend.sdlc.domain.model.entity.Entity; import java.util.List; @@ -28,11 +28,11 @@ public interface FileGenerationsService List getGenerations(String groupId, String artifactId, String versionId); - List getFileGenerations(String groupId, String artifactId, String versionId); + List getFileGenerations(String groupId, String artifactId, String versionId); - List getFileGenerationsByElementPath(String groupId, String artifactId, String versionId, String elementPath); + List getFileGenerationsByElementPath(String groupId, String artifactId, String versionId, String elementPath); - Optional getFileGenerationsByFilePath(String groupId, String artifactId, String versionsId, String filePath); + Optional getFileGenerationsByFilePath(String groupId, String artifactId, String versionsId, String filePath); List findByType(String groupId, String artifactId, String versionId, String type); diff --git a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/api/generation/file/ManageFileGenerationsService.java b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/services/api/generations/ManageFileGenerationsService.java similarity index 79% rename from legend-depot-core-services/src/main/java/org/finos/legend/depot/services/api/generation/file/ManageFileGenerationsService.java rename to legend-depot-generations-api/src/main/java/org/finos/legend/depot/services/api/generations/ManageFileGenerationsService.java index b0e416ca9..d1b14a6ff 100644 --- a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/api/generation/file/ManageFileGenerationsService.java +++ b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/services/api/generations/ManageFileGenerationsService.java @@ -13,9 +13,9 @@ // limitations under the License. // -package org.finos.legend.depot.services.api.generation.file; +package org.finos.legend.depot.services.api.generations; -import org.finos.legend.depot.domain.generation.file.StoredFileGeneration; +import org.finos.legend.depot.store.model.generations.StoredFileGeneration; import java.util.List; @@ -24,7 +24,7 @@ public interface ManageFileGenerationsService extends FileGenerationsService long delete(String groupId, String artifactId, String versionId); - void createOrUpdate(StoredFileGeneration storedFileGeneration); + void createOrUpdate(List storedFileGeneration); List getAll(); diff --git a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/generation/file/FileGenerationLoader.java b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/services/generations/loader/FileGenerationLoader.java similarity index 93% rename from legend-depot-core-services/src/main/java/org/finos/legend/depot/services/generation/file/FileGenerationLoader.java rename to legend-depot-generations-api/src/main/java/org/finos/legend/depot/services/generations/loader/FileGenerationLoader.java index e123c2b2b..fbccf1f44 100644 --- a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/generation/file/FileGenerationLoader.java +++ b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/services/generations/loader/FileGenerationLoader.java @@ -13,9 +13,9 @@ // limitations under the License. // -package org.finos.legend.depot.services.generation.file; +package org.finos.legend.depot.services.generations.loader; -import org.finos.legend.depot.domain.generation.file.FileGeneration; +import org.finos.legend.depot.domain.generation.DepotGeneration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,15 +62,15 @@ public static FileGenerationLoader newFileGenerationsLoader(File path) return newFileGenerationsLoader(path.toPath()); } - private static FileGeneration readGeneration(Path path) + private static DepotGeneration readGeneration(Path path) { try (InputStream stream = Files.newInputStream(path)) { - FileGeneration generation; + DepotGeneration generation; try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { String content = new BufferedReader(reader).lines().collect(Collectors.joining(System.lineSeparator())); - generation = new FileGeneration(path.toString(), content); + generation = new DepotGeneration(path.toString(), content); } return generation; } @@ -132,7 +132,7 @@ private static GenerationFileSearch getGenerationFileSearch(Path path) throws IO } } - public Stream getAllFileGenerations() + public Stream getAllFileGenerations() { try { @@ -144,7 +144,7 @@ public Stream getAllFileGenerations() } } - private Stream getGenerationsInDirectory(String directoryPath) + private Stream getGenerationsInDirectory(String directoryPath) { return this.searchList.stream().flatMap(s -> s.getPathsInDirectory(directoryPath)).filter(FileGenerationLoader::isPossiblyGenerationFile).map(FileGenerationLoader::readGeneration).filter(Objects::nonNull); } diff --git a/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/api/generation/file/FileGenerations.java b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/store/api/generations/FileGenerations.java similarity index 90% rename from legend-depot-store-api/src/main/java/org/finos/legend/depot/store/api/generation/file/FileGenerations.java rename to legend-depot-generations-api/src/main/java/org/finos/legend/depot/store/api/generations/FileGenerations.java index 577435f47..1417e904e 100644 --- a/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/api/generation/file/FileGenerations.java +++ b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/store/api/generations/FileGenerations.java @@ -13,9 +13,9 @@ // limitations under the License. // -package org.finos.legend.depot.store.api.generation.file; +package org.finos.legend.depot.store.api.generations; -import org.finos.legend.depot.domain.generation.file.StoredFileGeneration; +import org.finos.legend.depot.store.model.generations.StoredFileGeneration; import java.util.List; import java.util.Optional; diff --git a/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/api/generation/file/UpdateFileGenerations.java b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/store/api/generations/UpdateFileGenerations.java similarity index 75% rename from legend-depot-store-api/src/main/java/org/finos/legend/depot/store/api/generation/file/UpdateFileGenerations.java rename to legend-depot-generations-api/src/main/java/org/finos/legend/depot/store/api/generations/UpdateFileGenerations.java index 56426b813..d2c8891f4 100644 --- a/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/api/generation/file/UpdateFileGenerations.java +++ b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/store/api/generations/UpdateFileGenerations.java @@ -13,14 +13,17 @@ // limitations under the License. // -package org.finos.legend.depot.store.api.generation.file; +package org.finos.legend.depot.store.api.generations; + +import org.finos.legend.depot.store.model.generations.StoredFileGeneration; + +import java.util.List; -import org.finos.legend.depot.domain.generation.file.StoredFileGeneration; public interface UpdateFileGenerations extends FileGenerations { - StoredFileGeneration createOrUpdate(StoredFileGeneration detail); + List createOrUpdate(List generation); long delete(String groupId, String artifactId, String versionId); diff --git a/legend-depot-model/src/main/java/org/finos/legend/depot/domain/generation/file/StoredFileGeneration.java b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/store/model/generations/StoredFileGeneration.java similarity index 91% rename from legend-depot-model/src/main/java/org/finos/legend/depot/domain/generation/file/StoredFileGeneration.java rename to legend-depot-generations-api/src/main/java/org/finos/legend/depot/store/model/generations/StoredFileGeneration.java index 7b813853e..0ba3fee27 100644 --- a/legend-depot-model/src/main/java/org/finos/legend/depot/domain/generation/file/StoredFileGeneration.java +++ b/legend-depot-generations-api/src/main/java/org/finos/legend/depot/store/model/generations/StoredFileGeneration.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.domain.generation.file; +package org.finos.legend.depot.store.model.generations; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -23,6 +23,7 @@ import org.apache.commons.lang.builder.HashCodeBuilder; import org.finos.legend.depot.domain.VersionedData; import org.finos.legend.depot.domain.HasIdentifier; +import org.finos.legend.depot.domain.generation.DepotGeneration; @JsonIgnoreProperties(ignoreUnknown = true) public class StoredFileGeneration extends VersionedData implements HasIdentifier @@ -32,7 +33,7 @@ public class StoredFileGeneration extends VersionedData implements HasIdentifier @JsonProperty private String type; @JsonProperty - private FileGeneration file; + private DepotGeneration file; @JsonCreator public StoredFileGeneration(@JsonProperty(value = "groupId") String groupId, @@ -40,7 +41,7 @@ public StoredFileGeneration(@JsonProperty(value = "groupId") String groupId, @JsonProperty(value = "versionId") String versionId, @JsonProperty(value = "path") String path, @JsonProperty(value = "type") String type, - @JsonProperty(value = "fileGeneration") FileGeneration fileGeneration) + @JsonProperty(value = "fileGeneration") DepotGeneration fileGeneration) { super(groupId, artifactId, versionId); this.file = fileGeneration; @@ -65,7 +66,7 @@ public String getType() return type; } - public FileGeneration getFile() + public DepotGeneration getFile() { return file; } diff --git a/legend-depot-core-services/src/test/java/org/finos/legend/depot/services/generation/file/TestFileGenerationLoader.java b/legend-depot-generations-api/src/test/java/org/finos/legend/depot/services/generations/loader/TestFileGenerationLoader.java similarity index 72% rename from legend-depot-core-services/src/test/java/org/finos/legend/depot/services/generation/file/TestFileGenerationLoader.java rename to legend-depot-generations-api/src/test/java/org/finos/legend/depot/services/generations/loader/TestFileGenerationLoader.java index d9e5a8354..1d0756172 100644 --- a/legend-depot-core-services/src/test/java/org/finos/legend/depot/services/generation/file/TestFileGenerationLoader.java +++ b/legend-depot-generations-api/src/test/java/org/finos/legend/depot/services/generations/loader/TestFileGenerationLoader.java @@ -13,9 +13,9 @@ // limitations under the License. // -package org.finos.legend.depot.services.generation.file; +package org.finos.legend.depot.services.generations.loader; -import org.finos.legend.depot.domain.generation.file.FileGeneration; +import org.finos.legend.depot.domain.generation.DepotGeneration; import org.junit.Assert; import org.junit.Test; @@ -28,15 +28,15 @@ public class TestFileGenerationLoader { - private static final URL filePath = TestFileGenerationLoader.class.getClassLoader().getResource("file-generation/test-file-generation-master-SNAPSHOT.jar"); + private static final URL filePath = TestFileGenerationLoader.class.getClassLoader().getResource("generations/test-file-generation-master-SNAPSHOT.jar"); @Test public void canReadFileGenerationArtifacts() throws URISyntaxException { - List generations = FileGenerationLoader.newFileGenerationsLoader(new File(filePath.toURI())).getAllFileGenerations().collect(Collectors.toList()); + List generations = FileGenerationLoader.newFileGenerationsLoader(new File(filePath.toURI())).getAllFileGenerations().collect(Collectors.toList()); Assert.assertNotNull(generations); Assert.assertEquals(14, generations.size()); - FileGeneration generation = generations.get(0); + DepotGeneration generation = generations.get(0); Assert.assertFalse(generation.getContent().isEmpty()); } diff --git a/legend-depot-core-services/src/test/resources/file-generation/test-file-generation-master-SNAPSHOT.jar b/legend-depot-generations-api/src/test/resources/generations/test-file-generation-master-SNAPSHOT.jar similarity index 100% rename from legend-depot-core-services/src/test/resources/file-generation/test-file-generation-master-SNAPSHOT.jar rename to legend-depot-generations-api/src/test/resources/generations/test-file-generation-master-SNAPSHOT.jar diff --git a/legend-depot-generations-services/pom.xml b/legend-depot-generations-services/pom.xml new file mode 100644 index 000000000..1ed1a2d07 --- /dev/null +++ b/legend-depot-generations-services/pom.xml @@ -0,0 +1,108 @@ + + + + + + legend-depot + org.finos.legend.depot + 1.25.1-SNAPSHOT + + 4.0.0 + + Legend Depot - Generations - Services + legend-depot-generations-services + jar + + + + + + org.finos.legend.depot + legend-depot-core-services + + + org.finos.legend.depot + legend-depot-generations-api + + + + + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.core + jackson-databind + + + com.google.inject + guice + + + org.eclipse.collections + eclipse-collections + + + ${junit.groupId} + ${junit.artifactId} + test + + + org.mockito + mockito-core + test + + + de.bwaldvogel + mongo-java-server + test + + + org.finos.legend.depot + legend-depot-store-mongo + tests + test-jar + test + + + org.finos.legend.depot + legend-depot-generations-store-mongo + test + + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + test-jar + + + + + + + diff --git a/legend-depot-server/src/main/java/org/finos/legend/depot/server/resources/file/FileGenerationsResource.java b/legend-depot-generations-services/src/main/java/org/finos/legend/depot/server/resources/generations/FileGenerationsResource.java similarity index 98% rename from legend-depot-server/src/main/java/org/finos/legend/depot/server/resources/file/FileGenerationsResource.java rename to legend-depot-generations-services/src/main/java/org/finos/legend/depot/server/resources/generations/FileGenerationsResource.java index 2ab6bdde8..2b3e19047 100644 --- a/legend-depot-server/src/main/java/org/finos/legend/depot/server/resources/file/FileGenerationsResource.java +++ b/legend-depot-generations-services/src/main/java/org/finos/legend/depot/server/resources/generations/FileGenerationsResource.java @@ -13,13 +13,13 @@ // limitations under the License. // -package org.finos.legend.depot.server.resources.file; +package org.finos.legend.depot.server.resources.generations; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.finos.legend.depot.domain.version.VersionValidator; -import org.finos.legend.depot.services.api.generation.file.FileGenerationsService; +import org.finos.legend.depot.services.api.generations.FileGenerationsService; import org.finos.legend.depot.tracing.resources.BaseResource; import org.finos.legend.depot.tracing.resources.EtagBuilder; import org.finos.legend.depot.tracing.resources.ResourceLoggingAndTracing; diff --git a/legend-depot-generations-services/src/main/java/org/finos/legend/depot/services/generations/guice/GenerationsServicesModule.java b/legend-depot-generations-services/src/main/java/org/finos/legend/depot/services/generations/guice/GenerationsServicesModule.java new file mode 100644 index 000000000..fe0c21161 --- /dev/null +++ b/legend-depot-generations-services/src/main/java/org/finos/legend/depot/services/generations/guice/GenerationsServicesModule.java @@ -0,0 +1,36 @@ +// Copyright 2021 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. +// + +package org.finos.legend.depot.services.generations.guice; + +import com.google.inject.PrivateModule; + +import org.finos.legend.depot.services.api.generations.FileGenerationsService; +import org.finos.legend.depot.services.generations.impl.FileGenerationsServiceImpl; +import org.finos.legend.depot.server.resources.generations.FileGenerationsResource; + + +public class GenerationsServicesModule extends PrivateModule +{ + @Override + protected void configure() + { + bind(FileGenerationsResource.class); + bind(FileGenerationsService.class).to(FileGenerationsServiceImpl.class); + + expose(FileGenerationsResource.class); + expose(FileGenerationsService.class); + } +} diff --git a/legend-depot-generations-services/src/main/java/org/finos/legend/depot/services/generations/guice/ManageGenerationsServicesModule.java b/legend-depot-generations-services/src/main/java/org/finos/legend/depot/services/generations/guice/ManageGenerationsServicesModule.java new file mode 100644 index 000000000..917297f4b --- /dev/null +++ b/legend-depot-generations-services/src/main/java/org/finos/legend/depot/services/generations/guice/ManageGenerationsServicesModule.java @@ -0,0 +1,30 @@ +// Copyright 2021 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. +// + +package org.finos.legend.depot.services.generations.guice; + +import com.google.inject.PrivateModule; +import org.finos.legend.depot.services.api.generations.ManageFileGenerationsService; +import org.finos.legend.depot.services.generations.impl.ManageFileGenerationsServiceImpl; + +public class ManageGenerationsServicesModule extends PrivateModule +{ + @Override + protected void configure() + { + bind(ManageFileGenerationsService.class).to(ManageFileGenerationsServiceImpl.class); + expose(ManageFileGenerationsService.class); + } +} diff --git a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/generation/file/FileGenerationsServiceImpl.java b/legend-depot-generations-services/src/main/java/org/finos/legend/depot/services/generations/impl/FileGenerationsServiceImpl.java similarity index 77% rename from legend-depot-core-services/src/main/java/org/finos/legend/depot/services/generation/file/FileGenerationsServiceImpl.java rename to legend-depot-generations-services/src/main/java/org/finos/legend/depot/services/generations/impl/FileGenerationsServiceImpl.java index 13d18f428..2d253851d 100644 --- a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/generation/file/FileGenerationsServiceImpl.java +++ b/legend-depot-generations-services/src/main/java/org/finos/legend/depot/services/generations/impl/FileGenerationsServiceImpl.java @@ -13,14 +13,14 @@ // limitations under the License. // -package org.finos.legend.depot.services.generation.file; +package org.finos.legend.depot.services.generations.impl; -import org.finos.legend.depot.domain.generation.file.FileGeneration; -import org.finos.legend.depot.domain.generation.file.StoredFileGeneration; -import org.finos.legend.depot.services.api.generation.file.FileGenerationsService; import org.finos.legend.depot.services.api.projects.ProjectsService; +import org.finos.legend.depot.services.api.generations.FileGenerationsService; +import org.finos.legend.depot.domain.generation.DepotGeneration; +import org.finos.legend.depot.store.model.generations.StoredFileGeneration; +import org.finos.legend.depot.store.api.generations.FileGenerations; import org.finos.legend.depot.store.api.entities.Entities; -import org.finos.legend.depot.store.api.generation.file.FileGenerations; import org.finos.legend.sdlc.domain.model.entity.Entity; import javax.inject.Inject; @@ -28,7 +28,8 @@ import java.util.Optional; import java.util.stream.Collectors; -import static org.finos.legend.depot.domain.generation.file.FileGeneration.GENERATION_CONFIGURATION; +import static org.finos.legend.depot.domain.generation.DepotGeneration.GENERATION_CONFIGURATION; + public class FileGenerationsServiceImpl implements FileGenerationsService { @@ -55,21 +56,21 @@ public List getGenerations(String groupId, String artifactId, String ver } @Override - public List getFileGenerations(String groupId, String artifactId, String versionId) + public List getFileGenerations(String groupId, String artifactId, String versionId) { String version = this.projects.resolveAliasesAndCheckVersionExists(groupId, artifactId, versionId); return fileGenerations.find(groupId, artifactId, version).stream().map(StoredFileGeneration::getFile).collect(Collectors.toList()); } @Override - public List getFileGenerationsByElementPath(String groupId, String artifactId, String versionId, String elementPath) + public List getFileGenerationsByElementPath(String groupId, String artifactId, String versionId, String elementPath) { String version = this.projects.resolveAliasesAndCheckVersionExists(groupId, artifactId, versionId); return fileGenerations.findByElementPath(groupId, artifactId, version, elementPath).stream().map(StoredFileGeneration::getFile).collect(Collectors.toList()); } @Override - public Optional getFileGenerationsByFilePath(String groupId, String artifactId, String versionId, String filePath) + public Optional getFileGenerationsByFilePath(String groupId, String artifactId, String versionId, String filePath) { String version = this.projects.resolveAliasesAndCheckVersionExists(groupId, artifactId, versionId); Optional found = fileGenerations.findByFilePath(groupId, artifactId, version, filePath); diff --git a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/generation/file/ManageFileGenerationsServiceImpl.java b/legend-depot-generations-services/src/main/java/org/finos/legend/depot/services/generations/impl/ManageFileGenerationsServiceImpl.java similarity index 78% rename from legend-depot-core-services/src/main/java/org/finos/legend/depot/services/generation/file/ManageFileGenerationsServiceImpl.java rename to legend-depot-generations-services/src/main/java/org/finos/legend/depot/services/generations/impl/ManageFileGenerationsServiceImpl.java index aa528028d..937646a06 100644 --- a/legend-depot-core-services/src/main/java/org/finos/legend/depot/services/generation/file/ManageFileGenerationsServiceImpl.java +++ b/legend-depot-generations-services/src/main/java/org/finos/legend/depot/services/generations/impl/ManageFileGenerationsServiceImpl.java @@ -13,13 +13,13 @@ // limitations under the License. // -package org.finos.legend.depot.services.generation.file; +package org.finos.legend.depot.services.generations.impl; -import org.finos.legend.depot.domain.generation.file.StoredFileGeneration; -import org.finos.legend.depot.services.api.generation.file.ManageFileGenerationsService; import org.finos.legend.depot.services.api.projects.ProjectsService; +import org.finos.legend.depot.services.api.generations.ManageFileGenerationsService; +import org.finos.legend.depot.store.model.generations.StoredFileGeneration; +import org.finos.legend.depot.store.api.generations.UpdateFileGenerations; import org.finos.legend.depot.store.api.entities.Entities; -import org.finos.legend.depot.store.api.generation.file.UpdateFileGenerations; import javax.inject.Inject; import java.util.List; @@ -44,9 +44,9 @@ public List getAll() } @Override - public void createOrUpdate(StoredFileGeneration storedFileGeneration) + public void createOrUpdate(List storedFileGeneration) { - fileGenerations.createOrUpdate(storedFileGeneration); + fileGenerations.createOrUpdate(storedFileGeneration); } @Override diff --git a/legend-depot-core-services/src/test/java/org/finos/legend/depot/services/generation/file/TestFileGenerationsService.java b/legend-depot-generations-services/src/test/java/org/finos/legend/depot/services/generations/TestFileGenerationsService.java similarity index 79% rename from legend-depot-core-services/src/test/java/org/finos/legend/depot/services/generation/file/TestFileGenerationsService.java rename to legend-depot-generations-services/src/test/java/org/finos/legend/depot/services/generations/TestFileGenerationsService.java index f4d688cd3..dab9f4c01 100644 --- a/legend-depot-core-services/src/test/java/org/finos/legend/depot/services/generation/file/TestFileGenerationsService.java +++ b/legend-depot-generations-services/src/test/java/org/finos/legend/depot/services/generations/TestFileGenerationsService.java @@ -13,24 +13,26 @@ // limitations under the License. // -package org.finos.legend.depot.services.generation.file; +package org.finos.legend.depot.services.generations; -import org.finos.legend.depot.domain.generation.file.FileGeneration; -import org.finos.legend.depot.domain.generation.file.StoredFileGeneration; import org.finos.legend.depot.domain.project.StoreProjectData; import org.finos.legend.depot.domain.project.StoreProjectVersionData; -import org.finos.legend.depot.services.api.generation.file.ManageFileGenerationsService; import org.finos.legend.depot.services.api.projects.ProjectsService; +import org.finos.legend.depot.services.api.generations.ManageFileGenerationsService; +import org.finos.legend.depot.domain.generation.DepotGeneration; +import org.finos.legend.depot.store.model.generations.StoredFileGeneration; +import org.finos.legend.depot.services.generations.loader.FileGenerationLoader; +import org.finos.legend.depot.services.generations.impl.ManageFileGenerationsServiceImpl; +import org.finos.legend.depot.store.api.generations.UpdateFileGenerations; +import org.finos.legend.depot.store.mongo.generations.FileGenerationsMongo; import org.finos.legend.depot.services.projects.ProjectsServiceImpl; import org.finos.legend.depot.services.projects.configuration.ProjectsConfiguration; import org.finos.legend.depot.store.api.entities.Entities; -import org.finos.legend.depot.store.api.generation.file.UpdateFileGenerations; import org.finos.legend.depot.store.api.projects.UpdateProjects; import org.finos.legend.depot.store.api.projects.UpdateProjectsVersions; import org.finos.legend.depot.store.metrics.api.QueryMetricsRegistry; import org.finos.legend.depot.store.mongo.TestStoreMongo; import org.finos.legend.depot.store.mongo.entities.EntitiesMongo; -import org.finos.legend.depot.store.mongo.generation.file.FileGenerationsMongo; import org.finos.legend.depot.store.notifications.queue.api.Queue; import org.junit.Assert; import org.junit.Before; @@ -47,11 +49,12 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; + public class TestFileGenerationsService extends TestStoreMongo { public static final String AVRO = "avro"; - private static final URL filePath = TestFileGenerationsService.class.getClassLoader().getResource("file-generation/test-file-generation-master-SNAPSHOT.jar"); + private static final URL filePath = TestFileGenerationsService.class.getClassLoader().getResource("generations/test-file-generation-master-SNAPSHOT.jar"); protected Entities entities = new EntitiesMongo(mongoProvider); private UpdateFileGenerations generations = new FileGenerationsMongo(mongoProvider); UpdateProjectsVersions projectsVersionsStore = mock(UpdateProjectsVersions.class); @@ -67,24 +70,24 @@ public void loadData() throws Exception try (FileGenerationLoader file = FileGenerationLoader.newFileGenerationsLoader(new File(filePath.toURI()))) { - Stream data = file.getAllFileGenerations(); + Stream data = file.getAllFileGenerations(); Assert.assertNotNull(data); data.forEach(gen -> { if (gen.getPath().startsWith("/examples/metadata")) { - FileGeneration generation = new FileGeneration(gen.getPath(), gen.getContent()); - generations.createOrUpdate(new StoredFileGeneration("group.test", "test", BRANCH_SNAPSHOT("master"), null, null, generation)); - generations.createOrUpdate(new StoredFileGeneration("group.test", "test", "1.0.0", "examples::metadata::test::ClientBasic", null, generation)); - generations.createOrUpdate(new StoredFileGeneration("group.test.otherproject", "test", "1.0.0", "examples::metadata::test::ClientBasic", null, generation)); + DepotGeneration generation = new DepotGeneration(gen.getPath(), gen.getContent()); + generations.createOrUpdate(Arrays.asList(new StoredFileGeneration("group.test", "test", BRANCH_SNAPSHOT("master"), null, null, generation), + new StoredFileGeneration("group.test", "test", "1.0.0", "examples::metadata::test::ClientBasic", null, generation), + new StoredFileGeneration("group.test.otherproject", "test", "1.0.0", "examples::metadata::test::ClientBasic", null, generation))); } else { - FileGeneration generation = new FileGeneration(gen.getPath().replace("examples_avrogen/", ""), gen.getContent()); - generations.createOrUpdate(new StoredFileGeneration("group.test", "test", BRANCH_SNAPSHOT("master"), "examples::avrogen", AVRO, generation)); - generations.createOrUpdate(new StoredFileGeneration("group.test", "test", "1.0.1", "examples::avrogen", AVRO, generation)); - generations.createOrUpdate(new StoredFileGeneration("group.test", "test", "1.0.0", "examples::avrogen", AVRO, generation)); - generations.createOrUpdate(new StoredFileGeneration("group.test.otherproject", "test", "1.0.0", "examples::avrogen1", AVRO, generation)); + DepotGeneration generation = new DepotGeneration(gen.getPath().replace("examples_avrogen/", ""), gen.getContent()); + generations.createOrUpdate(Arrays.asList(new StoredFileGeneration("group.test", "test", BRANCH_SNAPSHOT("master"), "examples::avrogen", AVRO, generation), + new StoredFileGeneration("group.test", "test", "1.0.1", "examples::avrogen", AVRO, generation), + new StoredFileGeneration("group.test", "test", "1.0.0", "examples::avrogen", AVRO, generation), + new StoredFileGeneration("group.test.otherproject", "test", "1.0.0", "examples::avrogen1", AVRO, generation))); } }); @@ -125,15 +128,15 @@ public void canDelete() public void canQueryFileGenerationEntities() { - List generations = service.getFileGenerations("group.test", "test",BRANCH_SNAPSHOT("master")); + List generations = service.getFileGenerations("group.test", "test",BRANCH_SNAPSHOT("master")); Assert.assertEquals(14, generations.size()); - List gens1 = service.getFileGenerations("group.test", "test", "1.0.0"); + List gens1 = service.getFileGenerations("group.test", "test", "1.0.0"); Assert.assertEquals(14, gens1.size()); try { - List gens2 = service.getFileGenerations("group.test.other", "test", "1.0.0"); + List gens2 = service.getFileGenerations("group.test.other", "test", "1.0.0"); Assert.fail("Exception expected"); } catch (IllegalArgumentException e) @@ -188,7 +191,7 @@ public void cantGetGenerationsForNonExistentVersion() public void canQueryFileGenerationEntitiesWithLatestAlias() { - List gens1 = service.getFileGenerations("group.test", "test", "latest"); + List gens1 = service.getFileGenerations("group.test", "test", "latest"); Assert.assertEquals(14, gens1.size()); Assert.assertTrue(service.getFileGenerationContentByFilePath("group.test", "test", "latest", "/examples/metadata/test/ClientBasic.avro").isPresent()); Assert.assertTrue(service.getFileGenerationContentByFilePath("group.test", "test", "latest", "/examples/metadata/test/ClientBasic/my-ext/Output1.txt").isPresent()); @@ -201,7 +204,7 @@ public void canQueryFileGenerationEntitiesWithLatestAlias() public void canQueryFileGenerationEntitiesWithHeadAlias() { - List gens1 = service.getFileGenerations("group.test", "test", "head"); + List gens1 = service.getFileGenerations("group.test", "test", "head"); Assert.assertEquals(14, gens1.size()); Assert.assertTrue(service.getFileGenerationContentByFilePath("group.test", "test", "head", "/examples/metadata/test/ClientBasic.avro").isPresent()); Assert.assertTrue(service.getFileGenerationContentByFilePath("group.test", "test", "head", "/examples/metadata/test/ClientBasic/my-ext/Output1.txt").isPresent()); diff --git a/legend-depot-generations-services/src/test/resources/generations/test-file-generation-master-SNAPSHOT.jar b/legend-depot-generations-services/src/test/resources/generations/test-file-generation-master-SNAPSHOT.jar new file mode 100644 index 000000000..4019e6faa Binary files /dev/null and b/legend-depot-generations-services/src/test/resources/generations/test-file-generation-master-SNAPSHOT.jar differ diff --git a/legend-depot-generations-services/src/test/resources/logback-test.xml b/legend-depot-generations-services/src/test/resources/logback-test.xml new file mode 100644 index 000000000..5daa945c3 --- /dev/null +++ b/legend-depot-generations-services/src/test/resources/logback-test.xml @@ -0,0 +1,30 @@ + + + + + + %-4relative [%thread] %-5level %logger{35} - %msg %n + + + + + + + + + \ No newline at end of file diff --git a/legend-depot-generations-store-mongo/pom.xml b/legend-depot-generations-store-mongo/pom.xml new file mode 100644 index 000000000..efadb3466 --- /dev/null +++ b/legend-depot-generations-store-mongo/pom.xml @@ -0,0 +1,80 @@ + + + + + + org.finos.legend.depot + legend-depot + 1.25.1-SNAPSHOT + + 4.0.0 + + Legend Depot - Generations - Store - Mongo + legend-depot-generations-store-mongo + jar + + + + + org.finos.legend.depot + legend-depot-generations-api + + + + org.finos.legend.depot + legend-depot-store-mongo + tests + test-jar + test + + + + + javax.inject + javax.inject + + + ${junit.groupId} + ${junit.artifactId} + test + + + de.bwaldvogel + mongo-java-server + test + + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + test-jar + + + + + + + diff --git a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/generation/file/FileGenerationsMongo.java b/legend-depot-generations-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/generations/FileGenerationsMongo.java similarity index 93% rename from legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/generation/file/FileGenerationsMongo.java rename to legend-depot-generations-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/generations/FileGenerationsMongo.java index 9ece350aa..7a46fbc4f 100644 --- a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/generation/file/FileGenerationsMongo.java +++ b/legend-depot-generations-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/generations/FileGenerationsMongo.java @@ -13,15 +13,15 @@ // limitations under the License. // -package org.finos.legend.depot.store.mongo.generation.file; +package org.finos.legend.depot.store.mongo.generations; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.IndexModel; import org.bson.conversions.Bson; -import org.finos.legend.depot.domain.generation.file.StoredFileGeneration; -import org.finos.legend.depot.store.api.generation.file.FileGenerations; -import org.finos.legend.depot.store.api.generation.file.UpdateFileGenerations; +import org.finos.legend.depot.store.model.generations.StoredFileGeneration; +import org.finos.legend.depot.store.api.generations.FileGenerations; +import org.finos.legend.depot.store.api.generations.UpdateFileGenerations; import org.finos.legend.depot.store.mongo.core.BaseMongo; import javax.inject.Inject; diff --git a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/api/PureModelContextServiceException.java b/legend-depot-generations-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/guice/GenerationsStoreMongoModule.java similarity index 54% rename from legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/api/PureModelContextServiceException.java rename to legend-depot-generations-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/guice/GenerationsStoreMongoModule.java index f34c842f1..9db820d37 100644 --- a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/api/PureModelContextServiceException.java +++ b/legend-depot-generations-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/guice/GenerationsStoreMongoModule.java @@ -1,4 +1,4 @@ -// Copyright 2022 Goldman Sachs +// Copyright 2021 Goldman Sachs // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -13,12 +13,18 @@ // limitations under the License. // -package org.finos.legend.depot.server.pure.model.context.api; +package org.finos.legend.depot.store.mongo.guice; -public class PureModelContextServiceException extends RuntimeException +import com.google.inject.PrivateModule; +import org.finos.legend.depot.store.api.generations.FileGenerations; +import org.finos.legend.depot.store.mongo.generations.FileGenerationsMongo; + +public class GenerationsStoreMongoModule extends PrivateModule { - public PureModelContextServiceException(Exception e) + @Override + protected void configure() { - super(e); + bind(FileGenerations.class).to(FileGenerationsMongo.class); + expose(FileGenerations.class); } } diff --git a/legend-depot-generations-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/guice/ManageGenerationsStoreMongoModule.java b/legend-depot-generations-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/guice/ManageGenerationsStoreMongoModule.java new file mode 100644 index 000000000..2928a90d4 --- /dev/null +++ b/legend-depot-generations-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/guice/ManageGenerationsStoreMongoModule.java @@ -0,0 +1,49 @@ +// Copyright 2021 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. +// + +package org.finos.legend.depot.store.mongo.guice; + +import com.google.inject.PrivateModule; +import com.google.inject.Provides; +import com.google.inject.Singleton; +import org.finos.legend.depot.store.api.generations.FileGenerations; +import org.finos.legend.depot.store.api.generations.UpdateFileGenerations; +import org.finos.legend.depot.store.mongo.generations.FileGenerationsMongo; +import org.finos.legend.depot.store.mongo.admin.MongoAdminStore; + +import javax.inject.Named; + +public class ManageGenerationsStoreMongoModule extends PrivateModule +{ + @Override + protected void configure() + { + bind(FileGenerations.class).to(FileGenerationsMongo.class); + bind(UpdateFileGenerations.class).to(FileGenerationsMongo.class); + + expose(FileGenerations.class); + expose(UpdateFileGenerations.class); + + } + + @Provides + @Singleton + @Named("generation-indexes") + public boolean registerGenerationsIndexes(MongoAdminStore adminStore) + { + adminStore.registerIndexes(FileGenerationsMongo.COLLECTION,FileGenerationsMongo.buildIndexes()); + return true; + } +} diff --git a/legend-depot-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/generation/file/TestFileGenerationsStore.java b/legend-depot-generations-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/generations/TestFileGenerationsStore.java similarity index 90% rename from legend-depot-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/generation/file/TestFileGenerationsStore.java rename to legend-depot-generations-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/generations/TestFileGenerationsStore.java index c3ae029cf..522bf1244 100644 --- a/legend-depot-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/generation/file/TestFileGenerationsStore.java +++ b/legend-depot-generations-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/generations/TestFileGenerationsStore.java @@ -13,11 +13,10 @@ // limitations under the License. // -package org.finos.legend.depot.store.mongo.generation.file; +package org.finos.legend.depot.store.mongo.generations; -import org.finos.legend.depot.domain.generation.file.StoredFileGeneration; -import org.finos.legend.depot.store.api.generation.file.UpdateFileGenerations; -import org.finos.legend.depot.store.mongo.TestStoreMongo; +import org.finos.legend.depot.store.model.generations.StoredFileGeneration; +import org.finos.legend.depot.store.api.generations.UpdateFileGenerations; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -26,7 +25,7 @@ import static org.finos.legend.depot.domain.version.VersionValidator.BRANCH_SNAPSHOT; -public class TestFileGenerationsStore extends TestStoreMongo +public class TestFileGenerationsStore extends TestGenerationsStoreMongo { private UpdateFileGenerations generations = new FileGenerationsMongo(mongoProvider); @@ -37,7 +36,7 @@ public class TestFileGenerationsStore extends TestStoreMongo @Before public void loadData() { - setUpFileGenerationFromFile(this.getClass().getClassLoader().getResource("data/file-generations.json")); + setUpFileGenerationFromFile(this.getClass().getClassLoader().getResource("data/file-generations.json"),mongoProvider); Assert.assertEquals(11, generations.getAll().size()); } diff --git a/legend-depot-generations-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/generations/TestGenerationsStoreMongo.java b/legend-depot-generations-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/generations/TestGenerationsStoreMongo.java new file mode 100644 index 000000000..0ac504711 --- /dev/null +++ b/legend-depot-generations-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/generations/TestGenerationsStoreMongo.java @@ -0,0 +1,83 @@ +// Copyright 2021 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. +// + +package org.finos.legend.depot.store.mongo.generations; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import org.bson.Document; +import org.finos.legend.depot.store.model.generations.StoredFileGeneration; +import org.finos.legend.depot.store.mongo.TestStoreMongo; +import org.junit.Assert; + +import java.io.InputStream; +import java.net.URL; +import java.util.List; + +public abstract class TestGenerationsStoreMongo extends TestStoreMongo +{ + + private static List readGenerationsFile(URL fileName) + { + try + { + InputStream stream = fileName.openStream(); + String jsonInput = new java.util.Scanner(stream).useDelimiter("\\A").next(); + List generations = new ObjectMapper().readValue(jsonInput, new TypeReference>() + { + }); + Assert.assertNotNull("testing file" + fileName.getFile(), generations); + return generations; + } + catch (Exception e) + { + Assert.fail("an error has occurred loading test metadata" + e.getMessage()); + } + return null; + } + + public static void setUpFileGenerationFromFile(URL generationsData, MongoDatabase database) + { + try + { + Assert.assertNotNull(getMongoFileGenerations(database)); + readGenerationsFile(generationsData).forEach(project -> + { + try + { + getMongoFileGenerations(database).insertOne(Document.parse(new ObjectMapper().writeValueAsString(project))); + } + catch (JsonProcessingException e) + { + Assert.fail("an error has occurred loading test project metadata" + e.getMessage()); + } + }); + + } + catch (Exception e) + { + Assert.fail("an error has occurred loading test project metadata" + e.getMessage()); + } + } + + private static MongoCollection getMongoFileGenerations(MongoDatabase database) + { + return database.getCollection(FileGenerationsMongo.COLLECTION); + } + +} diff --git a/legend-depot-store-mongo/src/test/resources/data/file-generations.json b/legend-depot-generations-store-mongo/src/test/resources/data/file-generations.json similarity index 100% rename from legend-depot-store-mongo/src/test/resources/data/file-generations.json rename to legend-depot-generations-store-mongo/src/test/resources/data/file-generations.json diff --git a/legend-depot-generations-store-mongo/src/test/resources/logback-test.xml b/legend-depot-generations-store-mongo/src/test/resources/logback-test.xml new file mode 100644 index 000000000..5daa945c3 --- /dev/null +++ b/legend-depot-generations-store-mongo/src/test/resources/logback-test.xml @@ -0,0 +1,30 @@ + + + + + + %-4relative [%thread] %-5level %logger{35} - %msg %n + + + + + + + + + \ No newline at end of file diff --git a/legend-depot-model/pom.xml b/legend-depot-model/pom.xml index c74777642..7b5acddb2 100644 --- a/legend-depot-model/pom.xml +++ b/legend-depot-model/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.depot legend-depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 diff --git a/legend-depot-pure-model-context/pom.xml b/legend-depot-pure-model-context/pom.xml index 95912ee5c..2ad648963 100644 --- a/legend-depot-pure-model-context/pom.xml +++ b/legend-depot-pure-model-context/pom.xml @@ -20,11 +20,11 @@ org.finos.legend.depot legend-depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 - Legend Depot - Pure Model Context + Legend Depot - Pure Model Context - Services legend-depot-pure-model-context jar diff --git a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/resources/DeprecatedPureModelContextAPIsResource.java b/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/resources/DeprecatedPureModelContextAPIsResource.java similarity index 94% rename from legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/resources/DeprecatedPureModelContextAPIsResource.java rename to legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/resources/DeprecatedPureModelContextAPIsResource.java index c9796b8ca..935ed9dc4 100644 --- a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/resources/DeprecatedPureModelContextAPIsResource.java +++ b/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/resources/DeprecatedPureModelContextAPIsResource.java @@ -13,13 +13,13 @@ // limitations under the License. // -package org.finos.legend.depot.server.pure.model.context.resources; +package org.finos.legend.depot.server.resources; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; -import org.finos.legend.depot.server.pure.model.context.api.PureModelContextService; +import org.finos.legend.depot.services.api.pure.model.context.PureModelContextService; import org.finos.legend.depot.tracing.resources.BaseResource; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; diff --git a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/resources/PureModelContextResource.java b/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/resources/PureModelContextResource.java similarity index 94% rename from legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/resources/PureModelContextResource.java rename to legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/resources/PureModelContextResource.java index 650698c9b..3c2350c3b 100644 --- a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/resources/PureModelContextResource.java +++ b/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/resources/PureModelContextResource.java @@ -13,13 +13,13 @@ // limitations under the License. // -package org.finos.legend.depot.server.pure.model.context.resources; +package org.finos.legend.depot.server.resources; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.finos.legend.depot.domain.version.VersionValidator; -import org.finos.legend.depot.server.pure.model.context.api.PureModelContextService; +import org.finos.legend.depot.services.api.pure.model.context.PureModelContextService; import org.finos.legend.depot.tracing.resources.BaseResource; import org.finos.legend.depot.tracing.resources.EtagBuilder; diff --git a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/api/PureModelContextService.java b/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/services/api/pure/model/context/PureModelContextService.java similarity index 93% rename from legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/api/PureModelContextService.java rename to legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/services/api/pure/model/context/PureModelContextService.java index 89c5f3193..37f8aa066 100644 --- a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/api/PureModelContextService.java +++ b/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/services/api/pure/model/context/PureModelContextService.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.server.pure.model.context.api; +package org.finos.legend.depot.services.api.pure.model.context; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; diff --git a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/services/PureModelContextServiceImpl.java b/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/services/pure/model/context/PureModelContextServiceImpl.java similarity index 94% rename from legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/services/PureModelContextServiceImpl.java rename to legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/services/pure/model/context/PureModelContextServiceImpl.java index b75e7efe7..630fc315d 100644 --- a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/services/PureModelContextServiceImpl.java +++ b/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/services/pure/model/context/PureModelContextServiceImpl.java @@ -13,10 +13,10 @@ // limitations under the License. // -package org.finos.legend.depot.server.pure.model.context.services; +package org.finos.legend.depot.services.pure.model.context; import org.finos.legend.depot.domain.entity.ProjectVersionEntities; -import org.finos.legend.depot.server.pure.model.context.api.PureModelContextService; +import org.finos.legend.depot.services.api.pure.model.context.PureModelContextService; import org.finos.legend.depot.services.api.entities.EntitiesService; import org.finos.legend.depot.services.api.projects.ProjectsService; import org.finos.legend.engine.protocol.pure.PureClientVersions; @@ -24,7 +24,6 @@ import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; import org.finos.legend.sdlc.domain.model.entity.Entity; import org.finos.legend.sdlc.protocol.pure.v1.PureModelContextDataBuilder; -import org.slf4j.Logger; import javax.inject.Inject; import java.util.ArrayList; @@ -65,7 +64,7 @@ public PureModelContextData getPureModelContextData(String groupId, String artif List allPMCD = new ArrayList<>(); for (ProjectVersionEntities projectVersionEntities : dependenciesEntities) { - allPMCD.add(getPureModelContextData(projectVersionEntities.getEntities().stream().map(x -> (Entity) x).collect(Collectors.toList()), + allPMCD.add(getPureModelContextData(projectVersionEntities.getEntities().stream().collect(Collectors.toList()), projectVersionEntities.getGroupId(), projectVersionEntities.getArtifactId(), projectVersionEntities.getVersionId(), diff --git a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/DeprecatedPureModelContextResourcesModule.java b/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/services/pure/model/context/guice/DeprecatedPureModelContextResourcesModule.java similarity index 84% rename from legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/DeprecatedPureModelContextResourcesModule.java rename to legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/services/pure/model/context/guice/DeprecatedPureModelContextResourcesModule.java index db7562fb7..baf6acdaa 100644 --- a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/DeprecatedPureModelContextResourcesModule.java +++ b/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/services/pure/model/context/guice/DeprecatedPureModelContextResourcesModule.java @@ -13,10 +13,10 @@ // limitations under the License. // -package org.finos.legend.depot.server.pure.model.context; +package org.finos.legend.depot.services.pure.model.context.guice; import com.google.inject.PrivateModule; -import org.finos.legend.depot.server.pure.model.context.resources.DeprecatedPureModelContextAPIsResource; +import org.finos.legend.depot.server.resources.DeprecatedPureModelContextAPIsResource; public class DeprecatedPureModelContextResourcesModule extends PrivateModule { diff --git a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/PureModelContextModule.java b/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/services/pure/model/context/guice/PureModelContextModule.java similarity index 75% rename from legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/PureModelContextModule.java rename to legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/services/pure/model/context/guice/PureModelContextModule.java index 23a81463b..f29dc97d2 100644 --- a/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/server/pure/model/context/PureModelContextModule.java +++ b/legend-depot-pure-model-context/src/main/java/org/finos/legend/depot/services/pure/model/context/guice/PureModelContextModule.java @@ -13,12 +13,12 @@ // limitations under the License. // -package org.finos.legend.depot.server.pure.model.context; +package org.finos.legend.depot.services.pure.model.context.guice; import com.google.inject.PrivateModule; -import org.finos.legend.depot.server.pure.model.context.api.PureModelContextService; -import org.finos.legend.depot.server.pure.model.context.resources.PureModelContextResource; -import org.finos.legend.depot.server.pure.model.context.services.PureModelContextServiceImpl; +import org.finos.legend.depot.services.pure.model.context.PureModelContextServiceImpl; +import org.finos.legend.depot.services.api.pure.model.context.PureModelContextService; +import org.finos.legend.depot.server.resources.PureModelContextResource; public class PureModelContextModule extends PrivateModule { diff --git a/legend-depot-pure-model-context/src/test/java/org/finos/legend/depot/server/pure/model/context/TestPureModelContextService.java b/legend-depot-pure-model-context/src/test/java/org/finos/legend/depot/services/pure/model/context/TestPureModelContextService.java similarity index 98% rename from legend-depot-pure-model-context/src/test/java/org/finos/legend/depot/server/pure/model/context/TestPureModelContextService.java rename to legend-depot-pure-model-context/src/test/java/org/finos/legend/depot/services/pure/model/context/TestPureModelContextService.java index 860e7e266..b4264d929 100644 --- a/legend-depot-pure-model-context/src/test/java/org/finos/legend/depot/server/pure/model/context/TestPureModelContextService.java +++ b/legend-depot-pure-model-context/src/test/java/org/finos/legend/depot/services/pure/model/context/TestPureModelContextService.java @@ -13,15 +13,14 @@ // limitations under the License. // -package org.finos.legend.depot.server.pure.model.context; +package org.finos.legend.depot.services.pure.model.context; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.finos.legend.depot.domain.project.StoreProjectData; import org.finos.legend.depot.domain.project.StoreProjectVersionData; -import org.finos.legend.depot.server.pure.model.context.api.PureModelContextService; -import org.finos.legend.depot.server.pure.model.context.services.PureModelContextServiceImpl; +import org.finos.legend.depot.services.api.pure.model.context.PureModelContextService; import org.finos.legend.depot.services.TestBaseServices; import org.finos.legend.depot.services.api.entities.EntitiesService; import org.finos.legend.depot.services.api.projects.ProjectsService; diff --git a/legend-depot-server/pom.xml b/legend-depot-server/pom.xml index 718fe195a..dc72b3774 100644 --- a/legend-depot-server/pom.xml +++ b/legend-depot-server/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.depot legend-depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 @@ -64,6 +64,14 @@ org.finos.legend.depot legend-depot-store-notifications-queue + + org.finos.legend.depot + legend-depot-generations-services + + + org.finos.legend.depot + legend-depot-generations-store-mongo + @@ -114,6 +122,8 @@ test-jar test + + diff --git a/legend-depot-server/src/main/java/org/finos/legend/depot/server/LegendDepotServer.java b/legend-depot-server/src/main/java/org/finos/legend/depot/server/LegendDepotServer.java index 35fbeacad..abe082042 100644 --- a/legend-depot-server/src/main/java/org/finos/legend/depot/server/LegendDepotServer.java +++ b/legend-depot-server/src/main/java/org/finos/legend/depot/server/LegendDepotServer.java @@ -22,12 +22,13 @@ import org.finos.legend.depot.server.configuration.DepotServerConfiguration; import org.finos.legend.depot.server.guice.DepotServerModule; import org.finos.legend.depot.server.guice.DepotServerResourcesModule; -import org.finos.legend.depot.server.pure.model.context.PureModelContextModule; +import org.finos.legend.depot.services.pure.model.context.guice.PureModelContextModule; import org.finos.legend.depot.services.ReadDataServicesModule; -import org.finos.legend.depot.schedules.SchedulesModule; +import org.finos.legend.depot.services.schedules.guice.SchedulesModule; +import org.finos.legend.depot.services.generations.guice.GenerationsServicesModule; import org.finos.legend.depot.store.metrics.MetricsModule; -import org.finos.legend.depot.store.mongo.DataStoreMongoModule; -import org.finos.legend.depot.store.mongo.admin.SchedulesStoreMongoModule; +import org.finos.legend.depot.store.mongo.guice.DataStoreMongoModule; +import org.finos.legend.depot.store.mongo.guice.GenerationsStoreMongoModule; import org.finos.legend.depot.store.notifications.queue.NotificationsQueueModule; import org.finos.legend.depot.tracing.TracingModule; @@ -53,9 +54,10 @@ protected List getServerModules() new DepotServerResourcesModule(), new ReadDataServicesModule(), new DataStoreMongoModule(), + new GenerationsServicesModule(), + new GenerationsStoreMongoModule(), new PureModelContextModule(), new SchedulesModule(), - new SchedulesStoreMongoModule(), new MetricsModule(), new TracingModule(), new NotificationsQueueModule()); diff --git a/legend-depot-server/src/main/java/org/finos/legend/depot/server/guice/DepotServerResourcesModule.java b/legend-depot-server/src/main/java/org/finos/legend/depot/server/guice/DepotServerResourcesModule.java index 363471ad7..5b6c442c7 100644 --- a/legend-depot-server/src/main/java/org/finos/legend/depot/server/guice/DepotServerResourcesModule.java +++ b/legend-depot-server/src/main/java/org/finos/legend/depot/server/guice/DepotServerResourcesModule.java @@ -21,7 +21,7 @@ import org.finos.legend.depot.server.resources.dependencies.DependenciesResource; import org.finos.legend.depot.server.resources.entities.EntitiesResource; import org.finos.legend.depot.server.resources.entities.EntityClassifierResource; -import org.finos.legend.depot.server.resources.file.FileGenerationsResource; + public class DepotServerResourcesModule extends PrivateModule { @@ -33,7 +33,6 @@ protected void configure() bind(EntitiesResource.class); bind(EntityClassifierResource.class); bind(DependenciesResource.class); - bind(FileGenerationsResource.class); expose(ProjectsResource.class); @@ -41,7 +40,6 @@ protected void configure() expose(EntityClassifierResource.class); expose(EntitiesResource.class); expose(DependenciesResource.class); - expose(FileGenerationsResource.class); } } \ No newline at end of file diff --git a/legend-depot-server/src/main/java/org/finos/legend/depot/server/resources/deprecated/DeprecatedFileGenerationAPIsResource.java b/legend-depot-server/src/main/java/org/finos/legend/depot/server/resources/deprecated/DeprecatedFileGenerationAPIsResource.java index 2cde1420f..ef7d1b0a1 100644 --- a/legend-depot-server/src/main/java/org/finos/legend/depot/server/resources/deprecated/DeprecatedFileGenerationAPIsResource.java +++ b/legend-depot-server/src/main/java/org/finos/legend/depot/server/resources/deprecated/DeprecatedFileGenerationAPIsResource.java @@ -17,8 +17,8 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.finos.legend.depot.domain.generation.file.FileGeneration; -import org.finos.legend.depot.services.api.generation.file.FileGenerationsService; +import org.finos.legend.depot.services.api.generations.FileGenerationsService; +import org.finos.legend.depot.domain.generation.DepotGeneration; import org.finos.legend.depot.tracing.resources.BaseResource; import org.finos.legend.sdlc.domain.model.entity.Entity; @@ -66,7 +66,7 @@ public List getLatestGenerations(@PathParam("groupId") String groupId, @ApiOperation(value = GET_REVISION_FILE_GENERATION, notes = "replaced by: /generations/{groupId}/{artifactId}/versions/master-SNAPSHOT",tags = "_Deprecated: remove by Q1 2024") @Produces(MediaType.APPLICATION_JSON) @Deprecated - public List getLatestFileGenerations(@PathParam("groupId") String groupId, + public List getLatestFileGenerations(@PathParam("groupId") String groupId, @PathParam("artifactId") String artifactId) { return handle(GET_REVISION_FILE_GENERATION, () -> this.generationsService.getFileGenerations(groupId, artifactId,BRANCH_SNAPSHOT("master"))); @@ -77,9 +77,9 @@ public List getLatestFileGenerations(@PathParam("groupId") Strin @ApiOperation(value = GET_REVISION_FILE_GENERATION_BY_ELEMENT_PATH, notes = " deprecated use /generations/{groupId}/{artifactId}/versions/master-SNAPSHOT/{elementPath}",tags = "_Deprecated: remove by Q1 2024") @Produces(MediaType.APPLICATION_JSON) @Deprecated - public List getLatestFileGenerationsByElementPath(@PathParam("groupId") String groupId, - @PathParam("artifactId") String artifactId, - @PathParam("elementPath") String elementPath) + public List getLatestFileGenerationsByElementPath(@PathParam("groupId") String groupId, + @PathParam("artifactId") String artifactId, + @PathParam("elementPath") String elementPath) { return handle(GET_REVISION_FILE_GENERATION_BY_ELEMENT_PATH, () -> this.generationsService.getFileGenerationsByElementPath(groupId, artifactId, BRANCH_SNAPSHOT("master"),elementPath)); } @@ -89,9 +89,9 @@ public List getLatestFileGenerationsByElementPath(@PathParam("gr @ApiOperation(value = GET_REVISION_FILE_GENERATION_BY_FILEPATH, notes = "replaced by: /generations/{groupId}/{artifactId}/versions/master-SNAPSHOT/file/{filePath}",tags = "_Deprecated: remove by Q1 2024") @Produces(MediaType.APPLICATION_JSON) @Deprecated - public Optional getLatestFileGenerationsByFilePath(@PathParam("groupId") String groupId, - @PathParam("artifactId") String artifactId, - @PathParam("filePath") String filePath) + public Optional getLatestFileGenerationsByFilePath(@PathParam("groupId") String groupId, + @PathParam("artifactId") String artifactId, + @PathParam("filePath") String filePath) { return handle(GET_REVISION_FILE_GENERATION_BY_FILEPATH, () -> this.generationsService.getFileGenerationsByFilePath(groupId, artifactId, BRANCH_SNAPSHOT("master"),filePath)); } diff --git a/legend-depot-servers-common/pom.xml b/legend-depot-servers-common/pom.xml index 7a99d4350..0b94dcd76 100644 --- a/legend-depot-servers-common/pom.xml +++ b/legend-depot-servers-common/pom.xml @@ -20,11 +20,11 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 - Legend Depot - Servers Common + Legend Depot - Servers - Common legend-depot-servers-common diff --git a/legend-depot-servers-common/src/main/java/org/finos/legend/depot/core/http/BaseServer.java b/legend-depot-servers-common/src/main/java/org/finos/legend/depot/core/http/BaseServer.java index 5231e2089..021605c31 100644 --- a/legend-depot-servers-common/src/main/java/org/finos/legend/depot/core/http/BaseServer.java +++ b/legend-depot-servers-common/src/main/java/org/finos/legend/depot/core/http/BaseServer.java @@ -34,7 +34,7 @@ import org.eclipse.jetty.server.session.SessionHandler; import org.eclipse.jetty.servlets.CrossOriginFilter; import org.eclipse.jetty.util.component.LifeCycle; -import org.finos.legend.depot.store.StorageConfiguration; +import org.finos.legend.depot.store.api.StorageConfiguration; import org.finos.legend.depot.tracing.configuration.PrometheusMetricsProviderConfiguration; import org.finos.legend.depot.tracing.configuration.TracingAuthenticationProviderConfiguration; import org.finos.legend.sdlc.server.error.LegendSDLCServerExceptionMapper; diff --git a/legend-depot-servers-common/src/main/java/org/finos/legend/depot/core/http/ServersConfiguration.java b/legend-depot-servers-common/src/main/java/org/finos/legend/depot/core/http/ServersConfiguration.java index f842d1fc1..1137c2baf 100644 --- a/legend-depot-servers-common/src/main/java/org/finos/legend/depot/core/http/ServersConfiguration.java +++ b/legend-depot-servers-common/src/main/java/org/finos/legend/depot/core/http/ServersConfiguration.java @@ -20,7 +20,7 @@ import io.dropwizard.Configuration; import io.federecio.dropwizard.swagger.SwaggerBundleConfiguration; import org.finos.legend.depot.services.projects.configuration.ProjectsConfiguration; -import org.finos.legend.depot.store.StorageConfiguration; +import org.finos.legend.depot.store.api.StorageConfiguration; import org.finos.legend.depot.tracing.configuration.OpenTracingConfiguration; import org.finos.legend.depot.tracing.configuration.PrometheusConfiguration; import org.finos.legend.server.pac4j.LegendPac4jConfiguration; diff --git a/legend-depot-servers-common/src/main/java/org/finos/legend/depot/core/http/guice/BaseModule.java b/legend-depot-servers-common/src/main/java/org/finos/legend/depot/core/http/guice/BaseModule.java index 4571b5d7d..2c2c75d4f 100644 --- a/legend-depot-servers-common/src/main/java/org/finos/legend/depot/core/http/guice/BaseModule.java +++ b/legend-depot-servers-common/src/main/java/org/finos/legend/depot/core/http/guice/BaseModule.java @@ -21,7 +21,7 @@ import com.hubspot.dropwizard.guicier.DropwizardAwareModule; import org.finos.legend.depot.core.http.ServersConfiguration; import org.finos.legend.depot.services.projects.configuration.ProjectsConfiguration; -import org.finos.legend.depot.store.StorageConfiguration; +import org.finos.legend.depot.store.api.StorageConfiguration; import org.finos.legend.depot.tracing.configuration.OpenTracingConfiguration; import org.finos.legend.depot.tracing.configuration.PrometheusConfiguration; diff --git a/legend-depot-store-api/pom.xml b/legend-depot-store-api/pom.xml index 21fe6006e..5ac690386 100644 --- a/legend-depot-store-api/pom.xml +++ b/legend-depot-store-api/pom.xml @@ -20,7 +20,7 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 diff --git a/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/StorageConfiguration.java b/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/api/StorageConfiguration.java similarity index 96% rename from legend-depot-store-api/src/main/java/org/finos/legend/depot/store/StorageConfiguration.java rename to legend-depot-store-api/src/main/java/org/finos/legend/depot/store/api/StorageConfiguration.java index 9ae92caca..a71de6840 100644 --- a/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/StorageConfiguration.java +++ b/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/api/StorageConfiguration.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.store; +package org.finos.legend.depot.store.api; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/StoreException.java b/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/api/StoreException.java similarity index 94% rename from legend-depot-store-api/src/main/java/org/finos/legend/depot/store/StoreException.java rename to legend-depot-store-api/src/main/java/org/finos/legend/depot/store/api/StoreException.java index e6aeedf7e..57650a905 100644 --- a/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/StoreException.java +++ b/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/api/StoreException.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.store; +package org.finos.legend.depot.store.api; public class StoreException extends RuntimeException { diff --git a/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/model/entities/StoredEntityStringData.java b/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/model/entities/StoredEntityStringData.java index 7fed746a3..5b29fd6a7 100644 --- a/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/model/entities/StoredEntityStringData.java +++ b/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/model/entities/StoredEntityStringData.java @@ -18,7 +18,6 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonRawValue; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; diff --git a/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/model/versionedEntities/StoredVersionedEntityStringData.java b/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/model/versionedEntities/StoredVersionedEntityStringData.java index 6cbdf7449..659211be0 100644 --- a/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/model/versionedEntities/StoredVersionedEntityStringData.java +++ b/legend-depot-store-api/src/main/java/org/finos/legend/depot/store/model/versionedEntities/StoredVersionedEntityStringData.java @@ -18,7 +18,6 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonRawValue; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; diff --git a/legend-depot-store-metrics/pom.xml b/legend-depot-store-metrics/pom.xml index d7ed86563..595b3e050 100644 --- a/legend-depot-store-metrics/pom.xml +++ b/legend-depot-store-metrics/pom.xml @@ -20,7 +20,7 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 diff --git a/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/AdminMetricsModule.java b/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/AdminMetricsModule.java index e079705db..efdc4b80b 100644 --- a/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/AdminMetricsModule.java +++ b/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/AdminMetricsModule.java @@ -15,8 +15,7 @@ package org.finos.legend.depot.store.metrics; -import org.finos.legend.depot.store.metrics.resources.StoreMetricsManagerResource; -import org.finos.legend.depot.store.metrics.resources.StoreMetricsResource; +import org.finos.legend.depot.store.resources.metrics.ManageMetricsResourceResource; public class AdminMetricsModule extends MetricsModule { @@ -24,11 +23,9 @@ public class AdminMetricsModule extends MetricsModule protected void configure() { super.configure(); - bind(StoreMetricsResource.class); - bind(StoreMetricsManagerResource.class); + bind(ManageMetricsResourceResource.class); - expose(StoreMetricsResource.class); - expose(StoreMetricsManagerResource.class); + expose(ManageMetricsResourceResource.class); } } diff --git a/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/MetricsModule.java b/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/MetricsModule.java index 14f6456d9..75bf3b1fc 100644 --- a/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/MetricsModule.java +++ b/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/MetricsModule.java @@ -20,7 +20,7 @@ import com.google.inject.Singleton; import com.google.inject.name.Named; import com.google.inject.name.Names; -import org.finos.legend.depot.schedules.services.SchedulesFactory; +import org.finos.legend.depot.services.schedules.SchedulesFactory; import org.finos.legend.depot.store.metrics.api.QueryMetricsRegistry; import org.finos.legend.depot.store.metrics.services.InMemoryQueryMetricsRegistry; import org.finos.legend.depot.store.metrics.services.QueryMetricsHandler; diff --git a/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/resources/StoreMetricsResource.java b/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/resources/StoreMetricsResource.java deleted file mode 100644 index 3c336d2e9..000000000 --- a/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/resources/StoreMetricsResource.java +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2021 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. -// - -package org.finos.legend.depot.store.metrics.resources; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.finos.legend.depot.store.admin.domain.metrics.VersionQueryMetric; -import org.finos.legend.depot.store.metrics.services.QueryMetricsHandler; -import org.finos.legend.depot.tracing.resources.BaseResource; -import org.finos.legend.depot.tracing.resources.ResourceLoggingAndTracing; - -import javax.inject.Inject; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import java.util.List; - -@Path("") -@Api("Metrics") -public class StoreMetricsResource extends BaseResource -{ - - private final QueryMetricsHandler queryMetrics; - - @Inject - public StoreMetricsResource(QueryMetricsHandler queryMetrics) - { - this.queryMetrics = queryMetrics; - } - - @GET - @Path("/metrics/lastQuery") - @ApiOperation(ResourceLoggingAndTracing.GET_VERSIONS_BY_LAST_USED) - @Produces(MediaType.APPLICATION_JSON) - public List getVersionsByLastUsed() - { - return handle(ResourceLoggingAndTracing.GET_VERSIONS_BY_LAST_USED, () -> this.queryMetrics.getSummaryByProjectVersion()); - } -} diff --git a/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/resources/StoreMetricsManagerResource.java b/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/resources/metrics/ManageMetricsResourceResource.java similarity index 59% rename from legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/resources/StoreMetricsManagerResource.java rename to legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/resources/metrics/ManageMetricsResourceResource.java index cc726b913..f35457845 100644 --- a/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/metrics/resources/StoreMetricsManagerResource.java +++ b/legend-depot-store-metrics/src/main/java/org/finos/legend/depot/store/resources/metrics/ManageMetricsResourceResource.java @@ -13,34 +13,42 @@ // limitations under the License. // -package org.finos.legend.depot.store.metrics.resources; +package org.finos.legend.depot.store.resources.metrics; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.finos.legend.depot.core.authorisation.api.AuthorisationProvider; import org.finos.legend.depot.core.authorisation.resources.BaseAuthorisedResource; +import org.finos.legend.depot.store.admin.domain.metrics.VersionQueryMetric; +import org.finos.legend.depot.store.metrics.services.QueryMetricsHandler; import org.finos.legend.depot.store.metrics.store.api.QueryMetrics; +import org.finos.legend.depot.tracing.resources.ResourceLoggingAndTracing; import javax.inject.Inject; import javax.inject.Named; import javax.inject.Provider; +import javax.ws.rs.GET; import javax.ws.rs.PUT; import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; import java.security.Principal; import java.util.List; @Path("") @Api("Metrics") -public class StoreMetricsManagerResource extends BaseAuthorisedResource +public class ManageMetricsResourceResource extends BaseAuthorisedResource { private final QueryMetrics metricsStore; + private final QueryMetricsHandler queryMetrics; @Inject - protected StoreMetricsManagerResource(QueryMetrics metricsStore, AuthorisationProvider authorisationProvider, - @Named("requestPrincipal") Provider principalProvider) + protected ManageMetricsResourceResource(QueryMetrics metricsStore, AuthorisationProvider authorisationProvider, + @Named("requestPrincipal") Provider principalProvider, QueryMetricsHandler queryMetrics) { super(authorisationProvider, principalProvider); this.metricsStore = metricsStore; + this.queryMetrics = queryMetrics; } @Override @@ -49,6 +57,15 @@ protected String getResourceName() return "Metrics"; } + @GET + @Path("/metrics/lastQuery") + @ApiOperation(ResourceLoggingAndTracing.GET_VERSIONS_BY_LAST_USED) + @Produces(MediaType.APPLICATION_JSON) + public List getVersionsByLastUsed() + { + return handle(ResourceLoggingAndTracing.GET_VERSIONS_BY_LAST_USED, () -> this.queryMetrics.getSummaryByProjectVersion()); + } + @PUT @Path("/metrics/indexes") @ApiOperation("createIndexes if absent") diff --git a/legend-depot-store-mongo/pom.xml b/legend-depot-store-mongo/pom.xml index fa627a58c..8bfc26ad0 100644 --- a/legend-depot-store-mongo/pom.xml +++ b/legend-depot-store-mongo/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.depot legend-depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 @@ -46,7 +46,10 @@ org.finos.legend.depot legend-depot-core-authorisation - + + org.finos.legend.depot + legend-depot-core-http + @@ -81,10 +84,6 @@ mongo-java-server test - - org.finos.legend.depot - legend-depot-core-http - diff --git a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/MongoAdminStore.java b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/MongoAdminStore.java index 7262e8758..3d8e87659 100644 --- a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/MongoAdminStore.java +++ b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/MongoAdminStore.java @@ -18,22 +18,16 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.inject.Singleton; import com.mongodb.client.MongoDatabase; +import com.mongodb.client.model.IndexModel; import com.mongodb.client.result.DeleteResult; import org.bson.Document; -import org.finos.legend.depot.store.mongo.admin.artifacts.ArtifactsFilesMongo; +import org.eclipse.collections.api.factory.Maps; import org.finos.legend.depot.store.mongo.admin.migrations.ProjectToProjectVersionMigration; import org.finos.legend.depot.store.mongo.admin.migrations.DependenciesMigration; import org.finos.legend.depot.store.mongo.admin.migrations.EntitiesMigration; -import org.finos.legend.depot.store.mongo.admin.schedules.ScheduleInstancesMongo; -import org.finos.legend.depot.store.mongo.admin.schedules.SchedulesMongo; -import org.finos.legend.depot.store.mongo.entities.EntitiesMongo; -import org.finos.legend.depot.store.mongo.generation.file.FileGenerationsMongo; -import org.finos.legend.depot.store.mongo.projects.ProjectsMongo; -import org.finos.legend.depot.store.mongo.projects.ProjectsVersionsMongo; -import org.finos.legend.depot.store.mongo.versionedEntities.VersionedEntitiesMongo; - -import javax.inject.Inject; + import javax.inject.Named; import java.util.ArrayList; import java.util.HashMap; @@ -43,14 +37,17 @@ import static org.finos.legend.depot.store.mongo.core.BaseMongo.createIndexesIfAbsent; +@Singleton public class MongoAdminStore { private final MongoDatabase mongoDatabase; + private final Map> collectionIndexes; + - @Inject - public MongoAdminStore(@Named("mongoDatabase") MongoDatabase mongoDatabase) + public MongoAdminStore(MongoDatabase mongoDatabase) { this.mongoDatabase = mongoDatabase; + this.collectionIndexes = Maps.mutable.empty(); } @@ -83,18 +80,15 @@ public void deleteIndex(String collectionId, String indexName) mongoDatabase.getCollection(collectionId).dropIndex(indexName); } + public void registerIndexes(String collectionName,List indexes) + { + collectionIndexes.put(collectionName,indexes); + } public List createIndexes() { List results = new ArrayList<>(); - results.addAll(createIndexesIfAbsent(mongoDatabase,ProjectsMongo.COLLECTION,ProjectsMongo.buildIndexes())); - results.addAll(createIndexesIfAbsent(mongoDatabase, ProjectsVersionsMongo.COLLECTION, ProjectsVersionsMongo.buildIndexes())); - results.addAll(createIndexesIfAbsent(mongoDatabase,EntitiesMongo.COLLECTION,EntitiesMongo.buildIndexes())); - results.addAll(createIndexesIfAbsent(mongoDatabase, VersionedEntitiesMongo.COLLECTION,EntitiesMongo.buildIndexes())); - results.addAll(createIndexesIfAbsent(mongoDatabase,FileGenerationsMongo.COLLECTION,FileGenerationsMongo.buildIndexes())); - results.addAll(createIndexesIfAbsent(mongoDatabase,ArtifactsFilesMongo.COLLECTION,ArtifactsFilesMongo.buildIndexes())); - results.addAll(createIndexesIfAbsent(mongoDatabase,SchedulesMongo.COLLECTION,SchedulesMongo.buildIndexes())); - results.addAll(createIndexesIfAbsent(mongoDatabase, ScheduleInstancesMongo.COLLECTION,ScheduleInstancesMongo.buildIndexes())); + collectionIndexes.keySet().forEach(collection -> results.addAll(createIndexesIfAbsent(mongoDatabase,collection,collectionIndexes.get(collection)))); return results; } diff --git a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/guice/AdminSchedulesStoreMongoModule.java b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/guice/AdminSchedulesStoreMongoModule.java new file mode 100644 index 000000000..243dbe9be --- /dev/null +++ b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/guice/AdminSchedulesStoreMongoModule.java @@ -0,0 +1,40 @@ +// Copyright 2021 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. +// + +package org.finos.legend.depot.store.mongo.admin.guice; + +import com.google.inject.Provides; +import com.google.inject.Singleton; +import org.finos.legend.depot.store.admin.api.schedules.ScheduleInstancesStore; +import org.finos.legend.depot.store.admin.api.schedules.SchedulesStore; +import org.finos.legend.depot.store.mongo.admin.MongoAdminStore; +import org.finos.legend.depot.store.mongo.admin.schedules.ScheduleInstancesMongo; +import org.finos.legend.depot.store.mongo.admin.schedules.SchedulesMongo; + +import javax.inject.Named; + +public class AdminSchedulesStoreMongoModule extends SchedulesStoreMongoModule +{ + @Singleton + @Provides + @Named("register-indexes-schedules") + public boolean registerIndexes(MongoAdminStore adminStore) + { + adminStore.registerIndexes(SchedulesMongo.COLLECTION,SchedulesMongo.buildIndexes()); + adminStore.registerIndexes(ScheduleInstancesMongo.COLLECTION,ScheduleInstancesMongo.buildIndexes()); + return true; + } + +} diff --git a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/ManageAdminDataStoreMongoModule.java b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/guice/ManageAdminDataStoreMongoModule.java similarity index 63% rename from legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/ManageAdminDataStoreMongoModule.java rename to legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/guice/ManageAdminDataStoreMongoModule.java index b7b5da5c9..29428039d 100644 --- a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/ManageAdminDataStoreMongoModule.java +++ b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/guice/ManageAdminDataStoreMongoModule.java @@ -13,24 +13,29 @@ // limitations under the License. // -package org.finos.legend.depot.store.mongo.admin; +package org.finos.legend.depot.store.mongo.admin.guice; +import com.google.inject.PrivateModule; +import com.google.inject.Provides; +import com.google.inject.Singleton; +import com.mongodb.client.MongoDatabase; import org.finos.legend.depot.store.admin.api.artifacts.ArtifactsFilesStore; import org.finos.legend.depot.store.admin.api.metrics.StorageMetrics; +import org.finos.legend.depot.store.mongo.admin.MongoAdminStore; import org.finos.legend.depot.store.mongo.admin.artifacts.ArtifactsFilesMongo; import org.finos.legend.depot.store.mongo.admin.metrics.StorageMetricsHandler; import org.finos.legend.depot.store.mongo.resources.MongoStoreAdministrationResource; -public class ManageAdminDataStoreMongoModule extends SchedulesStoreMongoModule +import javax.inject.Named; + +public class ManageAdminDataStoreMongoModule extends PrivateModule { @Override protected void configure() { - super.configure(); bind(MongoStoreAdministrationResource.class); bind(ArtifactsFilesStore.class).to(ArtifactsFilesMongo.class); - bind(MongoAdminStore.class); bind(StorageMetrics.class).to(StorageMetricsHandler.class); expose(MongoStoreAdministrationResource.class); @@ -38,4 +43,21 @@ protected void configure() expose(StorageMetrics.class); expose(MongoAdminStore.class); } + + @Provides + @Singleton + MongoAdminStore buildMongoAdminStore(@Named("mongoDatabase")MongoDatabase mongoDatabase) + { + return new MongoAdminStore(mongoDatabase); + } + + + @Singleton + @Provides + @Named("register-artifacts-indexes") + public boolean registerIndexes(MongoAdminStore adminStore) + { + adminStore.registerIndexes(ArtifactsFilesMongo.COLLECTION,ArtifactsFilesMongo.buildIndexes()); + return true; + } } diff --git a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/SchedulesStoreMongoModule.java b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/guice/SchedulesStoreMongoModule.java similarity index 85% rename from legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/SchedulesStoreMongoModule.java rename to legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/guice/SchedulesStoreMongoModule.java index ecec3e09f..25d69bba2 100644 --- a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/SchedulesStoreMongoModule.java +++ b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/admin/guice/SchedulesStoreMongoModule.java @@ -13,14 +13,19 @@ // limitations under the License. // -package org.finos.legend.depot.store.mongo.admin; +package org.finos.legend.depot.store.mongo.admin.guice; import com.google.inject.PrivateModule; +import com.google.inject.Provides; +import com.google.inject.Singleton; import org.finos.legend.depot.store.admin.api.schedules.ScheduleInstancesStore; import org.finos.legend.depot.store.admin.api.schedules.SchedulesStore; +import org.finos.legend.depot.store.mongo.admin.MongoAdminStore; import org.finos.legend.depot.store.mongo.admin.schedules.ScheduleInstancesMongo; import org.finos.legend.depot.store.mongo.admin.schedules.SchedulesMongo; +import javax.inject.Named; + public class SchedulesStoreMongoModule extends PrivateModule { @Override @@ -33,4 +38,6 @@ protected void configure() expose(SchedulesStore.class); expose(ScheduleInstancesStore.class); } + + } diff --git a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/core/BaseMongo.java b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/core/BaseMongo.java index c3e28d3a7..111f48650 100644 --- a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/core/BaseMongo.java +++ b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/core/BaseMongo.java @@ -30,7 +30,7 @@ import org.bson.conversions.Bson; import org.bson.types.ObjectId; import org.finos.legend.depot.domain.HasIdentifier; -import org.finos.legend.depot.store.StoreException; +import org.finos.legend.depot.store.api.StoreException; import org.slf4j.Logger; import java.time.LocalDateTime; @@ -153,6 +153,13 @@ public T createOrUpdate(T data) return convert(result, documentClass); } + public List createOrUpdate(List items) + { + List newItems = new ArrayList<>(); + items.forEach(data -> newItems.add(createOrUpdate(data))); + return newItems; + } + public void insert(T data) { validateNewData(data); @@ -208,6 +215,13 @@ public static T convert(ObjectMapper mapper,Document document, Class claz } } + protected List convert(FindIterable iterable) + { + List result = new ArrayList<>(); + iterable.forEach((Consumer)doc -> result.add(convert(doc, documentClass))); + return result; + } + protected static IndexModel buildIndex(String indexName, String... fieldNames) { return buildIndex(indexName, false, fieldNames); @@ -234,24 +248,6 @@ protected List find(Bson filter) return convert(getCollection().find(filter)); } - protected long count(Bson condition) - { - return getCollection().countDocuments(condition); - } - - protected FindIterable executeFind(Bson filter) - { - return getCollection().find(filter); - } - - - protected List convert(FindIterable iterable) - { - List result = new ArrayList<>(); - iterable.forEach((Consumer)doc -> result.add(convert(doc, documentClass))); - return result; - } - protected Optional findOne(Bson filter) { List result = convert(getCollection().find(filter)); @@ -262,6 +258,15 @@ protected Optional findOne(Bson filter) return result.isEmpty() ? Optional.empty() : Optional.of(result.get(0)); } + protected FindIterable executeFind(Bson filter) + { + return getCollection().find(filter); + } + + protected long count(Bson condition) + { + return getCollection().countDocuments(condition); + } protected long delete(Bson key) { diff --git a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/core/MongoClientModule.java b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/core/MongoClientModule.java index 1dccb7a55..c22b4ffaf 100644 --- a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/core/MongoClientModule.java +++ b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/core/MongoClientModule.java @@ -21,7 +21,7 @@ import com.google.inject.name.Names; import com.mongodb.MongoClient; import com.mongodb.client.MongoDatabase; -import org.finos.legend.depot.store.StorageConfiguration; +import org.finos.legend.depot.store.api.StorageConfiguration; import org.finos.legend.depot.tracing.configuration.OpenTracingConfiguration; import org.finos.legend.depot.tracing.services.TracerFactory; diff --git a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/core/MongoConfiguration.java b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/core/MongoConfiguration.java index d24eeb3cf..74dfcc975 100644 --- a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/core/MongoConfiguration.java +++ b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/core/MongoConfiguration.java @@ -17,7 +17,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import org.finos.legend.depot.store.StorageConfiguration; +import org.finos.legend.depot.store.api.StorageConfiguration; import javax.validation.constraints.NotNull; diff --git a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/DataStoreMongoModule.java b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/guice/DataStoreMongoModule.java similarity index 85% rename from legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/DataStoreMongoModule.java rename to legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/guice/DataStoreMongoModule.java index c6e820a38..ed7b07682 100644 --- a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/DataStoreMongoModule.java +++ b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/guice/DataStoreMongoModule.java @@ -13,16 +13,14 @@ // limitations under the License. // -package org.finos.legend.depot.store.mongo; +package org.finos.legend.depot.store.mongo.guice; import org.finos.legend.depot.store.api.entities.Entities; -import org.finos.legend.depot.store.api.generation.file.FileGenerations; import org.finos.legend.depot.store.api.projects.Projects; import org.finos.legend.depot.store.api.projects.ProjectsVersions; import org.finos.legend.depot.store.mongo.core.MongoClientModule; import org.finos.legend.depot.store.api.versionedEntities.VersionedEntities; import org.finos.legend.depot.store.mongo.entities.EntitiesMongo; -import org.finos.legend.depot.store.mongo.generation.file.FileGenerationsMongo; import org.finos.legend.depot.store.mongo.projects.ProjectsMongo; import org.finos.legend.depot.store.mongo.projects.ProjectsVersionsMongo; import org.finos.legend.depot.store.mongo.versionedEntities.VersionedEntitiesMongo; @@ -37,12 +35,11 @@ protected void configure() bind(ProjectsVersions.class).to(ProjectsVersionsMongo.class); bind(Entities.class).to(EntitiesMongo.class); bind(VersionedEntities.class).to(VersionedEntitiesMongo.class); - bind(FileGenerations.class).to(FileGenerationsMongo.class); + expose(Entities.class); expose(VersionedEntities.class); expose(ProjectsVersions.class); - expose(FileGenerations.class); expose(Projects.class); } } diff --git a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/ManageDataStoreMongoModule.java b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/guice/ManageDataStoreMongoModule.java similarity index 69% rename from legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/ManageDataStoreMongoModule.java rename to legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/guice/ManageDataStoreMongoModule.java index 3af5c7acb..992964aeb 100644 --- a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/ManageDataStoreMongoModule.java +++ b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/guice/ManageDataStoreMongoModule.java @@ -13,19 +13,22 @@ // limitations under the License. // -package org.finos.legend.depot.store.mongo; +package org.finos.legend.depot.store.mongo.guice; +import com.google.inject.Provides; +import com.google.inject.Singleton; import org.finos.legend.depot.store.api.entities.UpdateEntities; -import org.finos.legend.depot.store.api.generation.file.UpdateFileGenerations; import org.finos.legend.depot.store.api.projects.UpdateProjects; import org.finos.legend.depot.store.api.projects.UpdateProjectsVersions; import org.finos.legend.depot.store.api.versionedEntities.UpdateVersionedEntities; +import org.finos.legend.depot.store.mongo.admin.MongoAdminStore; import org.finos.legend.depot.store.mongo.entities.EntitiesMongo; -import org.finos.legend.depot.store.mongo.generation.file.FileGenerationsMongo; import org.finos.legend.depot.store.mongo.projects.ProjectsMongo; import org.finos.legend.depot.store.mongo.projects.ProjectsVersionsMongo; import org.finos.legend.depot.store.mongo.versionedEntities.VersionedEntitiesMongo; +import javax.inject.Named; + public class ManageDataStoreMongoModule extends DataStoreMongoModule { @Override @@ -36,12 +39,22 @@ protected void configure() bind(UpdateVersionedEntities.class).to(VersionedEntitiesMongo.class); bind(UpdateProjects.class).to(ProjectsMongo.class); bind(UpdateProjectsVersions.class).to(ProjectsVersionsMongo.class); - bind(UpdateFileGenerations.class).to(FileGenerationsMongo.class); expose(UpdateEntities.class); expose(UpdateVersionedEntities.class); expose(UpdateProjectsVersions.class); - expose(UpdateFileGenerations.class); expose(UpdateProjects.class); } + + @Singleton + @Provides + @Named("register-indexes-mongo") + public boolean registerIndexes(MongoAdminStore adminStore) + { + adminStore.registerIndexes(ProjectsMongo.COLLECTION,ProjectsMongo.buildIndexes()); + adminStore.registerIndexes(ProjectsVersionsMongo.COLLECTION, ProjectsVersionsMongo.buildIndexes()); + adminStore.registerIndexes(EntitiesMongo.COLLECTION,EntitiesMongo.buildIndexes()); + adminStore.registerIndexes(VersionedEntitiesMongo.COLLECTION,EntitiesMongo.buildIndexes()); + return true; + } } diff --git a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/projects/ProjectsMongo.java b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/projects/ProjectsMongo.java index 76fb6635c..db8bae2e1 100644 --- a/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/projects/ProjectsMongo.java +++ b/legend-depot-store-mongo/src/main/java/org/finos/legend/depot/store/mongo/projects/ProjectsMongo.java @@ -23,7 +23,7 @@ import org.bson.conversions.Bson; import org.finos.legend.depot.domain.project.ProjectValidator; import org.finos.legend.depot.domain.project.StoreProjectData; -import org.finos.legend.depot.store.StoreException; +import org.finos.legend.depot.store.api.StoreException; import org.finos.legend.depot.store.api.projects.Projects; import org.finos.legend.depot.store.api.projects.UpdateProjects; import org.finos.legend.depot.store.mongo.core.BaseMongo; diff --git a/legend-depot-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/TestStoreMongo.java b/legend-depot-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/TestStoreMongo.java index 6d94046b8..bc8bce015 100644 --- a/legend-depot-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/TestStoreMongo.java +++ b/legend-depot-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/TestStoreMongo.java @@ -27,12 +27,10 @@ import org.bson.Document; import org.finos.legend.depot.domain.HasIdentifier; import org.finos.legend.depot.store.model.entities.StoredEntity; -import org.finos.legend.depot.domain.generation.file.StoredFileGeneration; import org.finos.legend.depot.domain.project.StoreProjectData; import org.finos.legend.depot.domain.project.StoreProjectVersionData; import org.finos.legend.depot.store.mongo.core.BaseMongo; import org.finos.legend.depot.store.mongo.entities.EntitiesMongo; -import org.finos.legend.depot.store.mongo.generation.file.FileGenerationsMongo; import org.finos.legend.depot.store.mongo.projects.ProjectsMongo; import org.finos.legend.depot.store.mongo.projects.ProjectsVersionsMongo; import org.junit.After; @@ -209,52 +207,6 @@ protected void setUpEntitiesDataFromFile(URL versionedEntities) } } - private List readGenerationsFile(URL fileName) - { - try - { - InputStream stream = fileName.openStream(); - String jsonInput = new java.util.Scanner(stream).useDelimiter("\\A").next(); - List generations = new ObjectMapper().readValue(jsonInput, new TypeReference>() - { - }); - Assert.assertNotNull("testing file" + fileName.getFile(), generations); - return generations; - } - catch (Exception e) - { - Assert.fail("an error has occurred loading test metadata" + e.getMessage()); - } - return null; - } - - protected void setUpFileGenerationFromFile(URL generationsData) - { - try - { - readGenerationsFile(generationsData).forEach(project -> - { - try - { - getMongoFileGenerations().insertOne(Document.parse(new ObjectMapper().writeValueAsString(project))); - } - catch (JsonProcessingException e) - { - Assert.fail("an error has occurred loading test project metadata" + e.getMessage()); - } - }); - Assert.assertNotNull(getMongoFileGenerations()); - } - catch (Exception e) - { - Assert.fail("an error has occurred loading test project metadata" + e.getMessage()); - } - } - - private MongoCollection getMongoFileGenerations() - { - return getMongoDatabase().getCollection(FileGenerationsMongo.COLLECTION); - } protected MongoCollection getMongoProjectVersions() { diff --git a/legend-depot-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/projects/TestQueryProjectVersionApi.java b/legend-depot-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/projects/TestQueryProjectVersionApi.java index c4fe95695..1efbbfcf1 100644 --- a/legend-depot-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/projects/TestQueryProjectVersionApi.java +++ b/legend-depot-store-mongo/src/test/java/org/finos/legend/depot/store/mongo/projects/TestQueryProjectVersionApi.java @@ -18,15 +18,12 @@ import org.finos.legend.depot.domain.project.StoreProjectVersionData; import org.finos.legend.depot.store.api.projects.ProjectsVersions; import org.finos.legend.depot.store.mongo.TestStoreMongo; -import org.finos.legend.sdlc.domain.model.version.VersionId; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import java.util.Arrays; import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; public class TestQueryProjectVersionApi extends TestStoreMongo diff --git a/legend-depot-store-notifications-queue/pom.xml b/legend-depot-store-notifications-queue/pom.xml index fd92050d4..9fa446d37 100644 --- a/legend-depot-store-notifications-queue/pom.xml +++ b/legend-depot-store-notifications-queue/pom.xml @@ -20,7 +20,7 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 diff --git a/legend-depot-store-notifications/pom.xml b/legend-depot-store-notifications/pom.xml index 7f42727a1..d77c9c9ee 100644 --- a/legend-depot-store-notifications/pom.xml +++ b/legend-depot-store-notifications/pom.xml @@ -20,7 +20,7 @@ legend-depot org.finos.legend.depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 diff --git a/legend-depot-store-notifications/src/main/java/org/finos/legend/depot/store/notifications/NotificationsModule.java b/legend-depot-store-notifications/src/main/java/org/finos/legend/depot/store/notifications/NotificationsModule.java index 4dd003142..6b15458eb 100644 --- a/legend-depot-store-notifications/src/main/java/org/finos/legend/depot/store/notifications/NotificationsModule.java +++ b/legend-depot-store-notifications/src/main/java/org/finos/legend/depot/store/notifications/NotificationsModule.java @@ -18,11 +18,11 @@ import com.google.inject.PrivateModule; import com.google.inject.Provides; import com.google.inject.Singleton; -import org.finos.legend.depot.schedules.services.SchedulesFactory; +import org.finos.legend.depot.services.schedules.SchedulesFactory; import org.finos.legend.depot.store.notifications.api.Notifications; import org.finos.legend.depot.store.notifications.api.NotificationsManager; import org.finos.legend.depot.store.notifications.domain.QueueManagerConfiguration; -import org.finos.legend.depot.store.notifications.resources.NotificationsManagerResource; +import org.finos.legend.depot.store.resources.notifications.NotificationsManagerResource; import org.finos.legend.depot.store.notifications.services.NotificationsQueueManager; import org.finos.legend.depot.store.notifications.store.api.NotificationsStore; import org.finos.legend.depot.store.notifications.store.mongo.NotificationsMongo; diff --git a/legend-depot-store-notifications/src/main/java/org/finos/legend/depot/store/notifications/resources/NotificationsManagerResource.java b/legend-depot-store-notifications/src/main/java/org/finos/legend/depot/store/resources/notifications/NotificationsManagerResource.java similarity index 99% rename from legend-depot-store-notifications/src/main/java/org/finos/legend/depot/store/notifications/resources/NotificationsManagerResource.java rename to legend-depot-store-notifications/src/main/java/org/finos/legend/depot/store/resources/notifications/NotificationsManagerResource.java index 669ac6a4b..61f33debb 100644 --- a/legend-depot-store-notifications/src/main/java/org/finos/legend/depot/store/notifications/resources/NotificationsManagerResource.java +++ b/legend-depot-store-notifications/src/main/java/org/finos/legend/depot/store/resources/notifications/NotificationsManagerResource.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.store.notifications.resources; +package org.finos.legend.depot.store.resources.notifications; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/legend-depot-store-notifications/src/test/java/org/finos/legend/depot/store/notifications/resources/TestNotificationsResource.java b/legend-depot-store-notifications/src/test/java/org/finos/legend/depot/store/resources/notifications/TestNotificationsResource.java similarity index 96% rename from legend-depot-store-notifications/src/test/java/org/finos/legend/depot/store/notifications/resources/TestNotificationsResource.java rename to legend-depot-store-notifications/src/test/java/org/finos/legend/depot/store/resources/notifications/TestNotificationsResource.java index ad91c21ed..f353f1a8b 100644 --- a/legend-depot-store-notifications/src/test/java/org/finos/legend/depot/store/notifications/resources/TestNotificationsResource.java +++ b/legend-depot-store-notifications/src/test/java/org/finos/legend/depot/store/resources/notifications/TestNotificationsResource.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.store.notifications.resources; +package org.finos.legend.depot.store.resources.notifications; import org.finos.legend.depot.domain.notifications.MetadataNotification; import org.finos.legend.depot.store.mongo.TestStoreMongo; @@ -23,6 +23,7 @@ import org.finos.legend.depot.store.notifications.queue.store.mongo.NotificationsQueueMongo; import org.finos.legend.depot.store.notifications.services.NotificationsQueueManager; import org.finos.legend.depot.store.notifications.store.mongo.NotificationsMongo; +import org.finos.legend.depot.store.resources.notifications.NotificationsManagerResource; import org.junit.Assert; import org.junit.Test; diff --git a/legend-depot-store-server/pom.xml b/legend-depot-store-server/pom.xml index 3592d0aa8..c64fc6689 100644 --- a/legend-depot-store-server/pom.xml +++ b/legend-depot-store-server/pom.xml @@ -20,11 +20,11 @@ org.finos.legend.depot legend-depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 - Legend Depot - Store - Server + Legend Depot - Store Admin Server legend-depot-store-server jar @@ -47,6 +47,14 @@ org.finos.legend.depot legend-depot-core-services + + org.finos.legend.depot + legend-depot-generations-services + + + org.finos.legend.depot + legend-depot-generations-store-mongo + org.finos.legend.depot legend-depot-core-schedules @@ -67,6 +75,11 @@ org.finos.legend.depot legend-depot-artifacts-purge + + org.finos.legend.depot + legend-depot-artifacts-repository-maven-impl + + @@ -82,6 +95,7 @@ ${junit.artifactId} test + diff --git a/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/LegendDepotStoreServer.java b/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/LegendDepotStoreServer.java index ead1637ac..5a8993f86 100644 --- a/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/LegendDepotStoreServer.java +++ b/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/LegendDepotStoreServer.java @@ -18,21 +18,24 @@ import com.google.inject.Module; import io.dropwizard.jersey.setup.JerseyEnvironment; import io.dropwizard.setup.Bootstrap; -import org.finos.legend.depot.artifacts.repository.RepositoryModule; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; +import org.finos.legend.depot.store.artifacts.repository.guice.RepositoryModule; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; import org.finos.legend.depot.core.authorisation.AuthorisationModule; import org.finos.legend.depot.core.http.BaseServer; import org.finos.legend.depot.core.http.resources.InfoPageModule; import org.finos.legend.depot.services.ManageServicesModule; -import org.finos.legend.depot.schedules.AdminSchedulesModule; -import org.finos.legend.depot.store.artifacts.ArtifactsHandlersModule; -import org.finos.legend.depot.store.artifacts.ArtifactsRefreshModule; -import org.finos.legend.depot.store.artifacts.purge.ArtifactsPurgeModule; -import org.finos.legend.depot.store.guice.DepotStoreResourcesModule; -import org.finos.legend.depot.store.guice.DepotStoreServerModule; +import org.finos.legend.depot.services.schedules.guice.AdminSchedulesModule; +import org.finos.legend.depot.services.generations.guice.ManageGenerationsServicesModule; +import org.finos.legend.depot.store.artifacts.guice.ArtifactsHandlersModule; +import org.finos.legend.depot.store.artifacts.guice.ArtifactsRefreshModule; +import org.finos.legend.depot.store.artifacts.purge.guice.ArtifactsPurgeModule; +import org.finos.legend.depot.store.server.guice.DepotStoreResourcesModule; +import org.finos.legend.depot.store.server.guice.DepotStoreServerModule; import org.finos.legend.depot.store.metrics.AdminMetricsModule; -import org.finos.legend.depot.store.mongo.admin.ManageAdminDataStoreMongoModule; -import org.finos.legend.depot.store.mongo.ManageDataStoreMongoModule; +import org.finos.legend.depot.store.mongo.admin.guice.ManageAdminDataStoreMongoModule; +import org.finos.legend.depot.store.mongo.admin.guice.AdminSchedulesStoreMongoModule; +import org.finos.legend.depot.store.mongo.guice.ManageDataStoreMongoModule; +import org.finos.legend.depot.store.mongo.guice.ManageGenerationsStoreMongoModule; import org.finos.legend.depot.store.notifications.NotificationsModule; import org.finos.legend.depot.store.notifications.queue.NotificationsQueueModule; import org.finos.legend.depot.store.server.configuration.DepotStoreServerConfiguration; @@ -74,9 +77,12 @@ protected List getServerModules() new DepotStoreServerModule(), new DepotStoreResourcesModule(), new ManageServicesModule(), + new ManageGenerationsServicesModule(), + new ManageGenerationsStoreMongoModule(), new ManageDataStoreMongoModule(), new ManageAdminDataStoreMongoModule(), new AdminSchedulesModule(), + new AdminSchedulesStoreMongoModule(), new AdminMetricsModule(), new AuthorisationModule(), new ArtifactsHandlersModule(), diff --git a/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/configuration/DepotStoreServerConfiguration.java b/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/configuration/DepotStoreServerConfiguration.java index 92c2be884..d60177e05 100644 --- a/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/configuration/DepotStoreServerConfiguration.java +++ b/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/configuration/DepotStoreServerConfiguration.java @@ -17,7 +17,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; import org.finos.legend.depot.core.http.ServersConfiguration; import org.finos.legend.depot.store.artifacts.configuration.IncludeProjectPropertiesConfiguration; import org.finos.legend.depot.store.artifacts.configuration.ArtifactsRetentionPolicyConfiguration; diff --git a/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/guice/DepotStoreResourcesModule.java b/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/guice/DepotStoreResourcesModule.java similarity index 96% rename from legend-depot-store-server/src/main/java/org/finos/legend/depot/store/guice/DepotStoreResourcesModule.java rename to legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/guice/DepotStoreResourcesModule.java index 4d7188fe4..37e553d15 100644 --- a/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/guice/DepotStoreResourcesModule.java +++ b/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/guice/DepotStoreResourcesModule.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.depot.store.guice; +package org.finos.legend.depot.store.server.guice; import com.google.inject.PrivateModule; import org.finos.legend.depot.store.resources.dependencies.ManageDependenciesResource; diff --git a/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/guice/DepotStoreServerModule.java b/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/guice/DepotStoreServerModule.java similarity index 93% rename from legend-depot-store-server/src/main/java/org/finos/legend/depot/store/guice/DepotStoreServerModule.java rename to legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/guice/DepotStoreServerModule.java index 3b73dab0d..4d1d13476 100644 --- a/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/guice/DepotStoreServerModule.java +++ b/legend-depot-store-server/src/main/java/org/finos/legend/depot/store/server/guice/DepotStoreServerModule.java @@ -13,15 +13,15 @@ // limitations under the License. // -package org.finos.legend.depot.store.guice; +package org.finos.legend.depot.store.server.guice; import com.google.inject.Binder; import com.google.inject.Provides; import com.google.inject.Singleton; -import org.finos.legend.depot.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; +import org.finos.legend.depot.store.artifacts.repository.api.ArtifactRepositoryProviderConfiguration; import org.finos.legend.depot.core.http.guice.BaseModule; import org.finos.legend.depot.store.artifacts.configuration.IncludeProjectPropertiesConfiguration; -import org.finos.legend.depot.schedules.services.SchedulesFactory; +import org.finos.legend.depot.services.schedules.SchedulesFactory; import org.finos.legend.depot.store.admin.api.metrics.StorageMetrics; import org.finos.legend.depot.store.artifacts.configuration.ArtifactsRetentionPolicyConfiguration; import org.finos.legend.depot.store.notifications.domain.QueueManagerConfiguration; diff --git a/legend-depot-store-server/src/main/resources/docker/config/config.json b/legend-depot-store-server/src/main/resources/docker/config/config.json index 84871e5c4..61840f9e1 100644 --- a/legend-depot-store-server/src/main/resources/docker/config/config.json +++ b/legend-depot-store-server/src/main/resources/docker/config/config.json @@ -101,7 +101,7 @@ }, "artifactRepositoryProviderConfiguration": { - "org.finos.legend.depot.artifacts.repository.maven.impl.MavenArtifactRepositoryConfiguration": { + "org.finos.legend.depot.store.artifacts.repository.maven.impl.MavenArtifactRepositoryConfiguration": { "settingsLocation": "/config/settings.xml", "versionsUpdateIntervalInMillis": 3600000, "latestUpdateIntervalInMillis": 3600000 diff --git a/legend-depot-store-server/src/test/resources/sample-server-config.json b/legend-depot-store-server/src/test/resources/sample-server-config.json index edf9ebeb7..389ce37e4 100644 --- a/legend-depot-store-server/src/test/resources/sample-server-config.json +++ b/legend-depot-store-server/src/test/resources/sample-server-config.json @@ -104,7 +104,7 @@ "CORS": 5 }, "artifactRepositoryProviderConfiguration": { - "org.finos.legend.depot.artifacts.repository.maven.impl.MavenArtifactRepositoryConfiguration": { + "org.finos.legend.depot.store.artifacts.repository.maven.impl.MavenArtifactRepositoryConfiguration": { "settingsLocation": "legend-depot-store-server/src/test/resources/sample-repository-settings.xml", "versionsUpdateIntervalInMillis": 7200000, "latestUpdateIntervalInMillis": 3600000 diff --git a/legend-depot-test-reports/pom.xml b/legend-depot-test-reports/pom.xml index 828c83630..a75f0af40 100644 --- a/legend-depot-test-reports/pom.xml +++ b/legend-depot-test-reports/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.depot legend-depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT 4.0.0 @@ -69,6 +69,26 @@ + + org.finos.legend.depot + legend-depot-generations-services + + + * + * + + + + + org.finos.legend.depot + legend-depot-generations-store-mongo + + + * + * + + + org.finos.legend.depot legend-depot-model @@ -179,5 +199,55 @@ + + org.finos.legend.depot + legend-depot-pure-model-context + + + * + * + + + + + org.finos.legend.depot + legend-depot-artifacts-purge + + + * + * + + + + + org.finos.legend.depot + legend-depot-servers-common + + + * + * + + + + + org.finos.legend.depot + legend-depot-server + + + * + * + + + + + org.finos.legend.depot + legend-depot-store-server + + + * + * + + + diff --git a/pom.xml b/pom.xml index 6952b6e5c..b4c201811 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ Legend Depot org.finos.legend.depot legend-depot - 1.24.1-SNAPSHOT + 1.25.1-SNAPSHOT pom @@ -47,6 +47,10 @@ legend-depot-store-notifications-queue legend-depot-core-services + legend-depot-generations-api + legend-depot-generations-services + legend-depot-generations-store-mongo + legend-depot-core-http legend-depot-core-tracing legend-depot-core-authorisation @@ -78,8 +82,8 @@ 0.23.8 - 4.19.0 - 0.137.0 + 4.21.1 + 0.138.1 @@ -444,6 +448,21 @@ legend-depot-pure-model-context ${project.version} + + org.finos.legend.depot + legend-depot-generations-api + ${project.version} + + + org.finos.legend.depot + legend-depot-generations-services + ${project.version} + + + org.finos.legend.depot + legend-depot-generations-store-mongo + ${project.version} + org.finos.legend.depot legend-depot-store-mongo @@ -534,12 +553,22 @@ legend-depot-store-api ${project.version} + org.finos.legend.depot legend-depot-store-mongo ${project.version} test-jar tests + test + + + org.finos.legend.depot + legend-depot-generations-store-mongo + ${project.version} + test-jar + tests + test org.finos.legend.depot @@ -547,6 +576,7 @@ ${project.version} test-jar tests + test org.finos.legend.depot @@ -554,6 +584,7 @@ ${project.version} test-jar tests + test