Unverified Commit 157bc29c authored by Maxime Lefrançois's avatar Maxime Lefrançois
Browse files

profilechecker tested with java 8, 11, 21

parent 6b7fbe4c
Loading
Loading
Loading
Loading
+33 −10
Original line number Diff line number Diff line
import hashlib
import os
import owlready2.reasoning
from saref_pypeline.check.constants import JAVA_CMD
from saref_pypeline.check.BaseGraphDocumentChecker import BaseGraphDocumentChecker
from saref_pypeline.entities import SAREFGraphDocument, SAREFGraphDocumentType
import owlready2
import re
import requests
from rdflib import Graph, URIRef
import hashlib
from urllib.request import urlretrieve
import subprocess
import tempfile
from typing import TYPE_CHECKING
from rdflib import DCMITYPE, DCTERMS, RDF, OWL
from urllib.request import urlretrieve

from rdflib import Graph, URIRef, DCMITYPE, DCTERMS, RDF, OWL
import owlready2
import owlready2.reasoning

from saref_pypeline.check.BaseGraphDocumentChecker import BaseGraphDocumentChecker
from saref_pypeline.check.constants import JAVA_CMD
from saref_pypeline.entities import SAREFGraphDocument, SAREFGraphDocumentType
from saref_pypeline.utils import filter_document, filter_clause

if TYPE_CHECKING:
    from saref_pypeline.pipeline import SAREFPipeline

def java_major_version(java_cmd="java"):
    try:
        out = subprocess.check_output([java_cmd, "-version"], stderr=subprocess.STDOUT)
        first_line = out.decode().splitlines()[0]
        match = re.search(r'\"(\d+)(\.\d+)?', first_line)
        if not match:
            return None
        version_str = match.group(1)
        if version_str == "1":  # e.g. 1.8
            return 8
        return int(version_str)
    except Exception:
        return None


major = java_major_version(JAVA_CMD)

class Checker(BaseGraphDocumentChecker):

@@ -82,7 +99,13 @@ class Checker(BaseGraphDocumentChecker):
            return

        # Run the JAR file
        command = [JAVA_CMD, "-jar", jar_path, file_name, "OWL2_DL"]
        command = [JAVA_CMD]
        if major and major >= 9:
            command += [
                "--add-opens", "java.base/java.lang=ALL-UNNAMED",
                "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED",
            ]
        command += ["-jar", jar_path, file_name, "OWL2_DL"]        
        try:
            result = subprocess.run(command, text=True, capture_output=True)
            errs = result.stderr.split("\n")