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
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