|
2 | 2 |
|
3 | 3 | import static org.carlspring.strongbox.db.schema.Edges.ARTIFACT_COORDINATES_INHERIT_GENERIC_ARTIFACT_COORDINATES;
|
4 | 4 | import static org.carlspring.strongbox.db.schema.Edges.ARTIFACT_GROUP_HAS_ARTIFACTS;
|
| 5 | +import static org.carlspring.strongbox.db.schema.Edges.ARTIFACT_HAS_ARTIFACT_ARCHIVE_LISTING; |
5 | 6 | import static org.carlspring.strongbox.db.schema.Edges.ARTIFACT_HAS_ARTIFACT_COORDINATES;
|
6 | 7 | import static org.carlspring.strongbox.db.schema.Edges.ARTIFACT_HAS_TAGS;
|
7 | 8 | import static org.carlspring.strongbox.db.schema.Edges.REMOTE_ARTIFACT_INHERIT_ARTIFACT;
|
| 9 | +import static org.carlspring.strongbox.db.schema.Properties.CACHED; |
| 10 | +import static org.carlspring.strongbox.db.schema.Properties.CHECKSUMS; |
| 11 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_ABI; |
| 12 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_ARCHITECTURE; |
| 13 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_ARTIFACT_ID; |
| 14 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_BASE_NAME; |
| 15 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_BUILD; |
| 16 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_CLASSIFIER; |
| 17 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_DISTRIBUTION; |
| 18 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_EXTENSION; |
| 19 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_FILENAME; |
| 20 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_GROUP_ID; |
| 21 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_ID; |
| 22 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_LANGUAGE_IMPLEMENTATION_VERSION; |
| 23 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_NAME; |
| 24 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_PACKAGE_TYPE; |
| 25 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_PACKAGING; |
| 26 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_PATH; |
| 27 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_PLATFORM; |
| 28 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_RELEASE; |
| 29 | +import static org.carlspring.strongbox.db.schema.Properties.COORDINATES_SCOPE; |
| 30 | +import static org.carlspring.strongbox.db.schema.Properties.CREATED; |
| 31 | +import static org.carlspring.strongbox.db.schema.Properties.DOWNLOAD_COUNT; |
| 32 | +import static org.carlspring.strongbox.db.schema.Properties.ENABLED; |
| 33 | +import static org.carlspring.strongbox.db.schema.Properties.FILE_NAME; |
| 34 | +import static org.carlspring.strongbox.db.schema.Properties.LAST_UPDATED; |
| 35 | +import static org.carlspring.strongbox.db.schema.Properties.LAST_USED; |
| 36 | +import static org.carlspring.strongbox.db.schema.Properties.NAME; |
| 37 | +import static org.carlspring.strongbox.db.schema.Properties.PASSWORD; |
| 38 | +import static org.carlspring.strongbox.db.schema.Properties.REPOSITORY_ID; |
| 39 | +import static org.carlspring.strongbox.db.schema.Properties.ROLES; |
| 40 | +import static org.carlspring.strongbox.db.schema.Properties.SECURITY_TOKEN_KEY; |
| 41 | +import static org.carlspring.strongbox.db.schema.Properties.SIZE_IN_BYTES; |
| 42 | +import static org.carlspring.strongbox.db.schema.Properties.SOURCE_ID; |
| 43 | +import static org.carlspring.strongbox.db.schema.Properties.STORAGE_ID; |
| 44 | +import static org.carlspring.strongbox.db.schema.Properties.USERNAME; |
| 45 | +import static org.carlspring.strongbox.db.schema.Properties.UUID; |
| 46 | +import static org.carlspring.strongbox.db.schema.Properties.VERSION; |
8 | 47 | import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT;
|
| 48 | +import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT_ARCHIVE_LISTING; |
9 | 49 | import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT_COORDINATES;
|
10 | 50 | import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT_ID_GROUP;
|
11 | 51 | import static org.carlspring.strongbox.db.schema.Vertices.ARTIFACT_TAG;
|
12 | 52 | import static org.carlspring.strongbox.db.schema.Vertices.GENERIC_ARTIFACT_COORDINATES;
|
13 |
| -import static org.carlspring.strongbox.db.schema.Vertices.RAW_ARTIFACT_COORDINATES; |
14 | 53 | import static org.carlspring.strongbox.db.schema.Vertices.MAVEN_ARTIFACT_COORDINATES;
|
15 | 54 | import static org.carlspring.strongbox.db.schema.Vertices.NPM_ARTIFACT_COORDINATES;
|
16 | 55 | import static org.carlspring.strongbox.db.schema.Vertices.NUGET_ARTIFACT_COORDINATES;
|
17 | 56 | import static org.carlspring.strongbox.db.schema.Vertices.PYPI_ARTIFACT_COORDINATES;
|
| 57 | +import static org.carlspring.strongbox.db.schema.Vertices.RAW_ARTIFACT_COORDINATES; |
18 | 58 | import static org.carlspring.strongbox.db.schema.Vertices.REMOTE_ARTIFACT;
|
19 | 59 | import static org.carlspring.strongbox.db.schema.Vertices.USER;
|
20 | 60 | import static org.janusgraph.core.Multiplicity.MANY2ONE;
|
@@ -228,78 +268,83 @@ private void applySchemaChanges(JanusGraphManagement jgm)
|
228 | 268 | makeVertexLabelIfDoesNotExist(jgm, ARTIFACT_TAG);
|
229 | 269 | makeVertexLabelIfDoesNotExist(jgm, ARTIFACT_ID_GROUP);
|
230 | 270 | makeVertexLabelIfDoesNotExist(jgm, USER);
|
| 271 | + makeVertexLabelIfDoesNotExist(jgm, ARTIFACT_ARCHIVE_LISTING); |
231 | 272 |
|
232 | 273 | // Edges
|
233 | 274 | makeEdgeLabelIfDoesNotExist(jgm, ARTIFACT_HAS_ARTIFACT_COORDINATES, MANY2ONE);
|
234 | 275 | makeEdgeLabelIfDoesNotExist(jgm, ARTIFACT_HAS_TAGS, MULTI);
|
235 | 276 | makeEdgeLabelIfDoesNotExist(jgm, REMOTE_ARTIFACT_INHERIT_ARTIFACT, ONE2ONE);
|
236 | 277 | makeEdgeLabelIfDoesNotExist(jgm, ARTIFACT_COORDINATES_INHERIT_GENERIC_ARTIFACT_COORDINATES, ONE2ONE);
|
237 | 278 | makeEdgeLabelIfDoesNotExist(jgm, ARTIFACT_GROUP_HAS_ARTIFACTS, ONE2MANY);
|
238 |
| - |
| 279 | + makeEdgeLabelIfDoesNotExist(jgm, ARTIFACT_HAS_ARTIFACT_ARCHIVE_LISTING, MANY2ONE); |
| 280 | + |
239 | 281 | }
|
240 | 282 |
|
241 | 283 | private void createProperties(JanusGraphManagement jgm)
|
242 | 284 | {
|
243 |
| - makePropertyKeyIfDoesNotExist(jgm, "uuid", String.class).ifPresent(p -> jgm.setConsistency(p, ConsistencyModifier.LOCK)); |
244 |
| - makePropertyKeyIfDoesNotExist(jgm, "storageId", String.class); |
245 |
| - makePropertyKeyIfDoesNotExist(jgm, "repositoryId", String.class); |
246 |
| - makePropertyKeyIfDoesNotExist(jgm, "name", String.class); |
247 |
| - makePropertyKeyIfDoesNotExist(jgm, "lastUpdated", Long.class, Cardinality.SINGLE); |
248 |
| - |
249 |
| - //Artifact |
250 |
| - makePropertyKeyIfDoesNotExist(jgm, "sizeInBytes", Long.class, Cardinality.SINGLE); |
251 |
| - makePropertyKeyIfDoesNotExist(jgm, "lastUsed", Long.class, Cardinality.SINGLE); |
252 |
| - makePropertyKeyIfDoesNotExist(jgm, "created", Long.class, Cardinality.SINGLE); |
253 |
| - makePropertyKeyIfDoesNotExist(jgm, "downloadCount", Integer.class, Cardinality.SINGLE); |
254 |
| - makePropertyKeyIfDoesNotExist(jgm, "filenames", String.class, Cardinality.SET); |
255 |
| - makePropertyKeyIfDoesNotExist(jgm, "checksums", String.class, Cardinality.SET); |
256 |
| - |
257 |
| - //RemoteArtifact |
258 |
| - makePropertyKeyIfDoesNotExist(jgm, "cached", Boolean.class, Cardinality.SINGLE); |
| 285 | + makePropertyKeyIfDoesNotExist(jgm, UUID, |
| 286 | + String.class).ifPresent(p -> jgm.setConsistency(p, ConsistencyModifier.LOCK)); |
| 287 | + makePropertyKeyIfDoesNotExist(jgm, STORAGE_ID, String.class); |
| 288 | + makePropertyKeyIfDoesNotExist(jgm, REPOSITORY_ID, String.class); |
| 289 | + makePropertyKeyIfDoesNotExist(jgm, NAME, String.class); |
| 290 | + makePropertyKeyIfDoesNotExist(jgm, LAST_UPDATED, Long.class, Cardinality.SINGLE); |
259 | 291 |
|
260 |
| - //Common coordinates |
261 |
| - makePropertyKeyIfDoesNotExist(jgm, "version", String.class, Cardinality.SINGLE); |
262 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.extension", String.class, Cardinality.SINGLE); |
263 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.name", String.class, Cardinality.SINGLE); |
264 |
| - |
265 |
| - //Maven |
266 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.groupId", String.class, Cardinality.SINGLE); |
267 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.artifactId", String.class, Cardinality.SINGLE); |
268 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.classifier", String.class, Cardinality.SINGLE); |
269 |
| - |
270 |
| - //Npm |
271 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.scope", String.class, Cardinality.SINGLE); |
272 |
| - |
273 |
| - //Nuget |
274 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.id", String.class, Cardinality.SINGLE); |
275 |
| - |
276 |
| - //P2 |
277 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.filename", String.class, Cardinality.SINGLE); |
278 |
| - |
279 |
| - //Pypi |
280 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.build", String.class, Cardinality.SINGLE); |
281 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.languageImplementationVersion", String.class, Cardinality.SINGLE); |
282 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.abi", String.class, Cardinality.SINGLE); |
283 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.platform", String.class, Cardinality.SINGLE); |
284 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.packaging", String.class, Cardinality.SINGLE); |
285 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.distribution", String.class, Cardinality.SINGLE); |
286 |
| - |
287 |
| - //Raw |
288 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.path", String.class, Cardinality.SINGLE); |
289 |
| - |
290 |
| - //Rpm |
291 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.base_name", String.class, Cardinality.SINGLE); |
292 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.release", String.class, Cardinality.SINGLE); |
293 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.architecture", String.class, Cardinality.SINGLE); |
294 |
| - makePropertyKeyIfDoesNotExist(jgm, "coordinates.package_type", String.class, Cardinality.SINGLE); |
| 292 | + // Artifact |
| 293 | + makePropertyKeyIfDoesNotExist(jgm, SIZE_IN_BYTES, Long.class, Cardinality.SINGLE); |
| 294 | + makePropertyKeyIfDoesNotExist(jgm, LAST_USED, Long.class, Cardinality.SINGLE); |
| 295 | + makePropertyKeyIfDoesNotExist(jgm, CREATED, Long.class, Cardinality.SINGLE); |
| 296 | + makePropertyKeyIfDoesNotExist(jgm, DOWNLOAD_COUNT, Integer.class, Cardinality.SINGLE); |
| 297 | + makePropertyKeyIfDoesNotExist(jgm, CHECKSUMS, String.class, Cardinality.SET); |
| 298 | + |
| 299 | + // RemoteArtifact |
| 300 | + makePropertyKeyIfDoesNotExist(jgm, CACHED, Boolean.class, Cardinality.SINGLE); |
| 301 | + |
| 302 | + // Common coordinates |
| 303 | + makePropertyKeyIfDoesNotExist(jgm, VERSION, String.class, Cardinality.SINGLE); |
| 304 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_EXTENSION, String.class, Cardinality.SINGLE); |
| 305 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_NAME, String.class, Cardinality.SINGLE); |
| 306 | + |
| 307 | + // Maven |
| 308 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_GROUP_ID, String.class, Cardinality.SINGLE); |
| 309 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_ARTIFACT_ID, String.class, Cardinality.SINGLE); |
| 310 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_CLASSIFIER, String.class, Cardinality.SINGLE); |
| 311 | + |
| 312 | + // Npm |
| 313 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_SCOPE, String.class, Cardinality.SINGLE); |
| 314 | + |
| 315 | + // Nuget |
| 316 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_ID, String.class, Cardinality.SINGLE); |
| 317 | + |
| 318 | + // P2 |
| 319 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_FILENAME, String.class, Cardinality.SINGLE); |
295 | 320 |
|
296 |
| - //User |
297 |
| - makePropertyKeyIfDoesNotExist(jgm, "username", String.class, Cardinality.SINGLE); |
298 |
| - makePropertyKeyIfDoesNotExist(jgm, "password", String.class, Cardinality.SINGLE); |
299 |
| - makePropertyKeyIfDoesNotExist(jgm, "enabled", Boolean.class, Cardinality.SINGLE); |
300 |
| - makePropertyKeyIfDoesNotExist(jgm, "roles", String.class, Cardinality.SET); |
301 |
| - makePropertyKeyIfDoesNotExist(jgm, "securityTokenKey", String.class, Cardinality.SINGLE); |
302 |
| - makePropertyKeyIfDoesNotExist(jgm, "sourceId", String.class, Cardinality.SINGLE); |
| 321 | + // Pypi |
| 322 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_BUILD, String.class, Cardinality.SINGLE); |
| 323 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_LANGUAGE_IMPLEMENTATION_VERSION, String.class, Cardinality.SINGLE); |
| 324 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_ABI, String.class, Cardinality.SINGLE); |
| 325 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_PLATFORM, String.class, Cardinality.SINGLE); |
| 326 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_PACKAGING, String.class, Cardinality.SINGLE); |
| 327 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_DISTRIBUTION, String.class, Cardinality.SINGLE); |
| 328 | + |
| 329 | + // Raw |
| 330 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_PATH, String.class, Cardinality.SINGLE); |
| 331 | + |
| 332 | + // Rpm |
| 333 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_BASE_NAME, String.class, Cardinality.SINGLE); |
| 334 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_RELEASE, String.class, Cardinality.SINGLE); |
| 335 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_ARCHITECTURE, String.class, Cardinality.SINGLE); |
| 336 | + makePropertyKeyIfDoesNotExist(jgm, COORDINATES_PACKAGE_TYPE, String.class, Cardinality.SINGLE); |
| 337 | + |
| 338 | + // User |
| 339 | + makePropertyKeyIfDoesNotExist(jgm, USERNAME, String.class, Cardinality.SINGLE); |
| 340 | + makePropertyKeyIfDoesNotExist(jgm, PASSWORD, String.class, Cardinality.SINGLE); |
| 341 | + makePropertyKeyIfDoesNotExist(jgm, ENABLED, Boolean.class, Cardinality.SINGLE); |
| 342 | + makePropertyKeyIfDoesNotExist(jgm, ROLES, String.class, Cardinality.SET); |
| 343 | + makePropertyKeyIfDoesNotExist(jgm, SECURITY_TOKEN_KEY, String.class, Cardinality.SINGLE); |
| 344 | + makePropertyKeyIfDoesNotExist(jgm, SOURCE_ID, String.class, Cardinality.SINGLE); |
| 345 | + |
| 346 | + // ArtifactArchiveListing |
| 347 | + makePropertyKeyIfDoesNotExist(jgm, FILE_NAME, String.class, Cardinality.SINGLE); |
303 | 348 | }
|
304 | 349 |
|
305 | 350 | private Optional<String> buildIndexIfNecessary(final JanusGraphManagement jgm,
|
|
0 commit comments