4141import org .apache .jena .rdf .model .StmtIterator ;
4242import org .slf4j .Logger ;
4343import org .slf4j .LoggerFactory ;
44- import org .spdx .library .InvalidSPDXAnalysisException ;
45- import org .spdx .library .SpdxConstants ;
46- import org .spdx .library .SpdxVerificationHelper ;
47- import org .spdx .library .model .enumerations .AnnotationType ;
48- import org .spdx .library .model .enumerations .RelationshipType ;
44+ import org .spdx .core .InvalidSPDXAnalysisException ;
45+ import org .spdx .library .model . v2 . SpdxConstantsCompatV2 ;
46+ import org .spdx .library .model . v2 . SpdxVerificationHelper ;
47+ import org .spdx .library .model .v2 . enumerations .AnnotationType ;
48+ import org .spdx .library .model .v2 . enumerations .RelationshipType ;
4949
5050/**
5151 * Updates the RDF model for compatibility with the current version of the spec
@@ -61,9 +61,9 @@ public class CompatibilityUpgrader {
6161 Map <String , Map <String , String >> mutableTypePropertyMap = new HashMap <>();
6262 Map <String , String > documentMap = new HashMap <>();
6363 //TODO: In 3.0, uncomment those below to change the spec versions
64- // documentMap.put(SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_SPDX_VERSION,
65- // SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_SPDX_SPEC_VERSION);
66- mutableTypePropertyMap .put (SpdxConstants .CLASS_SPDX_DOCUMENT , Collections .unmodifiableMap (documentMap ));
64+ // documentMap.put(SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_SPDX_VERSION.getName() ,
65+ // SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_SPDX_SPEC_VERSION.getName() );
66+ mutableTypePropertyMap .put (SpdxConstantsCompatV2 .CLASS_SPDX_DOCUMENT , Collections .unmodifiableMap (documentMap ));
6767
6868 TYPE_PROPERTY_MAP = Collections .unmodifiableMap (mutableTypePropertyMap );
6969 }
@@ -79,8 +79,8 @@ public static void upgrade(Model model, String documentNamespace) throws Invalid
7979 // update type property names
8080 for (Entry <String , Map <String , String >> entry :TYPE_PROPERTY_MAP .entrySet ()) {
8181 String query = "SELECT ?s WHERE { ?s <" +
82- RdfSpdxDocumentModelManager .RDF_TYPE + "> <" +
83- SpdxConstants .SPDX_NAMESPACE + entry .getKey () + "> }" ;
82+ RdfSpdxModelManager .RDF_TYPE + "> <" +
83+ SpdxConstantsCompatV2 .SPDX_NAMESPACE + entry .getKey () + "> }" ;
8484 try (QueryExecution qe = QueryExecutionFactory .create (query , model )) {
8585 ResultSet result = qe .execSelect ();
8686 while (result .hasNext ()) {
@@ -117,7 +117,7 @@ public static void upgrade(Model model, String documentNamespace) throws Invalid
117117 private static void upgradeHasFiles (Model model , String documentNamespace ) {
118118 List <Statement > statementsToRemove = new ArrayList <>();
119119 Property hasFileProperty = model .createProperty ("http://spdx.org/rdf/terms#hasFile" );
120- Property relationshipProperty = model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_RELATIONSHIP );
120+ Property relationshipProperty = model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_RELATIONSHIP . getName () );
121121 String query = "SELECT ?s ?o WHERE { ?s <http://spdx.org/rdf/terms#hasFile> ?o }" ;
122122 try (QueryExecution qe = QueryExecutionFactory .create (query , model )) {
123123 ResultSet result = qe .execSelect ();
@@ -130,8 +130,8 @@ private static void upgradeHasFiles(Model model, String documentNamespace) {
130130 List <Statement > foundContainsRelationships = new ArrayList <>();
131131 pkg .listProperties (relationshipProperty ).forEach ((stmt ) -> {
132132 Resource existingRelationship = stmt .getObject ().asResource ();
133- Resource relatedElement = existingRelationship .getPropertyResourceValue (model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_RELATED_SPDX_ELEMENT ));
134- Resource relationshipType = existingRelationship .getPropertyResourceValue (model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_RELATIONSHIP_TYPE ));
133+ Resource relatedElement = existingRelationship .getPropertyResourceValue (model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_RELATED_SPDX_ELEMENT . getName () ));
134+ Resource relationshipType = existingRelationship .getPropertyResourceValue (model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_RELATIONSHIP_TYPE . getName () ));
135135 if (relatedElement .isURIResource () && file .isURIResource () && relationshipType .isURIResource () &&
136136 relatedElement .getURI ().equals (file .getURI ()) &&
137137 relationshipType .getURI ().equals (RelationshipType .CONTAINS .getIndividualURI ())) {
@@ -201,17 +201,16 @@ private static void upgradeExternalDocumentRefs(Model model, String documentName
201201 * @param documentNamespace
202202 * @throws InvalidSPDXAnalysisException
203203 */
204- @ SuppressWarnings ("deprecation" )
205204 private static void upgradeReviewers (Model model , String documentNamespace ) throws InvalidSPDXAnalysisException {
206- Resource document = model .createResource (documentNamespace + "#" + SpdxConstants .SPDX_DOCUMENT_ID );
207- Property annotationProperty = model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_ANNOTATION );
205+ Resource document = model .createResource (documentNamespace + "#" + SpdxConstantsCompatV2 .SPDX_DOCUMENT_ID );
206+ Property annotationProperty = model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_ANNOTATION . getName () );
208207 Resource reviewerType = model .createResource (AnnotationType .REVIEW .getIndividualURI ());
209- Property typeProperty = model .createProperty (RdfSpdxDocumentModelManager .RDF_TYPE );
210- Resource annotationClass = model .createResource (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .CLASS_ANNOTATION );
211- Property commentProperty = model .createProperty (SpdxConstants .RDFS_NAMESPACE + SpdxConstants .RDFS_PROP_COMMENT );
212- Property annotatorProperty = model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_ANNOTATOR );
213- Property annotationDateProperty = model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_ANNOTATION_DATE );
214- Property annotationTypeProperty = model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_ANNOTATION_TYPE );
208+ Property typeProperty = model .createProperty (RdfSpdxModelManager .RDF_TYPE );
209+ Resource annotationClass = model .createResource (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .CLASS_ANNOTATION );
210+ Property commentProperty = model .createProperty (SpdxConstantsCompatV2 .RDFS_NAMESPACE + SpdxConstantsCompatV2 .RDFS_PROP_COMMENT . getName () );
211+ Property annotatorProperty = model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_ANNOTATOR . getName () );
212+ Property annotationDateProperty = model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_ANNOTATION_DATE . getName () );
213+ Property annotationTypeProperty = model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_ANNOTATION_TYPE . getName () );
215214 List <Statement > statementsToRemove = new ArrayList <>();
216215 Set <Integer > addedAnnotations = new HashSet <>(); // to prevent duplicates
217216 String query = "SELECT ?s ?o WHERE { ?s <http://spdx.org/rdf/terms#reviewer> ?o }" ;
@@ -226,7 +225,7 @@ private static void upgradeReviewers(Model model, String documentNamespace) thro
226225 String reviewDate ;
227226 try {
228227 reviewDate = review .getRequiredProperty (model .createProperty (
229- SpdxConstants .SPDX_NAMESPACE + SpdxConstants . PROP_REVIEW_DATE ))
228+ SpdxConstantsCompatV2 .SPDX_NAMESPACE + "reviewDate" ))
230229 .getString ();
231230 if (Objects .isNull (reviewDate )) {
232231 throw new InvalidSPDXAnalysisException ("Missing or invalid review date for review" );
@@ -258,7 +257,7 @@ private static void upgradeReviewers(Model model, String documentNamespace) thro
258257 annotation .addProperty (annotationTypeProperty , reviewerType );
259258 document .addProperty (annotationProperty , annotation );
260259 }
261- StmtIterator iter = document .listProperties (model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_SPDX_REVIEWED_BY ));
260+ StmtIterator iter = document .listProperties (model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_SPDX_REVIEWED_BY . getName () ));
262261 while (iter .hasNext ()) {
263262 statementsToRemove .add (iter .next ());
264263 }
@@ -277,7 +276,7 @@ private static void upgradeArtifactOf(Model model, String documentNamespace) thr
277276 Set <String > addedDoapProjects = new HashSet <String >(); // prevent duplicates
278277 List <Statement > statementsToRemove = new ArrayList <>();
279278 Property artifactOfProperty = model .createProperty ("http://spdx.org/rdf/terms#artifactOf" );
280- Property relationshipProperty = model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_RELATIONSHIP );
279+ Property relationshipProperty = model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_RELATIONSHIP . getName () );
281280 String query = "SELECT ?s ?o WHERE { ?s <http://spdx.org/rdf/terms#artifactOf> ?o }" ;
282281 try (QueryExecution qe = QueryExecutionFactory .create (query , model )) {
283282 ResultSet result = qe .execSelect ();
@@ -313,10 +312,10 @@ private static void upgradeArtifactOf(Model model, String documentNamespace) thr
313312 */
314313 private static Resource createRelationship (Model model , Resource relatedElement , RelationshipType relationshipType ) {
315314 Resource retval = model .createResource ();
316- retval .addProperty (model .createProperty (RdfSpdxDocumentModelManager .RDF_TYPE ),
317- model .createResource (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .CLASS_RELATIONSHIP ));
318- retval .addProperty (model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_RELATED_SPDX_ELEMENT ), relatedElement );
319- retval .addProperty (model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_RELATIONSHIP_TYPE ),
315+ retval .addProperty (model .createProperty (RdfSpdxModelManager .RDF_TYPE ),
316+ model .createResource (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .CLASS_RELATIONSHIP ));
317+ retval .addProperty (model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_RELATED_SPDX_ELEMENT . getName () ), relatedElement );
318+ retval .addProperty (model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_RELATIONSHIP_TYPE . getName () ),
320319 model .createResource (relationshipType .getIndividualURI ()));
321320 return retval ;
322321 }
@@ -348,23 +347,23 @@ private static int getNexId(Model model, String docNamespace, String idPrefix, i
348347 private static Resource convertDoapProjectToSpdxPackage (Model model , Resource doapProject , String packageUri ) throws InvalidSPDXAnalysisException {
349348 String packageName ;
350349 try {
351- packageName = doapProject .getProperty (model .createProperty (SpdxConstants .DOAP_NAMESPACE + SpdxConstants .PROP_NAME )).getString ();
350+ packageName = doapProject .getProperty (model .createProperty (SpdxConstantsCompatV2 .DOAP_NAMESPACE + SpdxConstantsCompatV2 .PROP_NAME . getName () )).getString ();
352351 } catch (Exception ex ) {
353352 throw new InvalidSPDXAnalysisException ("DOAP project name is not a valid string" );
354353 }
355354 if (Objects .isNull (packageName )) {
356355 throw new InvalidSPDXAnalysisException ("Missing required DOAP project name" );
357356 }
358357 String homePage = null ;
359- Property homePageProperty = model .createProperty (SpdxConstants .DOAP_NAMESPACE + SpdxConstants .PROP_PROJECT_HOMEPAGE );
358+ Property homePageProperty = model .createProperty (SpdxConstantsCompatV2 .DOAP_NAMESPACE + SpdxConstantsCompatV2 .PROP_PROJECT_HOMEPAGE . getName () );
360359 try {
361360 homePage = doapProject .getProperty (homePageProperty ).getString ();
362361 } catch (Exception ex ) {
363362 homePage = null ;
364363 }
365364 String addedPackageComment = "This package was converted from a DOAP Project by the same name" ;
366- Property commentProperty = model .createProperty (SpdxConstants .RDFS_NAMESPACE + SpdxConstants .RDFS_PROP_COMMENT );
367- Property nameProperty = model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_NAME );
365+ Property commentProperty = model .createProperty (SpdxConstantsCompatV2 .RDFS_NAMESPACE + SpdxConstantsCompatV2 .RDFS_PROP_COMMENT . getName () );
366+ Property nameProperty = model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_NAME . getName () );
368367 // See if there is already a package matching the name and home page
369368 ResIterator iter = model .listResourcesWithProperty (nameProperty , packageName );
370369 while (iter .hasNext ()) {
@@ -385,21 +384,21 @@ private static Resource convertDoapProjectToSpdxPackage(Model model, Resource do
385384 }
386385 }
387386 Resource retval = model .createResource (packageUri );
388- retval .addProperty (model .createProperty (RdfSpdxDocumentModelManager .RDF_TYPE ),
389- model .createResource (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .CLASS_SPDX_PACKAGE ));
387+ retval .addProperty (model .createProperty (RdfSpdxModelManager .RDF_TYPE ),
388+ model .createResource (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .CLASS_SPDX_PACKAGE ));
390389 // download location
391- Resource noAssertion = model .createResource (SpdxConstants .URI_VALUE_NOASSERTION );
392- retval .addProperty (model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_PACKAGE_DOWNLOAD_URL ), noAssertion );
390+ Resource noAssertion = model .createResource (SpdxConstantsCompatV2 .URI_VALUE_NOASSERTION );
391+ retval .addProperty (model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_PACKAGE_DOWNLOAD_URL . getName () ), noAssertion );
393392 // concludedLicense
394- retval .addProperty (model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_PACKAGE_CONCLUDED_LICENSE ), noAssertion );
393+ retval .addProperty (model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_PACKAGE_CONCLUDED_LICENSE . getName () ), noAssertion );
395394 // declaredLicense
396- retval .addProperty (model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_PACKAGE_DECLARED_LICENSE ), noAssertion );
395+ retval .addProperty (model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_PACKAGE_DECLARED_LICENSE . getName () ), noAssertion );
397396 // copyright
398- retval .addProperty (model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_PACKAGE_DECLARED_COPYRIGHT ), noAssertion );
397+ retval .addProperty (model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_PACKAGE_DECLARED_COPYRIGHT . getName () ), noAssertion );
399398 // comment
400399 retval .addProperty (commentProperty , addedPackageComment );
401400 // filesAnalyzed
402- retval .addLiteral (model .createProperty (SpdxConstants .SPDX_NAMESPACE + SpdxConstants .PROP_PACKAGE_FILES_ANALYZED ), false );
401+ retval .addLiteral (model .createProperty (SpdxConstantsCompatV2 .SPDX_NAMESPACE + SpdxConstantsCompatV2 .PROP_PACKAGE_FILES_ANALYZED . getName () ), false );
403402 // name
404403 retval .addLiteral (nameProperty , packageName );
405404 // homePage
0 commit comments