From 5940f0f35182f19645671e9ee28c9eed552a248e Mon Sep 17 00:00:00 2001 From: Ankit Tomar Date: Sun, 26 Apr 2020 14:41:38 +0530 Subject: [PATCH 1/9] Disabling automatic schema creation --- pom.xml | 2 +- strongbox-db-import/pom.xml | 2 +- strongbox-db-schema/pom.xml | 2 +- strongbox-db-server/pom.xml | 2 +- .../db/server/EmbeddedJanusGraphWithCassandraServer.java | 4 +++- .../org/strongbox/db/server/InMemoryJanusGraphServer.java | 1 + 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 1f5755e..cdf2bf7 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ strongbox-db pom - 1.0-PR-19-SNAPSHOT + 1.0-PR-21-SNAPSHOT diff --git a/strongbox-db-import/pom.xml b/strongbox-db-import/pom.xml index a22cbc8..2e3c144 100644 --- a/strongbox-db-import/pom.xml +++ b/strongbox-db-import/pom.xml @@ -8,7 +8,7 @@ org.carlspring.strongbox strongbox-db - 1.0-PR-19-SNAPSHOT + 1.0-PR-21-SNAPSHOT ../pom.xml diff --git a/strongbox-db-schema/pom.xml b/strongbox-db-schema/pom.xml index 8b3600b..a75aa56 100644 --- a/strongbox-db-schema/pom.xml +++ b/strongbox-db-schema/pom.xml @@ -8,7 +8,7 @@ org.carlspring.strongbox strongbox-db - 1.0-PR-19-SNAPSHOT + 1.0-PR-21-SNAPSHOT ../pom.xml diff --git a/strongbox-db-server/pom.xml b/strongbox-db-server/pom.xml index bb7ad65..2850e8d 100644 --- a/strongbox-db-server/pom.xml +++ b/strongbox-db-server/pom.xml @@ -9,7 +9,7 @@ org.carlspring.strongbox strongbox-db - 1.0-PR-19-SNAPSHOT + 1.0-PR-21-SNAPSHOT ../pom.xml diff --git a/strongbox-db-server/src/main/java/org/strongbox/db/server/EmbeddedJanusGraphWithCassandraServer.java b/strongbox-db-server/src/main/java/org/strongbox/db/server/EmbeddedJanusGraphWithCassandraServer.java index 4167f06..5672707 100644 --- a/strongbox-db-server/src/main/java/org/strongbox/db/server/EmbeddedJanusGraphWithCassandraServer.java +++ b/strongbox-db-server/src/main/java/org/strongbox/db/server/EmbeddedJanusGraphWithCassandraServer.java @@ -122,8 +122,10 @@ private JanusGraph provideJanusGraphInstance() .set("storage.password", janusGraphProperties.getStoragePassword()) .set("storage.cql.keyspace", "strongbox") - .set("storage.cql.only-use-local-consistency-for-system-operations", true) + .set("storage.cql.only-use-local-consistency-for-system-operations", + true) .set("tx.log-tx", true) + .set("schema.default", "none") .open(); try diff --git a/strongbox-db-server/src/main/java/org/strongbox/db/server/InMemoryJanusGraphServer.java b/strongbox-db-server/src/main/java/org/strongbox/db/server/InMemoryJanusGraphServer.java index 27e6cc9..c43b981 100644 --- a/strongbox-db-server/src/main/java/org/strongbox/db/server/InMemoryJanusGraphServer.java +++ b/strongbox-db-server/src/main/java/org/strongbox/db/server/InMemoryJanusGraphServer.java @@ -75,6 +75,7 @@ private JanusGraph provideJanusGraphInstance() JanusGraph janusGraphLocal = JanusGraphFactory.build() .set("storage.backend", "inmemory") + .set("schema.default", "none") .open(); try From 8a01b60f47b8dea0b4d4a0372946c2a1d7c2da22 Mon Sep 17 00:00:00 2001 From: Ankit Tomar Date: Sun, 26 Apr 2020 16:44:10 +0530 Subject: [PATCH 2/9] Property Constraints added on Janusgraph Schema --- .../strongbox/db/schema/StrongboxSchema.java | 54 ++++++++++++++++++- ...EmbeddedJanusGraphWithCassandraServer.java | 1 + .../db/server/InMemoryJanusGraphServer.java | 1 + 3 files changed, 55 insertions(+), 1 deletion(-) diff --git a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java index 2e599c5..6cb6491 100644 --- a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java +++ b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java @@ -35,6 +35,7 @@ import org.janusgraph.core.JanusGraph; import org.janusgraph.core.Multiplicity; import org.janusgraph.core.PropertyKey; +import org.janusgraph.core.VertexLabel; import org.janusgraph.core.schema.ConsistencyModifier; import org.janusgraph.core.schema.EdgeLabelMaker; import org.janusgraph.core.schema.JanusGraphIndex; @@ -235,7 +236,58 @@ private void applySchemaChanges(JanusGraphManagement jgm) makeEdgeLabelIfDoesNotExist(jgm, REMOTE_ARTIFACT_INHERIT_ARTIFACT, ONE2ONE); makeEdgeLabelIfDoesNotExist(jgm, ARTIFACT_COORDINATES_INHERIT_GENERIC_ARTIFACT_COORDINATES, ONE2ONE); makeEdgeLabelIfDoesNotExist(jgm, ARTIFACT_GROUP_HAS_ARTIFACTS, ONE2MANY); - + + // Add property constraints + applyPropertyConstraints(jgm); + + } + + private void applyPropertyConstraints(JanusGraphManagement jgm) + { + // Vertex Property Constraints + addVertexPropertyConstraints(jgm, ARTIFACT, "uuid", "storageId", "repositoryId", "created", "lastUpdated", + "lastUsed", "sizeInBytes", "downloadCount", "filenames", "checksums"); + + addVertexPropertyConstraints(jgm, REMOTE_ARTIFACT, "uuid", "cached"); + + addVertexPropertyConstraints(jgm, GENERIC_ARTIFACT_COORDINATES, "uuid", "version", "coordinates.extension", + "coordinates.name"); + + addVertexPropertyConstraints(jgm, RAW_ARTIFACT_COORDINATES, "uuid", "version", "coordinates.extension", + "coordinates.name", "coordinates.path"); + + addVertexPropertyConstraints(jgm, MAVEN_ARTIFACT_COORDINATES, "uuid", "version", "coordinates.extension", + "coordinates.name", "coordinates.groupId", "coordinates.artifactId", + "coordinates.classifier"); + + addVertexPropertyConstraints(jgm, NPM_ARTIFACT_COORDINATES, "uuid", "version", "coordinates.extension", + "coordinates.name", "coordinates.scope"); + + addVertexPropertyConstraints(jgm, NUGET_ARTIFACT_COORDINATES, "uuid", "version", "coordinates.extension", + "coordinates.name", "coordinates.id"); + + addVertexPropertyConstraints(jgm, PYPI_ARTIFACT_COORDINATES, "uuid", "version", "coordinates.extension", + "coordinates.name", "coordinates.build", "coordinates.abi", "coordinates.platform", + "coordinates.languageImplementationVersion", "coordinates.packaging", + "coordinates.distribution"); + + addVertexPropertyConstraints(jgm, ARTIFACT_TAG, "uuid"); + + addVertexPropertyConstraints(jgm, ARTIFACT_ID_GROUP, "uuid", "storageId", "repositoryId", "name"); + + addVertexPropertyConstraints(jgm, USER, "uuid", "username", "password", + "enabled", "roles", "securityTokenKey", "sourceId"); + } + + private void addVertexPropertyConstraints(JanusGraphManagement jgm, + String vertex, + String... propertykeys) + { + VertexLabel vertexLabel = jgm.getVertexLabel(vertex); + for (String propertyKey : propertykeys) + { + jgm.addProperties(vertexLabel, jgm.getPropertyKey(propertyKey)); + } } private void createProperties(JanusGraphManagement jgm) diff --git a/strongbox-db-server/src/main/java/org/strongbox/db/server/EmbeddedJanusGraphWithCassandraServer.java b/strongbox-db-server/src/main/java/org/strongbox/db/server/EmbeddedJanusGraphWithCassandraServer.java index 5672707..be51cff 100644 --- a/strongbox-db-server/src/main/java/org/strongbox/db/server/EmbeddedJanusGraphWithCassandraServer.java +++ b/strongbox-db-server/src/main/java/org/strongbox/db/server/EmbeddedJanusGraphWithCassandraServer.java @@ -126,6 +126,7 @@ private JanusGraph provideJanusGraphInstance() true) .set("tx.log-tx", true) .set("schema.default", "none") + .set("schema.constraints", true) .open(); try diff --git a/strongbox-db-server/src/main/java/org/strongbox/db/server/InMemoryJanusGraphServer.java b/strongbox-db-server/src/main/java/org/strongbox/db/server/InMemoryJanusGraphServer.java index c43b981..ccbda62 100644 --- a/strongbox-db-server/src/main/java/org/strongbox/db/server/InMemoryJanusGraphServer.java +++ b/strongbox-db-server/src/main/java/org/strongbox/db/server/InMemoryJanusGraphServer.java @@ -76,6 +76,7 @@ private JanusGraph provideJanusGraphInstance() JanusGraph janusGraphLocal = JanusGraphFactory.build() .set("storage.backend", "inmemory") .set("schema.default", "none") + .set("schema.constraints", true) .open(); try From 4c62c50d267695e365a6f879c0a31bfae31e57ea Mon Sep 17 00:00:00 2001 From: Ankit Tomar Date: Sun, 26 Apr 2020 18:37:00 +0530 Subject: [PATCH 3/9] Connection/Edge Constraints added in Janusgraph Schema --- .../strongbox/db/schema/StrongboxSchema.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java index 6cb6491..9d0a7ce 100644 --- a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java +++ b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java @@ -240,6 +240,31 @@ private void applySchemaChanges(JanusGraphManagement jgm) // Add property constraints applyPropertyConstraints(jgm); + // Add connection constraints + applyConnectionConstraints(jgm); + } + + private void applyConnectionConstraints(JanusGraphManagement jgm) + { + jgm.addConnection(jgm.getEdgeLabel(ARTIFACT_HAS_ARTIFACT_COORDINATES), + jgm.getVertexLabel(ARTIFACT), + jgm.getVertexLabel(GENERIC_ARTIFACT_COORDINATES)); + + jgm.addConnection(jgm.getEdgeLabel(ARTIFACT_HAS_TAGS), + jgm.getVertexLabel(ARTIFACT), + jgm.getVertexLabel(ARTIFACT_TAG)); + + jgm.addConnection(jgm.getEdgeLabel(REMOTE_ARTIFACT_INHERIT_ARTIFACT), + jgm.getVertexLabel(REMOTE_ARTIFACT), + jgm.getVertexLabel(ARTIFACT)); + + jgm.addConnection(jgm.getEdgeLabel(ARTIFACT_COORDINATES_INHERIT_GENERIC_ARTIFACT_COORDINATES), + jgm.getVertexLabel(GENERIC_ARTIFACT_COORDINATES), + jgm.getVertexLabel(GENERIC_ARTIFACT_COORDINATES)); + + jgm.addConnection(jgm.getEdgeLabel(ARTIFACT_GROUP_HAS_ARTIFACTS), + jgm.getVertexLabel(ARTIFACT_ID_GROUP), + jgm.getVertexLabel(ARTIFACT)); } private void applyPropertyConstraints(JanusGraphManagement jgm) From a59d1463d7f1279dd8cd23e9adc165765991fab9 Mon Sep 17 00:00:00 2001 From: Ankit Tomar Date: Sun, 26 Apr 2020 18:54:32 +0530 Subject: [PATCH 4/9] Cosmetic review fixes --- .../strongbox/db/schema/StrongboxSchema.java | 112 ++++++++++++++---- 1 file changed, 86 insertions(+), 26 deletions(-) diff --git a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java index 9d0a7ce..e19d956 100644 --- a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java +++ b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java @@ -270,38 +270,98 @@ private void applyConnectionConstraints(JanusGraphManagement jgm) private void applyPropertyConstraints(JanusGraphManagement jgm) { // Vertex Property Constraints - addVertexPropertyConstraints(jgm, ARTIFACT, "uuid", "storageId", "repositoryId", "created", "lastUpdated", - "lastUsed", "sizeInBytes", "downloadCount", "filenames", "checksums"); - - addVertexPropertyConstraints(jgm, REMOTE_ARTIFACT, "uuid", "cached"); - - addVertexPropertyConstraints(jgm, GENERIC_ARTIFACT_COORDINATES, "uuid", "version", "coordinates.extension", + addVertexPropertyConstraints(jgm, + ARTIFACT, + "uuid", + "storageId", + "repositoryId", + "created", + "lastUpdated", + "lastUsed", + "sizeInBytes", + "downloadCount", + "filenames", + "checksums"); + + addVertexPropertyConstraints(jgm, + REMOTE_ARTIFACT, + "uuid", + "cached"); + + addVertexPropertyConstraints(jgm, + GENERIC_ARTIFACT_COORDINATES, + "uuid", + "version", + "coordinates.extension", "coordinates.name"); - addVertexPropertyConstraints(jgm, RAW_ARTIFACT_COORDINATES, "uuid", "version", "coordinates.extension", - "coordinates.name", "coordinates.path"); - - addVertexPropertyConstraints(jgm, MAVEN_ARTIFACT_COORDINATES, "uuid", "version", "coordinates.extension", - "coordinates.name", "coordinates.groupId", "coordinates.artifactId", + addVertexPropertyConstraints(jgm, + RAW_ARTIFACT_COORDINATES, + "uuid", + "version", + "coordinates.extension", + "coordinates.name", + "coordinates.path"); + + addVertexPropertyConstraints(jgm, + MAVEN_ARTIFACT_COORDINATES, + "uuid", + "version", + "coordinates.extension", + "coordinates.name", + "coordinates.groupId", + "coordinates.artifactId", "coordinates.classifier"); - addVertexPropertyConstraints(jgm, NPM_ARTIFACT_COORDINATES, "uuid", "version", "coordinates.extension", - "coordinates.name", "coordinates.scope"); - - addVertexPropertyConstraints(jgm, NUGET_ARTIFACT_COORDINATES, "uuid", "version", "coordinates.extension", - "coordinates.name", "coordinates.id"); - - addVertexPropertyConstraints(jgm, PYPI_ARTIFACT_COORDINATES, "uuid", "version", "coordinates.extension", - "coordinates.name", "coordinates.build", "coordinates.abi", "coordinates.platform", - "coordinates.languageImplementationVersion", "coordinates.packaging", + addVertexPropertyConstraints(jgm, + NPM_ARTIFACT_COORDINATES, + "uuid", + "version", + "coordinates.extension", + "coordinates.name", + "coordinates.scope"); + + addVertexPropertyConstraints(jgm, + NUGET_ARTIFACT_COORDINATES, + "uuid", + "version", + "coordinates.extension", + "coordinates.name", + "coordinates.id"); + + addVertexPropertyConstraints(jgm, + PYPI_ARTIFACT_COORDINATES, + "uuid", + "version", + "coordinates.extension", + "coordinates.name", + "coordinates.build", + "coordinates.abi", + "coordinates.platform", + "coordinates.languageImplementationVersion", + "coordinates.packaging", "coordinates.distribution"); - addVertexPropertyConstraints(jgm, ARTIFACT_TAG, "uuid"); - - addVertexPropertyConstraints(jgm, ARTIFACT_ID_GROUP, "uuid", "storageId", "repositoryId", "name"); - - addVertexPropertyConstraints(jgm, USER, "uuid", "username", "password", - "enabled", "roles", "securityTokenKey", "sourceId"); + addVertexPropertyConstraints(jgm, + ARTIFACT_TAG, + "uuid"); + + addVertexPropertyConstraints(jgm, + ARTIFACT_ID_GROUP, + "uuid", + "storageId", + "repositoryId", + "name"); + + addVertexPropertyConstraints(jgm, + USER, + "uuid", + "username", + "password", + "enabled", + "roles", + "securityTokenKey", + "sourceId"); } private void addVertexPropertyConstraints(JanusGraphManagement jgm, From 72b1f5ac7ec3990e0aabb5ee1c2978291576bd4e Mon Sep 17 00:00:00 2001 From: Ankit Tomar Date: Mon, 27 Apr 2020 00:08:12 +0530 Subject: [PATCH 5/9] Connection Contraints from ArtifactCoordinates to GenericArtifactCoordinates --- .../strongbox/db/schema/StrongboxSchema.java | 75 ++++++++++++++----- .../strongbox/db/schema/Vertices.java | 17 ++++- 2 files changed, 72 insertions(+), 20 deletions(-) diff --git a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java index e19d956..cd30539 100644 --- a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java +++ b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java @@ -10,12 +10,13 @@ import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT_ID_GROUP; import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT_TAG; import static org.carlspring.strongbox.db.schema.Vertices.GENERIC_ARTIFACT_COORDINATES; -import static org.carlspring.strongbox.db.schema.Vertices.RAW_ARTIFACT_COORDINATES; import static org.carlspring.strongbox.db.schema.Vertices.MAVEN_ARTIFACT_COORDINATES; import static org.carlspring.strongbox.db.schema.Vertices.NPM_ARTIFACT_COORDINATES; import static org.carlspring.strongbox.db.schema.Vertices.NUGET_ARTIFACT_COORDINATES; import static org.carlspring.strongbox.db.schema.Vertices.PYPI_ARTIFACT_COORDINATES; +import static org.carlspring.strongbox.db.schema.Vertices.RAW_ARTIFACT_COORDINATES; import static org.carlspring.strongbox.db.schema.Vertices.REMOTE_ARTIFACT; +import static org.carlspring.strongbox.db.schema.Vertices.TRANSACTION_PROPAGATION; import static org.carlspring.strongbox.db.schema.Vertices.USER; import static org.janusgraph.core.Multiplicity.MANY2ONE; import static org.janusgraph.core.Multiplicity.MULTI; @@ -217,6 +218,7 @@ private void applySchemaChanges(JanusGraphManagement jgm) createProperties(jgm); // Vertices + makeVertexLabelIfDoesNotExist(jgm, TRANSACTION_PROPAGATION); makeVertexLabelIfDoesNotExist(jgm, ARTIFACT); makeVertexLabelIfDoesNotExist(jgm, REMOTE_ARTIFACT); makeVertexLabelIfDoesNotExist(jgm, GENERIC_ARTIFACT_COORDINATES); @@ -254,17 +256,34 @@ private void applyConnectionConstraints(JanusGraphManagement jgm) jgm.getVertexLabel(ARTIFACT), jgm.getVertexLabel(ARTIFACT_TAG)); + jgm.addConnection(jgm.getEdgeLabel(ARTIFACT_GROUP_HAS_ARTIFACTS), + jgm.getVertexLabel(ARTIFACT_ID_GROUP), + jgm.getVertexLabel(ARTIFACT)); + jgm.addConnection(jgm.getEdgeLabel(REMOTE_ARTIFACT_INHERIT_ARTIFACT), jgm.getVertexLabel(REMOTE_ARTIFACT), jgm.getVertexLabel(ARTIFACT)); jgm.addConnection(jgm.getEdgeLabel(ARTIFACT_COORDINATES_INHERIT_GENERIC_ARTIFACT_COORDINATES), - jgm.getVertexLabel(GENERIC_ARTIFACT_COORDINATES), + jgm.getVertexLabel(RAW_ARTIFACT_COORDINATES), + jgm.getVertexLabel(GENERIC_ARTIFACT_COORDINATES)); + + jgm.addConnection(jgm.getEdgeLabel(ARTIFACT_COORDINATES_INHERIT_GENERIC_ARTIFACT_COORDINATES), + jgm.getVertexLabel(NUGET_ARTIFACT_COORDINATES), + jgm.getVertexLabel(GENERIC_ARTIFACT_COORDINATES)); + + jgm.addConnection(jgm.getEdgeLabel(ARTIFACT_COORDINATES_INHERIT_GENERIC_ARTIFACT_COORDINATES), + jgm.getVertexLabel(NPM_ARTIFACT_COORDINATES), + jgm.getVertexLabel(GENERIC_ARTIFACT_COORDINATES)); + + jgm.addConnection(jgm.getEdgeLabel(ARTIFACT_COORDINATES_INHERIT_GENERIC_ARTIFACT_COORDINATES), + jgm.getVertexLabel(MAVEN_ARTIFACT_COORDINATES), + jgm.getVertexLabel(GENERIC_ARTIFACT_COORDINATES)); + + jgm.addConnection(jgm.getEdgeLabel(ARTIFACT_COORDINATES_INHERIT_GENERIC_ARTIFACT_COORDINATES), + jgm.getVertexLabel(PYPI_ARTIFACT_COORDINATES), jgm.getVertexLabel(GENERIC_ARTIFACT_COORDINATES)); - jgm.addConnection(jgm.getEdgeLabel(ARTIFACT_GROUP_HAS_ARTIFACTS), - jgm.getVertexLabel(ARTIFACT_ID_GROUP), - jgm.getVertexLabel(ARTIFACT)); } private void applyPropertyConstraints(JanusGraphManagement jgm) @@ -286,14 +305,28 @@ private void applyPropertyConstraints(JanusGraphManagement jgm) addVertexPropertyConstraints(jgm, REMOTE_ARTIFACT, "uuid", - "cached"); + "cached", + "created"); addVertexPropertyConstraints(jgm, GENERIC_ARTIFACT_COORDINATES, "uuid", "version", + "coordinates.id", "coordinates.extension", - "coordinates.name"); + "coordinates.name", + "coordinates.path", + "coordinates.scope", + "coordinates.groupId", + "coordinates.artifactId", + "coordinates.classifier", + "coordinates.distribution", + "coordinates.build", + "coordinates.abi", + "coordinates.platform", + "coordinates.packaging", + "coordinates.languageImplementationVersion", + "created"); addVertexPropertyConstraints(jgm, RAW_ARTIFACT_COORDINATES, @@ -301,7 +334,8 @@ private void applyPropertyConstraints(JanusGraphManagement jgm) "version", "coordinates.extension", "coordinates.name", - "coordinates.path"); + "coordinates.path", + "created"); addVertexPropertyConstraints(jgm, MAVEN_ARTIFACT_COORDINATES, @@ -311,7 +345,8 @@ private void applyPropertyConstraints(JanusGraphManagement jgm) "coordinates.name", "coordinates.groupId", "coordinates.artifactId", - "coordinates.classifier"); + "coordinates.classifier", + "created"); addVertexPropertyConstraints(jgm, NPM_ARTIFACT_COORDINATES, @@ -319,7 +354,8 @@ private void applyPropertyConstraints(JanusGraphManagement jgm) "version", "coordinates.extension", "coordinates.name", - "coordinates.scope"); + "coordinates.scope", + "created"); addVertexPropertyConstraints(jgm, NUGET_ARTIFACT_COORDINATES, @@ -327,7 +363,8 @@ private void applyPropertyConstraints(JanusGraphManagement jgm) "version", "coordinates.extension", "coordinates.name", - "coordinates.id"); + "coordinates.id", + "created"); addVertexPropertyConstraints(jgm, PYPI_ARTIFACT_COORDINATES, @@ -338,30 +375,34 @@ private void applyPropertyConstraints(JanusGraphManagement jgm) "coordinates.build", "coordinates.abi", "coordinates.platform", - "coordinates.languageImplementationVersion", "coordinates.packaging", - "coordinates.distribution"); + "coordinates.distribution", + "coordinates.languageImplementationVersion", + "created"); addVertexPropertyConstraints(jgm, ARTIFACT_TAG, - "uuid"); + "uuid", + "created"); addVertexPropertyConstraints(jgm, ARTIFACT_ID_GROUP, "uuid", "storageId", "repositoryId", - "name"); + "name", + "created"); addVertexPropertyConstraints(jgm, USER, "uuid", - "username", "password", "enabled", "roles", "securityTokenKey", - "sourceId"); + "sourceId", + "created", + "lastUpdated"); } private void addVertexPropertyConstraints(JanusGraphManagement jgm, diff --git a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/Vertices.java b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/Vertices.java index b1727a5..2471e42 100644 --- a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/Vertices.java +++ b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/Vertices.java @@ -4,19 +4,30 @@ public interface Vertices { String ARTIFACT = "Artifact"; + String REMOTE_ARTIFACT = "RemoteArtifact"; + String GENERIC_ARTIFACT_COORDINATES = "GenericArtifactCoordinates"; + String ARTIFACT_COORDINATES = "ArtifactCoordinates"; - + String RAW_ARTIFACT_COORDINATES = "RawArtifactCoordinates"; + String MAVEN_ARTIFACT_COORDINATES = "MavenArtifactCoordinates"; + String NPM_ARTIFACT_COORDINATES = "NpmArtifactCoordinates"; + String NUGET_ARTIFACT_COORDINATES = "NugetArtifactCoordinates"; + String PYPI_ARTIFACT_COORDINATES = "PypiArtifactCoordinates"; + String RPM_ARTIFACT_COORDINATES = "RpmArtifactCoordinates"; - + String ARTIFACT_TAG = "ArtifactTag"; + String ARTIFACT_ID_GROUP = "ArtifactIdGroup"; - + String USER = "User"; + + String TRANSACTION_PROPAGATION = "TransactionPropagationTestVertex"; } From 0696a7a2bc25503b00cea6d074bb05bafc312eb8 Mon Sep 17 00:00:00 2001 From: Ankit Tomar Date: Mon, 27 Apr 2020 09:57:34 +0530 Subject: [PATCH 6/9] Removing TransactionPropagationTestVertex used for Test --- .../strongbox/db/schema/StrongboxSchema.java | 2 -- .../carlspring/strongbox/db/schema/Vertices.java | 14 -------------- 2 files changed, 16 deletions(-) diff --git a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java index cd30539..3df02bf 100644 --- a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java +++ b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java @@ -16,7 +16,6 @@ import static org.carlspring.strongbox.db.schema.Vertices.PYPI_ARTIFACT_COORDINATES; import static org.carlspring.strongbox.db.schema.Vertices.RAW_ARTIFACT_COORDINATES; import static org.carlspring.strongbox.db.schema.Vertices.REMOTE_ARTIFACT; -import static org.carlspring.strongbox.db.schema.Vertices.TRANSACTION_PROPAGATION; import static org.carlspring.strongbox.db.schema.Vertices.USER; import static org.janusgraph.core.Multiplicity.MANY2ONE; import static org.janusgraph.core.Multiplicity.MULTI; @@ -218,7 +217,6 @@ private void applySchemaChanges(JanusGraphManagement jgm) createProperties(jgm); // Vertices - makeVertexLabelIfDoesNotExist(jgm, TRANSACTION_PROPAGATION); makeVertexLabelIfDoesNotExist(jgm, ARTIFACT); makeVertexLabelIfDoesNotExist(jgm, REMOTE_ARTIFACT); makeVertexLabelIfDoesNotExist(jgm, GENERIC_ARTIFACT_COORDINATES); diff --git a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/Vertices.java b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/Vertices.java index 2471e42..1e2cc25 100644 --- a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/Vertices.java +++ b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/Vertices.java @@ -4,30 +4,16 @@ public interface Vertices { String ARTIFACT = "Artifact"; - String REMOTE_ARTIFACT = "RemoteArtifact"; - String GENERIC_ARTIFACT_COORDINATES = "GenericArtifactCoordinates"; - String ARTIFACT_COORDINATES = "ArtifactCoordinates"; - String RAW_ARTIFACT_COORDINATES = "RawArtifactCoordinates"; - String MAVEN_ARTIFACT_COORDINATES = "MavenArtifactCoordinates"; - String NPM_ARTIFACT_COORDINATES = "NpmArtifactCoordinates"; - String NUGET_ARTIFACT_COORDINATES = "NugetArtifactCoordinates"; - String PYPI_ARTIFACT_COORDINATES = "PypiArtifactCoordinates"; - String RPM_ARTIFACT_COORDINATES = "RpmArtifactCoordinates"; - String ARTIFACT_TAG = "ArtifactTag"; - String ARTIFACT_ID_GROUP = "ArtifactIdGroup"; - String USER = "User"; - - String TRANSACTION_PROPAGATION = "TransactionPropagationTestVertex"; } From 1f3046bfabafb275523740fb6d4416f1f78ade88 Mon Sep 17 00:00:00 2001 From: Ankit Tomar Date: Mon, 27 Apr 2020 10:21:35 +0530 Subject: [PATCH 7/9] Reverting pom version --- pom.xml | 2 +- strongbox-db-import/pom.xml | 2 +- strongbox-db-schema/pom.xml | 2 +- strongbox-db-server/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index cdf2bf7..1f5755e 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ strongbox-db pom - 1.0-PR-21-SNAPSHOT + 1.0-PR-19-SNAPSHOT diff --git a/strongbox-db-import/pom.xml b/strongbox-db-import/pom.xml index 2e3c144..a22cbc8 100644 --- a/strongbox-db-import/pom.xml +++ b/strongbox-db-import/pom.xml @@ -8,7 +8,7 @@ org.carlspring.strongbox strongbox-db - 1.0-PR-21-SNAPSHOT + 1.0-PR-19-SNAPSHOT ../pom.xml diff --git a/strongbox-db-schema/pom.xml b/strongbox-db-schema/pom.xml index a75aa56..8b3600b 100644 --- a/strongbox-db-schema/pom.xml +++ b/strongbox-db-schema/pom.xml @@ -8,7 +8,7 @@ org.carlspring.strongbox strongbox-db - 1.0-PR-21-SNAPSHOT + 1.0-PR-19-SNAPSHOT ../pom.xml diff --git a/strongbox-db-server/pom.xml b/strongbox-db-server/pom.xml index 2850e8d..bb7ad65 100644 --- a/strongbox-db-server/pom.xml +++ b/strongbox-db-server/pom.xml @@ -9,7 +9,7 @@ org.carlspring.strongbox strongbox-db - 1.0-PR-21-SNAPSHOT + 1.0-PR-19-SNAPSHOT ../pom.xml From 7ce9a47e09fb8e90f6ea483bedc50ccf03fdd4db Mon Sep 17 00:00:00 2001 From: Ankit Tomar Date: Mon, 27 Apr 2020 11:56:22 +0530 Subject: [PATCH 8/9] Moving Janushgraph Schema Properties to common Constants --- .../strongbox/db/schema/Properties.java | 48 +++ .../strongbox/db/schema/StrongboxSchema.java | 352 ++++++++++-------- 2 files changed, 241 insertions(+), 159 deletions(-) create mode 100644 strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/Properties.java diff --git a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/Properties.java b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/Properties.java new file mode 100644 index 0000000..e7addc7 --- /dev/null +++ b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/Properties.java @@ -0,0 +1,48 @@ +package org.carlspring.strongbox.db.schema; + +/** + * @author ankit.tomar + */ +public interface Properties +{ + + String UUID = "uuid"; + String STORAGE_ID = "storageId"; + String REPOSITORY_ID = "repositoryId"; + String NAME = "name"; + String LAST_UPDATED = "lastUpdated"; + String SIZE_IN_BYTES = "sizeInBytes"; + String LAST_USED = "lastUsed"; + String CREATED = "created"; + String DOWNLOAD_COUNT = "downloadCount"; + String CHECKSUMS = "checksums"; + String CACHED = "cached"; + String VERSION = "version"; + String USERNAME = "username"; + String PASSWORD = "password"; + String ENABLED = "enabled"; + String ROLES = "roles"; + String SECURITY_TOKEN_KEY = "securityTokenKey"; + String SOURCE_ID = "sourceId"; + String FILE_NAMES = "filenames"; + String COORDINATES_EXTENSION = "coordinates.extension"; + String COORDINATES_NAME = "coordinates.name"; + String COORDINATES_GROUP_ID = "coordinates.groupId"; + String COORDINATES_ARTIFACT_ID = "coordinates.artifactId"; + String COORDINATES_CLASSIFIER = "coordinates.classifier"; + String COORDINATES_SCOPE = "coordinates.scope"; + String COORDINATES_ID = "coordinates.id"; + String COORDINATES_FILENAME = "coordinates.filename"; + String COORDINATES_BUILD = "coordinates.build"; + String COORDINATES_ABI = "coordinates.abi"; + String COORDINATES_PLATFORM = "coordinates.platform"; + String COORDINATES_PACKAGING = "coordinates.packaging"; + String COORDINATES_DISTRIBUTION = "coordinates.distribution"; + String COORDINATES_PATH = "coordinates.path"; + String COORDINATES_BASE_NAME = "coordinates.base_name"; + String COORDINATES_RELEASE = "coordinates.release"; + String COORDINATES_ARCHITECTURE = "coordinates.architecture"; + String COORDINATES_PACKAGE_TYPE = "coordinates.package_type"; + String COORDINATES_LANGUAGE_IMPLEMENTATION_VERSION = "coordinates.languageImplementationVersion"; + +} diff --git a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java index 3df02bf..5a98ed4 100644 --- a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java +++ b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java @@ -5,6 +5,39 @@ import static org.carlspring.strongbox.db.schema.Edges.ARTIFACT_HAS_ARTIFACT_COORDINATES; import static org.carlspring.strongbox.db.schema.Edges.ARTIFACT_HAS_TAGS; import static org.carlspring.strongbox.db.schema.Edges.REMOTE_ARTIFACT_INHERIT_ARTIFACT; +import static org.carlspring.strongbox.db.schema.Properties.CACHED; +import static org.carlspring.strongbox.db.schema.Properties.CHECKSUMS; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_ABI; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_ARTIFACT_ID; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_BUILD; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_CLASSIFIER; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_DISTRIBUTION; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_EXTENSION; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_GROUP_ID; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_ID; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_LANGUAGE_IMPLEMENTATION_VERSION; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_NAME; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_PACKAGING; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_PATH; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_PLATFORM; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_SCOPE; +import static org.carlspring.strongbox.db.schema.Properties.CREATED; +import static org.carlspring.strongbox.db.schema.Properties.DOWNLOAD_COUNT; +import static org.carlspring.strongbox.db.schema.Properties.ENABLED; +import static org.carlspring.strongbox.db.schema.Properties.FILE_NAMES; +import static org.carlspring.strongbox.db.schema.Properties.LAST_UPDATED; +import static org.carlspring.strongbox.db.schema.Properties.LAST_USED; +import static org.carlspring.strongbox.db.schema.Properties.NAME; +import static org.carlspring.strongbox.db.schema.Properties.PASSWORD; +import static org.carlspring.strongbox.db.schema.Properties.REPOSITORY_ID; +import static org.carlspring.strongbox.db.schema.Properties.ROLES; +import static org.carlspring.strongbox.db.schema.Properties.SECURITY_TOKEN_KEY; +import static org.carlspring.strongbox.db.schema.Properties.SIZE_IN_BYTES; +import static org.carlspring.strongbox.db.schema.Properties.SOURCE_ID; +import static org.carlspring.strongbox.db.schema.Properties.STORAGE_ID; +import static org.carlspring.strongbox.db.schema.Properties.UUID; +import static org.carlspring.strongbox.db.schema.Properties.VERSION; +import static org.carlspring.strongbox.db.schema.Properties.*; import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT; import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT_COORDINATES; import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT_ID_GROUP; @@ -135,78 +168,78 @@ protected Set createIndexes(JanusGraph jg, Vertex.class, jgm.getVertexLabel(ARTIFACT), true, - jgm.getPropertyKey("uuid")).ifPresent(result::add); + jgm.getPropertyKey(UUID)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(REMOTE_ARTIFACT), true, - jgm.getPropertyKey("uuid")).ifPresent(result::add); + jgm.getPropertyKey(UUID)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(GENERIC_ARTIFACT_COORDINATES), true, - jgm.getPropertyKey("uuid")).ifPresent(result::add); + jgm.getPropertyKey(UUID)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(ARTIFACT_COORDINATES), true, - jgm.getPropertyKey("uuid")).ifPresent(result::add); + jgm.getPropertyKey(UUID)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(RAW_ARTIFACT_COORDINATES), true, - jgm.getPropertyKey("uuid")).ifPresent(result::add); + jgm.getPropertyKey(UUID)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(MAVEN_ARTIFACT_COORDINATES), true, - jgm.getPropertyKey("uuid")).ifPresent(result::add); + jgm.getPropertyKey(UUID)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(NPM_ARTIFACT_COORDINATES), true, - jgm.getPropertyKey("uuid")).ifPresent(result::add); + jgm.getPropertyKey(UUID)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(NUGET_ARTIFACT_COORDINATES), true, - jgm.getPropertyKey("uuid")).ifPresent(result::add); + jgm.getPropertyKey(UUID)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(PYPI_ARTIFACT_COORDINATES), true, - jgm.getPropertyKey("uuid")).ifPresent(result::add); + jgm.getPropertyKey(UUID)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(ARTIFACT_TAG), true, true, - jgm.getPropertyKey("uuid")).ifPresent(result::add); + jgm.getPropertyKey(UUID)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(ARTIFACT_ID_GROUP), true, - jgm.getPropertyKey("uuid")).ifPresent(result::add); + jgm.getPropertyKey(UUID)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(ARTIFACT_ID_GROUP), false, false, - jgm.getPropertyKey("storageId"), - jgm.getPropertyKey("repositoryId")).ifPresent(result::add); + jgm.getPropertyKey(STORAGE_ID), + jgm.getPropertyKey(REPOSITORY_ID)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(ARTIFACT_ID_GROUP), true, - jgm.getPropertyKey("storageId"), - jgm.getPropertyKey("repositoryId"), - jgm.getPropertyKey("name")).ifPresent(result::add); + jgm.getPropertyKey(STORAGE_ID), + jgm.getPropertyKey(REPOSITORY_ID), + jgm.getPropertyKey(NAME)).ifPresent(result::add); buildIndexIfNecessary(jgm, Vertex.class, jgm.getVertexLabel(USER), true, - jgm.getPropertyKey("uuid")).ifPresent(result::add); + jgm.getPropertyKey(UUID)).ifPresent(result::add); return result; } @@ -289,118 +322,118 @@ private void applyPropertyConstraints(JanusGraphManagement jgm) // Vertex Property Constraints addVertexPropertyConstraints(jgm, ARTIFACT, - "uuid", - "storageId", - "repositoryId", - "created", - "lastUpdated", - "lastUsed", - "sizeInBytes", - "downloadCount", - "filenames", - "checksums"); + UUID, + STORAGE_ID, + REPOSITORY_ID, + CREATED, + LAST_UPDATED, + LAST_USED, + SIZE_IN_BYTES, + DOWNLOAD_COUNT, + FILE_NAMES, + CHECKSUMS); addVertexPropertyConstraints(jgm, REMOTE_ARTIFACT, - "uuid", - "cached", - "created"); + UUID, + CACHED, + CREATED); addVertexPropertyConstraints(jgm, GENERIC_ARTIFACT_COORDINATES, - "uuid", - "version", - "coordinates.id", - "coordinates.extension", - "coordinates.name", - "coordinates.path", - "coordinates.scope", - "coordinates.groupId", - "coordinates.artifactId", - "coordinates.classifier", - "coordinates.distribution", - "coordinates.build", - "coordinates.abi", - "coordinates.platform", - "coordinates.packaging", - "coordinates.languageImplementationVersion", - "created"); + UUID, + VERSION, + COORDINATES_ID, + COORDINATES_EXTENSION, + COORDINATES_NAME, + COORDINATES_PATH, + COORDINATES_SCOPE, + COORDINATES_GROUP_ID, + COORDINATES_ARTIFACT_ID, + COORDINATES_CLASSIFIER, + COORDINATES_DISTRIBUTION, + COORDINATES_BUILD, + COORDINATES_ABI, + COORDINATES_PLATFORM, + COORDINATES_PACKAGING, + COORDINATES_LANGUAGE_IMPLEMENTATION_VERSION, + CREATED); addVertexPropertyConstraints(jgm, RAW_ARTIFACT_COORDINATES, - "uuid", - "version", - "coordinates.extension", - "coordinates.name", - "coordinates.path", - "created"); + UUID, + VERSION, + COORDINATES_EXTENSION, + COORDINATES_NAME, + COORDINATES_PATH, + CREATED); addVertexPropertyConstraints(jgm, MAVEN_ARTIFACT_COORDINATES, - "uuid", - "version", - "coordinates.extension", - "coordinates.name", - "coordinates.groupId", - "coordinates.artifactId", - "coordinates.classifier", - "created"); + UUID, + VERSION, + COORDINATES_EXTENSION, + COORDINATES_NAME, + COORDINATES_GROUP_ID, + COORDINATES_ARTIFACT_ID, + COORDINATES_CLASSIFIER, + CREATED); addVertexPropertyConstraints(jgm, NPM_ARTIFACT_COORDINATES, - "uuid", - "version", - "coordinates.extension", - "coordinates.name", - "coordinates.scope", - "created"); + UUID, + VERSION, + COORDINATES_EXTENSION, + COORDINATES_NAME, + COORDINATES_SCOPE, + CREATED); addVertexPropertyConstraints(jgm, NUGET_ARTIFACT_COORDINATES, - "uuid", - "version", - "coordinates.extension", - "coordinates.name", - "coordinates.id", - "created"); + UUID, + VERSION, + COORDINATES_EXTENSION, + COORDINATES_NAME, + COORDINATES_ID, + CREATED); addVertexPropertyConstraints(jgm, PYPI_ARTIFACT_COORDINATES, - "uuid", - "version", - "coordinates.extension", - "coordinates.name", - "coordinates.build", - "coordinates.abi", - "coordinates.platform", - "coordinates.packaging", - "coordinates.distribution", - "coordinates.languageImplementationVersion", - "created"); + UUID, + VERSION, + COORDINATES_EXTENSION, + COORDINATES_NAME, + COORDINATES_BUILD, + COORDINATES_ABI, + COORDINATES_PLATFORM, + COORDINATES_PACKAGING, + COORDINATES_DISTRIBUTION, + COORDINATES_LANGUAGE_IMPLEMENTATION_VERSION, + CREATED); addVertexPropertyConstraints(jgm, ARTIFACT_TAG, - "uuid", - "created"); + UUID, + CREATED); addVertexPropertyConstraints(jgm, ARTIFACT_ID_GROUP, - "uuid", - "storageId", - "repositoryId", - "name", - "created"); + UUID, + STORAGE_ID, + REPOSITORY_ID, + NAME, + CREATED); addVertexPropertyConstraints(jgm, USER, - "uuid", - "password", - "enabled", - "roles", - "securityTokenKey", - "sourceId", - "created", - "lastUpdated"); + UUID, + PASSWORD, + ENABLED, + ROLES, + SECURITY_TOKEN_KEY, + SOURCE_ID, + CREATED, + LAST_UPDATED); } private void addVertexPropertyConstraints(JanusGraphManagement jgm, @@ -416,66 +449,67 @@ private void addVertexPropertyConstraints(JanusGraphManagement jgm, private void createProperties(JanusGraphManagement jgm) { - makePropertyKeyIfDoesNotExist(jgm, "uuid", String.class).ifPresent(p -> jgm.setConsistency(p, ConsistencyModifier.LOCK)); - makePropertyKeyIfDoesNotExist(jgm, "storageId", String.class); - makePropertyKeyIfDoesNotExist(jgm, "repositoryId", String.class); - makePropertyKeyIfDoesNotExist(jgm, "name", String.class); - makePropertyKeyIfDoesNotExist(jgm, "lastUpdated", Long.class, Cardinality.SINGLE); - - //Artifact - makePropertyKeyIfDoesNotExist(jgm, "sizeInBytes", Long.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "lastUsed", Long.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "created", Long.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "downloadCount", Integer.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "filenames", String.class, Cardinality.SET); - makePropertyKeyIfDoesNotExist(jgm, "checksums", String.class, Cardinality.SET); - - //RemoteArtifact - makePropertyKeyIfDoesNotExist(jgm, "cached", Boolean.class, Cardinality.SINGLE); - - //Common coordinates - makePropertyKeyIfDoesNotExist(jgm, "version", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "coordinates.extension", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "coordinates.name", String.class, Cardinality.SINGLE); - - //Maven - makePropertyKeyIfDoesNotExist(jgm, "coordinates.groupId", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "coordinates.artifactId", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "coordinates.classifier", String.class, Cardinality.SINGLE); - - //Npm - makePropertyKeyIfDoesNotExist(jgm, "coordinates.scope", String.class, Cardinality.SINGLE); - - //Nuget - makePropertyKeyIfDoesNotExist(jgm, "coordinates.id", String.class, Cardinality.SINGLE); - - //P2 - makePropertyKeyIfDoesNotExist(jgm, "coordinates.filename", String.class, Cardinality.SINGLE); - - //Pypi - makePropertyKeyIfDoesNotExist(jgm, "coordinates.build", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "coordinates.languageImplementationVersion", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "coordinates.abi", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "coordinates.platform", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "coordinates.packaging", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "coordinates.distribution", String.class, Cardinality.SINGLE); - - //Raw - makePropertyKeyIfDoesNotExist(jgm, "coordinates.path", String.class, Cardinality.SINGLE); - - //Rpm - makePropertyKeyIfDoesNotExist(jgm, "coordinates.base_name", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "coordinates.release", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "coordinates.architecture", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "coordinates.package_type", String.class, Cardinality.SINGLE); - - //User - makePropertyKeyIfDoesNotExist(jgm, "username", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "password", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "enabled", Boolean.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "roles", String.class, Cardinality.SET); - makePropertyKeyIfDoesNotExist(jgm, "securityTokenKey", String.class, Cardinality.SINGLE); - makePropertyKeyIfDoesNotExist(jgm, "sourceId", String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, UUID, + String.class).ifPresent(p -> jgm.setConsistency(p, ConsistencyModifier.LOCK)); + makePropertyKeyIfDoesNotExist(jgm, STORAGE_ID, String.class); + makePropertyKeyIfDoesNotExist(jgm, REPOSITORY_ID, String.class); + makePropertyKeyIfDoesNotExist(jgm, NAME, String.class); + makePropertyKeyIfDoesNotExist(jgm, LAST_UPDATED, Long.class, Cardinality.SINGLE); + + // Artifact + makePropertyKeyIfDoesNotExist(jgm, SIZE_IN_BYTES, Long.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, LAST_USED, Long.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, CREATED, Long.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, DOWNLOAD_COUNT, Integer.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, FILE_NAMES, String.class, Cardinality.SET); + makePropertyKeyIfDoesNotExist(jgm, CHECKSUMS, String.class, Cardinality.SET); + + // RemoteArtifact + makePropertyKeyIfDoesNotExist(jgm, CACHED, Boolean.class, Cardinality.SINGLE); + + // Common coordinates + makePropertyKeyIfDoesNotExist(jgm, VERSION, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_EXTENSION, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_NAME, String.class, Cardinality.SINGLE); + + // Maven + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_GROUP_ID, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_ARTIFACT_ID, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_CLASSIFIER, String.class, Cardinality.SINGLE); + + // Npm + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_SCOPE, String.class, Cardinality.SINGLE); + + // Nuget + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_ID, String.class, Cardinality.SINGLE); + + // P2 + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_FILENAME, String.class, Cardinality.SINGLE); + + // Pypi + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_BUILD, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_LANGUAGE_IMPLEMENTATION_VERSION, String.class, + Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_ABI, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_PLATFORM, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_PACKAGING, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_DISTRIBUTION, String.class, Cardinality.SINGLE); + + // Raw + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_PATH, String.class, Cardinality.SINGLE); + + // Rpm + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_BASE_NAME, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_RELEASE, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_ARCHITECTURE, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_PACKAGE_TYPE, String.class, Cardinality.SINGLE); + + // User + makePropertyKeyIfDoesNotExist(jgm, PASSWORD, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, ENABLED, Boolean.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, ROLES, String.class, Cardinality.SET); + makePropertyKeyIfDoesNotExist(jgm, SECURITY_TOKEN_KEY, String.class, Cardinality.SINGLE); + makePropertyKeyIfDoesNotExist(jgm, SOURCE_ID, String.class, Cardinality.SINGLE); } private Optional buildIndexIfNecessary(final JanusGraphManagement jgm, From 4fe35850686aa466be967a30279650f996c5a116 Mon Sep 17 00:00:00 2001 From: Ankit Tomar Date: Mon, 27 Apr 2020 12:06:51 +0530 Subject: [PATCH 9/9] Static import refactoring --- .../org/carlspring/strongbox/db/schema/StrongboxSchema.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java index 5a98ed4..cd7485b 100644 --- a/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java +++ b/strongbox-db-schema/src/main/java/org/carlspring/strongbox/db/schema/StrongboxSchema.java @@ -8,18 +8,23 @@ import static org.carlspring.strongbox.db.schema.Properties.CACHED; import static org.carlspring.strongbox.db.schema.Properties.CHECKSUMS; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_ABI; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_ARCHITECTURE; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_ARTIFACT_ID; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_BASE_NAME; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_BUILD; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_CLASSIFIER; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_DISTRIBUTION; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_EXTENSION; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_FILENAME; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_GROUP_ID; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_ID; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_LANGUAGE_IMPLEMENTATION_VERSION; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_NAME; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_PACKAGE_TYPE; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_PACKAGING; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_PATH; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_PLATFORM; +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_RELEASE; import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_SCOPE; import static org.carlspring.strongbox.db.schema.Properties.CREATED; import static org.carlspring.strongbox.db.schema.Properties.DOWNLOAD_COUNT; @@ -37,7 +42,6 @@ import static org.carlspring.strongbox.db.schema.Properties.STORAGE_ID; import static org.carlspring.strongbox.db.schema.Properties.UUID; import static org.carlspring.strongbox.db.schema.Properties.VERSION; -import static org.carlspring.strongbox.db.schema.Properties.*; import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT; import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT_COORDINATES; import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT_ID_GROUP;