Commit b2e5c160 authored by Maxime Lefrançois's avatar Maxime Lefrançois
Browse files

some corrections

parent 012f43d1
Loading
Loading
Loading
Loading
+8 −11
Original line number Original line Diff line number Diff line
@@ -32,6 +32,8 @@ import java.nio.file.Path;
import java.util.Optional;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Collectors;


import org.apache.commons.io.FileUtils;

import fr.emse.gitlab.saref.SAREF;
import fr.emse.gitlab.saref.SAREF;
import fr.emse.gitlab.saref.SAREFPipelineException;
import fr.emse.gitlab.saref.SAREFPipelineException;
import fr.emse.gitlab.saref.managers.GenerateRDFaManager;
import fr.emse.gitlab.saref.managers.GenerateRDFaManager;
@@ -119,20 +121,15 @@ public class Clause_9_3_Checker extends AbstractClauseChecker {
		});
		});
	}
	}


	private void requirementsRDFaGenerator() throws SAREFPipelineException{
	private void requirementsRDFaGenerator() throws SAREFPipelineException, IOException{
		String categoryChanger = "";
		String categoryChanger = "";
		String repoName = project.getName();
		String repoName = project.getName();
		String href = project.getNamespace();
		String href = project.getNamespace();


		File reqCSV = new File(repository.getDirectory(), "/requirements/requirements.csv");
		File reqCSV = new File(repository.getDirectory(), "/requirements/requirements.csv");

		File versionSite = new File(siteManager.siteDir, version.getVersionPath());
		File reqHTML = new File(repository.getDirectory(), "/target/site/requirements.html");
		FileUtils.forceMkdir(versionSite);

		File reqHTML = new File(versionSite, "requirements.html");
		GenerateRDFaManager manager = new GenerateRDFaManager();
		GenerateRDFaManager.GenerateRDFa(categoryChanger, repoName, href, reqCSV, reqHTML, "requirements");

		manager.GenerateRDFaManager(categoryChanger, repoName, href, reqCSV, reqHTML, "requirements");

	}
	}


}
}
+32 −47
Original line number Original line Diff line number Diff line
@@ -32,8 +32,6 @@ import java.util.List;
import java.util.Set;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Collectors;


import fr.emse.gitlab.saref.SAREFPipeline;
import fr.emse.gitlab.saref.managers.OopsManager;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.Model;
import org.semanticweb.owl.explanation.api.Explanation;
import org.semanticweb.owl.explanation.api.Explanation;
import org.semanticweb.owl.explanation.api.ExplanationGenerator;
import org.semanticweb.owl.explanation.api.ExplanationGenerator;
@@ -44,9 +42,13 @@ import org.semanticweb.owlapi.profiles.OWLProfileReport;


import fr.emse.gitlab.saref.SAREFPipelineException;
import fr.emse.gitlab.saref.SAREFPipelineException;
import fr.emse.gitlab.saref.managers.OntologyManager;
import fr.emse.gitlab.saref.managers.OntologyManager;
import fr.emse.gitlab.saref.managers.OopsManager;
import fr.emse.gitlab.saref.managers.RepositoryManager;
import fr.emse.gitlab.saref.managers.RepositoryManager;

import okhttp3.MediaType;
import okhttp3.*;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;


/**
/**
 * Checks TS 103 673 Clause 9.4.5: OWL Profile, Consistency, and Satisfiability
 * Checks TS 103 673 Clause 9.4.5: OWL Profile, Consistency, and Satisfiability
@@ -111,20 +113,11 @@ public class Clause_9_4_5_Checker extends AbstractClauseChecker {


		Model model = version.getModel();
		Model model = version.getModel();
		model.write(out, "RDF/XML"); // write in string and then replace
		model.write(out, "RDF/XML"); // write in string and then replace
		onto = out.toString().replace("]]","] ]");
		onto = out.toString().replaceAll("]]", "] ]");

		String xmlRequest = "<?xml version='1.0' encoding='UTF-8'?>" +
				"<OOPSRequest>" +
				"<OntologyURI></OntologyURI>" +
				"<OntologyContent><![CDATA[" + onto + "]]></OntologyContent>" +
				"<Pitfalls>10</Pitfalls>" +
				"<OutputFormat>RDF/XML</OutputFormat>" +
				"</OOPSRequest>";



		String xmlRequest = "<?xml version='1.0' encoding='UTF-8'?>" + "<OOPSRequest>" + "<OntologyURI></OntologyURI>"
		OopsManager manager = new OopsManager();
				+ "<OntologyContent><![CDATA[" + onto + "]]></OntologyContent>" + "<Pitfalls>10</Pitfalls>"

				+ "<OutputFormat>RDF/XML</OutputFormat>" + "</OOPSRequest>";
		ArrayList<ArrayList<String>> res = new ArrayList<ArrayList<String>>();


		Object[] arrayData = new Object[0];
		Object[] arrayData = new Object[0];


@@ -136,21 +129,16 @@ public class Clause_9_4_5_Checker extends AbstractClauseChecker {


			RequestBody body = RequestBody.create(xmlRequest, mediaType);
			RequestBody body = RequestBody.create(xmlRequest, mediaType);


			Request request = new Request.Builder()
			Request request = new Request.Builder().url("http://oops.linkeddata.es/rest").method("POST", body)
					.url("http://oops.linkeddata.es/rest")
					.addHeader("Content-Type", "application/xml").build();
					.method("POST", body)
					.addHeader("Content-Type", "application/xml")
					.build();


			Response response = httpClient.newCall(request).execute();
			Response response = httpClient.newCall(request).execute();



			String result = response.body().string();
			String result = response.body().string();



			String[] results = result.split("\\n");
			String[] results = result.split("\\n");
			List<String> pureData = new ArrayList<String>();
			List<String> pureData = new ArrayList<String>();
			for(int i=0; i<results.length-1;i++){
			for (int i = 0; i < results.length; i++) {
				if (results[i].startsWith("<")) {
				if (results[i].startsWith("<")) {
					for (int j = i; j < results.length; j++) {
					for (int j = i; j < results.length; j++) {
						pureData.add(results[j]);
						pureData.add(results[j]);
@@ -158,18 +146,15 @@ public class Clause_9_4_5_Checker extends AbstractClauseChecker {
				}
				}
			}
			}



			arrayData = pureData.toArray(); // response into array
			arrayData = pureData.toArray(); // response into array


		}
		} catch (IOException e) {
		catch (IOException e) {
			logWarning(getMessage(MESSAGE.oopsError));
			log(getMessage(MESSAGE.oopsError), SAREFPipeline.Mode.RELEASE, SAREFPipeline.Mode.PORTAL);
		}
		}


		int count = OopsManager.counter(arrayData);


		int count = manager.counter(arrayData);
		ArrayList<ArrayList<String>> result = OopsManager.getData(arrayData);

		ArrayList<ArrayList<String>> result = manager.getData(arrayData);


		int s = 0;
		int s = 0;


@@ -181,11 +166,11 @@ public class Clause_9_4_5_Checker extends AbstractClauseChecker {
			s++;
			s++;
		}
		}


		String printData = results.stream().map(e -> e.toString()).collect(Collectors.joining("\n- ", "\n\n- ", "\n\n"));
		String printData = results.stream().map(e -> e.toString())
				.collect(Collectors.joining("\n- ", "\n\n- ", "\n\n"));
		if (count != 0) {
		if (count != 0) {
			log(getMessage(MESSAGE.oops, printData), SAREFPipeline.Mode.RELEASE, SAREFPipeline.Mode.PORTAL);
			logWarning(getMessage(MESSAGE.oops, printData));
		}
		}
	}
	}



}
}
+66 −85
Original line number Original line Diff line number Diff line
@@ -25,21 +25,17 @@
 */
 */
package fr.emse.gitlab.saref.checkers;
package fr.emse.gitlab.saref.checkers;


import java.io.*;
import java.io.ByteArrayOutputStream;
import java.nio.file.*;
import java.io.File;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.PathMatcher;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Optional;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Collectors;


import fr.emse.gitlab.saref.SAREFPipeline;
import fr.emse.gitlab.saref.SAREFPipelineException;
import fr.emse.gitlab.saref.entities.SAREFRepository;
import fr.emse.gitlab.saref.entities.SAREFVersion;
import fr.emse.gitlab.saref.managers.DatasetManager;
import fr.emse.gitlab.saref.managers.GenerateRDFaManager;
import fr.emse.gitlab.saref.managers.RepositoryManager;
import fr.emse.gitlab.saref.managers.ThemisManager;
import okhttp3.*;
import org.apache.any23.Any23;
import org.apache.any23.Any23;
import org.apache.any23.extractor.ExtractionException;
import org.apache.any23.extractor.ExtractionException;
import org.apache.any23.source.DocumentSource;
import org.apache.any23.source.DocumentSource;
@@ -47,11 +43,25 @@ import org.apache.any23.source.FileDocumentSource;
import org.apache.any23.writer.RDFXMLWriter;
import org.apache.any23.writer.RDFXMLWriter;
import org.apache.any23.writer.TripleHandler;
import org.apache.any23.writer.TripleHandler;
import org.apache.any23.writer.TripleHandlerException;
import org.apache.any23.writer.TripleHandlerException;
import org.apache.commons.io.FileUtils;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.Model;
import org.w3c.dom.Document;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.NodeList;


import fr.emse.gitlab.saref.SAREFPipelineException;
import fr.emse.gitlab.saref.entities.SAREFRepository;
import fr.emse.gitlab.saref.entities.SAREFVersion;
import fr.emse.gitlab.saref.managers.DatasetManager;
import fr.emse.gitlab.saref.managers.GenerateRDFaManager;
import fr.emse.gitlab.saref.managers.RepositoryManager;
import fr.emse.gitlab.saref.managers.ThemisManager;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

/**
/**
 * Checks TS 103 673 Clause 9.5: Ontology tests
 * Checks TS 103 673 Clause 9.5: Ontology tests
 * 
 * 
@@ -140,25 +150,16 @@ public class Clause_9_5_Checker extends AbstractClauseChecker {
		});
		});
	}
	}



	public void checkThemis() throws SAREFPipelineException {
	public void checkThemis() throws SAREFPipelineException {
		try {
		File versionSite = new File(siteManager.siteDir, version.getVersionPath());

		File tHTML = new File(versionSite, "tests.html");
			File tHTML = new File(repository.getDirectory(),"target/site/tests.html");

			Any23 runner = new Any23();

			ByteArrayOutputStream out = new ByteArrayOutputStream();

		DocumentSource source = new FileDocumentSource(tHTML);
		DocumentSource source = new FileDocumentSource(tHTML);
			TripleHandler handler = new RDFXMLWriter(out);
		Any23 runner = new Any23();
		try(ByteArrayOutputStream out = new ByteArrayOutputStream(); TripleHandler handler = new RDFXMLWriter(out);) {
			runner.extract(source, handler);
			runner.extract(source, handler);


			handler.close();

			String xmlData = out.toString();
			String xmlData = out.toString();



			ArrayList<String[]> res = makeCall(xmlData, repository, datasetManager, version);
			ArrayList<String[]> res = makeCall(xmlData, repository, datasetManager, version);


			ArrayList<String> result = new ArrayList<String>();
			ArrayList<String> result = new ArrayList<String>();
@@ -168,29 +169,21 @@ public class Clause_9_5_Checker extends AbstractClauseChecker {
				result.add(response);
				result.add(response);
			}
			}


			String data = result.stream().map(e -> e.toString()).collect(Collectors.joining("\n- ", "\n\n- ", "\n\n"));

			if (!res.isEmpty()) {
			if (!res.isEmpty()) {
				log(getMessage(MESSAGE.themis, data), SAREFPipeline.Mode.RELEASE, SAREFPipeline.Mode.RELEASE, SAREFPipeline.Mode.PORTAL);
				String data = result.stream().map(e -> e.toString()).collect(Collectors.joining("\n- ", "\n\n- ", "\n\n"));
				logWarning(getMessage(MESSAGE.themis, data));
			}
			}


		} catch (FileNotFoundException e) {
		} catch (ExtractionException | IOException | TripleHandlerException e) {
			e.printStackTrace();
			logWarning(getMessage(MESSAGE.themisError));
		} catch (ExtractionException | UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			log(getMessage(MESSAGE.themisError), SAREFPipeline.Mode.RELEASE, SAREFPipeline.Mode.RELEASE, SAREFPipeline.Mode.PORTAL);
		} catch (TripleHandlerException e) {
			e.printStackTrace();
		}
		}
	}
	}



	public ArrayList<String[]> makeCall(String xmlData, SAREFRepository repository, DatasetManager datasetManager,
	public ArrayList<String []> makeCall(String xmlData, SAREFRepository repository, DatasetManager datasetManager, SAREFVersion version)  throws SAREFPipelineException {
			SAREFVersion version) throws SAREFPipelineException {


		ArrayList<String[]> res = new ArrayList<String[]>();
		ArrayList<String[]> res = new ArrayList<String[]>();
		try{
		try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
			ByteArrayOutputStream out = new ByteArrayOutputStream();
			String onto = "";
			String onto = "";


			Model model = version.getModel();
			Model model = version.getModel();
@@ -201,30 +194,22 @@ public class Clause_9_5_Checker extends AbstractClauseChecker {


			MediaType mediaType = MediaType.parse("application/json");
			MediaType mediaType = MediaType.parse("application/json");


			String jsonRequest = "{\"ontologiesCode\":[\"" +
			String jsonRequest = "{\"ontologiesCode\":[\""
					onto.replace("\\\"", "\\\\\"").replace("\"", "\\\"").replace("\t"," ") +
					+ onto.replaceAll("\\\"", "\\\\\"").replaceAll("\"", "\\\"").replaceAll("\t", " ") + "\"],"
					"\"]," + "\"testfile\":[\"" +
					+ "\"testfile\":[\"" + xmlData.replaceAll("\\\"", "\\\\\"").replaceAll("\"", "\\\"").replaceAll("\t", " ")
					xmlData.replace("\\\"", "\\\\\"").replace("\"", "\\\"").replace("\t"," ") +
					+ "\"]," + "\"format\":\"junit\"}";
					"\"]," + "\"format\":\"junit\"}";



			RequestBody body = RequestBody.create(jsonRequest, mediaType);
			RequestBody body = RequestBody.create(jsonRequest, mediaType);


			Request request = new Request.Builder()
			Request request = new Request.Builder().url("http://themis.linkeddata.es/rest/api/results")
					.url("http://themis.linkeddata.es/rest/api/results")
					.method("POST", body).addHeader("accept", "application/json")
					.method("POST", body)
					.addHeader("Content-Type", "application/json").build();
					.addHeader("accept", "application/json")
					.addHeader("Content-Type", "application/json")
					.build();


			Response response = httpClient.newCall(request).execute();
			Response response = httpClient.newCall(request).execute();



			String result = response.body().string();
			String result = response.body().string();


			ThemisManager manager = new ThemisManager();
			Document doc = ThemisManager.convertStringToXMLDocument(result);

			Document doc = manager.convertStringToXMLDocument(result);


			NodeList nodeList = doc.getElementsByTagName("testcase");
			NodeList nodeList = doc.getElementsByTagName("testcase");
			for (int temp = 0; temp < nodeList.getLength(); temp++) {
			for (int temp = 0; temp < nodeList.getLength(); temp++) {
@@ -234,34 +219,30 @@ public class Clause_9_5_Checker extends AbstractClauseChecker {
					Element element = (Element) node;
					Element element = (Element) node;
					part[0] = "" + element.getAttributeNode("id");
					part[0] = "" + element.getAttributeNode("id");
					part[1] = "" + element.getAttributeNode("name");
					part[1] = "" + element.getAttributeNode("name");
					part[2] = ""+((Element) node).getElementsByTagName("error").item(0).getAttributes().getNamedItem("message");
					part[2] = "" + ((Element) node).getElementsByTagName("error").item(0).getAttributes()
							.getNamedItem("message");


					res.add(part);
					res.add(part);

				}
				}
			}
			}

		} catch (IOException e) {
		} catch (IOException e) {
			log(getMessage(MESSAGE.themisError), SAREFPipeline.Mode.RELEASE, SAREFPipeline.Mode.RELEASE, SAREFPipeline.Mode.PORTAL);
			logWarning(getMessage(MESSAGE.themisError));
		}
		}
		return res;
		return res;
	}
	}


	private void testsRDFaGenerator() throws SAREFPipelineException{
	private void testsRDFaGenerator() throws SAREFPipelineException, IOException {
		if(pipeline.ignoreSite) {
			return;
		}
		String categoryChanger = "";
		String categoryChanger = "";
		String repoName = project.getName();
		String repoName = project.getName();
		String href = project.getNamespace();
		String href = project.getNamespace();

		File testCSV = new File(repository.getDirectory(), "/tests/tests.csv");
		File testCSV = new File(repository.getDirectory(), "/tests/tests.csv");

		File versionSite = new File(siteManager.siteDir, version.getVersionPath());
		File testHTML = new File(repository.getDirectory(), "/target/site/tests.html");
		FileUtils.forceMkdir(versionSite);

		File testHTML = new File(versionSite, "tests.html");
		GenerateRDFaManager manager = new GenerateRDFaManager();
		GenerateRDFaManager.GenerateRDFa(categoryChanger, repoName, href, testCSV, testHTML, "tests");

		manager.GenerateRDFaManager(categoryChanger, repoName, href, testCSV, testHTML, "tests");

	}
	}



}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -45,7 +45,7 @@ public class SAREFNamedGraph {
			return false;
			return false;
		if (getClass() != obj.getClass())
		if (getClass() != obj.getClass())
			return false;
			return false;
		SAREFTerm other = (SAREFTerm) obj;
		SAREFNamedGraph other = (SAREFNamedGraph) obj;
		if (iri == null) {
		if (iri == null) {
			if (other.iri != null)
			if (other.iri != null)
				return false;
				return false;
+178 −203

File changed.

Preview size limit exceeded, changes collapsed.

Loading