Skip to content

Commit

Permalink
Merge pull request #63 from spdx/v23
Browse files Browse the repository at this point in the history
Update ToolsJava to support spec version 2.3
  • Loading branch information
goneall authored Aug 13, 2022
2 parents 07832f0 + f8c960c commit f2e7d6e
Show file tree
Hide file tree
Showing 17 changed files with 6,567 additions and 369 deletions.
2 changes: 2 additions & 0 deletions examples/org/spdx/examples/SimpleSpdxDocument.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@
import org.spdx.library.InvalidSPDXAnalysisException;
import org.spdx.library.ModelCopyManager;
import org.spdx.library.SpdxConstants;
import org.spdx.library.model.Relationship;
import org.spdx.library.model.SpdxDocument;
import org.spdx.library.model.SpdxModelFactory;
import org.spdx.library.model.SpdxPackage;
import org.spdx.library.model.enumerations.RelationshipType;
import org.spdx.library.model.license.AnyLicenseInfo;
import org.spdx.library.model.license.LicenseInfoFactory;
import org.spdx.storage.IModelStore.IdType;
Expand Down
12 changes: 6 additions & 6 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>org.spdx</groupId>
<artifactId>tools-java</artifactId>
<version>1.0.5-SNAPSHOT</version>
<version>1.1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>tools-java</name>
Expand Down Expand Up @@ -102,17 +102,17 @@
<dependency>
<groupId>org.spdx</groupId>
<artifactId>java-spdx-library</artifactId>
<version>1.0.10</version>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.spdx</groupId>
<artifactId>spdx-rdf-store</artifactId>
<version>1.0.4</version>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.spdx</groupId>
<artifactId>spdx-jackson-store</artifactId>
<version>1.0.4</version>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.ws.xmlschema</groupId>
Expand All @@ -122,12 +122,12 @@
<dependency>
<groupId>org.spdx</groupId>
<artifactId>spdx-spreadsheet-store</artifactId>
<version>1.0.3</version>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.spdx</groupId>
<artifactId>spdx-tagvalue-store</artifactId>
<version>1.0.4</version>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>com.github.java-json-tools</groupId>
Expand Down
681 changes: 350 additions & 331 deletions resources/spdx-schema.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/main/java/org/spdx/tools/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
*/
public class Main {

private static final String CURRENT_TOOL_VERSION = "1.0.3";
private static final String CURRENT_TOOL_VERSION = "1.0.5";

/**
* @param args args[0] is the name of the tools with the remaining args being the tool parameters
Expand Down
8 changes: 7 additions & 1 deletion src/main/java/org/spdx/tools/Verify.java
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,13 @@ public static List<String> verify(String filePath, SerFileType fileType) throws
retval.add("Unable to validate JSON file against schema due to processing exception");
}
}
List<String> verify = doc.verify();
List<String> verify;
try {
verify = doc.verify(doc.getSpecVersion());
} catch (InvalidSPDXAnalysisException e) {
retval.add("Error processing verify for the specific version");
verify = doc.verify();
}

if (!verify.isEmpty()) {
for (String verifyMsg:verify) {
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,11 @@ private ObjectNode derivePropertySchema(OntProperty property, PropertyRestrictio
propertySchema.put(JSON_RESTRICTION_TYPE, JSON_TYPE_STRING);
ArrayNode enums = jsonMapper.createArrayNode();
for (String val:restrictions.getEnumValues()) {
enums.add(val);
if (property.getLocalName().equals("algorithm") || property.getLocalName().equals("referenceCategory")) {
enums.add(val.replaceAll("_", "-"));
} else {
enums.add(val);
}
}
propertySchema.set("enum", enums);
} else if (restrictions.getTypeUri().equals("http://www.w3.org/2000/01/rdf-schema#Literal")) {
Expand Down
63 changes: 49 additions & 14 deletions src/test/java/org/spdx/tools/CompareSpdxDocsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,14 @@
package org.spdx.tools;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Objects;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.spdx.library.InvalidSPDXAnalysisException;
import org.spdx.spreadsheetstore.SpreadsheetException;
import org.spdx.tools.compare.DocumentSheet;
import org.spdx.tools.compare.MultiDocumentSpreadsheet;
Expand All @@ -41,13 +43,22 @@
public class CompareSpdxDocsTest extends TestCase {

static final String TEST_DIR = "testResources";
static final String TEST_JSON_FILE_PATH = TEST_DIR + File.separator + "SPDXJSONExample-v2.2.spdx.json";
static final String TEST_RDF_FILE_PATH = TEST_DIR + File.separator + "SPDXRdfExample-v2.2.spdx.rdf";
static final String TEST_SPREADSHEET_XLS_FILE_PATH = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.2.xls";
static final String TEST_SPREADSHEET_XLSX_FILE_PATH = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.2.xlsx";
static final String TEST_TAG_FILE_PATH = TEST_DIR + File.separator + "SPDXTagExample-v2.2.spdx";
static final String TEST_XML_FILE_PATH = TEST_DIR + File.separator + "SPDXXMLExample-v2.2.spdx.xml";
static final String TEST_YAML_FILE_PATH = TEST_DIR + File.separator + "SPDXYAMLExample-2.2.spdx.yaml";
static final String TEST_JSON_FILE_PATH_22 = TEST_DIR + File.separator + "SPDXJSONExample-v2.2.spdx.json";
static final String TEST_RDF_FILE_PATH_22 = TEST_DIR + File.separator + "SPDXRdfExample-v2.2.spdx.rdf";
static final String TEST_SPREADSHEET_XLS_FILE_PATH_22 = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.2.xls";
static final String TEST_SPREADSHEET_XLSX_FILE_PATH_22 = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.2.xlsx";
static final String TEST_TAG_FILE_PATH_22 = TEST_DIR + File.separator + "SPDXTagExample-v2.2.spdx";
static final String TEST_XML_FILE_PATH_22 = TEST_DIR + File.separator + "SPDXXMLExample-v2.2.spdx.xml";
static final String TEST_YAML_FILE_PATH_22 = TEST_DIR + File.separator + "SPDXYAMLExample-2.2.spdx.yaml";

static final String TEST_JSON_FILE_PATH_23 = TEST_DIR + File.separator + "SPDXJSONExample-v2.3.spdx.json";
static final String TEST_RDF_FILE_PATH_23 = TEST_DIR + File.separator + "SPDXRdfExample-v2.3.spdx.rdf";
static final String TEST_SPREADSHEET_XLS_FILE_PATH_23 = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.3.xls";
static final String TEST_SPREADSHEET_XLSX_FILE_PATH_23 = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.3.xlsx";
static final String TEST_TAG_FILE_PATH_23 = TEST_DIR + File.separator + "SPDXTagExample-v2.3.spdx";
static final String TEST_XML_FILE_PATH_23 = TEST_DIR + File.separator + "SPDXXMLExample-v2.3.spdx.xml";
static final String TEST_YAML_FILE_PATH_23 = TEST_DIR + File.separator + "SPDXYAMLExample-2.3.spdx.yaml";

static final String TEST_DIFF_FILE_COMMNENT_FILE_PATH = TEST_DIR + File.separator + "DifferentFileComment.spdx.yaml";


Expand All @@ -69,13 +80,36 @@ protected void tearDown() throws Exception {
SpdxConverterTest.deleteDirAndFiles(tempDirPath);
}

public void testCompareDocuments() throws OnlineToolException, SpreadsheetException {
public void testCompareDocumentsv23() throws OnlineToolException, InvalidSPDXAnalysisException, IOException, InvalidFileNameException {
String outputFilePath = tempDirPath + File.separator + "comp.xlsx";
String[] params = new String[] {outputFilePath,
TEST_JSON_FILE_PATH_23,
TEST_RDF_FILE_PATH_23,
TEST_SPREADSHEET_XLS_FILE_PATH_23,
TEST_SPREADSHEET_XLSX_FILE_PATH_23,
TEST_TAG_FILE_PATH_23,
TEST_XML_FILE_PATH_23,
TEST_YAML_FILE_PATH_23
};
CompareSpdxDocs.onlineFunction(params);
MultiDocumentSpreadsheet result = new MultiDocumentSpreadsheet(new File(outputFilePath), false, true);
DocumentSheet docSheet = result.getDocumentSheet();
Row resultRow = docSheet.getSheet().getRow(docSheet.getFirstDataRow());
Cell cell = resultRow.getCell(1);
int nextCol = 2;
while (Objects.nonNull(cell) && !cell.getStringCellValue().isEmpty()) {
assertTrue("Equals".equals(cell.getStringCellValue()) || "N/A".equals(cell.getStringCellValue()));
cell = resultRow.getCell(nextCol++);
}
}

public void testCompareDocumentsv22() throws OnlineToolException, SpreadsheetException {
String outputFilePath = tempDirPath + File.separator + "comp.xlsx";
String[] params = new String[] {outputFilePath, TEST_JSON_FILE_PATH,
TEST_RDF_FILE_PATH,
TEST_SPREADSHEET_XLS_FILE_PATH, TEST_SPREADSHEET_XLSX_FILE_PATH, TEST_TAG_FILE_PATH,
TEST_XML_FILE_PATH,
TEST_YAML_FILE_PATH
String[] params = new String[] {outputFilePath, TEST_JSON_FILE_PATH_22,
TEST_RDF_FILE_PATH_22, TEST_SPREADSHEET_XLS_FILE_PATH_22,
TEST_SPREADSHEET_XLSX_FILE_PATH_22, TEST_TAG_FILE_PATH_22,
TEST_XML_FILE_PATH_22,
TEST_YAML_FILE_PATH_22
};
CompareSpdxDocs.onlineFunction(params);
MultiDocumentSpreadsheet result = new MultiDocumentSpreadsheet(new File(outputFilePath), false, true);
Expand All @@ -89,10 +123,11 @@ public void testCompareDocuments() throws OnlineToolException, SpreadsheetExcept
}
}


public void testDifferentDocuments() throws OnlineToolException, SpreadsheetException {
String outputFilePath = tempDirPath + File.separator + "comp.xlsx";
String[] params = new String[] {outputFilePath,
TEST_YAML_FILE_PATH, TEST_DIFF_FILE_COMMNENT_FILE_PATH
TEST_YAML_FILE_PATH_22, TEST_DIFF_FILE_COMMNENT_FILE_PATH
};
CompareSpdxDocs.onlineFunction(params);
MultiDocumentSpreadsheet result = new MultiDocumentSpreadsheet(new File(outputFilePath), false, true);
Expand Down
14 changes: 7 additions & 7 deletions src/test/java/org/spdx/tools/SpdxConverterTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,13 @@
public class SpdxConverterTest extends TestCase {

static final String TEST_DIR = "testResources";
static final String TEST_JSON_FILE_PATH = TEST_DIR + File.separator + "SPDXJSONExample-v2.2.spdx.json";
static final String TEST_RDF_FILE_PATH = TEST_DIR + File.separator + "SPDXRdfExample-v2.2.spdx.rdf";
static final String TEST_SPREADSHEET_XLS_FILE_PATH = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.2.xls";
static final String TEST_SPREADSHEET_XLSX_FILE_PATH = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.2.xlsx";
static final String TEST_TAG_FILE_PATH = TEST_DIR + File.separator + "SPDXTagExample-v2.2.spdx";
static final String TEST_XML_FILE_PATH = TEST_DIR + File.separator + "SPDXXMLExample-v2.2.spdx.xml";
static final String TEST_YAML_FILE_PATH = TEST_DIR + File.separator + "SPDXYAMLExample-2.2.spdx.yaml";
static final String TEST_JSON_FILE_PATH = TEST_DIR + File.separator + "SPDXJSONExample-v2.3.spdx.json";
static final String TEST_RDF_FILE_PATH = TEST_DIR + File.separator + "SPDXRdfExample-v2.3.spdx.rdf";
static final String TEST_SPREADSHEET_XLS_FILE_PATH = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.3.xls";
static final String TEST_SPREADSHEET_XLSX_FILE_PATH = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.3.xlsx";
static final String TEST_TAG_FILE_PATH = TEST_DIR + File.separator + "SPDXTagExample-v2.3.spdx";
static final String TEST_XML_FILE_PATH = TEST_DIR + File.separator + "SPDXXMLExample-v2.3.spdx.xml";
static final String TEST_YAML_FILE_PATH = TEST_DIR + File.separator + "SPDXYAMLExample-2.3.spdx.yaml";

Path tempDirPath;
/* (non-Javadoc)
Expand Down
22 changes: 14 additions & 8 deletions src/test/java/org/spdx/tools/VerifyTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@
public class VerifyTest extends TestCase {

static final String TEST_DIR = "testResources";
static final String TEST_JSON_FILE_PATH = TEST_DIR + File.separator + "SPDXJSONExample-v2.2.spdx.json";
static final String TEST_RDF_FILE_PATH = TEST_DIR + File.separator + "SPDXRdfExample-v2.2.spdx.rdf";
static final String TEST_SPREADSHEET_XLS_FILE_PATH = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.2.xls";
static final String TEST_SPREADSHEET_XLSX_FILE_PATH = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.2.xlsx";
static final String TEST_TAG_FILE_PATH = TEST_DIR + File.separator + "SPDXTagExample-v2.2.spdx";
static final String TEST_XML_FILE_PATH = TEST_DIR + File.separator + "SPDXXMLExample-v2.2.spdx.xml";
static final String TEST_YAML_FILE_PATH = TEST_DIR + File.separator + "SPDXYAMLExample-2.2.spdx.yaml";
static final String TEST_JSON_FILE_PATH = TEST_DIR + File.separator + "SPDXJSONExample-v2.3.spdx.json";
static final String TEST_V23_FIELDS_IN_V22_FILE = TEST_DIR + File.separator + "SPDXWrongVersion.spdx.json";
static final String TEST_RDF_FILE_PATH = TEST_DIR + File.separator + "SPDXRdfExample-v2.3.spdx.rdf";
static final String TEST_SPREADSHEET_XLS_FILE_PATH = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.3.xls";
static final String TEST_SPREADSHEET_XLSX_FILE_PATH = TEST_DIR + File.separator + "SPDXSpreadsheetExample-v2.3.xlsx";
static final String TEST_TAG_FILE_PATH = TEST_DIR + File.separator + "SPDXTagExample-v2.3.spdx";
static final String TEST_XML_FILE_PATH = TEST_DIR + File.separator + "SPDXXMLExample-v2.3.spdx.xml";
static final String TEST_YAML_FILE_PATH = TEST_DIR + File.separator + "SPDXYAMLExample-2.3.spdx.yaml";
static final String TEST_WARNING_FILE_PATH = TEST_DIR + File.separator + "SPDXTagExample-v2.2-warning.spdx";
static final String BAD_JSON_FILE_PATH = TEST_DIR + File.separator + "BadJSON.spdx.json";

Expand All @@ -28,6 +29,11 @@ protected void tearDown() throws Exception {
super.tearDown();
}

public void testUpsupportedVersionFields() throws SpdxVerificationException {
List<String> result = Verify.verify(TEST_V23_FIELDS_IN_V22_FILE, SerFileType.JSON);
assertTrue(result.size() > 0);
}

public void testVerifyTagFile() throws SpdxVerificationException {
List<String> result = Verify.verifyTagFile(TEST_TAG_FILE_PATH);
assertEquals(0, result.size());
Expand Down Expand Up @@ -59,6 +65,6 @@ public void testVerifyWarning() throws SpdxVerificationException {

public void testVerifyBadJSON() throws SpdxVerificationException {
List<String> result = Verify.verify(BAD_JSON_FILE_PATH, SerFileType.JSON);
assertTrue(result.size() == 4);
assertTrue(result.size() == 5);
}
}
Loading

0 comments on commit f2e7d6e

Please sign in to comment.