Loading .gitignore 0 → 100644 +6 −0 Original line number Diff line number Diff line /target/ dependency-reduced-pom.xml .project .classpath .settings No newline at end of file .gitlab-ci.yml 0 → 100644 +13 −0 Original line number Diff line number Diff line image: maven:3.6.2-jdk-8 build: stage: build script: - mvn package artifacts: paths: - target/sarefPipeline.jar only: - master README.md 0 → 100644 +4 −0 Original line number Diff line number Diff line # Description This project integrates the SAREF development and documentation generation pipeline pom.xml 0 → 100644 +137 −0 Original line number Diff line number Diff line <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>fr.emse.gitlab.saref</groupId> <artifactId>saref-pipeline</artifactId> <version>1.0-SNAPSHOT</version> <name>saref-pipeline</name> <developers> <developer> <name>Omar Qawasmeh</name> <email>omar.alqawasmeh@emse.fr</email> <url>https://perso.univ-st-etienne.fr/alo09685/</url> <organization>Ecole des mines de Saint-Etienne</organization> <organizationUrl>http://www.mines-stetienne.fr/</organizationUrl> <timezone>+1</timezone> </developer> <developer> <name>Maxime Lefrançois</name> <email>maxime.lefrancois@emse.fr</email> <url>http://www.maxime-lefrancois.info/</url> <organization>Ecole des mines de Saint-Etienne</organization> <organizationUrl>http://www.mines-stetienne.fr/</organizationUrl> <timezone>+1</timezone> </developer> </developers> <organization> <name>École des Mines de Saint-Étienne</name> <url>http://www.mines-stetienne.fr/</url> </organization> <licenses> <license> <name>The Apache Software License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> </license> </licenses> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ssZ</maven.build.timestamp.format> <jdk.version>1.8</jdk.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <sparql-generate.version>2.0-SNAPSHOT</sparql-generate.version> </properties> <dependencies> <!-- <dependency> --> <!-- <groupId>org.topbraid</groupId> --> <!-- <artifactId>shacl</artifactId> --> <!-- <version>1.3.1</version> --> <!-- </dependency> --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.10.1</version> </dependency> <dependency> <groupId>org.apache.jena</groupId> <artifactId>jena-tdb</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>fr.emse.ci</groupId> <artifactId>sparql-generate-jena</artifactId> <version>2.0-SNAPSHOT</version> </dependency> <dependency> <groupId>fr.emse.ci</groupId> <artifactId>sparql-generate-markdown</artifactId> <version>2.0-SNAPSHOT</version> </dependency> <dependency> <!-- see Porcelain https://git-scm.com/book/uz/v2/Appendix-B%3A-Embedding-Git-in-your-Applications-JGit --> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit</artifactId> <version>5.2.1.201812262042-r</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> <type>jar</type> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>fr.emse.gitlab.saref.Main </mainClass> </transformer> </transformers> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> </configuration> </execution> </executions> </plugin> </plugins> </build> </project> No newline at end of file src/main/java/fr/emse/gitlab/saref/Main.java 0 → 100644 +99 −0 Original line number Diff line number Diff line package fr.emse.gitlab.saref; import java.awt.Desktop; import java.io.File; import java.io.IOException; import java.io.StringWriter; import java.net.URI; import java.net.URISyntaxException; import java.net.URLEncoder; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import org.apache.commons.io.FileUtils; import org.apache.log4j.Layout; import org.apache.log4j.PatternLayout; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import fr.emse.gitlab.saref.entities.TestSuites; import fr.emse.gitlab.saref.jobs.JobRunner; import fr.emse.gitlab.saref.jobs.library.ReadOntologies; import fr.emse.gitlab.saref.jobs.library.RepositoryStructureChecker; import fr.emse.gitlab.saref.utils.SAREF; public class Main { static final Logger LOG = LoggerFactory.getLogger(Main.class); private static final Layout LAYOUT = new PatternLayout("%d{mm:ss,SSS} %t %-5p %c:%L - %m%n"); private static final org.apache.log4j.Logger ROOT_LOGGER = org.apache.log4j.Logger.getRootLogger(); private static TestSuites testSuites = new TestSuites(); private static File directory; private static File target; public static void main(String[] args) throws IOException, InterruptedException, URISyntaxException, JAXBException { if (args.length == 0) { directory = new File("").getAbsoluteFile(); } else if (args.length > 1) { throw new IllegalArgumentException( "Expecting at most one argument: the location of the SAREF directory where to run the pipeline"); } else { directory = new File(args[0]).getAbsoluteFile(); } target = new File(directory, "target"); FileUtils.forceDelete(target); FileUtils.forceMkdir(target); File logFile = new File(directory, "target/output.log"); ROOT_LOGGER.addAppender(new org.apache.log4j.RollingFileAppender(LAYOUT, logFile.getAbsolutePath(), false)); LOG.info("Starting pipeline"); JobRunner checker = new RepositoryStructureChecker(directory); checker.doJob(testSuites); if(testSuites.getErrors() > 0) { reportAndExit(-1); } checker = new ReadOntologies(directory); checker.doJob(testSuites); reportAndExit(0); } private static void reportAndExit(int code) { try { File report = new File(target, "report_output.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(TestSuites.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); jaxbMarshaller.marshal(testSuites, report); jaxbMarshaller.marshal(testSuites, System.out); final StringWriter sw = new StringWriter(); jaxbMarshaller.marshal(testSuites, sw); if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { Desktop.getDesktop().browse(new URI(SAREF.BASE + "report.html?report=" + URLEncoder.encode(sw.toString(), "UTF-8"))); } } catch(JAXBException | URISyntaxException | IOException ex) { LOG.error("Exception:", ex); ex.printStackTrace(); } System.exit(code); } // private static void testRead() { // try { // JAXBContext jaxbContext = JAXBContext.newInstance(TestSuite.class); // Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); // // TestCase testCase = (TestCase) jaxbUnmarshaller.unmarshal(target); // // } catch (JAXBException e) { // e.printStackTrace(); // } // } } Loading
.gitignore 0 → 100644 +6 −0 Original line number Diff line number Diff line /target/ dependency-reduced-pom.xml .project .classpath .settings No newline at end of file
.gitlab-ci.yml 0 → 100644 +13 −0 Original line number Diff line number Diff line image: maven:3.6.2-jdk-8 build: stage: build script: - mvn package artifacts: paths: - target/sarefPipeline.jar only: - master
README.md 0 → 100644 +4 −0 Original line number Diff line number Diff line # Description This project integrates the SAREF development and documentation generation pipeline
pom.xml 0 → 100644 +137 −0 Original line number Diff line number Diff line <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>fr.emse.gitlab.saref</groupId> <artifactId>saref-pipeline</artifactId> <version>1.0-SNAPSHOT</version> <name>saref-pipeline</name> <developers> <developer> <name>Omar Qawasmeh</name> <email>omar.alqawasmeh@emse.fr</email> <url>https://perso.univ-st-etienne.fr/alo09685/</url> <organization>Ecole des mines de Saint-Etienne</organization> <organizationUrl>http://www.mines-stetienne.fr/</organizationUrl> <timezone>+1</timezone> </developer> <developer> <name>Maxime Lefrançois</name> <email>maxime.lefrancois@emse.fr</email> <url>http://www.maxime-lefrancois.info/</url> <organization>Ecole des mines de Saint-Etienne</organization> <organizationUrl>http://www.mines-stetienne.fr/</organizationUrl> <timezone>+1</timezone> </developer> </developers> <organization> <name>École des Mines de Saint-Étienne</name> <url>http://www.mines-stetienne.fr/</url> </organization> <licenses> <license> <name>The Apache Software License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> </license> </licenses> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ssZ</maven.build.timestamp.format> <jdk.version>1.8</jdk.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <sparql-generate.version>2.0-SNAPSHOT</sparql-generate.version> </properties> <dependencies> <!-- <dependency> --> <!-- <groupId>org.topbraid</groupId> --> <!-- <artifactId>shacl</artifactId> --> <!-- <version>1.3.1</version> --> <!-- </dependency> --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.10.1</version> </dependency> <dependency> <groupId>org.apache.jena</groupId> <artifactId>jena-tdb</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>fr.emse.ci</groupId> <artifactId>sparql-generate-jena</artifactId> <version>2.0-SNAPSHOT</version> </dependency> <dependency> <groupId>fr.emse.ci</groupId> <artifactId>sparql-generate-markdown</artifactId> <version>2.0-SNAPSHOT</version> </dependency> <dependency> <!-- see Porcelain https://git-scm.com/book/uz/v2/Appendix-B%3A-Embedding-Git-in-your-Applications-JGit --> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit</artifactId> <version>5.2.1.201812262042-r</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.2</version> <type>jar</type> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>fr.emse.gitlab.saref.Main </mainClass> </transformer> </transformers> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> </configuration> </execution> </executions> </plugin> </plugins> </build> </project> No newline at end of file
src/main/java/fr/emse/gitlab/saref/Main.java 0 → 100644 +99 −0 Original line number Diff line number Diff line package fr.emse.gitlab.saref; import java.awt.Desktop; import java.io.File; import java.io.IOException; import java.io.StringWriter; import java.net.URI; import java.net.URISyntaxException; import java.net.URLEncoder; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import org.apache.commons.io.FileUtils; import org.apache.log4j.Layout; import org.apache.log4j.PatternLayout; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import fr.emse.gitlab.saref.entities.TestSuites; import fr.emse.gitlab.saref.jobs.JobRunner; import fr.emse.gitlab.saref.jobs.library.ReadOntologies; import fr.emse.gitlab.saref.jobs.library.RepositoryStructureChecker; import fr.emse.gitlab.saref.utils.SAREF; public class Main { static final Logger LOG = LoggerFactory.getLogger(Main.class); private static final Layout LAYOUT = new PatternLayout("%d{mm:ss,SSS} %t %-5p %c:%L - %m%n"); private static final org.apache.log4j.Logger ROOT_LOGGER = org.apache.log4j.Logger.getRootLogger(); private static TestSuites testSuites = new TestSuites(); private static File directory; private static File target; public static void main(String[] args) throws IOException, InterruptedException, URISyntaxException, JAXBException { if (args.length == 0) { directory = new File("").getAbsoluteFile(); } else if (args.length > 1) { throw new IllegalArgumentException( "Expecting at most one argument: the location of the SAREF directory where to run the pipeline"); } else { directory = new File(args[0]).getAbsoluteFile(); } target = new File(directory, "target"); FileUtils.forceDelete(target); FileUtils.forceMkdir(target); File logFile = new File(directory, "target/output.log"); ROOT_LOGGER.addAppender(new org.apache.log4j.RollingFileAppender(LAYOUT, logFile.getAbsolutePath(), false)); LOG.info("Starting pipeline"); JobRunner checker = new RepositoryStructureChecker(directory); checker.doJob(testSuites); if(testSuites.getErrors() > 0) { reportAndExit(-1); } checker = new ReadOntologies(directory); checker.doJob(testSuites); reportAndExit(0); } private static void reportAndExit(int code) { try { File report = new File(target, "report_output.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(TestSuites.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); jaxbMarshaller.marshal(testSuites, report); jaxbMarshaller.marshal(testSuites, System.out); final StringWriter sw = new StringWriter(); jaxbMarshaller.marshal(testSuites, sw); if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { Desktop.getDesktop().browse(new URI(SAREF.BASE + "report.html?report=" + URLEncoder.encode(sw.toString(), "UTF-8"))); } } catch(JAXBException | URISyntaxException | IOException ex) { LOG.error("Exception:", ex); ex.printStackTrace(); } System.exit(code); } // private static void testRead() { // try { // JAXBContext jaxbContext = JAXBContext.newInstance(TestSuite.class); // Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); // // TestCase testCase = (TestCase) jaxbUnmarshaller.unmarshal(target); // // } catch (JAXBException e) { // e.printStackTrace(); // } // } }